Department of Information and Computing Sciences

Departement Informatica Onderwijs
Bachelor Informatica Informatiekunde Kunstmatige intelligentie Master Computing Science Game&Media Technology Artifical Intelligence Human Computer Interaction Business Informatics

Onderwijs Informatica en Informatiekunde

Vak-informatie Informatica en Informatiekunde

Automatic program analysis

Website:website containing additional information
Course code:INFOMAPA
Credits:7.5 ECTS
Period:period 4 (week 17 through 26, i.e., 26-4-2021 through 2-7-2021; retake week 28)
Participants:up till now 21 subscriptions
Schedule:Official schedule representation can be found in MyTimetable
lecture          Jurriaan Hage
Ivo Gabe de Wolff
Note:No up-to-date course description available.
Text below is from year 2019/2020
Contents: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, that you are not expected to have done the course on Advanced Functional Programming.

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
  • can implement the general framework of monotone frameworks for intraprocedural and interprocedural analysis of a first-order language
  • can instantiate that framework to define various kinds of analyses
  • can design and implement a type and effect system for the analysis of higher-order language
  • can relate the concepts of abstract interpretation to the foregoing
  • can construct Galois Connections
Literature:May change!
Slides and the following book:

Principles of Program Analysis
Nielson, Flemming, Nielson, Hanne R., Hankin, Chris
Corr. 2nd printing, ISBN: 3-540-65410-0.

Other material may be made available throughout the course.
Course form:Combined lectures, exercise and lab sessions. See the schedule.
Exam form:Written exam; lab assignments.
Minimum effort to qualify for 2nd chance exam:To qualify for the retake exam, the grade of the original must be at least 4.
Description:Topics discussed in this course include:
  • syntax-directed computation with attribute grammars
  • monotone frameworks
  • type-based analysis
  • abstract interpretation