Compilers and Computer Architecture (G5035)

15 credits, Level 5

Autumn teaching

This module will discuss the key ideas in implementation of compilers for modern programming languages like Java, including

  • lexical analysis
  • parsing
  • semantic analysis based on types and type checking
  • syntax-directed translation using abstract syntax trees
  • intermediate languages
  • code generation.

We will also discuss run-time issues such as garbage collection.

We will look at key ideas in processor architecture such as:

  • stack machines and register machines
  • RISC vs CISC processors
  • processor caching.

Teaching

67%: Lecture
33%: Seminar (Class)

Assessment

30%: Coursework (Project)
70%: 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 2024/25. 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.