91.301 Organization of Programming Languages
Prof. F. Martin
Problem Set 9: The Metacircular Evaluator
In this problem set, you’ll make modifications to the metacircular evaluator, changing UML Scheme.
To run the metacircular evaluator, download
mceval-with-let.ss from the course web site. Use the R5RS language.
After executing the code, evaluate
(mc-eval-loop). This will run the interactions for your metacircular UML Scheme world. Remember that everything you type in (except for variables and numbers) should be prefixed by “
uml:” if you forget, the system will have an error. If you type in an error, the driver-loop exits and you will lose the state you had in the metacircular world.
You only need to turn in the portions of the code that you change.
Warm-up: Run the metacircular evaluator and evaluate some UML Scheme expressions. Nothing to turn in for this part.
Problem 1: Exercise 4.4 (“or” only) on p. 374. Remember to tag your new “or” with “uml:”.
Problem 2: Exercise 4.1 on p. 368.
Problem 3: Exercise 4.5 on p. 375.
Problem 4: Exercise 4.9 on p. 376. Pick one of the iteration constructs (
until) to implement.