next up previous contents
Next: Principal modes Up: General Topics Previous: General Topics

Design procedure for an optimizer

In order to generate optimizer parts with we propose the following procedure [Aßm96b].

1.
Write down all preconditions for a transformation, perhaps in text.
2.
Define the data model of your application, i.e. define which parts of the knowledge you want to present should be objects and which should be relations. This can be done either in Java, with the syntax of the tool AST from the GMD toolbox Cocktail [GE90] [Gro89], or -- within the context of the compiler model CoSy -- in CoSy-fSDL [Buh95].

3.
Design of the data manipulation, i.e. formulate graph rewrite systems that compute and transform the graphs that were defined in the data model. Build graphs with edge addition rewrite systems (EARS), and transform them via general graph rewrite systems (GRS).

4.
Think about the representations of the graphs. Which algorithms does generate for a problem and with which graph representations do these run fast? Exchange graph representations (functor calls) accordingly.



Uwe Assmann
1998-12-22