University homepage Suomenkielinen versio puuttuu Inte på svenska In english
University of Helsinki Department of Computer Science
 

Department of Computer Science

Compilers, Spring 2012

General Info

Lectures Juha Vihavainen 18.01.-24.02. Wed 14-16, Fri 12-14 C222
Exercises Zach Laster 23.01.-24.02. Wed 16-18 B119
 
Course results 18.03.2012
 
Examination 1.3.2012
 
All the course materials and exercises are in English. The lectures are spoken in Finnish. The exercise/project groups are spoken in English (Zach Laster). Also, the course exam answers and project reports must be written in English.
 
Course outline
 
  • Introduction and overview
  • Scanning
  • Parsing
  • Semantic analysis and code generation
  • Compiler tools
  • Programming projects

The course teaches the fundamentals of compilers, emphasizing the front end of compilers. Theoretical parts include regular expressions, finite automata, and context-free languages, and their (practical) recognition techniques. The standard architecture of a whole compiler is explained and illustrated by examples. Compiler generator tools are discussed together with manual implementation techniques. The course includes normal lectures, exercises, examination, and some programming assignments. The course gives 4 credit points.
 
As obligatory practical work, students build an interpreter for a simple mini language. This mini language has only integer arithmetics, and a few statements. Some modest semantic checks are needed. However, students get experience programming the necessary parts of the front end of a compiler. The projects are by default individual. The idea is to build an internal AST (abstract syntax tree) that is then processed for analysis and interpretation. The mini language contains no subroutines, nor general nested scopes, so only a simple symbol table is required. Traversals of syntax trees can be done utilizing standard design patterns.
 
A separate course Compiler project concentrates on the back-end of a compiler, including transformation of internal representations, and actual code generation. This in-depth course can be taken optionally after the Compilers course.
 
Course examination  Thursday 1.3.2012   16-19  (B123)
 
The examination gives about halve (32) of total points (60), programming projects gives max 22 points, and exercise activity gives max 6 points. The examination is based on

  • course lecture notes
  • material on these course pages
  • exercises 1 - 5

Just before test, please check its time & the place for late changes.

The course includes an obligatory programming project, and you may not participate in any resit examinations, unless you have delivered specified assignments at due date.