After successful completion of the course, students are able to explain the algorithms which have been presented during the lecture in a way that everybody can understand them and develop a complete compiler using the presented algorithms.
Lecture: foundations of compilers and interpreters, structure of compilers, lexical analysis, syntax analysis (top-down, bootom-up), syntax directed compilation (attribute grammars), semantic analysis, intermediate representations, machine code, run time system, optimizations, compilation of object oriented languages, mini compiler (Java, Prolog).
Practical work: 2 assembly language assignments, lexical analysis with flex or lex, parser with bison or yacc, attribute grammar with ox, code generation with iburg or burg, complete compiler.
Lecture Notes available in the Secretariat from Mid-March
ECTS breakdown: 6 ECTS = 150 Hours
Lectures + Introduction 20h
Reading lecture notes, Preparation for the exam 20h
Exam 0.5h
Implementing the assignment 107h
Preparation for the assignment review 2h
Assignment review 0.5h