Literature
The course uses these books for syntax analysis and program analysis:
- Helmut Seidl, Reinhard Wilhelm, Sebastian Hack. Compiler Design - Syntactic and Semantic Analysis, Springer 2013.
The German version is available online from the university IP address space. - Helmut Seidl, Reinhard Wilhelm, Sebastian Hack. Compiler Design - Analysis and Transformation, Springer 2012.
The German version is available online from the university IP address space.
The library has several copies of the English version of the book.
The following books are among the "standard" compiler textbooks:
- Andrew Appel, Jens Palsberg. Modern Compiler Implementation in Java, Cambridge University Press 2002
- Keith Cooper, Linda Torczon. Engineering a Compiler, 2nd Edition, Morgan Kaufman 2011
- Bob Morgan. Building an Optimizing Compiler, Digital Press, 1998
- Alfred Aho, Monica Lam, Ravi Sethi, and Jeffrey Ullman. Compilers: Principles, Techniques, and Tools, 2nd Edition, Addison Wesley, 2006
The following textbooks are standard references for loop transformations:
- Michael Wolfe. High-Performance Compilers for Parallel Computing
- Randy Allen, Ken Kennedy. Optimizing Compilers for Modern Architectures: A Dependence-based Approach
The following textbook provides a good introduction into the theory of polyhedra and linear programming:
- Dimitris Bertsimas, John N. Tsitsiklis. Introduction to Linear Optimization
The project for this course is written in C++. Deep knowledge and long experience with C++ is not required for the course (but may come as a side effect of completing the project). Nevertheless, the following book can be helpful to get a grasp on the programming language:
- Bjarne Stroustrup. A Tour of C++ (Shorter draft, online), A Tour of C++ (Book)
Recommendations for further reading on C++ can be found at modernescpp.org.