CSC9YA (Language Implementation) Syllabus
understanding of system design principles)
Students will learn:
the principles behind compilers, translators and interpreters
how to parse typical computer languages
how to generate object code for stack machines and register machines
how to handle static and dynamic data allocation
how to write a compiler using a typical compiler-compiler (Antlr)
to demonstrate the ability to apply theory and techniques to unseen
problems without references to notes, to work independently, and to work
under a time constraint
transferable skills in:
understanding of programming language design and support
construction of translators and compilers
Contents (15 lectures - half module)
Parsing: translator concepts, parsing techniques
Code Generation: code skeletons, stack and register machines, register
usage, basic type checking
Code Optimisation: sub-optimisation, true optimisation
Storage Management: run-time storage allocation, heap storage
In order to pass this module you must submit all items of coursework and
attend the examination.
In this module the prescribed classes are the tutorials and practicals.
Failure to attend at least two-thirds of prescribed classes will result in
the module grade being capped at a maximum of 3C for that module, unless
good cause for missing those classes can be shown. Responsibility for
showing good cause lies with the student.
Non-submission of any single item of assessed coursework will result in the
award of No Grade for the module as a whole. If you cannot meet the
assignment hand-in deadline and have good cause, please see the coordinator
to explain your situation and ask for an extension. Coursework will be
accepted up to five days after the hand-in deadline (or expiry of any agreed
extension) but the grade will be lowered by one grade point per day or part
thereof. After five days the work will be deemed a non-submission and will
receive No Grade.
A student who is unable to attend the main examination must apply to the
Student Programmes Office for a deferred examination. If this is not
granted, the examiners may allow a repeat examination.
Only students who obtain an overall 4 grade following the main examination
are eligible for a repeat examination. The grade awarded following a repeat
examination is capped at 3C.
- assignment (code generation, 40%)
- examination (60%)
Compilers: Principles, Techniques, and Tools, A. V. Aho, M. S. Lam, R. Sethi and J. D. Ullman, Addison-Wesley, second edition,
2007, ISBN 978-0-32148-681-3 (recommended/background)
Compilers, A. V. Aho, R. Sethi and J. D. Ullman, Addison-Wesley,
1986, first edition, ISBN 0-201-10194-7 (background)
Up one level to CSC9YA (Language Implementation)