Computer Science 3170: "Compilers"

New Things


This page describes the subject CSC3170 available within the Faculty of Computing and Information Technology, at Monash University.

Summary of this Document

Course Objectives

To introduce students to the mechanisms employed in building compiler systems. The emphasis is upon the more practical aspects of this, to which end skills in the use of a modern compiler generating tool
Eli are developed. However, a significant amount of theory is also discussed, where it underlies the use of such tools.

Course Logistics

Lectures are held on Wednesdays at 9am in theatre S10, and Thursdays at 2:15pm in theatre S10. The course lecturer is Assoc. Prof. A. J. Hurst, room 110, building 26 (Computer Science Building), to whom all queries relating to the course should be addressed. Students are welcome to see me in my room at any time according to a simple algorithm posted on my door!

All other departmental enquiries should be directed to the Computer Science General Office, Room 106, 1st Floor, Computer Science Building (building 26). Students will be issued with Computer Centre accounts upon which the assignment work is to be done. Account slips will be handed out when available (see Notice Board) in the General Office, during office hours (9-5, Mon-Fri). Students must produce their ID before accounts will be issued.

Lecture notes (in the form of the text of overhead transparencies) will be made available, along with some supplementary handouts. The lecture notes will be distributed at the first lecture, other notes supplied at lectures as required. Surplus copies of handouts will be placed in a folder labelled CSC3170, in the foyer near the Computer Science General Office. Sufficient copies for all students enrolled in the course are made, and when these are gone, no further copies will be made. It is the student's responsibility to ensure that he or she has copies of all handouts, including assignments. Note that all lecture notes, assignments, and other handouts are also available on the WWW, at URL:


The csc3170 lecture notes are all available on line, in the directory Lecture Note Directory. Both the source text (in TeX form) and Postscript versions are available.

Synopsis and Timetable

L1  Mar  6 Introduction
L2  Mar  7 The Literate Programming Landscape
L3  Mar 13 The Eli Landscape
L4  Mar 14 Formal Language Theory
L5  Mar 20 Syntax Analysis in Eli
L6  Mar 21 Parsing Theory
L7  Mar 27 An Eli Example
L8  Mar 28 Symbol Tables
L9  Apr  3 Exercise 1 Solution
L10 Apr  4 Property Tables
L11 Apr 17 Attribute Grammars and Tree Computations
L12 Apr 18 LIDO Definition
L13 Apr 24 Syntax Directed Translations
L14 May  1 The Eli Libraries
L15 May  2 Run Time Storage Administration
L16 May  8 Syntax Directed Translations (cont)
L17 May  9 LL(1) Parsers
L18 May 15 Exercise 2 solution
L19 May 16 LR(1) Parsers
L20 May 22 More About Translation
L21 May 23 Error Detection and Recovery
L22 May 29 Code Optimization(1)
L23 May 30 Code Optimization(2)
L24 Jun  5 Exercise 3 Solution
L25 Jun  6 Revision for Examination


There are 3 exercises (based upon the Eli system) worth 40% of the final mark. These will be marked at a weight of 10%, 15%, and 15% respectectively, although these weights are open to negotiation. A 2 hour exam is worth the remaining 60%. Students must obtain a mark of 50% or better in both the practical assessment and the final examination, in order to pass the course overall.

FunnelWeb Examples

An example of a FunnelWeb program can be seen in marked up text
pg.fw and postscript file


Students are required to use the FunnelWeb system to construct and document their assignments. The FunnelWeb code for the assignments should contain all details required for submission. Details on how to do this will be included with each assignment handout.

Exercise Timetable

Number        Date Out  Due In    Returned  Topic
Exercise 1    Mar  6    Mar 27    Apr  3    Scanner and Parser
Exercise 2    Mar 27    May  8    May 15    Semantic Analysis
Exercise 3    May  1    May 29    Jun  5    Code Generation

Exercise Submission

All exercises are to be submitted electronically, using the submit program. For manual information on the submit program, type man -P /cs/man submit. Read the file /cs/README for further hints about other things. Note that the code will be tested and marked automatically, and a mark returned to the student after each submission. Multiple submissions will be permitted, but a limit on the frequency of submissions may be enforced.


Eli Web Page

Tony Sloane at Macquarie University is the Australian maintainer of the Eli system, and has a web page for it.


Some examples are available in Eli Examples


Postscript forms of all the Eli manuals are available in The Eli Manuals Directory

665 accesses since 21 Jun 2015, HTML cache rendered at 20000125:1116