The University of Newcastle, Australia

Course handbook

Description

Compiler Design will teach students about fundamental concepts and techniques used for developing a simple language compiler. Focusing on both the theoretical and practical, we will use a new language to explore the lexical, syntactic and semantic structures of languages in general, and how to use these structures to implement a demonstrative compiler. This will 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 features upon the compilation process, and the practical fundamentals of how a compiler is implemented.


Availability2019 Course Timetables

Callaghan

  • Semester 2 - 2020

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 Structures

COMP2270 Theory of Computation or ELEC2700 Computer Engineering II


Assessment items

Project: Project Part 1 - Scanner

Project: Project Part 2 - Source Language

Project: Project Part 3 - Parser

Project: Project Parts 4 & 5 - Semantic Anal. & Code Generator

Formal Examination: Formal Examination *

* This assessment has a compulsory requirement.


Compulsory Requirements

In order to pass this course, each student must complete ALL of the following compulsory requirements:

Course Assessment Requirements:

  • Formal Examination: Minimum Grade / Mark Requirement - Students must obtain a specified minimum grade / mark in this assessment item to pass the course. - Students whose overall mark in the course is 50% or more, but who score less than 40% in the compulsory item and thus fail to demonstrate the required proficiency, will be awarded a Criterion Fail grade, which will show as FF on their formal transcript. However, students in this position who have scored at least 25% in the compulsory item will be allowed to undertake a supplementary 'capped' assessment in which they can score at most 50% of the possible mark for that item.

Contact hours

Callaghan

Lecture

Face to Face On Campus 2 hour(s) per Week for Full Term

Tutorial

Face to Face On Campus 2 hour(s) per Week for Full Term starting in week 2