2021/22 Undergraduate Module Catalogue
COMP2932 Compiler Design and Construction
10 creditsClass Size: 170
Module manager: Dr Mhd. A. Alsalka
Taught: Semester 2 (Jan to Jun) View Timetable
Year running 2021/22
|COMP1721||Object Oriented Programming|
This module is not approved as a discovery module
Module summaryModern 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.
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.
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.
|Delivery type||Number||Length hours||Student hours|
|Class tests, exams and assessment||1||1.00||1.00|
|Private study hours||20.00|
|Total Contact hours||80.00|
|Total hours (100hr per 10 credits)||100.00|
Private studyStudents are allocated one hour per lecture to review the lecture and ensure proper understanding.
Opportunities for Formative FeedbackStudents will receive formative feedback through discussion in the tutorials.
Methods of assessment
|Assessment type||Notes||% of formal assessment|
|Online Assessment||Online MCQ||30.00|
|Total percentage (Assessment Coursework)||100.00|
Resits will be assessed by the same methodology as the first attempt
Reading listThe reading list is available from the Library website
Last updated: 15/03/2022 16:12:19
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