CIS 905, Spring 2003

Theory of Programming Languages

Program Analysis

Program analysis enables one to predict, prior to run-time, a safe approximation of the values or behaviors arising during run-time when executing a program on a computer. For many years, the technology has been used in compilers so as to optimize the code generated, for example by not computing results that turn out not to be needed. Among the more recent applications is the validation of software (possibly downloaded from the Internet), thus reducing the likelihood of malicious or unintended behavior.

In order to rely on the results of program analysis, a firm mathematical foundation is necessary. In this course we shall give an overview of the main approaches to program analysis and cover the basic principles, with emphasis on type and effect systems and abstract interpretation.

Further information

Nielson & Nielson & Hankin: Principles of Program Analysis.
A number of on-line tools are available from the web site; we briefly looked at the PAG/WWW system.
Along the way, we update an additional errata list.
Topics covered:
See this log file for what was covered when (and for homework assignments).
Torben Amtoft.
Tuesday and Thursday, 10:00am-11:30am in N127.
Form of class:
Lectures. Student presentations are encouraged, in particular later in the course. Larger projects could arise from this class.
Handing in homework and/or giving presentations (and of course, attending regularly).

Torben Amtoft