2024/25 Undergraduate Module Catalogue
COMP2932 Compiler Design and Construction
10 creditsClass Size: 170
Module manager: Dr Ammar Al-Salka
Email: m.a.alsalka@leeds.ac.uk
Taught: Semester 2 (Jan to Jun) View Timetable
Year running 2024/25
Pre-requisite qualifications
COMP1212 Computer Processorsor
COMP1721 Object 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 type | Number | Length hours | Student hours |
Lecture | 20 | 1.00 | 20.00 |
Practical | 7 | 2.00 | 14.00 |
Tutorial | 5 | 1.00 | 5.00 |
Private study hours | 61.00 | ||
Total Contact hours | 39.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 type | Notes | % of formal assessment |
Project | Individual Project | 70.00 |
Online Assessment | Online MCQ | 30.00 |
Total percentage (Assessment Coursework) | 100.00 |
This module will be reassessed by individual project only.
Reading list
The reading list is available from the Library websiteLast updated: 25/09/2024 09:18:37
Browse Other Catalogues
- Undergraduate module catalogue
- Taught Postgraduate module catalogue
- Undergraduate programme catalogue
- Taught Postgraduate programme catalogue
Errors, omissions, failed links etc should be notified to the Catalogue Team.PROD