/Net/solen/u8/Faculty/em/max/MC28/micro-scheme.scmand use the ``Evaluate All'' command to evaluate all the definitions in that file. This file contains the Micro-Scheme implementation from section 10.3 of the text, along with some necessary definitions from section 10.2 and earlier chapters of the text.
(read-eval-print-loop)in Scheme and then try evaluating various Micro-Scheme expressions in the resulting Micro-Scheme read-eval-print loop. When you are done trying out Micro-Scheme and want to return to real Scheme, you can use the ``Abort to Top'' command in the ``Actions'' menu.
look-up-value, as described in exercises 10.11 and 10.12 on page 340 of the textbook. You should use the ``Copy'' and ``Paste'' commands in SchematiX to copy the definition of
look-up-valueinto your own file before you start modifying it. For 10.11, you could add
null?, so that you can do list processing in Micro-Scheme. For 10.12, you can add anything you've wished Scheme had built in, perhaps
square. Try out Micro-Scheme again, making sure that your new pre-defined names work.
withexpressions to Micro-Scheme. This will involve modifying the definition of
micro-scheme-parsing-p/a-list, so you should copy and paste that definition into your file as well. You shouldn't need to modify any other existing definitions -- you should just modify your copy of
micro-scheme-parsing-p/a-listand add any new definitions you need.
Here are two somewhat tricky
with expressions; think carefully
about what the value of each of them should be, and make sure your
implementation produces those values:
(with x = (+ 2 3) compute (with y = (+ x 4) compute (* x y))) (with x = (+ 2 3) compute (with x = (+ x 4) compute (* x x)))
/Net/solen/u8/Faculty/em/max/MC28/mini-scheme.scmand use the Evaluate All command. This file contains the definitions from section 10.4, with the exception of those superseded in section 10.5, and it also contains relevant definitions from 10.2, 10.3, and earlier chapters. Finally, this file also contains the definitions from section 10.5 of
make-application-ast(p. 356), and
make-mini-scheme-version-of(p. 358). You will need to copy all the AST constructors and the
make-procedureprocedures out of this file into your own file in order to modify them in the subsequent exercises. (Note that the indentation of
make-application-ast(p. 356) is a bit messed up; the on-line version is corrected.)
(parse 3), but also those that need to be expressed as quotations, such as you would get from
(parse '(quote x)).
make-mini-scheme-version-of, because the version we have provided from page 358 already incorporates the needed modifications. Test your read-eval-print loop as shown on page 358 and in other ways. (When comparing your output to that shown in the book, don't be concerned if the subexpressions of an expression are evaluated in a different order.)