Commit b30c3723 authored by Dr. Michael Petter's avatar Dr. Michael Petter

clarified immutability

parent 582cfb69
...@@ -87,6 +87,13 @@ It offers informations like programstates, beginstate, endstate, and transitions ...@@ -87,6 +87,13 @@ It offers informations like programstates, beginstate, endstate, and transitions
between the states. Normally, You do not have to touch this one directly, instead between the states. Normally, You do not have to touch this one directly, instead
rely on the fixpoint engine: rely on the fixpoint engine:
## Program Transformations
The CFG structure package is designed based on edges, whose static data (i.e. label,
e.g. lhs/rhs of an assignment) is immutable after construction. In case of manipulation
of the CFG, the programmer is supposed to introduce new edges and delete old ones.
## Fixpoint engine ## Fixpoint engine
For the fixpoint-engine, you need to create your own class: For the fixpoint-engine, you need to create your own class:
......
...@@ -6,8 +6,12 @@ import petter.cfg.Visitor; ...@@ -6,8 +6,12 @@ import petter.cfg.Visitor;
import java.util.Map; import java.util.Map;
import java.util.HashMap; import java.util.HashMap;
/** /**
* represents an edge in a CFG * represents an edge in a CFG; abstract class for all kinds of CFGEdge
* abstract class for all kinds of CFGEdge * edges are supposed to be immutable wrt. their static
* properties (e.g. lhs and rhs for assignments). Transformations on
* the CFG are supposed to introduce new edges either directly or via
* the TransitionFactory
* @see petter.cfg.TransitionFactory
*/ */
public abstract class Transition implements java.io.Serializable, Analyzable{ public abstract class Transition implements java.io.Serializable, Analyzable{
protected State source; protected State source;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment