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
c

AAM

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. "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.

Linear Supertypes
EvalKontMachine[Exp, Abs, Addr, Time], AbstractMachine[Exp, Abs, Addr, Time], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AAM
  2. EvalKontMachine
  3. AbstractMachine
  4. AnyRef
  5. 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 AAM()(implicit arg0: Expression[Exp], arg1: JoinLattice[Abs], arg2: Address[Addr], arg3: Timestamp[Time])

Type Members

  1. case class AAMOutput(halted: Set[State], numberOfStates: Int, time: Double, graph: G, timedOut: Boolean) extends Output with Product with Serializable
  2. type G = Option[Graph[State, Unit, Unit]]
  3. trait KontAddr extends AnyRef

    The store used for continuations is a KontStore (defined in Kontinuation.scala).

    The store used for continuations is a KontStore (defined in Kontinuation.scala). It is parameterized by continuation addresses, that are element of the KontAddress typeclass.

  4. case class NormalKontAddress(exp: Exp, time: Time) extends KontAddr with Product with Serializable
  5. case class State(control: AAM.Control, store: Store[Addr, Abs], kstore: KontStore[KontAddr], a: KontAddr, t: Time) extends Product with Serializable

    A machine state is made of a control component, a value store, a continuation store, and an address representing where the current continuation lives.

  6. trait Output extends AnyRef

    The output of the abstract machine

    The output of the abstract machine

    Definition Classes
    AbstractMachine
  7. trait Control extends AnyRef

    The control component of the machine

    The control component of the machine

    Definition Classes
    EvalKontMachine
  8. case class ControlError(err: SemanticError) extends Control with Product with Serializable

    Or an error component, in case an error is reached (e.g., incorrect number of arguments in a function call)

    Or an error component, in case an error is reached (e.g., incorrect number of arguments in a function call)

    Definition Classes
    EvalKontMachine
  9. case class ControlEval(exp: Exp, env: Environment[Addr]) extends Control with Product with Serializable

    It can either be an eval component, where an expression needs to be evaluated in an environment

    It can either be an eval component, where an expression needs to be evaluated in an environment

    Definition Classes
    EvalKontMachine
  10. case class ControlKont(v: Abs) extends Control with Product with Serializable

    Or it can be a continuation component, where a value has been reached and a continuation should be popped from the stack to continue the evaluation

    Or it can be a continuation component, where a value has been reached and a continuation should be popped from the stack to continue the evaluation

    Definition Classes
    EvalKontMachine

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from AAM[Exp, Abs, Addr, Time] to any2stringadd[AAM[Exp, Abs, Addr, Time]] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (AAM[Exp, Abs, Addr, Time], B)
    Implicit
    This member is added by an implicit conversion from AAM[Exp, Abs, Addr, Time] to ArrowAssoc[AAM[Exp, Abs, Addr, Time]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate() @throws( ... )
  8. def ensuring(cond: (AAM[Exp, Abs, Addr, Time]) ⇒ Boolean, msg: ⇒ Any): AAM[Exp, Abs, Addr, Time]
    Implicit
    This member is added by an implicit conversion from AAM[Exp, Abs, Addr, Time] to Ensuring[AAM[Exp, Abs, Addr, Time]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  9. def ensuring(cond: (AAM[Exp, Abs, Addr, Time]) ⇒ Boolean): AAM[Exp, Abs, Addr, Time]
    Implicit
    This member is added by an implicit conversion from AAM[Exp, Abs, Addr, Time] to Ensuring[AAM[Exp, Abs, Addr, Time]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  10. def ensuring(cond: Boolean, msg: ⇒ Any): AAM[Exp, Abs, Addr, Time]
    Implicit
    This member is added by an implicit conversion from AAM[Exp, Abs, Addr, Time] to Ensuring[AAM[Exp, Abs, Addr, Time]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  11. def ensuring(cond: Boolean): AAM[Exp, Abs, Addr, Time]
    Implicit
    This member is added by an implicit conversion from AAM[Exp, Abs, Addr, Time] to Ensuring[AAM[Exp, Abs, Addr, Time]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  12. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  14. def eval(exp: Exp, sem: Semantics[Exp, Abs, Addr, Time], graph: Boolean, timeout: Timeout): Output

    Performs the evaluation of an expression @param exp (more generally, a program) under the given semantics @param sem.

    Performs the evaluation of an expression @param exp (more generally, a program) under the given semantics @param sem. If @param graph is true, it will compute and generate the graph corresponding to the execution of the program (otherwise it will just visit every reachable state). A @param timeout can also be given.

    Definition Classes
    AAMAbstractMachine
  15. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from AAM[Exp, Abs, Addr, Time] to StringFormat[AAM[Exp, Abs, Addr, Time]] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  16. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  17. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  18. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  19. def name: String

    The name of the abstract machine

    The name of the abstract machine

    Definition Classes
    AAMAbstractMachine
  20. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  21. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  22. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  23. implicit val stateWithKey: WithKey[State] { type K = AAM.this.KontAddr }
  24. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  25. def toString(): String
    Definition Classes
    AnyRef → Any
  26. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  28. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  29. def [B](y: B): (AAM[Exp, Abs, Addr, Time], B)
    Implicit
    This member is added by an implicit conversion from AAM[Exp, Abs, Addr, Time] to ArrowAssoc[AAM[Exp, Abs, Addr, Time]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
  30. object HaltKontAddress extends KontAddr with Product with Serializable
  31. object KontAddr
  32. object State extends Serializable
  33. object Control
    Definition Classes
    EvalKontMachine

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @Deprecated @deprecated @throws( classOf[java.lang.Throwable] )
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from EvalKontMachine[Exp, Abs, Addr, Time]

Inherited from AbstractMachine[Exp, Abs, Addr, Time]

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from AAM[Exp, Abs, Addr, Time] to any2stringadd[AAM[Exp, Abs, Addr, Time]]

Inherited by implicit conversion StringFormat from AAM[Exp, Abs, Addr, Time] to StringFormat[AAM[Exp, Abs, Addr, Time]]

Inherited by implicit conversion Ensuring from AAM[Exp, Abs, Addr, Time] to Ensuring[AAM[Exp, Abs, Addr, Time]]

Inherited by implicit conversion ArrowAssoc from AAM[Exp, Abs, Addr, Time] to ArrowAssoc[AAM[Exp, Abs, Addr, Time]]

Ungrouped