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

52%: Lecture
48%: Seminar (Class)

Assessment

50%: Coursework (Project)
50%: Examination (Unseen examination)

Contact hours and workload

This module is 150 hours of work. This breaks down into 42 hours of contact time and 108 hours of independent study.

This module is running in the academic year 2019/20. 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.