case class UnboundVariablesAnalysis[Abs, Addr, Time]()(implicit evidence$15: JoinLattice[Abs], evidence$16: Address[Addr], evidence$17: Timestamp[Time]) extends Analysis[Set[LamExp], LamExp, Abs, Addr, Time] with Product with Serializable
This is our unbound variables analysis. We want to detect, for a lambda-calculus program, which evaluated variables may be unbound. We represent this by a set of lambda expressions, which is the lattice computed by this analysis: Set[LamExp]. This class defines how to update the current state of the analysis.
- Alphabetic
- By Inheritance
- UnboundVariablesAnalysis
- Serializable
- Serializable
- Product
- Equals
- Analysis
- AnyRef
- Any
- by CollectionsHaveToParArray
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
- new UnboundVariablesAnalysis()(implicit arg0: JoinLattice[Abs], arg1: Address[Addr], arg2: Timestamp[Time])
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
+(other: String): String
- Implicit
- This member is added by an implicit conversion from UnboundVariablesAnalysis[Abs, Addr, Time] to any2stringadd[UnboundVariablesAnalysis[Abs, Addr, Time]] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
-
def
->[B](y: B): (UnboundVariablesAnalysis[Abs, Addr, Time], B)
- Implicit
- This member is added by an implicit conversion from UnboundVariablesAnalysis[Abs, Addr, Time] to ArrowAssoc[UnboundVariablesAnalysis[Abs, Addr, Time]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate() @throws( ... )
-
def
ensuring(cond: (UnboundVariablesAnalysis[Abs, Addr, Time]) ⇒ Boolean, msg: ⇒ Any): UnboundVariablesAnalysis[Abs, Addr, Time]
- Implicit
- This member is added by an implicit conversion from UnboundVariablesAnalysis[Abs, Addr, Time] to Ensuring[UnboundVariablesAnalysis[Abs, Addr, Time]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: (UnboundVariablesAnalysis[Abs, Addr, Time]) ⇒ Boolean): UnboundVariablesAnalysis[Abs, Addr, Time]
- Implicit
- This member is added by an implicit conversion from UnboundVariablesAnalysis[Abs, Addr, Time] to Ensuring[UnboundVariablesAnalysis[Abs, Addr, Time]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean, msg: ⇒ Any): UnboundVariablesAnalysis[Abs, Addr, Time]
- Implicit
- This member is added by an implicit conversion from UnboundVariablesAnalysis[Abs, Addr, Time] to Ensuring[UnboundVariablesAnalysis[Abs, Addr, Time]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean): UnboundVariablesAnalysis[Abs, Addr, Time]
- Implicit
- This member is added by an implicit conversion from UnboundVariablesAnalysis[Abs, Addr, Time] to Ensuring[UnboundVariablesAnalysis[Abs, Addr, Time]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
error(err: SemanticError, current: Set[LamExp]): Set[LamExp]
The checking for unbound variables could be done here, by looking at the "err" parameter, which is UnboundVariable(name).
The checking for unbound variables could be done here, by looking at the "err" parameter, which is UnboundVariable(name). But that's not how we proceed for this analysis, because we want the full expression (and also, we want to show how to describe the analysis in terms of stepEval).
- Definition Classes
- UnboundVariablesAnalysis → Analysis
-
def
formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from UnboundVariablesAnalysis[Abs, Addr, Time] to StringFormat[UnboundVariablesAnalysis[Abs, Addr, Time]] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
init: Set[LamExp]
At the beginning of the program, no unbound variable has been evaluated
At the beginning of the program, no unbound variable has been evaluated
- Definition Classes
- UnboundVariablesAnalysis → Analysis
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
join(x: Set[LamExp], y: Set[LamExp]): Set[LamExp]
Joining two results is done by taking their union
Joining two results is done by taking their union
- Definition Classes
- UnboundVariablesAnalysis → Analysis
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
stepEval(e: LamExp, env: Environment[Addr], store: Store[Addr, Abs], t: Time, current: Set[LamExp]): Set[LamExp]
stepEval is called when the semantics' stepEval is called
stepEval is called when the semantics' stepEval is called
- Definition Classes
- UnboundVariablesAnalysis → Analysis
-
def
stepKont(v: Abs, frame: Frame, store: Store[Addr, Abs], t: Time, current: Set[LamExp]): Set[LamExp]
No unbound variables appear when a continuation is boing popped
No unbound variables appear when a continuation is boing popped
- Definition Classes
- UnboundVariablesAnalysis → Analysis
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toParArray: ParArray[T]
- Implicit
- This member is added by an implicit conversion from UnboundVariablesAnalysis[Abs, Addr, Time] to CollectionsHaveToParArray[UnboundVariablesAnalysis[Abs, Addr, Time], T] performed by method CollectionsHaveToParArray in scala.collection.parallel. This conversion will take place only if an implicit value of type (UnboundVariablesAnalysis[Abs, Addr, Time]) ⇒ GenTraversableOnce[T] is in scope.
- Definition Classes
- CollectionsHaveToParArray
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
→[B](y: B): (UnboundVariablesAnalysis[Abs, Addr, Time], B)
- Implicit
- This member is added by an implicit conversion from UnboundVariablesAnalysis[Abs, Addr, Time] to ArrowAssoc[UnboundVariablesAnalysis[Abs, Addr, Time]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc