Course Syllabus for

Compilers
Kompilatorer

EDAN65F, 7.5 credits

Valid from: Autumn 2017
Decided by: Professor Thomas Johansson
Date of establishment: 2017-03-22

General Information

Division: Computer Science (LTH)
Course type: Course given jointly for second and third cycle
The course is also given at second-cycle level with course code: EDAN65
Teaching language: English

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.

Goals

Knowledge and Understanding

For a passing grade the doctoral student must

Competences and Skills

For a passing grade the doctoral student must

Judgement and Approach

For a passing grade the doctoral student must demonstrate ability to critically evaluate different compilation methods and their applications to different areas.

Course 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.

Course Literature

Appel, A.: Modern Compiler Implementation in Java. Cambridge University Press, 2002. ISBN 052182060X.

Instruction Details

Types of instruction: Lectures, laboratory exercises

Examination Details

Examination format: Written exam
Grading scale: Failed, pass
Examiner:

Admission Details

Admission requirements: EDAA01 Programming - Second Course

Course Occasion Information

Contact and Other Information

Course coordinators:
Web page: http://cs.lth.se/edan65


Complete view