6.035 follows a late policy similar to 6.828.
The first project (scanner / parser), where you work alone, is not
officially graded. However, you should finish this project by the due
date, as it will be used to match group members for the remaining
projects. For more details about the project's submission, see the
project description document.
For the remaining projects, each group has 72 late
hours that they may divide up among the lab assignments however
they'd like, without asking or telling us. However, no late hours may be
used on the final optimizer project deadline. Each day late in excess of
72 hours will incur a full letter grade penalty on the entire group
project component of your overall grade.
Late hours begin counting immediately from the deadline and are
rounded up, e.g. five minutes past the deadline is one day hour. These
late hours are intended for cases where you fall behind due to illness,
job interviews, MIT athletic events, deadlines in other classes,
etc. For extensions under extenuating circumstances (e.g., you are
sick for a week), we require a letter from one of the student deans.
Although you may discuss the projects with anybody, you must develop the code
yourself. For the scanner/parser project, you must develop your code alone. On
all subsequent projects, you should work with your team members, but you may
not develop or share any code with other teams.
You may collaborate on the mini-quizzes, but you may not
collaborate with anybody on the full quizzes; doing so will result in a
Do not post your lab or homework solutions on publicly accessible web sites or
file spaces; this enables cheating for students in future years.
Compiler Building and Running
We will use the software provided by the Athena infrastructure to
evaluate each group project. The project skeletons contain the scripts
that will automatically build and run your projects.
The submitted project should be self-contained. With the exception
of the languages and libraries provided by the Athena infrastructure,
all code and libraries (when applicable; see the next section) should be
contained within the submitted archive.
Make sure to build and run your compiler on
the Athena infrastructure before submitting it for
evaluation. If we are not able to automatically build or run
your compiler using the scripts provided with the project skeletons, it
will incur a 25% penalty on the number of points for this
In 6.035, you build a compiler almost entirely from scratch. There
are a few allowed exceptions: you may use one of the approved parser
generators, described in the first project & athena handouts. You
may use various language APIs for working with collections and data
types. However, there are some restrictions on that. For example, users
of Haskell may not use Haskell's Data.Graph or
Any libraries beyond the Java API or basic Scala libraries must
be approved by the TA. We will not allow more advanced libraries,
such as the PackratParsers package. In general, if you are unsure of
whether or not you are allowed to use a piece of software, ask the TA.
Lectures will be held on Mondays through Thursdays from 11:00am to 12:00pm in
36-156. There is not a lecture on every such day; for details, see the