Course Info

Instructor Jianwen Zhu
  312 Engineering Annex
  jzhu at eecg.tornoto.edu
TA Peter Goodman
  peter.goodman at gmail.com
Lecture Wed 10-11 WB133
  Wed 11-12 WB133
  Lecture Schedule
Tutorial Mon 3-4 BA 3012
  on selected weeks

 

Online Resources

 
  Web Site http://www.eecg.toronto.edu/~jzhu/csc467/csc467.html  
  Discussion Group http://groups.google.com/group/uoft_csc467-2012  
  Announcement http://www.eecg.toronto.edu/~jzhu/csc467/csc467an.html

 

Important Dates  
   

 
  Oct 15th Lab 1 due  
  Oct 24th Midterm, in class  
  Nov 5th Lab 2 due  
  Nov 19th Lab 3 due  
  Dec 3rd Lab 4 due

 

Tutorials

In tutorials, practice problems will be reviewed and help with projects will be provided.

 
  Sept 24th Shader tutorial and project review  
  Oct 8th Flex tutorial and Lab 1 review  
  Oct 22nd Bison tutorial and Lab 2 review  
  Oct 29th Midterm Review  
  Nov 12th Lab 3 Help  
  Nov 26th Lab 4 Help

 

Office Hour

Please contact by email or during lectures to make appointment.

 

Prerequisites

You are presumed to have good knowledge of computer architecture and programming languages. Background in operating systems, and experience in programming with C will prove helpful.

 

Text Book

 
 

[1]      

Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman and Monica S. Lam, Compilers: Principles, Techniques, and Tools, Addison Wesley; 2 edition, August 31, 2006.

 

Machine Project

You are required to complete a machine project, in which you are to construct a mini OpenGL shader compiler for graphics processors. The detailed project decription is distributed seperately.

 

Handouts

Lec 2 Lec 3 Lec 4 Lec 5 Lec 6 Lec 8 Lec 11-12 Lec 13-14 Lec 15 Lec 16-18 Lec 19-23

Past Midterm Past Final

 

Exams

There will be two comprehensive exams for this class: a 50min midterm and a 2:00hrs final. The exams will be based on material covered in the lectures (i.e., reading assignment), tutorials and the machine project. All exams are open book/lecture notes and you are required to bring some form of valid picture ID. The dates and times of the exams will be announced in the newsgroup.

 

Grading Policy

The weighting scheme for the class requirements will be as follows:

Project 40%
Midterm Exam 20%
Final Exam 40%

Minor lab downtime will not qualify for project extensions. Nuclear meltdown in the lab might qualify. To protect yourself, keep backups on the lab machines so if your computer crashes, you can recover.

Absence from any exam will result in a zero score unless it is due to an emergency and official documentation is provided.

 

Cheating Policy

Cheating is against ``fair-play'' and will not be tolerated under any circumstances. While the pressures of many classes, homeworks, work and/or extracurricular activities can be great, this is never an excuse for copying solutions from others. "Helping" somebody by allowing them to "borrow" your work is not doing them a favor either, but indicates your approval and active participation in such activities. The University holds among its highest principles the notion of academic freedom and integrity. If you are caught cheating it may lower your grade or it can even give you a fail grade for the class. If you think that there is an issue that influences your performance in the class then talk to the instructor.

 

Other References

The following textbooks are not required but they can serve as good reference material:

 
 

[2]      

Andrew W. Appel. Modern Compiler Implementation in C,Cambridge University Press, 1997 (the same book exists on two additional editions, Java and ML).

 
 

[3]      

Charles N. Fischer and Richard J. LeBlanc, Jr. Crafting a Compiler , Benjamin/Cummings Publishing, 1991.

 
 

[4]      

Chris Fraser, David Hansen, lcc, A Retargetable Compiler for ANSI C, Addison-Wesley, 1995.