Package it.unive.lisa.analysis
Interface AbstractState<A extends AbstractState<A,H,V,T>,H extends HeapDomain<H>,V extends ValueDomain<V>,T extends TypeDomain<T>>
-
- Type Parameters:
A
- the concrete type of theAbstractState
H
- the type ofHeapDomain
embedded in this stateV
- the type ofValueDomain
embedded in this stateT
- the type ofValueDomain
andTypeDomain
embedded in this state
- All Superinterfaces:
Lattice<A>
,SemanticDomain<A,SymbolicExpression,Identifier>
- All Known Implementing Classes:
SimpleAbstractState
public interface AbstractState<A extends AbstractState<A,H,V,T>,H extends HeapDomain<H>,V extends ValueDomain<V>,T extends TypeDomain<T>> extends Lattice<A>, SemanticDomain<A,SymbolicExpression,Identifier>
An abstract state of the analysis, composed by a heap state modeling the memory layout and a value state modeling values of program variables and memory locations. An abstract state also wraps a domain to reason about runtime types of such variables.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface it.unive.lisa.analysis.SemanticDomain
SemanticDomain.Satisfiability
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
HEAP_REPRESENTATION_KEY
The key that should be used to store the instance ofHeapDomain
inside theDomainRepresentation
returned bySemanticDomain.representation()
.static java.lang.String
TYPE_REPRESENTATION_KEY
The key that should be used to store the instance ofTypeDomain
inside theDomainRepresentation
returned bySemanticDomain.representation()
.static java.lang.String
VALUE_REPRESENTATION_KEY
The key that should be used to store the instance ofValueDomain
inside theDomainRepresentation
returned bySemanticDomain.representation()
.-
Fields inherited from interface it.unive.lisa.analysis.Lattice
BOTTOM_STRING, TOP_STRING
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description H
getHeapState()
Yields the instance ofHeapDomain
that contains the information on heap structures contained in this abstract state.T
getTypeState()
Yields the instance ofValueDomain
andTypeDomain
that contains the information on runtime types of program variables and concretized memory locations.V
getValueState()
Yields the instance ofValueDomain
that contains the information on values of program variables and concretized memory locations.-
Methods inherited from interface it.unive.lisa.analysis.Lattice
bottom, isBottom, isTop, lessOrEqual, lub, top, widening
-
Methods inherited from interface it.unive.lisa.analysis.SemanticDomain
assign, assume, forgetIdentifier, forgetIdentifiers, forgetIdentifiersIf, getDomainInstance, popScope, pushScope, representation, satisfies, smallStepSemantics
-
-
-
-
Field Detail
-
HEAP_REPRESENTATION_KEY
static final java.lang.String HEAP_REPRESENTATION_KEY
The key that should be used to store the instance ofHeapDomain
inside theDomainRepresentation
returned bySemanticDomain.representation()
.- See Also:
- Constant Field Values
-
TYPE_REPRESENTATION_KEY
static final java.lang.String TYPE_REPRESENTATION_KEY
The key that should be used to store the instance ofTypeDomain
inside theDomainRepresentation
returned bySemanticDomain.representation()
.- See Also:
- Constant Field Values
-
VALUE_REPRESENTATION_KEY
static final java.lang.String VALUE_REPRESENTATION_KEY
The key that should be used to store the instance ofValueDomain
inside theDomainRepresentation
returned bySemanticDomain.representation()
.- See Also:
- Constant Field Values
-
-
Method Detail
-
getHeapState
H getHeapState()
Yields the instance ofHeapDomain
that contains the information on heap structures contained in this abstract state.- Returns:
- the heap domain
-
getValueState
V getValueState()
Yields the instance ofValueDomain
that contains the information on values of program variables and concretized memory locations.- Returns:
- the value domain
-
getTypeState
T getTypeState()
Yields the instance ofValueDomain
andTypeDomain
that contains the information on runtime types of program variables and concretized memory locations.- Returns:
- the type domain
-
-