Course finder
Semester 2
Compiling Techniques (INFR10065)
Subject
Informatics
College
SCE
Credits
20
Normal Year Taken
3
Delivery Session Year
2023/2024
Pre-requisites
See above.
Course Summary
This course describes the phases of a modern programming language compiler with an emphasis on widely-used techniques. The course project will require students to implement a complete compiler from scratch for a simple programming language, targeting a real machine assembly such as RISC-V. Students will also learn about implementing a compiler pass in a real compiler framework.
Course Description
* Introduction: structure of a compiler * Lexical analysis: tokens, regular expressions, Lex * Parsing: context-free grammars, predictive and LR parsing * Abstract syntax: semantic actions, abstract parse trees * Semantic analysis: symbol tables, bindings, type-checking * Stack frames: representation and abstraction * Intermediate code: representation trees, translation * Basic blocks and traces: canonical trees and conditional branches * Instruction selection: algorithms for selection, RISC and CISC * Liveness analysis: solution of dataflow equations * Register allocation: colouring by simplification, coalescing * Real assembly language: ARM, MIPS, or RISC-V * Advanced Topics may include: automatic parallelisation, popular open-source compilers: GCC, LLVM, MLIR
Assessment Information
Written Exam 0%, Coursework 100%, Practical Exam 0%
Additional Assessment Information
Coursework 100%: Three practical compiler exercises
view the timetable and further details for this course
Disclaimer
All course information obtained from this visiting student course finder should be regarded as provisional. We cannot guarantee that places will be available for any particular course. For more information, please see the visiting student disclaimer: