Compiler Design Project

5 credits

Syllabus, Master's level, 1DL420

A revised version of the syllabus is available.
Education cycle
Second cycle
Main field(s) of study and in-depth level
Computer Science A1N, Technology A1N
Grading system
Fail (U), Pass (G)
Finalised by
The Faculty Board of Science and Technology, 12 March 2009
Responsible department
Department of Information Technology

Entry requirements

120 credits, of which mathematics 15 credits including Automata theory, and Computer Science 60 credits including a second course in Computer Programming, Algorithms and Data Structures, Compiler Design I and Operating systems.

Learning outcomes

To pass, the student must understand, how simple imperative programming languages equivalent to C can be compiled to machine code for RISC-like machines.

The students must specifically be able to

  • structure a compiler as a sequence of distinct translation steps
  • use regular languages to describe the lexical elements of a programming language
  • implement lexical analysis using a finite automaton
  • use context free languages to describe the syntactic structure of a programming language
  • use the parsing methods top-down (recursive descent) and bottom-up (LR)
  • implement abstract syntax trees to represent the results of the syntactic analysis
  • use hash tables to handle information on variable bindings in languages with static and nested visibility rules
  • break down statements and expressions to simpler designs, and translate syntax trees to intermediate code
  • implement recursive procedure calls by means of stacks, activation posts and machine registers
  • implement the translation of the simplified intermediate code of a program to machine-specific instructions


The students carry out a project in which they implement a compiler from a subset of C to a RISC-machine.

The project is divided in steps, which are presented separately.




The course is examined by assignments within the project.

Other directives

This course cannot be included in a degree together with Compiler design DV1 (1DL117), nor with Compiler Design I (1DL021).

No reading list found.