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: Internal
Grading: 7-point grading scale
Offered in: Odense
Offered in: Autumn
Level: Bachelor

STADS ID (UVA): N330034101
ECTS value: 5

Date of Approval: 10-04-2024


Duration: 1 semester

Version: Approved - active

Comment

Offered autumn 2024

Entry requirements

None

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

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.

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

See itslearning for syllabus lists and additional literature references.

Examination regulations

Exam element a)

Timing

January

Tests

Portfolio

EKA

N330034102

Assessment

Second examiner: Internal

Grading

7-point grading scale

Identification

Full name and SDU username

Language

Normally, the same as teaching language

Examination aids

All common aids allowed

ECTS value

5

Additional information

The exam consists of small assignments and a group project (programming and written report)

Indicative number of lessons

42 hours per semester

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.

Teacher responsible

Name E-mail Department
Sandra Greiner greiner@imada.sdu.dk Institut for Matematik og Datalogi

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

Transition rules

Transitional arrangements describe how a course replaces another course when changes are made to the course of study. 
If a transitional arrangement has been made for a course, it will be stated in the list. 
See transitional arrangements for all courses at the Faculty of Science.