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.
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.
Content
The following main topics are contained in the course:
Scanners, parsers, compiler generation tools, abstract syntax trees, symbol tables, semantic analysis, code generation, optimization.
Literature
Examination regulations
Exam element a)
Timing
Tests
Portfolio
EKA
Assessment
Grading
Identification
Language
Duration
Examination aids
Assignments - All common aids allowed
Mundtlig eksamen - No aids allowed
ECTS value
Additional information
- A number of written assignments handed in during the semester.
- An oral exam.
Indicative number of lessons
Teaching Method
Planned lessons:
Total number of planned lessons: 42
Hereof:
Common lessons in classroom/auditorium: 42
The hours consists of a combination of classical lectures, where the terms and methods of the course are presented, and more applied sessions, where students are taught how the learned knowledge can be applied in concrete scenarios.
Other planned teaching activities:
Consists of reading written material suggested by the lecturer and implementing the assignments.