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

67%: Lecture
33%: Seminar (Class)

Assessment

50%: Coursework (Project)
50%: Examination (Computer-based examination)

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.

We regularly review our modules to incorporate student feedback, staff expertise, as well as the latest research and teaching methodology. We’re planning to run these modules in the academic year 2021/22. However, there may be changes to these modules in response to feedback, staff availability, student demand or updates to our curriculum. We’ll make sure to let you know of any material changes to modules at the earliest opportunity.