Single-Course English 7.5 ECTS

Program Analysis

Overall Course Objectives

The students will be able to automatically derive facts from programs using different program analyses.

Learning Objectives

  • explain the concepts for soundness and completeness and the limitations of program analysis;
  • explain the benefits and tradeoffs associated with syntactic, semantic, dynamic and static analyses;
  • design an analysis to solve a specific problem;
  • formulate theoretical guarantees and limitations of the analysis;
  • argument for the approach in a project proposal;
  • implement an analysis for part of a real programming language;
  • design and motivate a series of experiments using this analysis and interpret the results obtained;
  • communicate their results in a clear and precise manner in a paper format; and
  • achieve the above goals in a group effort while at the same time maintaining individual accountability.

Course Content

In this course, the student will become familiar with different ways of deriving facts from programs, using both dynamic and static analyses. The course will focus on analyses for the JVM, but the students are encouraged to work on any language they want. The theoretical part of the course will be covered in the first half of the course; after which the students should write a proposal for a group project. Finally, the students will carry out experiments verifying their ideas, which they will write up in a paper and present orally.

Recommended prerequisites

02141, The students are expected to be familiar with regular and context-free languages as well as semantics; this background can be obtained in the course 02141. The students must be fluent in at least one programming language and be able to use relevant data structures.

Teaching Method

Lectures, theoretical and practical exercises.


See course in the course database.





13 weeks




DTU Lyngby Campus

Course code 02242
Course type Candidate
Semester start Week 35
Semester end Week 48
Days Mon 13-17

11.250,00 DKK