Packages

c

be.opimedia.scala_par_am

SchemeSemantics

class SchemeSemantics[V, Addr, Time] extends BaseSchemeSemantics[V, Addr, Time]

Extend base Scheme semantics with:

  • atomic evaluation: parts of some constructs can be evaluated atomically without needing to introduce more states in the state graph. For example, (+ 1 1) can directly be evaluated to 2 without modifying the store. Also, to evaluate (+ 1 (f)), we can directly push the continuation and jump to the evaluation of (f), instead of evaluating +, and 1 in separate states.
Linear Supertypes
BaseSchemeSemantics[V, Addr, Time], Semantics[SchemeExp, V, Addr, Time], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SchemeSemantics
  2. BaseSchemeSemantics
  3. Semantics
  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 SchemeSemantics(primitives: Primitives[Addr, V])(implicit arg0: IsSchemeLattice[V], arg1: Address[Addr], arg2: Timestamp[Time])

Type Members

  1. case class FrameAnd(rest: List[SchemeExp], env: Env) extends SchemeFrame with Product with Serializable
    Definition Classes
    BaseSchemeSemantics
  2. case class FrameBegin(rest: List[SchemeExp], env: Env) extends SchemeFrame with Product with Serializable
    Definition Classes
    BaseSchemeSemantics
  3. case class FrameCase(clauses: List[(List[SchemeValue], List[SchemeExp])], default: List[SchemeExp], env: Env) extends SchemeFrame with Product with Serializable
    Definition Classes
    BaseSchemeSemantics
  4. case class FrameCond(cons: List[SchemeExp], clauses: List[(SchemeExp, List[SchemeExp])], env: Env) extends SchemeFrame with Product with Serializable
    Definition Classes
    BaseSchemeSemantics
  5. case class FrameDefine(variable: Identifier, env: Env) extends SchemeFrame with Product with Serializable
    Definition Classes
    BaseSchemeSemantics
  6. case class FrameDoBody(toeval: List[SchemeExp], vars: List[(Identifier, V, Option[SchemeExp])], test: SchemeExp, finals: List[SchemeExp], commands: List[SchemeExp], env: Env) extends SchemeFrame with Product with Serializable
    Definition Classes
    BaseSchemeSemantics
  7. case class FrameDoInit(vars: List[(Identifier, V, Option[SchemeExp])], variable: Identifier, step: Option[SchemeExp], toeval: List[(Identifier, SchemeExp, Option[SchemeExp])], test: SchemeExp, finals: List[SchemeExp], commands: List[SchemeExp], env: Env) extends SchemeFrame with Product with Serializable
    Definition Classes
    BaseSchemeSemantics
  8. case class FrameDoStep(vars: List[(Identifier, V, Option[SchemeExp])], variable: Identifier, step: Option[SchemeExp], toeval: List[(Identifier, V, Option[SchemeExp])], test: SchemeExp, finals: List[SchemeExp], commands: List[SchemeExp], env: Env) extends SchemeFrame with Product with Serializable
    Definition Classes
    BaseSchemeSemantics
  9. case class FrameDoTest(vars: List[(Identifier, V, Option[SchemeExp])], test: SchemeExp, finals: List[SchemeExp], commands: List[SchemeExp], env: Env) extends SchemeFrame with Product with Serializable
    Definition Classes
    BaseSchemeSemantics
  10. case class FrameFuncallOperands(f: V, fexp: SchemeExp, cur: SchemeExp, args: List[(SchemeExp, V)], toeval: List[SchemeExp], env: Env) extends SchemeFrame with Product with Serializable
    Definition Classes
    BaseSchemeSemantics
  11. case class FrameFuncallOperator(fexp: SchemeExp, args: List[SchemeExp], env: Env) extends SchemeFrame with Product with Serializable
    Definition Classes
    BaseSchemeSemantics
  12. case class FrameIf(cons: SchemeExp, alt: SchemeExp, env: Env) extends SchemeFrame with Product with Serializable
    Definition Classes
    BaseSchemeSemantics
  13. case class FrameLet(variable: Identifier, bindings: List[(Identifier, V)], toeval: List[(Identifier, SchemeExp)], body: List[SchemeExp], env: Env) extends SchemeFrame with Product with Serializable
    Definition Classes
    BaseSchemeSemantics
  14. case class FrameLetStar(variable: Identifier, bindings: List[(Identifier, SchemeExp)], body: List[SchemeExp], env: Env) extends SchemeFrame with Product with Serializable
    Definition Classes
    BaseSchemeSemantics
  15. case class FrameLetrec(addr: Addr, bindings: List[(Addr, SchemeExp)], body: List[SchemeExp], env: Env) extends SchemeFrame with Product with Serializable
    Definition Classes
    BaseSchemeSemantics
  16. case class FrameOr(rest: List[SchemeExp], env: Env) extends SchemeFrame with Product with Serializable
    Definition Classes
    BaseSchemeSemantics
  17. case class FrameSet(variable: Identifier, env: Env) extends SchemeFrame with Product with Serializable
    Definition Classes
    BaseSchemeSemantics
  18. trait SchemeFrame extends Frame
    Definition Classes
    BaseSchemeSemantics
  19. type Actions = Set[Action[SchemeExp, V, Addr]]
    Definition Classes
    BaseSchemeSemantics
  20. type Env = Environment[Addr]
    Definition Classes
    BaseSchemeSemantics
  21. type Sto = Store[Addr, V]
    Definition Classes
    BaseSchemeSemantics

Value Members

  1. implicit def actionToSet(action: Action[SchemeExp, V, Addr]): Set[Action[SchemeExp, V, Addr]]
    Definition Classes
    Semantics
  2. def conditional(v: V, t: ⇒ Actions, f: ⇒ Actions): Actions
    Definition Classes
    BaseSchemeSemantics
  3. def evalCall(function: V, fexp: SchemeExp, argsv: List[(SchemeExp, V)], store: Sto, t: Time): Actions
    Definition Classes
    BaseSchemeSemantics
  4. def evalDoBody(toeval: List[SchemeExp], vars: List[(Identifier, V, Option[SchemeExp])], test: SchemeExp, finals: List[SchemeExp], commands: List[SchemeExp], t: Time, env: Env, store: Sto): Actions
    Definition Classes
    BaseSchemeSemantics
  5. def evalDoStep(vars: List[(Identifier, V, Option[SchemeExp])], toeval: List[(Identifier, V, Option[SchemeExp])], test: SchemeExp, finals: List[SchemeExp], commands: List[SchemeExp], t: Time, env: Env, store: Sto): Actions
    Definition Classes
    BaseSchemeSemantics
  6. def initialBindings: List[(String, Addr, V)]

    Defines the elements in the initial environment/store

    Defines the elements in the initial environment/store

    Definition Classes
    BaseSchemeSemanticsSemantics
  7. def initialEnv: Iterable[(String, Addr)]
    Definition Classes
    Semantics
  8. def initialStore: Iterable[(Addr, V)]
    Definition Classes
    Semantics
  9. implicit def mfActionToActions(mf: MayFail[Action[SchemeExp, V, Addr]]): Set[Action[SchemeExp, V, Addr]]
    Definition Classes
    Semantics
  10. implicit def mfToActions(mf: MayFail[Set[Action[SchemeExp, V, Addr]]]): Set[Action[SchemeExp, V, Addr]]
    Definition Classes
    Semantics
  11. def parse(program: String): SchemeExp

    Defines how to parse a program

    Defines how to parse a program

    Definition Classes
    BaseSchemeSemanticsSemantics
  12. def stepEval(e: SchemeExp, env: Env, store: Sto, t: Time): Actions

    Defines what actions should be taken when an expression e needs to be evaluated, in environment env with store store

    Defines what actions should be taken when an expression e needs to be evaluated, in environment env with store store

    Definition Classes
    SchemeSemanticsBaseSchemeSemanticsSemantics
  13. def stepKont(v: V, frame: Frame, store: Sto, t: Time): Actions

    Defines what actions should be taken when a value v has been reached, and the topmost frame is frame

    Defines what actions should be taken when a value v has been reached, and the topmost frame is frame

    Definition Classes
    SchemeSemanticsBaseSchemeSemanticsSemantics
  14. def stepReceive(self: Any, mname: String, margsv: List[V], d: SchemeExp, env: Environment[Addr], store: Store[Addr, V], t: Time): Set[Action[SchemeExp, V, Addr]]

    WIP

    WIP

    Definition Classes
    Semantics
  15. object Action extends ActionHelpers[Exp, Abs, Addr]
    Definition Classes
    Semantics