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.
Additional, 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
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, provided
all group members consent to the distribution. Such a proposal must be
made to the instructor within three days after the due date 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 three days of the due date 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 three days 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.
Course Staff
Please use Piazza to ask questions about course content or
assignments.
Other Notices