p

tip

solvers

package solvers

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. All

Type Members

  1. trait Cons[A] extends Term[A]

    An n-ary term constructor.

    An n-ary term constructor. 0-ary constructors are constants.

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

  3. abstract class IDESolver[D, L <: Lattice] extends FlowSensitiveAnalysis with IDEAnalysis[D, L]

    (A variant of) the IDE analysis algorithm.

  4. final case class Lambda() extends Product with Serializable

    The special item representing the empty element in IDE.

  5. trait LatticeSolver extends AnyRef

    Base trait for lattice solvers.

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

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

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

  9. 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] ]

  10. class SimpleCubicSolver[V, T] extends AnyRef

    Simple cubic solver.

    Simple cubic solver.

    V

    type of variables

    T

    type of tokens

  11. trait SimpleFixpointSolver extends LatticeSolver

    Simple fixpoint solver.

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

  13. trait SimpleWorklistFixpointSolver[N] extends WorklistFixpointSolver[N]

    Worklist-based fixpoint solver.

    Worklist-based fixpoint solver.

    N

    type of the elements in the worklist.

  14. class SpecialCubicSolver[V] extends AnyRef

    Special cubic solver.

    Special cubic solver.

    V

    type of variables (tokens are a subset of variables)

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

  16. sealed trait Term[A] extends AnyRef

    A generic term: a variable Var, a constructor Cons, or a recursive term Mu.

    A generic term: a variable Var, a constructor Cons, or a recursive term Mu.

    A

    type parameter describing the kind of constraint system

  17. trait TermOps[A] extends AnyRef

    Special operations on terms.

  18. class UnificationFailure extends RuntimeException

    Exception thrown in case of unification failure.

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

  20. trait Var[A] extends Term[A]

    A constraint variable.

  21. trait Worklist[N] extends AnyRef

    An abstract worklist algorithm.

    An abstract worklist algorithm.

    N

    type of the elements in the worklist.

  22. trait WorklistFixpointPropagationFunctions[N] extends ListSetWorklist[N]

    Functions for solvers that perform propagation after transfer instead of join before transfer.

  23. 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).

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

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

  26. trait WorklistFixpointSolverWithReachabilityAndWidening[N] extends WorklistFixpointSolverWithReachability[N]

    Worklist-based fixpoint solver with reachability and widening.

  27. trait WorklistFixpointSolverWithReachabilityAndWideningAndNarrowing[N] extends WorklistFixpointSolverWithReachabilityAndWidening[N] with SimpleMapLatticeFixpointSolver[N]

    The worklist-based fixpoint solver with reachability, widening, and (simple) narrowing.

Value Members

  1. object FixpointSolvers

Ungrouped