Packages

  • package root
    Definition Classes
    root
  • package be
    Definition Classes
    root
  • package opimedia
    Definition Classes
    be
  • package scala_par_am
    Definition Classes
    opimedia
  • class SeqAAM[Exp, Abs, Addr, Time] extends EvalKontMachine[Exp, Abs, Addr, Time]

    SeqAAM: Sequential AAM (with list)

    SeqAAM: Sequential AAM (with list)

    This is a reimplementation of the AAM class of Scala-AM written by Quentin Stiévenart. A fork of the original version of Scala-AM used is available here: https://bitbucket.org/OPiMedia/scala-am. The subsumption part has been removed. So this class corresponds in fact to the AAMNS (AAM No Subsumption) class of Scala-AM in this copy repository.

    Compared to AAMNS of Scala-AM this class used Set Scala native data structures instead to specific WorkList and VisitedSet. The recursive loop has been replaced by a for loop.

    The worklist is implemented by an immutable list of states.

    This sequential machine (or the SeqAAMS and SeqAAMLS alternative) is the comparison point for the different version of parallel machines implemented in Scala-Par-AM.

    The original description by Quentin Stiévenart: 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.

    Source https://bitbucket.org/OPiMedia/scala-par-am/src/master/scala-par-am/src/main/scala/machine/SeqAAM.scala

    Definition Classes
    scala_par_am
  • AbstractMachineStats
  • AbstractMachineStatsDisabledTrait
  • AbstractMachineStatsEnabledTrait
  • Control
  • ControlError
  • ControlEval
  • ControlKont
  • KontAddr
  • Output
  • SeqAAMOutput
  • SeqAAMStats
  • SeqAAMStatsDisabled
  • SeqAAMStatsEnabled
  • State

case class State(control: SeqAAM.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.

Attributes
protected
Linear Supertypes
Serializable, Serializable, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. State
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. AnyRef
  7. 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 State(control: SeqAAM.Control, store: Store[Addr, Abs], kstore: KontStore[KontAddr], a: KontAddr, t: Time)

Value Members

  1. val a: KontAddr
  2. val control: SeqAAM.Control
  3. def halted: Boolean

    Checks if the current state is a final state.

    Checks if the current state is a final state. It is the case if it reached the end of the computation, or an error.

  4. def hashCode(): Int
    Definition Classes
    State → AnyRef → Any
  5. val kstore: KontStore[KontAddr]
  6. def step(sem: Semantics[Exp, Abs, Addr, Time]): Set[State]

    Computes the set of states that follow the current state

  7. def stepFilter(sem: Semantics[Exp, Abs, Addr, Time], visited: Set[State]): Set[State]

    Result of step(sem) - visited

  8. val store: Store[Addr, Abs]
  9. val t: Time
  10. def toString(): String
    Definition Classes
    State → AnyRef → Any