Compilers and Computer Architecture (G5035)

15 credits, Level 5

Autumn teaching

Topics on this module include:

  • low­-level versus high-­level languages
  • an introduction to language implementation techniques, compilers and interpreters, grammars and parsing
  • hardware implications, instruction set design and implementation
  • lexical analysis
  • the relevance of finite­state automata and regular grammars
  • implementation techniques
  • problems for particular languages, syntax analysis ­ overview of grammars and parsing techniques
  • top­-down and bottom­-up parsing
  • predictive parsing, shift-­reduce parsing
  • implementing hand­-coded top­-down predictive parsers
  • semantic analysis and code generation­ from trees and from flat intermediate codes
  • symbol tables
  • type checking
  • handling of specific high­-level language constructs
  • runtime storage allocation and scoping
  • instruction set consequences
  • hardware aspects of performance enhancement ­ caches, pipelining and parallelism
  • recent developments in processor design
  • code optimisation
  • introduction to flow analysis.

Teaching and assessment

We’re currently reviewing teaching and assessment of our modules in light of the COVID-19 situation. We’ll publish the latest information as soon as possible.

Contact hours and workload

This module is approximately 150 hours of work. This breaks down into about 42 hours of contact time and about 108 hours of independent study. The University may make minor variations to the contact hours for operational reasons, including timetabling requirements.

This module is running in the academic year 2020/21. We also plan to offer it in future academic years. It may become unavailable due to staff availability, student demand or updates to our curriculum. We’ll make sure to let our applicants know of such changes to modules at the earliest opportunity.

Courses

This module is offered on the following courses: