Study abroad in Edinburgh

Course finder

<< return to browsing

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:

Visiting student disclaimer