Course Syllabus for

Program Analysis

EDA045F, 7.5 credits

Valid from: Autumn 2018
Decided by: Professor Thomas Johansson
Date of establishment: 2018-05-18

General Information

Division: Computer Science (LTH)
Course type: Third-cycle course
Teaching language: English


Program analysis allows us to better understand what software does and does not do. The techniques of program analysis can thereby contribute to software security, software quality control, program understanding, software maintenance and evolution, and software performance improvement. The aim of this course is to provide a detailed understanding of modern program analysis techniques, as well as their strengths and weaknesses, when applied to realistic software.


Knowledge and Understanding

For a passing grade the doctoral student must

Competences and Skills

For a passing grade the doctoral student must be able to design, implement, and validate static, dynamic and combined static-dynamic program analyses for different tasks.

Judgement and Approach

For a passing grade the doctoral student must demonstrate the ability to describe, understand, and critically evaluate different program analysis techniques as applied to different tasks.

Course Contents

The course topics include: type and effect systems, operational semantics, program dependency analysis, data flow analysis, constraint-based analysis, profiling, and sampling.

Course Literature

Nielson, F., Nielson, H.R. & Hankin, C.: Principles of Program Analysis. Springer, 1999. ISBN 9783540654100.

Instruction Details

Types of instruction: Lectures, laboratory exercises, self-study literature review

Examination Details

Examination format: Written exam
Grading scale: Failed, pass

Admission Details

Admission requirements: EDAN65 or equivalent knowledge about compilers

Course Occasion Information

Contact and Other Information

Course coordinators:

Complete view