PLT11 course -- assignment 2

(C) Ralf Lämmel, Andrei Varanovich, University of Koblenz Landau

Logistics

Assignment

Extend the (untyped and applied) lambda calculus, in its Prolog incarnation, by the following language constructs:

  • new: when being evaluated, it returns a new location of a store.
  • assign(L,V): the value V is assigned to the location L.
  • deref(L): the location is dereferenced, i.e., the stored value, if any, is looked up.

Obviously, you can start off with the Prolog code from the lecture.

https://slps.svn.sourceforge.net/svnroot/slps/topics/semantics/lambda/applied/

General comments and hints:

  • Don't care about the concrete syntax used above for illustration.
  • Provide test cases with your extended interpreter.