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

Supplementary material be uploaded​

Evaluation

Examination

​Exam prerequisites
None

Type of exam:
Individual oral exam, 20 minutes. 
During the semester, the student must produce a project, which must be submitted in Itslearning prior to the exam.  
For the oral exam, the student draws one of the topics from the curriculum, which will be discussed based on the project.  
The assessment is based solely on the student's oral performance.
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

01-08-2023 00:00

Course type

7. semester<br/>Electives<br/>

Keywords

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