School of Computer Science

Module 06-02578 (2014)

Compilers & Languages

Level 3/H

Ian Batten Semester 1 10 credits
Co-ordinator: Ian Batten
Reviewer: Hayo Thielecke

The Module Description is a strict subset of this Syllabus Page.

Outline

The module describes the structure of a typical compiler. The phases of compilation, from the front end to analysis and code generation, as well as the main techniques used in each phase will be covered.


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:

  1. Explain and apply the formalisms used in compiler construction, such as context-free grammars
  2. Perform the main analyses and transformations used in compilation

Restrictions

None


Taught with

  • 06-15255 - Compilers & Languages (Extended)

Cannot be taken with

  • 06-15255 - Compilers & Languages (Extended)

Teaching methods

2 hrs/week

Contact Hours:

23


Assessment

Sessional: 1.5 hr examination (80%), continuous assessment (20%).

Supplementary (where allowed): 1.5 hr examination (100%).


Detailed Syllabus

  1. Introduction: phases of compilation
  2. Parsing

* Context-free grammars * Top-down parsing * Bottom-up parsing 3. Compiler construction tools 4. Data flow analysis 5. Code generation 6. Call stack and stack frames * Contents and layout of stack frames * Static link and pointers into the stack 7. Compilation of objects and classes 8. Memory management * Memory management with explicit deallocation * Garbage collection * Copying garbage collection


Programmes containing this module