Programming Language Implementation

Subject COMP90045 (2013)

Note: This is an archived Handbook entry from 2013.

Credit Points: 12.50
Level: 9 (Graduate/Postgraduate)
Dates & Locations:

This subject is not offered in 2013.

Time Commitment: Contact Hours: 36 hours, made up of 24 one-hour lectures (two per week) and 12 one-hour workshops (one per week)
Total Time Commitment:

120 hours





Recommended Background Knowledge:


Non Allowed Subjects:

433-361 Programming Language Implementation

Core Participation Requirements:

For the purposes of considering request for Reasonable Adjustments under the Disability Standards for Education (Cwth 2005), and Student Support and Engagement Policy, academic requirements for this subject are articulated in the Subject Overview, Learning Outcomes, Assessment and Generic Skills sections of this entry.

It is University policy to take all reasonable steps to minimise the impact of disability upon academic study, and reasonable adjustments will be made to enhance a student's participation in the University's programs. Students who feel their disability may impact on meeting the requirements of this subject are encouraged to discuss this matter with a Faculty Student Adviser and Student Equity and Disability Support:


Dr Aaron Harwood


Subject Overview:

Good craftsmen know their tools, and compilers are amongst the most important tools that programmers use. There are many ways in which familiarity with compilers helps programmers.

For example, knowledge of semantic analysis helps programmers understand error messages, and knowledge of code generation techniques helps programmers debug problems at assembly language level. The technologies used in compiler development are also useful when implementing other kinds of programs. The concepts and tools used in the analysis phases of a compiler are useful for any program whose input has a structure that is non-trivial to recognize, while those used in the synthesis phases are useful for any program that generates commands for another system. This subject provides an understanding of the main principles of programming language implementation, as well as first hand experience of the application of those principles.


On completion of this subject students should be able to:

  • Describe important concepts and techniques in programming language implementation
  • Exploit their knowledge of compilers to be more effective programmers
  • Use analysis tools to help implement programs whose input has a structure that is non-trivial to recognize
  • Use synthesis tools to help implement programs that generate commands for other programs
  • A multi-stage project during the semester (30%), expected to take about 45 hours (addressing ILOs 2, 3 and 4)
  • And a 3-hour end-of-semester written examination (70%) (addressing all ILOs)
  • To pass the subject, students must obtain: 15/30 in project work and 35/70 in the written examination
Prescribed Texts:


Breadth Options:

This subject is not available as a breadth subject.

Fees Information: Subject EFTSL, Level, Discipline & Census Date
Generic Skills:

On completion of the subject students should have the:

  • Ability to apply knowledge of science and engineering fundamentals
  • Ability to utilise a systems approach to complex problems and to design and operational performance
  • Ability to manage information and documentation
  • Capacity for creativity and innovation
Related Course(s): Master of Engineering in Distributed Computing
Master of Information Technology
Master of Information Technology
Master of Information Technology
Master of Philosophy - Engineering
Master of Science (Computer Science)
Master of Software Systems Engineering
Ph.D.- Engineering
Related Majors/Minors/Specialisations: B-ENG Software Engineering stream
Computer Science
Master of Engineering (Software)

Download PDF version.