(PROGRES) A very high level language based on
graph grammars, developed by Andy Scheurr
<andy@i3.informatik.rwth-aachen.de> and Albert Zuendorf
<albert@i3.informatik.rwth-aachen.de> 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.