Machine Problems

The homework will consist of machine problems: programs you will construct or extend to implement a language. Doing the machine problems is how you really learn the material. It is not possible to succeed in the course without doing the machine problems.

Links to the problems will be posted here as they are issued.

On most weeks, the problem will be posted here sometime after lecture (usually Friday), and will generally be due at 6 PM of the following Friday.

You will do some of the machine problems in groups of two; other problems will be for individual work and submission. Each machine problem will state whether it is for partner or individual submission.

When a problem is assigned to partners, your pair may divide the work as you see fit. We recommend that you use pair programming.

You will need to find a partner in time to do Machine Problem 2 together. We suggest you spend time after the next lecture doing this. If you are not able to find a partner by 26 September, please email your instructor and he will assign you a partner.

You may switch partners for different problem sets. You may use the class mailing list to seek partners. Make sure to inform your former partners of the change in your relationship.

Each assignment will require at least the following:

  1. A development diary. No assignment will be accepted without a satisfactory development diary.
  2. A copy of your code, including any items you have added to the test suite.

Here are instructions for submitting your assignment.

Here is guidance on how machine problems are graded.

All work must be submitted as text documents. Microsoft Word documents will not be accepted, nor will other non-text documents (unless explicitly indicated in the assignment).

See also the instructor's notes on running R6RS programs in PLT Scheme and in Larceny.


MP Title Out Due Solutions to non-textbook problems
0 Getting Acquainted 9/16/2008 9/26/2008
1 Programming Inductively (solo) 9/17/2008 9/26/2008
2 Environments 10/3/2008 10/8/2008
3 LCv Interpreter 10/10/2008 10/17/2008
4 Nameless LCv Interpreter 10/17/2008 10/24/2008
5 Modifying an Interpreter 11/04/2008 11/11/2008
6 Continuation-passing Interpreters 11/14/2008 11/21/2008

Back to CS G711

William D Clinger

Last modified: 14 November 2008