package solvers
- Alphabetic
- Public
- All
Type Members
-
trait
Cons[A] extends Term[A]
An n-ary term constructor.
An n-ary term constructor. 0-ary constructors are constants.
-
trait
IDEAnalysis[D, L <: Lattice] extends AnyRef
Base trait for IDE analyses.
Base trait for IDE analyses.
- D
the type of items
- L
the type of the value lattice
-
abstract
class
IDESolver[D, L <: Lattice] extends FlowSensitiveAnalysis with IDEAnalysis[D, L]
(A variant of) the IDE analysis algorithm.
-
final
case class
Lambda() extends Product with Serializable
The special item representing the empty element in IDE.
-
trait
LatticeSolver extends AnyRef
Base trait for lattice solvers.
-
trait
ListSetWorklist[N] extends Worklist[N]
A simple worklist algorithm based on
scala.collection.immutable.ListSet
.A simple worklist algorithm based on
scala.collection.immutable.ListSet
. (Using a priority queue would typically be faster.)- N
type of the elements in the worklist.
-
trait
MapLatticeSolver[N] extends LatticeSolver with Dependencies[N]
Base trait for map lattice solvers.
Base trait for map lattice solvers.
- N
type of the elements in the map domain.
-
trait
MapLiftLatticeSolver[N] extends MapLatticeSolver[N] with Dependencies[N]
Base trait for solvers for map lattices with lifted co-domains.
Base trait for solvers for map lattices with lifted co-domains.
- N
type of the elements in the map domain.
-
trait
Mu[A] extends Term[A]
Recursive term.
Recursive term. Whenever a term is such that v = t[v] where v appears free in t[v], then we represent it finitely as μ v. t[v]. v is a binder in the term, and the copy rule holds: μ v. t[v] == t [ μ v. t[v] ]
-
class
SimpleCubicSolver[V, T] extends AnyRef
Simple cubic solver.
Simple cubic solver.
- V
type of variables
- T
type of tokens
-
trait
SimpleFixpointSolver extends LatticeSolver
Simple fixpoint solver.
-
trait
SimpleMapLatticeFixpointSolver[N] extends SimpleFixpointSolver with MapLatticeSolver[N]
Simple fixpoint solver for map lattices where the constraint function is defined pointwise.
Simple fixpoint solver for map lattices where the constraint function is defined pointwise.
- N
type of the elements in the map domain.
-
trait
SimpleWorklistFixpointSolver[N] extends WorklistFixpointSolver[N]
Worklist-based fixpoint solver.
Worklist-based fixpoint solver.
- N
type of the elements in the worklist.
-
class
SpecialCubicSolver[V] extends AnyRef
Special cubic solver.
Special cubic solver.
- V
type of variables (tokens are a subset of variables)
-
abstract
class
SummarySolver[D, L <: Lattice] extends FlowSensitiveAnalysis with IDEAnalysis[D, L]
A tabulation solver, variant of IDESolver.
A tabulation solver, variant of IDESolver.
- D
the type of items
- L
the type of the value lattice
-
sealed
trait
Term[A] extends AnyRef
A generic term: a variable Var, a constructor Cons, or a recursive term Mu.
-
trait
TermOps[A] extends AnyRef
Special operations on terms.
-
class
UnificationFailure extends RuntimeException
Exception thrown in case of unification failure.
-
class
UnionFindSolver[A] extends AnyRef
Unification solver based on union-find.
Unification solver based on union-find.
- A
type parameter describing the kind of constraint system
-
trait
Var[A] extends Term[A]
A constraint variable.
-
trait
Worklist[N] extends AnyRef
An abstract worklist algorithm.
An abstract worklist algorithm.
- N
type of the elements in the worklist.
-
trait
WorklistFixpointPropagationFunctions[N] extends ListSetWorklist[N]
Functions for solvers that perform propagation after transfer instead of join before transfer.
-
trait
WorklistFixpointPropagationSolver[N] extends WorklistFixpointSolverWithReachability[N] with WorklistFixpointPropagationFunctions[N]
Worklist-based fixpoint solver that performs propagation after transfer instead of join before transfer.
Worklist-based fixpoint solver that performs propagation after transfer instead of join before transfer. This results in fewer join operations when nodes have many dependencies. Note that with this approach, each abstract state represents the program point *before* the node (for a forward analysis, and opposite for a backward analysis).
-
trait
WorklistFixpointSolver[N] extends MapLatticeSolver[N] with ListSetWorklist[N] with Dependencies[N]
Base trait for worklist-based fixpoint solvers.
Base trait for worklist-based fixpoint solvers.
- N
type of the elements in the worklist.
-
trait
WorklistFixpointSolverWithReachability[N] extends WorklistFixpointSolver[N] with MapLiftLatticeSolver[N]
The worklist-based fixpoint solver with reachability.
The worklist-based fixpoint solver with reachability.
This solver works for map lattices with lifted co-domains, where the extra bottom element typically represents "unreachable".
-
trait
WorklistFixpointSolverWithReachabilityAndWidening[N] extends WorklistFixpointSolverWithReachability[N]
Worklist-based fixpoint solver with reachability and widening.
-
trait
WorklistFixpointSolverWithReachabilityAndWideningAndNarrowing[N] extends WorklistFixpointSolverWithReachabilityAndWidening[N] with SimpleMapLatticeFixpointSolver[N]
The worklist-based fixpoint solver with reachability, widening, and (simple) narrowing.
Value Members
- object FixpointSolvers