2026/27 Undergraduate Module Catalogue

COMP3950 Compiler design & Optimisation

20 Credits Class Size: 150

Module manager: Dr Ammar Alsalka
Email: M.A.Alsalka@leeds.ac.uk

Taught: Semester 1 (Sep to Jan) View Timetable

Year running 2026/27

Module replaces

COMP2932

This module is not approved as a discovery module

Module summary

This module explores the art and science of building compilers and enhancing program efficiency. This module provides a comprehensive understanding of compiler design principles and explores optimisation techniques. Students embark on a hands-on journey, constructing a compiler from the ground up. Through practical projects and theoretical insights, participants master the intricacies of translating high-level programming languages into executable code, while also implementing strategies to optimise the performance of the generated programs. This module equips learners with essential skills for software development and system optimisation.

Objectives

To provide students with a comprehensive understanding of compiler design principles, enabling them to construct functional compilers and implement optimisation techniques that enhance program efficiency, while developing practical skills in translating high-level programming languages into executable code.

Learning outcomes

On successful completion of the module students will be able to:

apply a comprehensive knowledge of mathematics, statistics, natural science and engineering principles to the solution of complex problems. (C1)

select and critically evaluate technical literature and other sources of information to solve complex problems. (C4)

design solutions for complex problems that evidence some originality and meet a combination of societal, user, business and customer need as appropriate. (C5)

apply an integrated or systems approach to the solution of complex problems. (C6)

select and use practical laboratory and workshop skills to investigate complex problems and be able to comment on their limitations. (C12, C13)

apply knowledge of engineering management principles, and project/change management (C15)

communicate effectively on complex engineering matters with technical and non-technical audiences, evaluating the effectiveness of the methods used. (C17)

reflect on their level of mastery of subject knowledge and skills and plan for personal development. (C18)

Skills outcomes

On successful completion of the module students will be able to:

apply structured problem-solving strategies to analyse and address complex technical challenges.

think algorithmically to optimise processes and improve efficiency in varied contexts.

design and evaluate layered systems or processes, balancing multiple constraints and requirements.

adapt knowledge and methodologies to unfamiliar problems, technologies, or environments.

manage iterative projects effectively, integrating planning, implementation, and reflective evaluation.

Syllabus

Introduction to Compiler Design

Overview of compiler components and phases

Understanding lexical analysis, syntax analysis, and semantic analysis



Parsing Techniques

In-depth study of parsing algorithms

Construction and analysis of syntax trees

Intermediate Code Generation

Design and implementation of intermediate representations

Translation of source code into intermediate code

Code Optimisation Techniques

Exploration of various optimisation strategies

Static and dynamic program analysis for performance enhancement

Code Generation

Generation of target code from intermediate representations

Understanding instruction selection and register allocation

Semantic Analysis and Symbol Table Management

Handling semantic errors in the source code

Efficient management of symbol tables during compilation

Compiler Project: Building from Scratch

Hands-on development of a compiler

Integration of learned concepts into a functional compiler implementation

Advanced Optimisation Strategies

Further exploration of advanced optimisation techniques

Profile-guided optimisation and feedback-directed compilation

Teaching Methods

Delivery type Number Length hours Student hours
Lectures 22 2 44
Practicals 11 2 22
Private study hours 134
Total Contact hours 66
Total hours (100hr per 10 credits) 200

Reading List

Check the module area in Minerva for your reading list

Last updated: 30/04/2026

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