Compiler Construction





Offered by

ICT Engineering




Main purpose

The purpose of the course is to make the students able to construct a working compiler, and to give them general knowledge of programming language features.





Having completed this course, students should be able to:
  • Have a general overview of the individual steps in the compilation process, and organize the construction of a compiler according to these steps
  • Design a small programming language
  • Describe the syntax of programming languages and make the descriptions usable for implementation
  • Use various programming techniques and data structures to implement the individual parts of a compiler
  • Know different programming language features and their run time implementation
  • Use the above things to construct a real compiler
  • Present the constructed compiler and the construction process.


Lexical analysis. Parsing (top-down and bottom-up). Semantic analysis. Code generation. Code optimisation. Data structures for compiler data.

Teaching methods and study activities

  • 12 weeks
  • Acquired workload for students is estimated at 120 hours.
  • One large compiler construction project will take place during the semester.


Watt&Brown, Programming Language Processors in Java
Compilers and Interpreters
Prentice-Hall 2000
ISBN 0-130-25786-9


Internal examination.
The evaluation of the course is based on mandatory course work (50%) and the oral exam (50%) at the end of the course. Only students with approved course work will be allowed to attend the exam.


Internal examination.
The exam is oral and it takes 20 minutes per student. The exam is in two parts. First part is a presentation and discussion of selected parts of the course work. Second part is a drawn question from the theory of the course. ‚Äč

Grading criteria

Grading is according to the 7-point grading scale.
Mark 12:
Awarded to students who have shown excellent comprehension of the above-mentioned competences. A few minor errors and shortfalls are acceptable.
Mark 02:
Awarded to students for the just acceptable level of comprehension of the required competences.

Additional information


Jan Munch Pedersen

Valid from

8/1/2016 12:00:00 AM

Course type


Compiler Design and Implementation, Programming Language Description, Context-Free Grammars, Syntax Checking, Semantic Checking, Runtime Organization, Code Generation