DM546: Compiler Construction (5 ECTS)
STADS: 15012401
Level
Bachelor course
Teaching period
The course is offered in the spring semester.
Teacher responsible
Email: kslarsen@imada.sdu.dk
Timetable
Group |
Type |
Day |
Time |
Classroom |
Weeks |
Comment |
Common |
I |
Tuesday |
12-14 |
U143 |
6 |
|
Common |
I |
Tuesday |
12-14 |
U142 |
7-8,10 |
|
Common |
I |
Friday |
12-14 |
U23A |
5-10 |
|
Common |
I |
Friday |
12-13 |
U23A |
11 |
|
H1 |
TE |
Thursday |
14-15 |
U8 |
6 |
|
H1 |
TE |
Thursday |
14-16 |
U8 |
7,9-11 |
|
H1 |
TL |
Thursday |
14-16 |
IMADA ComputerLab |
8 |
|
H1 |
TE |
Friday |
08-10 |
U24 |
6 |
|
H1 |
TE |
Friday |
14-16 |
U23A |
7,9 |
|
H1 |
TL |
Friday |
14-16 |
IMADA ComputerLab |
8 |
|
H1 |
TE |
Friday |
13-15 |
U142 |
11 |
|
H2 |
TE |
Thursday |
08-20 |
IMADA semi |
14 |
|
H2 |
TE |
Friday |
08-20 |
IMADA semi |
14 |
|
Show entire timetable
Show personal time table for this course.
Comment:
Ubegrænset deltagerantal.
Prerequisites:
None
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 introductionThe purpose of the course is to introduce the concepts and techniques 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 outcomeThe 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.
Subject overviewThe 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.
LiteratureMeddeles ved kursets start.
Website
This course uses
e-learn (blackboard).
Prerequisites for participating in the exam
None
Assessment and marking:
- Oral exam. external censorship, 7-mark scale.
Expected working hours
The teaching method is based on three phase model.
Intro phase: 21 hours
Skills training phase: 21 hours, hereof:
- Tutorials: 21 hours
Educational activities
Educational formIn 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.
Language
This course is taught in Danish or English, depending on the lecturer. However, if international students participate, the teaching language will always be English.
Course enrollment
See deadline of enrolment.
Tuition fees for single courses
See fees for single courses.