COMP30330 Compiler Construction

Academic Year 2017/2018

This course will provide a theoretical and practical introduction to how the compilers and interpreters that underpin modern programming languages work. The course will cover basic principles and techniques such as: scanning, parsing, semantic analysis, code generation, and run-time organisation. Further, the student will explore some more advanced topics, such as optimisation techniques and/or garbage collection. In addition to the theoretical component, the course will also include one or more case study. It will also include a significant and important practical
component that will cover the implementation of various techniques and the use of modern tool support, such as
the JavaCC parser generator.

Show/hide contentOpenClose All

Curricular information is subject to change

Learning Outcomes:

Upon successful completion the student will:·
- Be able to read and understand the syntactic descriptions of a language.
- Understand the basic theories and techniques that underpin the design and implementation of compilers and interpreters.
- Have practical experience in implementing some of those techniques through (relatively) simple examples.
- Understand how key language features are implemented, with a view to better understanding programming language design choices and trade-offs, and consequently become a more effective high-level-language programmer.

Student Effort Hours: 
Student Effort Type Hours
Lectures

24

Practical

22

Autonomous Student Learning

74

Total

120

 
Requirements, Exclusions and Recommendations

Not applicable to this module.



 
Description % of Final Grade Timing
Examination: Written Examination

50

2 hour End of Trimester Exam
Assignment: Programming Assignment

20

Week 9
Assignment: Programming Assignment

20

Week 12
Assignment: Programming Assignment

10

Week 5

Compensation

This module is not passable by compensation

Resit Opportunities

In-semester assessment

Remediation

If you fail this module you may repeat, resit or substitute where permissible