Languages for object-oriented programming

Relevant sections in text: 4.1

In this assignment, students assume the role of language designer, and consider issues in the design of languages for object-oriented programming by working with a version of the metacircular evaluator that has been extended to include classes, methods, and inheritance. The programming language used here is modelled on the Dylan language, and the extensions to the evaluator follow the approach described in The Art of the Metaobject Protocol, by Gregor Kiczales, Jim des Rivieres, and Dan Bobrow (MIT Press, 1991).

This is a different object-oriented programming system than the one used in the object-oriented adventure game assignment.

Note: The construction of this assignment predates our final revison of the text for this second edition, so there are several minor differences between the code here and the metacircular evaluator as given in section 4.1. You may wish to update the code (notably some of the syntax procedures and data structures) before assigning this.

Files for download:

ps7oop.tex TeX source for the assignment. Postscript file for printing the assignment
Scheme source code required for this assignment.

Copyright © 1985-1996 Massachusetts Institute of Technology.
The material in these problem sets may be duplicated, modified, and redistributed for any non-commercial use in conjunction with the book Structure and Interpretation of Computer Programs.

Return to sample assignment page

Return to SICP page

Last modified September 1, 1996