|
|||||
About this courseOfficial course descriptionPhilosophy of the course Availability |
PeopleLecturer: Eric Bodden (McConnell 234)Teaching assistant: Reehan Shaikh (McConnell 202) |
||||
Printed ReadingsCourse text (readings)Lecture notes |
Deadlines and Important DatesDeliverables, milestones, and exercisesWeek by week schedule Midterm |
||||
ProjectThe project descriptionThe A- source code (flex/bison/C) The A- source code (SableCC/Java) The A+ project The A+ binary JOOS examples JOOS library source JOOS extern classes |
ProjectThe project descriptionOriginal WIG grammar Yacc-style grammar, most conflicts solved Sablecc-style grammar (version 2, scanner might have issues with keyword-stealing) How to run SableCC WIG examples How to compile and run WIG services The <bigwig>
projectThe Mawl project |
||||
Need help? Let us and others help you out!We have created a Google group that you can use to manage the creation of teams or to ask general questions about the lecture material etc. The list will be read by the instructor, the TA and other participating students.
Please do not use this group to discuss private issues such as grading etc. but rather contact the TA or instructor directly in such cases. Important announcements will be sent to you directly and/or made available on this website. There is no need to join the group to receive such announcements. |
Online documentationTheflex scanner generatorThe bison parser generatorThe SableCC
compiler generatorThe Java language specification The Java virtual machine The Java API documentation HTML
User Guides Under The Hood articles:
|
||||
Peephole contestRules and prizesResults and Winners |
|||||
Week 1: Introduction, bootstrapping a compiler
|
Week 2: Scanners and parsersSeptember 2008 Exercises Solutions |
||||
Week 3: Abstract syntax trees and SableCCSeptember 2008 Tiny expression language source code Reading O2: Bison, The
YACC-compatible Parser Generator WIG milestone: form groups and begin planning |
Week 4:September 2008 WIG milestone: Try out each toolset on a Tiny example |
||||
Week 5:September 2008 JOOS deliverable: benchmark programs Reading O4: A Beginner's
Guide to HTML |
Week 6: Symbol tablesOctober 2008 Note: On October
10th, Andrew Casey will give a special lecture on using attribute
grammars in JastAdd. Regular lecture slides: Slides, 4-on-1 There will be no exercises
this week. If you have spare time please take the chance to work ahead
on the next milestone! WIG milestone: CGI vs. WIG Reading C5: Symbol
Tables, Louden (Chapter 6.3.1 - 6.3.4), pages
295-308 |
||||
Week 7: Type checkingOctober 2008 Monday, October 13th is a holiday. To make up
for the lost time there will be an additioal class on Tuesday, December
2nd (course
calendar). WIG milestone: scanner and parser Reading C6: Data Types and Type Checking, Louden (Chapter 6.4), pages 313-334 |
Week 8: Virtual machinesOctober 2008 WIG milestone: symbol tables Voluntary
reading: Draft
specification of Java bytecodes |
||||
Week 9: Code generationOctober 2008 WIG milestone: type checking
|
Week 10: OptimizationNovember 2008 There will be no exercises this week. If you have spare time please take the chance to work ahead on the peephole patterns. JOOS deliverable: stack limits |
||||
Week 11: Garbage collectionNovember 2008 Note: The lectures on
November 10th and 12th will be given by Chris Pickett. There will be no exercises this week. Time to work on your peephole patterns. |
Week 12: Native code generationNovember 2008 Slides, 4-on-1 JOOS deliverable: peephole patterns Note the deadline on MONDAY! |
||||
Week 13: Static analysisNovember 2008 WIG
compiler and report due
on Friday Sunday,
8am! There will be no exercises this week. Better work on your WIG compiler & report. |
Week 14: Presenting your compilersNovember 2008December 2008 Meetings of Groups |
||||
Week 15: Final examDecember 2008The final exam is going to take place on Friday, December 12th, 9am-12pm, in room LEA 31. |
Past courses:2004 course: http://www.sable.mcgill.ca/~hendren/520/ 2005 course: http://www.cs.mcgill.ca/~nnaeem/520/ 2006 course: http://www.cs.mcgill.ca/~cs520/fall2006 2007 course: http://www.sable.mcgill.ca/~cpicke/520/ |
Maintained by Eric Bodden [HOME] |