A compiler is a computer program (or set of programs) that translates text written in a computer language (the source language) into another computer language (the target language).

Because of my interest in compilers and compiling techniques this page exists. It is a modest approach to bring together as much information about that topic as possible. The content of this page ranges from lectures about compiling techniques over online books and links to other interesting readings and materials. This page servers mainly MY OWN PERSONAL interest in compilers and is not intended to be useful for the general public (although if you should find this information useful I will certainly be pleased).

Overview

  1. Material from Lectures on Compilers
    1. Slides
      1. Slides from Keith Cooper @rice
      2. Slides from Bjoern Franke @uoe
      3. Slides from Martin Hoffman @uoe
      4. Slides from Rob Pooley @uoe
    2. Coursework
    3. Exams
  2. Material from Lectures on Type Systems
    1. Slides
      1. Slides from Steven Weirich @upenn
      2. Slides from Sebastian Maneth @lausanne
      3. Lambda Calculus from C.H-.L. Ong @oxford
  3. Online Books
    1. Parsing Techniques - A Technical Guide (ps)
    2. The GENTLE Compiler Construction System(pdf)
  4. Books
    1. Engineering a Compiler, by Cooper and Torczon
    2. Advanced Compiler Design and Implementation, Steven Muchnick
    3. Compilers, by Aho, Sethi, Ullman
    4. Modern Compiler Implementation in Java, by Appel
    5. Types and Programming Languages , by Benjamin Pierce
  5. Interesting Languages (as in compiler target or intermediate languages)
    1. C-- (C minus minus - a compiler target language)
    2. LLVM Bytecode Format (Low Level Virtual Machine)
  6. Architectures
    1. Intel IA32
    2. MIPS
    3. A Survey of RISC Architectures for Desktop, Server, and Embedded Computers (from CA by Hennesy and Patterson)
    4. An Alternative to RISC: The Intel 80x86 (from CA by Hennesy and Patterson)
    5. Another Alternative to RISC: The VAX Architecture (from CA by Hennesy and Patterson)
    6. The IBM 360/370 Architecture for Mainframe Computers (from CA by Hennesy and Patterson)
    7. Vector Processors (from CA by Hennesy and Patterson)
    8. Computer Arithmetic (from CA by Hennesy and Patterson)
    9. Implementing Coherence Protocols (from CA by Hennesy and Patterson)
    10. NIAGARA: Multithreaded Sparc Processor
  7. ...(to be continued)...

Further Links