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 DM507 Algorithms and data structures. DM553 Complexity and computability should be followed no later than simultaneously with the course.
Course introduction
necessary for implementing a modern compiler for a high-level imperative
programming language.
The course builds on competences obtained
in DM546 Compiler Construction in particular, and gives competences for
bachelor thesis work in the area.
With reference to the education's competence profile, the course has focus on
- solid
knowledge of methods from the education's central topics, at a level
where these can be applied in concrete setting in an independent manner. - knowledge of principles for translation between formal languages.
Expected learning outcome
The learning objective of the course is that the student demonstrates the ability to:
- design
scanners and parsers from top-down as well as bottom-up paradigms both
with and without the use of tools 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, including details regarding how
liveness analysis can be used for register allocation. - 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
Oral exam
EKA
Assessment
Grading
Identification
Language
Examination aids
To be announced during the course
ECTS value
Additional information
Indicative number of lessons
Teaching Method
In the intro phase, concepts, theories and models are introduced and put into perspective.
In the training phase, students train their skills through exercises and dig deeper into the subject matter.
In the study phase, students gain academic, personal and social experiences that consolidate and further develop their scientific proficiency. Focus is on immersion, understanding, and development of collaborative skills.