Introduction to Compiler Construction, Summer 2012
Prof. Kirsch, Department of Computer Sciences, University of Salzburg
Time, Location: Tue 10-12 s.t. and Th 3-4 s.t. in T03, Techno-Z. First lecture is on Tue, March 6, 2012. Check schedule (iCal) for updates.
Learn hands-on how to construct a self-compiling compiler in a
non-trivial subset of C along with a DLX-based emulator as target and
a linker for separate compilation, using nothing but a C compiler for
bootstrapping. The course provides an undergraduate-level
introduction to compiler construction, covering fundamental topics of
compiler construction: scanning, parsing, type checking, error
handling, register allocation, code generation, bootstrapping,
separate compilation, and basic code optimization; considering
fundamental programming language constructs and concepts: assignment,
arithmetic and boolean expressions, arrays, records, pointers,
conditionals, loops, modules, and procedures with parameters, return
values, and local variables. At the end of the course you will be
able to appreciate principled engineering of compilers but also know
how to actually construct one from scratch and, as a consequence,
through insights in programming language semantics that only a
compiler can offer, become a fundamentally better programmer and
Lecture videos as well as lecture notes and code examples are available in the iTunes Store and on iTunes U as well as on Vimeo in HD.
Goal of the course:
Learn, through compiler construction, how software-related concepts of programming languages such as data types and procedures work and translate into hardware-related concepts such as machine registers and code.
Grading: 50% project, 50% exam.
Prerequisites: programming experience, basic knowledge of programming language concepts.
Technical contact: Michael . Lippautz @ cs . uni-salzburg . at