Packages

  • package root
    Definition Classes
    root
  • class AAM[Exp, Abs, Addr, Time] extends EvalKontMachine[Exp, Abs, Addr, Time]

    Implementation of a CESK machine following the AAM approach (Van Horn, David, and Matthew Might.

    Implementation of a CESK machine following the AAM approach (Van Horn, David, and Matthew Might. "Abstracting abstract machines." ACM Sigplan Notices. Vol. 45. No. 9. ACM, 2010).

    A difference with the paper is that we separate the continuation store (KontStore) from the value store (Store). That simplifies the implementation of both stores, and the only change it induces is that we are not able to support first-class continuation as easily (we don't support them at all, but they could be added).

    Also, in the paper, a CESK state is made of 4 components: Control, Environment, Store, and Kontinuation. Here, we include the environment in the control component, and we distinguish "eval" states from "continuation" states. An eval state has an attached environment, as an expression needs to be evaluated within this environment, whereas a continuation state only contains the value reached.

    Definition Classes
    root
  • AAMOutput
  • Control
  • ControlError
  • ControlEval
  • ControlKont
  • HaltKontAddress
  • KontAddr
  • NormalKontAddress
  • Output
  • State

object State extends Serializable

Linear Supertypes
Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. State
  2. Serializable
  3. Serializable
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. implicit val graphNode: GraphNode[State, Unit]
  2. def inject(exp: Exp, env: Iterable[(String, Addr)], store: Iterable[(Addr, Abs)]): State