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

e-Assignments.

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

N/A

Module Pre-requisites

Prerequisite modules: N/A

Other/alternative non-module prerequisites: N/A

Module Co-requisites

N/A

Module Website

Blackboard