Compiler Construction

Vrije Universiteit Amsterdam

Course Description

  • Course Name

    Compiler Construction

  • Host University

    Vrije Universiteit Amsterdam

  • Location

    Amsterdam, The Netherlands

  • Area of Study

    Computer Programming, Information Technologies

  • Language Level

    Taught In English

  • Course Level Recommendations

    Upper

    ISA offers course level recommendations in an effort to facilitate the determination of course levels by credential evaluators.We advice each institution to have their own credentials evaluator make the final decision regrading course levels.

    Hours & Credits

  • ECTS Credits

    6
  • Recommended U.S. Semester Credits
    3
  • Recommended U.S. Quarter Units
    4
  • Overview

    COURSE OBJECTIVE
    Get hands-on experience with the internals of modern compilers.

    COURSE CONTENT
    This course gives an introduction to the internals of modern compilers and allows students to gather practical, hands-on experience on building compiler components with weekly assignments. The course will focus on the design of all the major components of a modern compiler pipeline: frontend (focus on lexing and parsing), intermediate representation or IR (focus on optimizations and transformations), and backend (focus on code generation). The course emphasises what compiler builders encounter in practice rather than the details of all manners of parsing algorithms. Specifically, the assignments will focus on building a simple compiler for a C-like language using the LLVM compiler framework. All the assignments build on top of the given framework and require localized extensions in Python and/or C++ to implement language features, optimizations, transformations, and code generation features.

    Note: this is a very intensive, hands-on course. It is important to be able to start immediately. For this, you need access to a computer with the VirtualBox x86 virtualization environment installed.

    TEACHING METHODS
    Lectures, Practical

    TYPE OF ASSESSMENT
    Assignments

    RECOMMENDED BACKGROUND KNOWLEDGE
    Basic knowledge of Python and C/C++ is strongly recommended.

Course Disclaimer

Courses and course hours of instruction are subject to change.

Some courses may require additional fees.