Welcome to CSC488/2107: Compilers and Interpreters. In this course we will explore the design and implementation of compilers for modern programming languages, from lexical analysis and parsing, to semantic analysis, intermediate representations, code generation and optimization. Through the assignments, the course project will have students building a complete working compiler for a small target language.
Website and Piazza: The course website contains lecture notes, assignment handouts, and, most importantly, a link to the Piazza discussion board. The board can get you fast, accurate response to your questions – but it only works if everyone participates! We will also use the boards to post announcements and updates, so be sure to check there regularly.
Email: Please use email for personal issues and the discussion board for all other course-related questions. I try to respond to email by the end of the next day. However, due to volume, it may take longer, especially on weekends (I am often not able to answer email more than once on the weekend.)
Item | Topics | Weight | Due Date | Note |
---|---|---|---|---|
Assignment 0 | Team formation | 0% | Thursday, Jan 17 at 1pm | |
Assignment 1 | Language examples | 2% | Saturday, Jan 26 at 11:59pm | |
Assignment 2 | Parsing | 6% | Saturday, Feb 16 by 11:59pm | |
Midterm | 20% | Thursday, Feb 28 at 1pm | 50 minutes, open book with notes | |
Assignment 3 | AST and semantic analysis | 12% | Saturday, Mar 16 at 11:59pm | |
Assignment 4 | Code generation 1 (optional) | 8% | Friday, Apr 5 at 11:59pm | |
Assignment 5 | Code generation 2 | 12% | Friday, Apr 5 at 11:59pm | No grace days can be used for this assignment |
Final Exam | All course material | 40% | Apr 6-30 | 2 hours, open book with notes |
To pass the course you must receive at least 40% on the final exam. The highest mark you will receive if your grade on the final exam is less than 40% is 47%.
Assignments will be completed in teams of 4 or 5 students.
Any section of an assignment which fails to run on teach.cs.toronto.edu
will receive a grade of 0. If you can explain clearly in a remarking request how to fix the problem, your program will be remarked with a 20% penalty. Errors in submission such as missing files, incorrectly named files, putting files in the wrong place may be graded with a 20% penalty.
Remarking requests that result from incorrect submissions will receive a 20% penalty.
Religious Holidays: If a religious holiday will keep you from completing any assigned work, please let me know as soon as possible (but no later than two weeks before the due date), and we will work out a mutually agreeable accommodation.
Emergencies: In the event of an illness or other catastrophe, obtain appropriate documentation (e.g., medical certificate) and contact me by email within 48 hours of the due date. It is always easier to make alternate arrangements before a due date, so please inform me as soon as you know that you will need accommodation.
Re-mark Requests: If a piece of work has been mis-marked or if you believe the rubric used to evaluate the work is not appropriate, you may request a re-mark. For a re-mark to succeed, you must clearly and concisely express what you believe was mis-marked. To request a re-mark, use the form for the assignment on MarkUs. Requests must be submitted within 2 weeks of the marks being returned.
Academic Integrity: All of the work you submit as a team must be the sole production of you and your fellow team members from this term. Submitting work that you did not author and claiming it as your own is plagiarism, which is academic fraud and is taken very seriously. The department uses software that compares programs for evidence of similar code. Please read the Rules and Regulations from the U of T Calendar (especially the Code of Behaviour on Academic Matters). Here are a couple of guidelines to help you avoid plagiarism:
Accessibility Needs: The University of Toronto is committed to accessibility. If you require accommodations for a disability, or have any accessibility concerns about the course, the classroom or course materials, please contact Accessibility Services as soon as possible: accessibility.services@utoronto.ca or http://www.accessibility.utoronto.ca/.