COL728 : Compiler Design : References

Textbook

No textbook is required for this class. However, you may find a textbook useful as a reference or to learn more details of some of the ideas discussed in the course. You will find some good textbooks in the list of reference books.

Online resources

  1. This course will be loosely based on the online course videos by Alex Aiken.
  2. The labs (programming assignments) will involve the use of a lexical analyser generator (like GNU Flex, wikipedia page) and a parser generator (like GNU Bison, wikipedia page).
  3. You might find it interesting to look through the code of the Tiny C Compiler, which bundles the compiler, linker and assembler into one small and fast executable.
  4. For your labs, you will be required to generate LLVM IR code for C programs. You will also be required to optimize LLVM IR code. A nice LLVM tutorial is available at http://releases-origin.llvm.org/2.6/docs/tutorial/.

Reference books

  1. Compilers: Principles, Techniques, and Tools (Second Edition)
    Alfred Aho, Monica Lam, Ravi Sethi, and Jeffrey Ullman.
    Addison-Wesley

  2. Modern Compiler Implementation in Java (Second Edition)
    Andrew Appel and Jens Palsberg.
    Cambridge University Press

  3. Engineering a Compiler
    Keith Cooper and Linda Torczon.
    Morgan Kaufman