Module DescriptorSchool of Computer Science and Statistics
|Module Name||Compiler Design I|
|Module Short Title|
|Contact Hours||Lecture hours: 30, Lab hours:11, Tutorial hours: 3|
|Module Personnel||Dr David Abrahamson|
On successful completion of this module students should be able to:
To teach the principles of compiler design.
After a brief introduction to the subject, the first few classes will be devoted to the study of finite-‐state automata and their use in the design of efficient lexical analysers based on reduced (minimal) machines. This will be followed by an in-‐ depth study of syntax analysis (with an emphasis on top-‐down parsing methods) based primarily on principles of attributed translation. The final few classes will be devoted to the study of some basic code generation techniques along with a selection of associated run-‐time implementation issues.
Tutorial exercises will be incorporated into lecture periods throughout the course, and students will be introduced to the more practical side of compiler construction during the weekly laboratory sessions.
There will be five significant pieces of graded coursework, each of which will involve aspects of compiler design and implementation based on the material covered in lectures.
|Recommended Reading List|
Compiler Design Theory, Philip M Lewis, Daniel J Rosenkrantz and Richard E Stearns, Addison Wesley, 1976
The Compiler Generator Coco/R User Manual, Hanspeter Mossenbock, http://www.ssw.uni-‐linz.ac.at/Coco/Doc/UserManual.pdf
|Module Prerequisites||A basic understanding of machine architectures along with a thorough knowledge of programming in both assembly language and in high level programming languages such as C, C#, C++ or JAVA|
Examination 60%, coursework 40%. To pass the module, students must achieve marks of at least 40% both in the written paper and for the coursework.
In the supplemental examination, assessment is by written paper only which contributes 100% to the overall mark; there is no coursework component.
Examination duration two hours.
|Academic Year of Data|