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
c

AAM

AAMOutput

case class AAMOutput(halted: Set[State], numberOfStates: Int, time: Double, graph: G, timedOut: Boolean) extends Output with Product with Serializable

Linear Supertypes
Serializable, Serializable, Product, Equals, AAM.Output, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AAMOutput
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. Output
  7. AnyRef
  8. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new AAMOutput(halted: Set[State], numberOfStates: Int, time: Double, graph: G, timedOut: Boolean)

Value Members

  1. def containsFinalValue(v: Abs): Boolean

    Checks if the set of final values contains a value that subsumes @param v

    Checks if the set of final values contains a value that subsumes @param v

    Definition Classes
    Output
  2. def finalValues: Set[Abs]

    Returns the set of final values that can be reached by the abstract machine.

    Returns the set of final values that can be reached by the abstract machine. Example: the Scheme program (+ 1 2) has as final values the set {3} , in the concrete case.

    Definition Classes
    AAMOutputOutput
  3. val graph: G
  4. val halted: Set[State]
  5. val numberOfStates: Int

    Returns the number of states visited to evaluate the program

    Returns the number of states visited to evaluate the program

    Definition Classes
    AAMOutputOutput
  6. val time: Double

    Returns the time it took to evaluate the program

    Returns the time it took to evaluate the program

    Definition Classes
    AAMOutputOutput
  7. val timedOut: Boolean

    Does this output comes from a computation that timed out?

    Does this output comes from a computation that timed out?

    Definition Classes
    AAMOutputOutput
  8. def toFile(path: String)(output: GraphOutput): Unit

    Outputs the graph computed by the machine in a file, according to the given output format

    Outputs the graph computed by the machine in a file, according to the given output format

    Definition Classes
    AAMOutputOutput