Skip to main content

Trinity College Dublin, The University of Dublin

Menu Search

Module Descriptor School of Computer Science and Statistics

Module CodeCS4071
Module NameCompiler Design II
Module Short Title
Semester Taught
Contact Hours

Four hours of lectures per week interspersed with some problem solving tutorials. In addition, students will complete a coursework exercise related to some aspect of code generation or compiler optimization.

Module PersonnelDr David Abrahamson
Learning Outcomes

On successful completion of this module students should be able to design routines to handle a range of compiler specific optimizations in areas such as:

  • Global Register Allocation
  • Code Generation and Scheduling
  • Common Sub---Expression Elimination
  • Suppression of Partial Redundancy
Learning Aims

To teach the principles of compiler optimization

Module Content

Subject to time constraints, the main topics covered will include :

  • Bottom---up Parsing
  • Symbol---Table Structure
  • Run---Time Implementation
  • Intermediate Representations
  • Control and Data---Flow Analysis
  • Static Single---Assignment Form
  • Code Generation Techniques
  • Dynamic Programming
  • Register Allocation
  • Code Scheduling
Recommended Reading List

Advanced  Compiler  Design and Implementation,   Steven  M uchnick, Morgan  Kaufmann,  1997, originally  available  for free download  from


Crafting  a Compiler,  Charles  Fischer,  Ron Cytron and Richard  LeBlanc, Pearson,  2010

Compliers  – Principles,  Techniques,  & Tools, Alfred Aho, Monica  Lam, Ravi Sethi and Jeffrey Ullman,  Pearson/Addison  Wesley,  2007

Engineering  a Compiler,  Keith Cooper  and Linda Torczon, Morgan  Kaufmann,  2004

Modern  Compiler  Implementation   in Java, Andrew  Appel, Cambridge  University  Press, 2002

Module Prerequisites

CS3071 or equivalent  

Assessment Details

Examination  80%, coursework  20% Examination  duration three hours

Module Website
Academic Year of Data