Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
CSc 435/583A - Compiler Construction
[go: Go Back, main page]

Latest News

2004-12-22: Provisional Grades

Provisional grades are on-line at the following url: http://www.csc.uvic.ca/~csc435/assignments/Marks435-Dec22.pdf
The grades are provisional because they must first be approved by the Chair before being submitted to the University Records.
Any mistakes should be reported to the course instructor asap.
Well done everyone -- you handled that final exam brilliantly!

2004-12-12: Sample answers to Final Exam

Sample solutions to the final exam are on-line at this link: http://www.csc.uvic.ca/~csc435/assignments/SampleAnswersFinalExam04.pdf

2004-12-7: Corrected sample answers to Mid-Term Test #2

A few corrections to those answers have now been made.

2004-12-4: Sample answers to Mid-Term Test #2

Sample answers are posted at this link:
http://www.csc.uvic.ca/~csc435/assignments/SampleAnswersMid-Term2.pdf

2004-11-27: On-line marks updated

The marks have been updated to include Assignment 4.

2004-11-26: Assignment 5

The final assignment is finally posted.

2004-11-24: Marks posted on-line

If you check the menu on the left, the Marks button will display a PDF file showing the current standings in the 435 and 583A courses (combined). The rows in the table are identified by the last 5 digits of the UVic student number. (Luckily there are no duplicates.)
Please report any errors and omissions to the course TA via the course e-mail account (csc435@csc.uvic.ca).

2004-11-15: New compile client and example programs

Use the new compile client to translate FunJava->Piglet->Spiglet->Kanga, and interpret your programs in the various intermediate forms. Check the Kanga output against your solution for Assignment #4. Use the example programs to see how various FunJava constructs get translated to lower level code. Get it from the Resources page.

2004-11-6: Assignment #4 -- replaced zip file

The zip file containing the Spiglet interference graph generator was missing some subdirectories. (I have no idea how that happened.) Please try version 1.2 of the zip file instead ... spi-src-1.2.zip

2004-11-6: Assignment #4 -- corrections

The supplied code that generated interference graphs contained some severe bugs (sorry). A replacement set of files is provided as spi-src-1.1.zip in the resources directory. The file named Translater.java contains a placeholder where you can insert graph colouring code.
An addition, you will find an interpreter for Kanga files in the resources directory (see kanga.zip).

2004-11-2: Assignment #4

The assignment has been posted; it is due November 19. An additional resource to check the output from your program (a Kanga prettyprinter and interpreter) will be made available soon.

2004-10-24: Mid-Term Test Answers

Sample answers and some comments on how to answer the questions are available ... from here.

2004-10-24: Assignment #3 Further Help

An additional document which explains Piglet to Spiglet conversion in a more formal manner is available from the Resources page.

2004-10-18: Assignment #3 Resources

A program to convert FunJava to Piglet and a Piglet interpreter are available from the Resources page.

2004-10-18: More slides added

See the Schedule section.

2004-10-07: Assignment #2 submission working

The submission system is now configured to accept assignment #2. See the Assignments section.

2004-09-30: Assignment #2 due Oct. 7

The due date for assignment #2 has been extended to Thursday, Oct. 7 at 11:59:59.

2004-09-23: Assignment #2 available

See the Assignments section. The compiler framework is available from the Resources page. Be sure to get the source (-src) not the binary package.

2004-09-17: Type checker available

The FunJava checker now does full semantic checking (i.e. type checking). Get it from the Resources page and use it to check your assignment #1 programs.

2004-09-15: Do assignment #1 individually

Remember (as noted in class), write your own program for assignment #1 and submit it using your user-ID.

2004-09-14: Check your FunJava programs

A simple FunJava compiler that performs syntax and symbol checks is available from the Resources page. A type-checking version should follow soon...

2004-09-14: Lecture slides posted

See the table in the Schedule section.

2004-09-11: FunJava examples posted

See the (new) Examples section on the FunJava page. More to come..

2004-09-10: Submission system active

Follow the link under the Assignments section to submit your assignment.

2004-09-10: Assignment #1 posted

The link to assignment #1 (under the Assignments section) is now active. Check back with the FunJava page regularly as examples and support will be added over the next few days.

Overview

Instructor: Nigel Horspool
Lectures: Monday, Wednesday & Thursday, 3:30-4:30 pm
Room: David Strong C112
Text: Modern Compiler Implementation in Java (Second Edition) by Andrew W. Appel with Jens Palsberg, Cambridge University Press, ISBN: 0-521-82060-X
Contact: Questions and comments regarding course work, exams and marks should be sent to the course account:  at 

Students are encouraged to post questions (and answers!) to the course discussion list.

Other inquires can be sent directly to the instructor:  at , or to the course TA:  at 
Outline: http://www.csc.uvic.ca/courses/fall2004/csc/435.html
WebBoard: http://webboard.uvic.ca/

^ top | home "/>

Assignments

The course work will be comprised of six assignments, which together will form a complete compiler. The source language will be FunJava. The target will be MIPS assembly code. Undergraduates (CSc 435) will implement a restricted form of FunJava, while graduate students (CSc 538A) will implement the full version. The phases of the compiler are described here:

[ [PDF] Project Overview ]

Assignment Descriptions

# Topic Due Date
1 [PDF] FunJava Programming 2004-09-18
2 [PDF] FunJava Semantic Analysis 2004-10-07 (extended)
  Translation: FunJava to Piglet 2004-10-15
3 [PDF] Translation of Piglet to Spiglet 2004-10-27
4 [PDF] Translation of Spiglet to Kanga 2004-11-19
5 [PDF] Translation of Kanga to MIPS 2004-12-03

[ Submit Your Assignment Here ]
(CSc 583A students, use the csc435 link.)

If you need to submit multiple files, please package them using jar or tar.

^ top | home "/>

Schedule

Date(s) Topic & Slides
2004-09-08 (Wed) [PDF] First day material
[PDF] Personal overview of compilers
[PDF] Another introduction to compilers
[PDF] Ditto (4up version for printing)
2004-09-13 (Mon) [PDF] Lexical Analysis (Appel ch. 2)
[PDF] Ditto (4up version for printing)
2004-09-27 [PDF] LL (top-down) Parsing (Appel ch. 3)
2004-10-7 (Thurs) [PDF] LR (bottom-up) Parsing (Appel ch. 3)
2004-10-18 (Monday) [PDF] Semantics & symbol tables (Appel Ch. 5)
[PDF] Ditto (4up version for printing)
[PDF] and more slides on symbol tables
2004-10-20 (Wed) [PDF] Activation Records (Appel Ch. 6)
[PDF] Ditto (4up version for printing)
2004-11-1 (Monday) [PDF] Translation (Appel Ch. 7)
[PDF] Ditto (4-up version for printing)
[PDF] Additional slides on array accessing
2004-11-4 (Thursday) [PDF] Register Allocation Issues
2004-11-15 (Monday) [PDF] Canonical Trees (Appel Ch. 8)
[PDF] Ditto (4-up version for printing)
2004-11-15 (Monday) [PDF] Optimal Code Generation
[PDF] Code Generation (Appel Ch. 9)
[PDF] Ditto (4-up version for printing)
2004-11-24 [PDF] Liveness Analysis (Appel Ch. 10)
[PDF] Ditto (4-up version for printing)
2004-11-25 [PDF] Flow Analysis (Appel Ch. 17)
2004-11-29 [PDF] Register Allocation (Appel Ch. 11)
[PDF] Ditto (4-up version for printing)
2004-12-1 [PDF] Sethi-Ullman Labelling (Appel Ch. 11.5)
[PDF] Static Single Assignment (Appel Ch. 19)

^ top | home "/>

Updated: 2004-11-15 Maintained by: Rhodes Brown | Comments to: csc435 at csc.uvic.ca
Valid XHTML 1.0!