CSU33071 – Compiler Design I

Module CodeCSU33071
Module Name Compiler Design I
ECTS Weighting [1]5 ECTS
Semester TaughtSemester 2
Module Coordinator/s  Prof John Waldron

Module Learning Outcomes

On successful completion of this module, students will be able to:

  1. Define the phases of a typical compiler, including the front and back end;  
  2. Identify tokens of a typical high level programming language define regular expressions for tokens and design implement a lexical analyzer using a typical scanner generator;
  3. Explain the role of a parser in a compiler and relate the yield of a parse tree to a grammar derivation design and implement a parser using a typical parser generator;
  4. Apply an algorithm for a top down or a bottom up parser construction construct a parser for a small context free grammar;
  5. Explain the role of a semantic analyzer and type checking create a syntax directed definition and an annotated parse tree describe the purpose of a syntax tree;
  6. Explain the role of different types of runtime environments and memory organization for implementation of typical programming languages;
  7. Describe the purpose of translating to intermediate code in the compilation process;
  8. Design and implement an intermediate code generator based on given code patterns.

Module Content

  • Introduction;                
  • Lexical Analysis;                  
  • Finite Automata;                
  • Parsing;           
  • Top-Down Parsing;                           
  • Bottom-Up Parsing I;                       
  • Bottom-Up Parsing II;                     
  • Semantic Analysis and Type Checking;                     
  • Runtime Organization;         
  • Code Generation;           
  • Operational Semantics;                 
  • Local Optimization;                         
  • Global Optimization;                         
  • Register Allocation;                          
  • Garbage Collection.

Teaching and Learning Methods

Lectures, laboratories, tutorials.

Assessment Details

Examination 3 hour written examination, 100%.

Assessment ComponentBrief Description Learning Outcomes Addressed% of TotalWeek SetWeek Due
e-AssignmentsProgramming Assignments and TestsLO1, LO2, LO3, LO4, LO5100%

Reassessment Details


Contact Hours and Indicative Student Workload

Contact Hours (scheduled hours per student over full module), broken down by: 44 hours
Lecture22 hours
Laboratory11 hours
Tutorial or seminar11 hours
Other0 hours
Independent Study (outside scheduled contact hours), broken down by:72 hours
Preparation for classes and review of material (including preparation for examination, if applicable)36 hours
Completion of assessments (including examination, if applicable)36 hours
Total Hours116 hours

Recommended Reading List


Module Pre-requisites

Prerequisite modules: N/A

Other/alternative non-module prerequisites: N/A

Module Co-requisites


Module Website