Module and Programme Catalogue

Search site

Find information on

2019/20 Undergraduate Module Catalogue

COMP2932 Compiler Design and Construction

10 creditsClass Size: 130

Module manager: Dr Mhd. A. Alsalka
Email: m.a.alskalka@leeds.ac.uk

Taught: Semester 2 (Jan to Jun) View Timetable

Year running 2019/20

Pre-requisites

COMP1212Computer Processors
COMP1721Object Oriented Programming

This module is not approved as a discovery module

Module summary

Modern computer systems are complex computing machinery which comprise a number of hardware and software components. The successful execution of high level programming languages requires their translation into a form that can be executed by the machine. This translation process involves many steps, from high level language to intermediate virtual machine code to assembly and finally to machine code. This process is essential for modern day programming languages. This module will introduce the concepts of compiler design and implementation and see you implement a compiler solution for a high level programming language. You will see all the steps in the compilation process and learn how they are implemented.

Objectives

- Understand in detail how compilers and translators work
- Learn how to build a translator for a virtual machine language.
- Learn how to build a complete working compiler for a simple object oriented language.

Learning outcomes
On successful completion of this module a student will have demonstrated the ability to:

- Describe the basic steps and processes of translators and compilers.
- Apply appropriate tools to develop and test translators and compilers.
- Evaluate different design decisions made during the implementation of compilers and translons.
- Apply programming skills and knowledge of simple algorithms and data structures to design and implement language translation systems.


Syllabus

The module covers the following 5 topic areas:
- Lexical Analysis: lexemes and tokens, tokenisation, lexers.
- Grammars: context-free grammars, Backus Naur Form (BNF), Extended Backus Naur Form (EBNF), syntax diagrams, left recursive grammars, left recursion removal.
- Syntactic Analysis: recursive descent parsers, parse trees, abstract syntax trees
- Semantic Analysis: symbol tables, type checking
- Code Generation: syntax directed translation, Intermediate code generation, stack frames, handling objects: construction/memory allocation, handling arrays: declaration/ construction, accessing an array entry by index, code generation for common programming constructs (expressions, iteration, conditional execution, function call/return).
- Implementation of runtimes environment: basic input/output, graphics, math, memory management.

Teaching methods

Delivery typeNumberLength hoursStudent hours
Coursework140.0040.00
Class tests, exams and assessment11.001.00
Lecture11.0020.00
Practical72.0014.00
Tutorial51.005.00
Private study hours20.00
Total Contact hours80.00
Total hours (100hr per 10 credits)100.00

Private study

Students are allocated one hour per lecture to review the lecture and ensure proper understanding.

Opportunities for Formative Feedback

Students will receive formative feedback through discussion in the tutorials.

Methods of assessment


Coursework
Assessment typeNotes% of formal assessment
ProjectIndividual Project70.00
Online AssessmentOnline MCQ30.00
Total percentage (Assessment Coursework)100.00

Resits will be assessed by the same methodology as the first attempt

Reading list

The reading list is available from the Library website

Last updated: 05/11/2019 08:50:07

Disclaimer

Browse Other Catalogues

Errors, omissions, failed links etc should be notified to the Catalogue Team.PROD

© Copyright Leeds 2019