T-106.5450 Wiki for Advanced course on compilers (spring 2015)
This course is meant primarily for Computer Science and Engineering students with Software Technology (Ohjelmistotekniikka) as their major. During the course, you will study the operation of modern compiler backends, especially on parallelizing backends.
The course is based on lecture sessions and written material (textbooks, resources available on the net)
- Aho, Lam, Sethi, Ullman: Compilers. Principles, Techiniques, & Tools, Second edition.
- this is the primary textbook of the course
- basics and some methods for parallelization
- referred to as the "ALSU book" in this wiki
- Allen, Kennedy. Optimizing Compilers for Modern Architectures.
- the supporting textbook of the course
- focused on parallelization
- referred to as the "KA book" in this wiki
How to read the books. At least, you should have the ALSU book available and focus on reading chapters 9-12 (second edition). The KA book is not so central for the course, you can cope without having a copy (but is is a good book to own).
Includes overview, schedule, and slides
The LLVM compiler and its documentation is essential for the course as the assignments are mostly based on it. In addition to the text book and assignments:
Something to learn with.
An overview on how you will be graded