PROGRES - A Graph Transformation Programming Environment
Note: PROGRES has ended in 2006.
Graphs play an important role within many areas of computer science. Rule-based languages, on the other hand, are well-suited for the high-level description of transformation or inference processes on complex data strutures. Why not combining these two successful principles in one formalism? This was and still is the common vision of the graph transformation community and the main motivation behind the development of PROGRES, a visual language and tool that supports PROgramming with Graph Rewriting Systems.
The development of the language PROGRES started around 1986 having the following design goals in mind:
- Distinguish between data definition and manipulation activities, and using graph schemata – nowadays called meta-models – to type-check graph transformation rules.
- Do not rely on the rule-oriented paradigm for all purposes, but support also imperative programming with control structures as well as definition of derived graph properties by using a combination of declarative constructs adopted from attribute grammars, logic programming languages, and object-oriented database query languages.
- Refrain users from the task to guarantee confluence of defined rules by keeping track of rule application and rewriting conflicts and backtracking out dead-ends of graph transformation sequences.
The PROGRES programming environment offered assistance for creating, analyzing, compiling, and debugging graph transformations as well as for rapid prototyping activities of interactive domain-specific visual language tools. Being an integrated set of tools with support for intertwining these activities, it combined the flexibility of interpreted languages by means of a virtual graph transformation engine with the safeness of compiled and statically typed languages by means of about 300 different static analysis checks and code generator backends for C, Modula-2, and Java.
The PROGRES graph transformation language and environment probably was the first of its kind that was not only used by its developers, but over a time span for more than a decade by a number of projects at different universities around the world. Around 2006, the development of PROGRES stopped having inspired and triggered the development of new graph transformation tools like Fujaba, eMoflon, etc., which are compatible with the world of OMG standards and Eclipse-based MDD tools.
For more information see the PROGRES project site.
- P. Aschenbrenner: "Generierung interaktiver Lerneinheiten aus visuellen Spezifikationen", Universität der Bundeswehr München, 2006.
- J. Szuba: "Graphs and Graph Transformations in Design in Engineering", Polish Academy of Sciences, 2005.
- M. Münch: “Generic Modelling with Graph Rewriting Systems”, RWTH Aachen, 2002
- A. Winter: “Visuelles Programmieren mit Graphtransformationen“, RWTH Aachen, 2000
- A. Radermacher: "Tool Support for the Distribution of Object-based Applications", RWTH Aachen, 2000.
- A. Zündorf: “Eine Entwicklungsumgebung für PROgrammierte Graph-Ersetzungs-Systeme“, RWTH Aachen, 1995
- A. Schürr: Operationales Spezifizieren mit programmierten Graphersetzungssystemen, Wiesbaden: Deutscher Universitätsverlag, 1991.