Print

Compiler Construction

Code

IT-CMC1

Version

3.0

Offered by

ICT Engineering

ECTS

5

Prerequisites

PRO1, PRO2 (formerly SDJ1 and IT-SDJ2) and ADS1, or similar courses.

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.

Resources

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

Evaluation

Examination

​Exam prerequisites
None

Type of exam:
Individual oral exam, 20 minutes. 
The exam is based upon a subject found by draw, and the answers are based on the project produced in the course and handed in according to deadline. 
Internal assessment.

Tools allowed
All

Re-exam:
Same as the ordinary exam

Grading criteria

​Grading according to the 7-point grading scale. 

Additional information

Responsible

Jan Munch Pedersen (jpe)

Valid from

8/1/2023 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