Course syllabus

Compilers
Kompilatorer

EDAN65, 7.5 credits, A (Second Cycle)

Valid for: 2024/25
Faculty: Faculty of Engineering LTH
Decided by: PLED C/D
Date of Decision: 2024-04-16
Effective: 2024-05-08

General Information

Depth of study relative to the degree requirements: Second cycle, in-depth level of the course cannot be classified
Elective for: C4-pvt, D4-is, D4-pv, E4, E4-pv, F4, F4-pv, Pi4
Language of instruction: The course will be given in English on demand

Aim

The fundamental theories and methods used in Compiler Construction are central to the discipline of Computer Science, and widely applicable in both research and software construction.

The course aims to give knowledge of the principal structure of a compiler and about the basic theories and methods used to implement the different parts of the compiler. It should give an understanding for how the theories and the methods can be used in related areas like translation between different source languages, analysis of program properties, interpretation, and analysis of other artificial languages. The course also includes how advanced object-oriented techniques, such as design patterns and aspect-oriented programming can be applied to compiler construction.

Learning outcomes

Knowledge and understanding
For a passing grade the student must

Competences and skills
For a passing grade the student must

Judgement and approach
For a passing grade the student must

Contents

The architecture of a compiler. The definition of programming languages: regular expressions, context-free grammars, abstract grammars, attribute grammars. Methods: scanning, parsing, static-semantic analysis, code generation. Runtime systems: memory allocation, automatic memory management (garbage collection). Tools: Scanner-generators, parser-generators, abstract syntax-tree generators, generatorer för attributevaluering. Design patterns (visitor, interpreter). Application areas for compiler construction.

Examination details

Grading scale: TH - (U, 3, 4, 5) - (Fail, Three, Four, Five)
Assessment: Written examination. To qualify for the written examination, students must have completed their programming assignments. The final grade for the entire course is based on the result of the written examination.

The examiner, in consultation with Disability Support Services, may deviate from the regular form of examination in order to provide a permanently disabled student with a form of examination equivalent to that of a student without a disability.

Modules
Code: 0214. Name: Laboratory Work.
Credits: 3.0. Grading scale: UG - (U, G). Assessment: Completed laboratory exercises. The module includes: Laboratory work
Code: 0114. Name: Written Examination.
Credits: 4.5. Grading scale: TH - (U, 3, 4, 5). Assessment: Written examination. The final grade of the entire course is based on the result of this exam. To qualify for the written exam, students must have completed their laboratory work. The module includes: Written examination

Admission

Admission requirements:

Assumed prior knowledge: Object-oriented Programming in Java. Basic data structures.
The number of participants is limited to: No
Kursen överlappar följande kurser: EDA200 EDA180

Reading list

Contact

Course coordinator: Professor Görel Hedin, Gorel.Hedin@cs.lth.se
Course homepage: https://cs.lth.se/edan65