Available in 2024
Course code

COMP3290

Units

10 units

Level

3000 level

Course handbook

Description

Compiler Design will teach students the fundamental concepts and techniques used for building a simple compiler. Focusing on both theory and practice, we will use a sample language to explore the lexical, syntactic and semantic structures of programming languages, and learn to use those structures in implementing a demonstrative compiler. The discussion will also include the examination of intermediate code states, machine code optimisation techniques and support for advanced language features. At the end of the course, students will understand different considerations and phases of compilation, the impact of language attributes upon the compilation process, the effect of hardware feature on the generated code and the practical fundamentals of compiler implementation.


Availability2024 Course Timetables

Callaghan

  • Semester 2 - 2024

Learning outcomes

On successful completion of the course students will be able to:

1. Specify and analyse the lexical, syntactic and semantic structures of advanced language features

2. Separate the lexical, syntactic and semantic analysis into meaningful phases for a compiler to undertake language translation

3. Write a scanner, parser, and semantic analyser without the aid of automatic generators

4. Turn fully processed source code for a novel language into machine code for a novel computer

5. Describe techniques for intermediate code and machine code optimisation

6. Design the structures and support required for compiling advanced language features.


Content

  1. Introduction to the theory of grammars
  2. High level languages and their compilers
  3. Lexical analysis
  4. Syntactic analysis
  5. Semantic analysis
  6. Object code generation
  7. Optimisation
  8. Compiling Advanced Language Features

Assumed knowledge

SENG1120 Data StructuresCOMP2270 Theory of Computation or ELEC2700 Computer Engineering II


Assessment items

Project: Project Part 1 - Programming in Source Language and Scanner

Project: Project Part 2 - Parser

Project: Project Part 3 - Semantic Analyser & Code Generator

Formal Examination: Formal Examination
Compulsory Requirement: Pass requirement 40% - Must obtain 40% in this assessment item to pass the course.


Contact hours

Semester 2 - 2024 - Callaghan

Lecture-1
  • Face to Face On Campus 2 hour(s) per week(s) for 13 week(s) starting in week 1
Workshop-1
  • Face to Face On Campus 2 hour(s) per week(s) for 12 week(s) starting in week 2

Course outline

Course outline not yet available.