Print

Compiler Construction

Code

IT-CMC1

Version

2.0

Offered by

ICT Engineering

ECTS

5

Prerequisites

Condition for following IT-CMC1 is that you have followed the courses IT-SDJ1, IT-SDJ2, and IT-ADS1, or similar courses at your home institution.

Main purpose

The students should be able to design a simple programming language, and design and implement a compiler for the language.

Knowledge

The students will be able to

  • describe the main purposes of a compiler
  • explain the differences between syntax and semantics of a programming language
  • explain context free grammars
  • list examples of common programming language features

Skills

The students will be able to

  • construct a context free grammar for a programming language
  • define the semantics of a programming language in an informal way
  • design the runtime organization for a programming language

Competences

The students will be able to
  • design a small, simple programming language
  • design and implement a compiler for a small, simple programming language using various design patterns and an object oriented language for implementation

Topics

• compiler architecture
• regular expression
• context free grammars
• lexical analysis
• parsing in general
• recursive descent parsing
• abstract syntax trees
• runtime organization
• code generation

Teaching methods and study activities

The course has 44 classroom lessons. These lessons consist teacher presentations and project guidance. There is a single project for the whole semester. The total workload of the student is expected to be around 140 hours.
 
Referring to the Study Activity Model, the workload is distributed as follows:

CATEGORY 1
Participation of lecturer and students
Initiated by the lecturer
45 hours - 32%

  • Lessons, scheduled
  • Project work in class
  • Project guidance
  • Exam

CATEGORY 2
Participation of students
Initiated by the lecturer
45 hours - 32%

  • Exercises
  • Project and group work
  • Homework

CATEGORY 3
Participation of students
Initiated by students
35 hours - 25 %

  • Self-study
  • Group work
  • Literature search
  • Preparation for exam

CATEGORY 4
Participation of lecturer and students
Initiated by students
15 hours - 12 %

  • Study guidance

Resources

Watt&Brown, Programming Language Processors in Java – Compilers and Interpreters, Prentice Hall, 2000.

Evaluation

Permit criteria for attending examination:
• Hand in of course project

Examination

The exam is an individual 20 minutes oral exam. The student draws a question from the theory and answers it based on the produced course project.
Allowed tools: All
Internal exam.

Grading criteria

Grading is according to the 7-point grading scale. 

Additional information

Responsible

Jan Munch Pedersen (JPE)

Valid from

8/1/2019 12:00:00 AM

Course type

Keywords

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