Package

it.unich

scalafix

Permalink

package scalafix

The fixpoint package contains everything which is related to defining and solving systems of equations. This package object defines some type aliases which are used in the API.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. scalafix
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. type Assignment[U, V] = (U) ⇒ V

    Permalink

    An assignment for an equation system is a map from unknowns to values.

  2. type Body[U, V] = (Assignment[U, V]) ⇒ Assignment[U, V]

    Permalink

    The body of an equation system, i.e., a map from assignments to assignments.

  3. type BodyWithDependencies[U, V] = (Assignment[U, V]) ⇒ Assignment[U, (V, Iterable[U])]

    Permalink

    A body which also calculates dependencies among unknowns.

  4. abstract class Box[V] extends (V, V) ⇒ V

    Permalink

    A Box is a way to combine two values into a new one.

    A Box is a way to combine two values into a new one. It is a specialization of the functional type (V,V) => V, where the first parameter is the old value of an unknown and the second parameter is the new contribution. Both widenings and narrowings are examples of boxes. Boxes are mutable, i.e., the apply method may give different results for the same input when called multiple times.

    Another function of boxes is to be blueprints for building other equivalent boxes. Each box has a copy method which should produce a functionally equivalent copy of this. The copy method should try to minimize object duplication.

    V

    the type of the values to combine.

  5. abstract class BoxAssignment[-U, V] extends PartialFunction[U, Box[V]]

    Permalink

    A BoxAssignment maps a subset of unknowns to a Box.

    A BoxAssignment maps a subset of unknowns to a Box. When isDefinedAt(u) is false for a given unknown u, the corresponding apply(u) should be a right box.

    Like it was the case for Box, a BoxAssignent is also a blueprint for buildind equivalent BoxAssignments. Each BoxAssignmant has a copy method which should produce a functionally equivalent copy of this. The copy method should try to minimize object duplication.

  6. type EdgeAction[U, V, E] = (Assignment[U, V]) ⇒ (E) ⇒ V

    Permalink

    The effect of an edge in a graph equation system.

  7. trait EquationSystem[U, V] extends AnyRef

    Permalink

    This is the abstract class for a generic equation system.

    This is the abstract class for a generic equation system.

    U

    the type for the unknowns of this equation system.

    V

    the type for the values assumed by the unknowns of this equation system.

  8. abstract class EquationSystemBase[U, V] extends EquationSystem[U, V]

    Permalink

    This class implements common utility methods.

  9. trait EquationSystemTracer[U, V] extends AnyRef

    Permalink

    An EquationSystemTracer implements some methods which are called by equation systems when certain events occurs.

    An EquationSystemTracer implements some methods which are called by equation systems when certain events occurs. They may be used for debugging, tracing, etc...

    U

    the type of unknowns supported by this tracer

    V

    the type of values for unknowns supported by this tracer

  10. abstract class EquationSystemTracerAdapter[U, V] extends EquationSystemTracer[U, V]

    Permalink

    This abstract class implements a tracer which does nothing.

    This abstract class implements a tracer which does nothing. May be sub-classed in order to override only the methods we are interested in.

  11. trait FixpointSolverTracer[U, V] extends AnyRef

    Permalink

    A FixpointSolverTracer implements some methods which are called by solvers when certain events occurs.

    A FixpointSolverTracer implements some methods which are called by solvers when certain events occurs. They may be used for debugging, tracing, etc...

    U

    the type of unknowns supported by this tracer

    V

    the type of values for unknowns supported by this tracer

  12. abstract class FixpointSolverTracerAdapter[U, V] extends FixpointSolverTracer[U, V]

    Permalink

    This abstract class implements a tracer for fixpoint solvers which does nothing.

    This abstract class implements a tracer for fixpoint solvers which does nothing. May be sub-classed in order to override only the methods we are interested in.

  13. case class SimpleEquationSystem[U, V](body: Body[U, V], initial: InputAssignment[U, V], inputUnknowns: (U) ⇒ Boolean, tracer: Option[EquationSystemTracer[U, V]] = None) extends EquationSystemBase[U, V] with Product with Serializable

    Permalink

    A simple standard implementation of EquationSystem.

    A simple standard implementation of EquationSystem. All fields must be provided explicitly by the user with the exception of bodyWithDependencies which is computed by body.

Value Members

  1. object Box

    Permalink

    The Box object defines several factories for building boxes.

  2. object BoxAssignment

    Permalink

    The BoxAssignment object defines factories for building box assignments.

  3. object EquationSystem

    Permalink
  4. object EquationSystemTracer

    Permalink
  5. object FixpointSolver

    Permalink

    The FixpointSolver object contains many enumerations and auxiliary classes which are used by other fixpoint solvers.

  6. object FixpointSolverTracer

    Permalink
  7. final val TRACING: Int

    Permalink

    The constant to use in -Xelide-below in order to remove tracing code.

    The constant to use in -Xelide-below in order to remove tracing code. Note that tracing might be required to make a program work, so only elide it if you known what you are doing.

  8. package assignments

    Permalink
  9. package finite

    Permalink
  10. package infinite

    Permalink
  11. package lattice

    Permalink
  12. package utils

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped