Stratego Optimization

Stratego -- Strategies for Program Transformation
The StrategoCompiler performs a number of transformations/optimizations including the following:

  • Pattern match merging
  • Symbol caching
  • Simplification
  • Desugaring

The following optimizations are supported experimentally, but implementation should be improved:

New optimizations that could beneficial

To measure the effect of optimizations set up

  • StrategoBench?

-- EelcoVisser - 08 Dec 2001


  • Control what kind of object files (dbg, opt, prof) are linked
    • use gcc lib as standard (is optimized O4)

  • F(id,\ H(x) -> G(x,x) \, id) is equivalent to \ F(a, H(x), b) -> F(a, G(x,x), b)
  • set up benchmarks and reggression tests
    • propositional formulae
    • sieve
    • note: the compiler itself is of course the real regression test although it does not cover all aspects/constructs of the language

  • Make a set of benchmarks that can function as reference for optimizations

  • Do effects analysis on strategy expressions; distinghuish the following effects: no effect, transformation effect, variable binding effect, failure effect

  • Also inline sums of rules if they occur inside a sum

  • Generate congruence definition by need in the same style as threading and distributing congruences.


CategoryToDo? | ToDo

Stratego.StrategoOptimization moved from Stratego.StrategoOptimizations on 09 Dec 2001 - 14:24 by EelcoVisser - put it back