Compiler Construction 2011
For latest version see this page.
Quick links: Moodle page , Repository server , Tool Compiler Project
General Information
Note that:
- lectures, exercises, and labs are interchangeable
- attendance is strongly recommended in all slots
Will follow closely the structure of Compiler Construction in 2010.
Staff
Instructor | Viktor Kuncak |
Practical exercises | Etienne Kneuss and Philippe Suter |
Theoretical exercises | Eva Darulova and Giuliano Losa |
Assistant-étudiant | Régis Blanc |
Secretary | Yvette Gallay |
Course Materials
Week 01, September 19
- Wednesday 8:15am: Lecture 01: Introduction to Compilers (INM 202)
- Wednesday 10:15am: Labs 01 (read also: Labs setup) (INJ 218)
Week 02, September 26
- Monday 10:15am: Lecture 02: Lexical Analyzer by Hand. Regular Expressions and Automata (INM 202)
- Wednesday 8:15am: Lecture 03: Automatic Construction of Lexical Analyzers. Basics of Parsing (INM 202)
- Wednesday 10:15am: Labs 02 (INJ 218)
- Homework 01: due 5th October
Week 03, October 3
- Monday 10:15am: Exercises 01: Regular expressions and finite automata (INM 202)
- Wednesday 8:15am: Lecture 04 (INM 202)
- Wednesday 10:15am: Labs 03 (INJ 218)
Week 04, October 10
- Monday 10:15am: Lecture 05: Parsing (INM 202)
- Wednesday 8:15am: Labs 04 (INF 3)
- Wednesday 10:15am: Exercises 02 (INJ 218)
- Homework 02: due 17th October
Week 05, October 17
- Monday 10:15am: Lecture 06: CYK Parsing, Chomsky Form and Earley Parsing. Also Exercises (INM 202)
- Wednesday 8:15am: Labs 05 (INF 3)
- Wednesday 10:15am: Lecture 07: Earley Parsing. Semantic Actions (INJ 218)
- Homework 03: due 24th October
Week 06, October 24
- Monday 10:15am: Lecture 08: Idea of LR Parsing and Priorities. Symbol Tables
- Wednesday 8:15am: Labs 06 (INF 3)
- Wednesday 10:15am: Discussion of homework 2 and, if time permits, homework 3 (INJ 218)
- Homework 04: due 31st October
Week 07, October 31
- Monday, 10:15am: Lecture 09: Name Analysis and Type Checking
- Wednesday 8:15am: Labs 07 (INM 202)
- Wednesday 10:15am: Discussion of homework 3 and 4 (INJ 218)
- Homework 05: due 14th November
Week 08, November 7
- Monday, 10:15am: Lecture 10: Type Checking and Subtyping
- Wednesday 8:15am: Labs in INM 202
- Wednesday, 10:15am: Labs in INJ 218
Week 09, November 14
- Monday, 10:15am: Lecture 11 on Type Soundness. Homework discussion
- Wednesday 8:15am: Lecture 12: Type inference, in INM 202
- Wednesday, 10:15am: Labs in INJ 218
- Homework 06: due 21st November
This is the last homework.
Week 10, November 21
- Monday, 10:15am: Lecture 13: Fist (Byte) Code Generation Lecture, in INM 202
- Wednesday, 8:15am: Labs 10, in INM 202
- Wednesday, 10:15am: Lecture 14: Second (Byte) Code Generation Lecture, in INJ 218
- Friday, midnight: Deadline for bidding on mini-projects.
Here is also a list of selected (most relevant) bytecode instructions.
Week 11, November 28
- Monday, 10:15am: Lecture 15 Introduction to Program Analysis
- Wednesday, 8:15am: Labs 11: Start working on the mini-project. Discuss it with us.
- Wednesday, 11:15am: Exercises: Discussion of Homework 6
Week 12, December 5
- Monday, 10:15am: Lecture 16 on Data-Flow Analysis
- Wednesday, 8:15am: Labs: work on mini-projects. come and prepare questions
- Wednesday, 10:15am: Exercises 03 on code generation and data-flow analysis (quiz preparation)
Week 13, December 12
- Monday, 10:15am: Lecture 17: Data Mapping including Register Allocation and Liveness
- Wednesday, 8:15am - noon: Project presentations
Week 14, December 19
- Monday, 10:15am: Quiz Preparation Exercises
- Wednesday, 8:15am: Quiz for no more than 4 hours, INJ218
Upcoming Deadlines
End of year quiz will take place on Wednesday, 21 December, at 8:15AM in INJ218.
All project material is due by 14 January 2012.
Project assignment:
Group 1 : Optimizations: Tail-Calls Elimination Group 2 : Generics: Type-Parametric Programming Group 3 : LLVM: Generate LLVM Intermediate Representation Group 4 : Garbage Collection Group 5 : Exceptions Group 6 : Your Own Idea: Dictionaries Group 8 : First-class Functions Group 9 : Liberal Syntax Group 11 : ADTs with Pattern-Matching Group 14 : Type Inference: Write Less Type Annotations