C311 Assignment 7 -- Interpreter variations

Due Monday, February 27th, at 8:55 AM

Read EOPL Sections 5.3 through 5.5.

Submit via email

  1. Define a new version of the <proc-language> class that inherits directly from <env-language>, rather that <let-language>.
  2. Define a new version of the <let-language> class that inherits from your new <proc-language> class and implements the same semantics for let, but without introducing a new <syntax> class. Hint: when parsing a let expression, create new <proc>, <call>, and <exps> nodes.
  3. Define a new version of the <assign-language> class that inherits from your <let-language> class and does not use the <cell> class. Instead use vector-set! to store assigned values directly in the values vector containing the binding of assigned variable.
  4. Define a <begin-language> class that inherits from your <assign-language> class and adds the equivalent of Scheme's begin form to the interpreted languages.
chaynes@indiana.edu