Module 02578 (2006)

Syllabus page 2006/2007

06-02578
Compilers & Languages

Level 3/H

Hayo Thielecke
10 credits in Semester 1

Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus


The Module Description is a strict subset of this Syllabus Page. (The University module description has not yet been checked against the School's.)

Relevant Links

Module home page


Outline

The module describes the structure of a typical compiler. The phases of compilation, from lexical analysis to code generation and simple optimisation, and the main techniques used in each phase will be covered. Some modern developments will be discussed.


Aims

The aims of this module are to:

  • give an overview of issues and techniques in compilation of high-level programming languages

Learning Outcomes

On successful completion of this module, the student should be able to: Assessed by:
1 explain and apply the formalisms used in compiler construction, such as context-free grammars Examination, continuous assessment
2 program simple language recognizers Examination, continuous assessment
3 perform the main analyses and transformations used in compilation Examination, continuous assessment

Restrictions, Prerequisites and Corequisites

Restrictions:

May not be taken in conjunction with 06-15255 (Compilers & Languages (Extended)).

Prerequisites:

06-05934 (Models of Computation)

Co-requisites:

None


Teaching

Teaching Methods:

2 hrs/week

Contact Hours:

24


Assessment

  • Sessional: 1.5 hr examination (80%), continuous assessment (20%).
  • Supplementary (where allowed): By examination only with the continuous assessment carried forward.

Recommended Books

TitleAuthor(s)Publisher, Date
Modern Compiler DesignDick Grune, Henri E. Bal, Ceriel J.H. Jacobs and Koen Langendoen2000

Detailed Syllabus

  1. Introduction: phases of compilation
  2. Lexical analysis and regular expressions
  3. Parsing:
    • Context-free grammars
    • Top-down parsing
    • Bottom-up parsing
  4. Compiler construction tools
  5. Attribute Grammars
  6. Data flow analysis
  7. Code generation
  8. Memory management
    • Memory management with explicit deallocation
    • Garbage collection
  9. Procedure call and stack frames

Last updated: 25 May 2006

Source file: /internal/modules/COMSCI/2006/xml/02578.xml

Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus