Third-Cycle Courses

Faculty of Engineering | Lund University

Details for Course EDAN65F Compilers

Printable view

  • EDAN65F
  • Temporary
Course Name
  • Compilers
Course Extent
  • 7.5
Type of Instruction
  • Course given jointly for second and third cycle
Administrative Information
  • 7121 (Computer Science (LTH))
  •  -03-22
  • Professor Thomas Johansson

Current Established Course Syllabus

  • 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.
  • 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.
Knowledge and Understanding
  • For a passing grade the doctoral student must
  • understand formalisms for syntactic descriptions: regular expressions, context-free grammars, and abstract grammars.
    understand formalisms for program analysis: attribute grammars
    be able to describe compiler phases, runtime systems, and different kinds of internal representations.
Competences and Skills
  • For a passing grade the doctoral student must
  • be able to implement parsers for programming languages with parser-generators
    be able to implement semantic analysis and code generation using attribute grammars and imperative programming
    be able to implement runtime systems by interpretation
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.
Types of Instruction
  • Lectures
  • Laboratory exercises
Examination Formats
  • Written exam
  • Failed, pass
Admission Requirements
  • EDAA01 Programming - Second Course
Assumed Prior Knowledge
Selection Criteria
  • Appel, A.: Modern Compiler Implementation in Java. Cambridge University Press, 2002. ISBN 052182060X.
Further Information
Course code
  • EDAN65F
Administrative Information
  •  -03-22
  • Professor Thomas Johansson

All Established Course Syllabi

1 course syllabus.

Valid from First hand in Second hand in Established
Autumn 2017 2017‑03‑22 09:57:42 2017‑03‑22 10:01:35 2017‑03‑22

Current or Upcoming Published Course Occasion

No matching course occasion was found.

All Published Course Occasions

No matching course occasions were found.

0 course occasions.

Printable view