DM546: Compiler Construction
Comment
Entry requirements
Academic preconditions
The student is expected to have knowledge of the material in DM548 Computer architecture and system programming and DM578 Algorithms and data structures.
Course introduction
necessary for implementing a modern compiler for a high-level imperative
programming language.
With reference to the education's competence profile, the course has focus on
- knowledge of principles for translation between formal languages,
- ability to handle complex and development-oriented situations in study and work contexts,
- ability to identify one’s own learning needs and structure one’s own learning in different learning environments.
Expected learning outcome
The learning objective of the course is that the student demonstrates the ability to:
- design and implement scanners and parsers and build abstract syntax trees in
connection with this. - design symbol tables and account for how these are used for type checking and other semantic checks.
- account for how executable code can be generated from an abstract syntax tree.
- explain
miscellaneous forms of optimization. - account for the functionality of the discussed algorithms for garbage collection.
Content
The following main topics are contained in the course:
Scanners, parsers, compiler generation tools, abstract syntax trees, symbol tables, type checking, code generation, optimization, liveness analysis, register allocation, garbage collection.
Literature
Examination regulations
Exam element a)
Timing
Tests
Portfolio
EKA
Assessment
Grading
Identification
Language
Examination aids
All common aids allowed
ECTS value
Additional information
Indicative number of lessons
Teaching Method
Teaching activities consist of:
- Intro phase (lectures) - Number of hours: 21
- Training phase: Number of hours: 21
The intro phase consists of a combination of classical lectures, where the terms and methods of the course are presented while the training phase consists of more applied sessions, where students are taught how the learned knowledge can be applied in concrete scenarios.
The study phase will consist of reading written material suggested by the lecturer and implementing the assignments.