Course syllabus

Kompilatorteknik
Compiler Construction

EDA180, 7,5 credits, G2 (First Cycle)

Valid for: 2013/14
Decided by: Education Board A
Date of Decision: 2013-04-15

General Information

Elective for: D4, D4-is, D4-pv, E4, E4-pv, F4, F4-pv, Pi4, Pi4-pv
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

Contents

The architecture of a compiler. The definition of programming languages: regular expressions, context-free grammars, abstract grammars, static semantics, dynamic semantics. Methods: scanning, parsing, static-semantic analysis, translation to intermediate code and to native code. Runtime systems: memory allocation, automatic memory management (garbage collection). Tools: Scanner-generators, parser-generators, abstract syntax-tree generators. Object-oriented techniques: design patterns (Interpreter, Visitor), static aspect-oriented programming. Application areas for compiler construction.

Examination details

Grading scale: TH
Assessment: Written examination. Project report. To qualify for the written examination, students must have completed their programming assignments. The project must be completed within three months after the final lecture. The final grade for the entire course is based on the result of the written examination.

Parts
Code: 0105. Name: Laboratory Work.
Credits: 1,5. Grading scale: UG. Assessment: Completed laboratory exercises. Contents: Laboratory work during the first study period of the course.
Code: 0205. Name: Project Work.
Credits: 1,5. Grading scale: UG. Assessment: Completed project work and a project report. The project must be finished within three months after the last lecture. Contents: A project work during the second study period of the course.
Code: 0305. Name: Written Examination.
Credits: 4,5. Grading scale: TH. 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. Contents: A written examination after the first study period of the course.

Admission

Admission requirements:

Required prior knowledge: Object-oriented Programming in Java.
The number of participants is limited to: No
The course overlaps following course/s: EDA200

Reading list

Contact and other information

Course coordinator: Professor Görel Hedin, Gorel.Hedin@cs.lth.se
Course homepage: http://cs.lth.se/eda180
Further information: The course extends over two study periods.