Effects Analysis
Stratego -- Strategies for Program Transformation
Effects analysis can further enhance the optimizations performed by the
Stratego optimizer.
The following questions should be answered by effects analysis:
- Does the strategy inspect the current term?
- Does the strategy change the current term?
- Does the strategy have a side-effect (io, table)?
- Does the strategy bind variables?
- Can the strategy fail, or is it guaranteed to succeed?
If the answers to all these questions is no, then the strateg is equivalent to the identity strategy id
.
In case some answers are no, optimizations may still be possible.
For instance, a sequence (t; s)
can be reduced to s
if s
does not inspect the current term. A
generalization of one of the build match fusion laws.
-- EelcoVisser - 17 Aug 2003
ToDo,
CategoryToDo?,
StrategoOptimization