Course Meetings
Lectures meet 4:00pm–5:20pm on Tuesdays and Thursdays. The location can be found on Quest.
Course Overview
The course is an introduction to the construction of modern compilers. A major part of the coursework is implementing a compiler for a simple object-oriented programming language. Students will be acquainted with theoretical and practical techniques applicable to implementing programming languages. The course material should appeal to anyone who is interested in the design and implementation of programming languages. Anyone who does a substantial amount of programming should find it valuable and enjoyable.
Coursework
Students are tasked with writing a compiler that can translate a fairly large subset of Java to an assembly language. The project will be done in groups. The standard size of a group is three or four. The project will be broken up into several assignments with fixed due dates. The assignments must be submitted to Marmoset. Marks for your code will be reported to you by Marmoset, and your marked written reports will be returned to you by email. Additionally, secret tests will be run by Marmoset on the last submission of your last assignment.
Students enrolled in CS 644 will additionally conduct a literature survey on a topic related to compilers.
Breakdown of Marks
CS 444 | ||
Compiler project
|
Assignment 0 | 0% |
Assignment 1 | 10% | |
Assignment 2 | 10% | |
Assignment 3 | 10% | |
Assignment 4 | 10% | |
Assignment 5 | 16% | |
Assignment 6 | 12% | |
Subtotal | 68% | |
Quiz (part of Assignment 6) | 14% | |
Reports (part of Assignments 1–6) | 8% | |
Secret tests | 10% | |
Total | 100% |
CS 644 | ||
Coursework of CS 444 | 85% | |
Literature survey | 15% | |
Total | 100% |
Marking Policy
Late Submissions
Reports submitted after the assignment deadline will not be marked and will receive a mark of zero. If you cannot finish the assignment by the deadline, submit what you have by the deadline, and explain any unfinished parts in your report.
For code submissions, the following late policy applies:
0.5 × best-on-time + 0.5 × best-overall
where “best-on-time” is the best submission within the assignment deadline, and “best-overall” is the best submission up until the deadline of the last assignment. Examples:
- Group gets 90% marks on a submission before the assignment deadline and there is no submission after the deadline.
Mark: (0.5 × 90%) + (0.5 × 90%) = 90% - Group gets 80% marks on a submission before the assignment deadline and 100% marks on a re-submission after the deadline.
Mark: (0.5 × 80%) + (0.5 × 100%) = 90% - Group gets 90% marks on a submission after the assignment deadline and there is no submission before the deadline.
Mark: (0.5 × 0%) + (0.5 × 90%) = 45%
Submitting an additional solution for an assignment can never reduce your mark.
Group Work
When working in a group, disagreements sometimes arise. One of the objectives of this course is for you to resolve such disagreements with sufficient, constructive, and frank communication within the group. Therefore, when disagreements arise, discuss them within the group before asking the instructor to intervene. If the group fails to reach a resolution, the group as a whole should arrange a meeting with the instructor. The instructor's role is primarily to mediate the discussion within the group, rather than to intervene in the disagreement. Problems are easier to resolve if handled early. When a problem arises, try to resolve it as soon as possible. Do not leave it until the end of the course.
At the end of the course, the following policies will be used to distribute marks among the group members:
- Normally, each member of the group will be given an equal mark. You should therefore strive to ensure that each group member makes an approximately equal contribution to the project.
- The group may propose a different distribution of the marks for group work, provided all group members consent to the distribution. Such a proposal must be made to the instructor within 24 hours after the due time of the last assignment. The marks will be distributed in such a way that the mean of the marks equals the original group mark and no individual project mark exceeds 100%.
- If agreement cannot be reached, a member of the group must contact the instructor within 24 hours of the due time of the last assignment. The instructor will ask each group member to submit a written statement detailing the contributions of each group member, the nature of the conflict, and the steps that were taken by the group to resolve the conflict. Failure to submit the statement within 72 hours of being asked to do so will result in a mark of zero for that group member. Based on the statements, the instructor will make a final decision about the mark distribution. Note that the instructor will generally not deviate from the equal distribution of marks unless convinced that the group took sufficient and timely steps to resolve the conflict internally.
Absence Policy
- Each student is entitled to a two-day absence, as per the university’s policy.
- If a group member declares a two-day absence in Quest, and an assignment deadline falls within that period, the deadline can be extended by 48 hours for the entire group.
- Additional absences for small groups:
- A group of three receives one additional two-day absence beyond the individual Quest-declared absences.
- A group of two receives two additional two-day absences beyond the individual Quest-declared absences.
- The first three absences for a group of three (or first two for a group of two) must be declared through Quest before using these additional absences.
- The group member who is declaring an absence must notify the course staff of the declared absence by filling out a form within 24 hours of the original assignment due time. Failure to do so will result in the absence declaration not being considered and the original deadline remaining in effect. Once the form is submitted, the deadline extension (if eligible) is permanent and cannot be revoked. The link to the form is available via Piazza.
- The due time of Assignment 6 is not within the formal lecture period, so absence declarations will not be considered for this assignment.
Course Staff
![]() |
Yizhou Zhang Instructor |
[show email] |
![]() |
Ende Jin TA |
[show email] |
![]() |
Jianlin Li TA |
[show email] |
![]() |
Cong Ma TA |
[show email] |
Please use Piazza to ask questions about course content or assignments. Office hours are by appointment.