LARA

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.

Official Calendar

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

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

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

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

Final report instructions

Project presentation template