SluitenHelpPrint
Switch to English
Cursus: INFOMAPA
INFOMAPA
Automatic program analysis
Cursus informatie
CursuscodeINFOMAPA
Studiepunten (EC)7,5
Cursusdoelen

At the end of this course you can

  • explain and implement the mathematical concepts underlying static analysis (such as lattices and fixed-points), and can use these concepts in the context of the static analysis of computer programs
  • implement the general framework of monotone frameworks for intraprocedural and interprocedural analysis of a first-order language
  • instantiate that framework to define various kinds of analyses
  • design and implement a type and effect system for the analysis of higher-order language
  • relate the concepts of abstract interpretation to the foregoing
  • construct Galois Connections

Assessment
Written exam; lab assignments.

For a repair test the result of the original test has to be a least a 4.

Inhoud
Every professional compiler performs an analysis of the source code of the program, to attempt to make the generated code more efficient, or to validate some aspects of the source code.
Instances of this problem are type inferencing, data flow analysis (dead-code analysis) and control flow analysis.
In this course we study many aspects of program analysis, control flow analysis, data flow analysis, type and effect systems and abstract interpretation. All of these are static techniques.

Note that basic knowledge of and experience with the Haskell programming language is important to do the practical assignments; this is a prerequisite to follow the course.
Note, though, also that you are not expected to have done the course on Advanced Functional Programming.

Course form
Combined lectures, exercises, lab sessions.

Literature
Slides and the following book: Nielson, Flemming, Nielson, Hanne R., Hankin, Chris, "Principles of Program Analysis", Corr. 2nd printing, ISBN: 3-540-65410-0.

Other material may be made available throughout the course.

SluitenHelpPrint
Switch to English