In the course year 2017-2018 this course is taught by Jurriaan Hage ( All questions regarding the course should be directed at him, face to face or via e-mail.

Compared the course year 2016-2017, there are some changes in the order of the material, and part of the material will be new. The material on static analysis will remain the same, except that abstract interpretation will be added as a topic for the exam.

The course has a “practicum” which means that you work on your practical assignments in a class room. How much time we spent on this per week depends on how much material there is to lecture about. We start with more lectures and less practicals in the first weeks to get you going, and this will shift to more practicals and less lecture time in the later weeks. Assume that all the hours not destined for lectures will be used for practicals.

After the course has started, details of the schedule may still change. You will then be informed of this by e-mail.

Slot (week) Date Lecture Additional
1(17) Tuesday 2018-04-24 Intro Attribute Grammars Moved because of the defense of Alejandro on Monday
2(17) 2018-04-26 Static Analysis with Monotone Frameworks Form pairs and work on the first assignment
3(18) 2018-04-30 Monotone Frameworks continued
4(18) 2018-05-03 Monotone Frameworks continued
5(19) 2018-05-07 No lecture: Jurriaan absent
6(19) 2018-05-10 No lecture: Ascension Day
7(20) 2018-05-14 Monotone Frameworks continued
8(20) 2018-05-17 Control-flow analysis
9(21) 2018-05-21 No lecture: Pentecost
10(21) 2018-05-24 Control-flow analysis continued
11(22) 2018-05-28 Analyzing effects
12(22) 2018-05-31 Usage Analysis
13(23) 2018-06-04 Object-sensitive Analysis of Java
14(23) 2018-06-07 Abstract Interpretation
15(24) 2018-06-11 Code generation for functional languages
16(24) 2018-06-18 Garbage collection
16(24) 2018-06-14 Practical only?
18(25) 2018-06-21 Some fun topic if people are interested Choices: program plagiarism detection, higher-rank polyvariance, software clustering using evolutionary algorithms, program slicing