IN4020TU: Compiler Construction Contact person: K.G. Langendoen Instructor(s): K.G. Langendoen Credit points: 5 EC Study material: Book "Modern Compiler Design" by D.Grune et al. (ISBN 0 471 97697 0) + lecture notes Form: Lectures 0/0/2/2 Additional lab hours: 80 Exams: Practical work + written exam Prerequisites: C programming (required) + software engineering (advised) + programming languages (advised) Follow-up courses: Objectives: To be able to understand the workings of, and interplay between, various components making up a compiler. To be able to operate commonly-used compiler construction tools Content: Modern compiler construction is no longer restricted to imperative source languages. This course takes this as a starting point. The course consists of two parts: 1) general structure of compilers, including lexical, syntactical and semantical analysis, code generation techniques and memory management; 2) compilation of imperative and object-oriented languages, including code generation and run-time support for these paradigms. The practical work consists of crafting a peephole optimizer for x86 assembly programs using standard support tools (i.e. flex and bison).