Valid from: Autumn 2018
Decided by: Professor Thomas Johansson
Date of establishment: 2018-05-18
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.
The course topics include: type and effect systems, operational semantics, program dependency analysis, data flow analysis, constraint-based analysis, profiling, and sampling.
Nielson, F., Nielson, H.R. & Hankin, C.: Principles of Program Analysis. Springer, 1999. ISBN 9783540654100.
Types of instruction: Lectures, laboratory exercises, self-study literature review
Examination format: Written exam
Grading scale: Failed, pass
Admission requirements: EDAN65 or equivalent knowledge about compilers