Vrije Universiteit Amsterdam
Amsterdam, The Netherlands
Area of Study
Computer Programming, Information Technologies
Taught In English
Course Level Recommendations
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.
Recommended U.S. Semester Credits3
Recommended U.S. Quarter Units4
Hours & Credits
Get hands-on experience with the internals of modern compilers.
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.
TYPE OF ASSESSMENT
RECOMMENDED BACKGROUND KNOWLEDGE
Basic knowledge of Python and C/C++ is strongly recommended.
Courses and course hours of instruction are subject to change.
Some courses may require additional fees.