DM546: Compiler Construction

Study Board of Science

Teaching language: Danish or English depending on the teacher, but English if international students are enrolled
EKA: N330034102
Assessment: Second examiner: External
Grading: 7-point grading scale
Offered in: Odense
Offered in: Spring
Level: Bachelor

STADS ID (UVA): N330034101
ECTS value: 5

Date of Approval: 25-10-2018


Duration: 1 semester

Version: Archive

Comment

15012401(former UVA) is identical with this course description. 

Entry requirements

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 introduction

The 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 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

See Blackboard for syllabus lists and additional literature references.

Examination regulations

Exam element a)

Timing

June

Tests

Oral exam

EKA

N330034102

Assessment

Second examiner: External

Grading

7-point grading scale

Identification

Student Identification Card

Language

Normally, the same as teaching language

Examination aids

To be announced during the course

ECTS value

5

Additional information

The examination form for re-examination may be different from the exam form at the regular exam.

Indicative number of lessons

42 hours per semester

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.

Teacher responsible

Name E-mail Department
Kim Skak Larsen kslarsen@imada.sdu.dk

Timetable

Administrative Unit

Institut for Matematik og Datalogi (datalogi)

Team at Educational Law & Registration

NAT

Offered in

Odense

Recommended course of study

Profile Education Semester Offer period