Unit name | Language Engineering |
---|---|
Unit code | COMS22303 |
Credit points | 10 |
Level of study | I/5 |
Teaching block(s) |
Teaching Block 2 (weeks 13 - 24) |
Unit director | Dr. Steve Gregory |
Open unit status | Not open |
Pre-requisites |
None |
Co-requisites |
None |
School/department | Department of Computer Science |
Faculty | Faculty of Engineering |
This unit covers the major aspects in the process of producing a compiler for a programming language, including the language specification and algorithms for syntactical parsing, semantic analysis and code generation. It gives an introduction to code optimisation and run time systems.
On successful completion of this unit you will be able to:
2 hours of lectures per week, 2 hours per week of supervised lab work, plus further personal study to complete programming exercises.
The unit will be assessed 60% by coursework and 40% by exam. 40% exam: - a 2h written exam on the structure and workings of compiler-related algorithms as well as on representations and transformations of programs, 60% coursework: - the coursework comprises three programming assignments that focus on the implementation of the major compiler components (including syntax parsing, low-level instruction generation and basic optimization) for a simple predefined language applying parser generator software (such as ANTLR) in conjunction with a previously known programming language (such as Java or C)
Andrew Appel “Modern compiler implementation in Java”