Compiler Construction

Module Code
CS1019
Module Coordinators
Michael Jäger
Teachers
  • Hellwig Geisse
  • Michael Jäger
  • Thomas Letschert
  • Short Description
    The course presents important concepts of modern programming languages and their implementation using compiler generating tools.
    Learning Objectives

    Understanding important concepts of modern programming languages.

    Understanding the function and structure of a compiler. To understand Formal Language definitions and develop themselves. Ability to construct a compiler using compiler generating tools an know relative to Automata Theory. Implement simple languages. Process complex data structures. Apply design patterns. Understand and generate machine language programs. Organize a complex project. Cooperate in a team.

    Contents
    • Syntax and semantics of programming languages
    • Discussion of selected language concepts
    • Compiler architectur
    • Lexical analysis
    • Syntax analysis
    • Abstract syntax and attributed grammars
    • Semantic analysis
    • Runtime Environment
    • Code Generation
    • Register Allocation
    Duration in Semester
    1
    Instruction Language
    German
    Total Effort
    6 CrP; an estimated 180 hours, of which approximately 90 are spent in class.
    Weekly School Hours
    6
    Method of Instruction

    Lecture 4 SWS, practical course 2 SWS

    Requirements for the awarding of Credit Points

    Examination prerequisite: Project work, Examination: Written or oral exam (The form of the examination will be announced to the students in a timely and appropriate manner)

    Evaluation Standard
    according to examination regulations (§ 9)
    Availability
    Semesterly
    References
    • J. Mitchell: Concepts in Programming Languages Cambridge University Press
    • Ullman, Lam, Sethi, Aho: Compiler: Prinzipien, Techniken und Werkzeuge Pearson Studium – IT
    • W. Appel: Modern Compiler Implementation in Java Cambridge University Press
    • D. Grune, H. E. Bal, J. H. Jacobs, K. G. Langendoen: Modern Compiler Design John Wiley
    Prerequisite for Modules