PROgrammed Graph REwriting Systems
<language> (PROGRES) A very high level language based on graph grammars, developed by Andy Scheurr <
[email protected]> and Albert Zuendorf <
[email protected]> of RWTH, Aachen in 1991.
PROGRES supports structurally object-oriented specification of attributed graph structures with
multiple inheritance hierarchies and types of types (for
parametric polymorphism).
It also supports declarative/relational specification of derived attributes, node sets, binary relationships (directed edges) and
Boolean constraints, rule-oriented/visual specification of parameterised graph rewrite rules with complex application conditions,
nondeterministic and imperative programming of composite graph transformations (with built-in
backtracking and cancelling arbitrary sequences of failing graph modifications).
It is used for implementing
abstract data types with graph-like internal structure, as a visual language for the graph-oriented database {GRAS}, and as a rule-oriented language for prototyping
nondeterministically specified data/rule base transformations.
PROGRES has a formally defined semantics based on "PROgrammed Graph Rewriting Systems".
It is an almost statically typed language which additionally offers "down casting" operators for run time checked type casting/conversion (in order to avoid severe restrictions concerning the language's expressiveness).
Version RWTH 5.10 includes an integrated environment.
[A. Scheurr, "Introduction to PROGRES, an Attribute Graph Grammar Based Specification Language", in Proc WG89 Workshop on Graphtheoretic Concepts in Computer Science", LNCS 411, Springer 1991].
(ftp://ftp.informatik.rwth-aachen.de/pub/Unix/PROGRES/) for Sun-4.