Graph Grammar Based Integrated Env't/VHL-Language PROGRES available (Andreas Schuerr)
Tue, 2 Nov 1993 18:50:52 GMT

          From comp.compilers

Related articles
Graph Grammar Based Integrated Env't/VHL-Language PROGRES available (1993-11-02)
| List of all articles for this month |

Newsgroups: comp.compilers
From: (Andreas Schuerr)
Keywords: interpreter, tools, available
Organization: Informatik III, RWTH Aachen
Date: Tue, 2 Nov 1993 18:50:52 GMT

PROGRES - An integrated environment and very high level language
                    for PROgrammed Graph Rewriting Systems.
Copyright (C) 1991-93 Lehrstuhl Informatik III, RWTH Aachen

This release of the PROGRES environment consists of binary code only for
SUN 4 workstations. The source code will be made available upon request
under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version. But note that a large number of different free
software libraries, compilers, and generator tools have been used for
producing the final binary code (which must be available at your site for
making any "real" source code modifications).

Contact Addresses:

        Dr. Andy Schuerr (or Albert Zuendorf)
        Lehrstuhl fuer Informatik III,
        University of Technology Aachen (RWTH Aachen),
        Ahornstr. 55,
        D-5100 Aachen

Email to

Information about the PROGRES environment/language

Version : RWTH 5.10 (alpha-release,
                                                      2nd public version)
Release Date : November 1993

Compiled, linked, and tested for Sun4 (SunOS 4.1.1) and X11R4/X11R5 only .

Available via anonymous ftp from: as:

progres.<VersionNo>.tar.Z in directory pub/unix/PROGRES


PROGRES is an integrated environment for a very high level programming
language which has a formally defined semantics based on "PROgrammed Graph
Rewriting Systems". This language supports the following programming

1) Structurally object-oriented specification of attributed graph structures
      with multiple inheritance hierarchies and types of types (for parametric

2) Declarative/relational specification of derived attributes, node sets,
      binary relationships (directed edges), and Boolean constraints.

3) Rule-oriented/visual specification of parameterized graph rewrite rules
      with complex application conditions.

4) Nondeterministic & imperative programming of composite graph
      transformations (with built-in backtracking and cancelling arbitrary
      sequences of failing graph modifications).

Therefore, PROGRES may be used as

1) a very high level programming language for implementing abstract data types
      with a graph-like internal structure,

2) a visual database programming language for the graph-oriented database
      system GRAS (which is available as free software under the GNU license

3) a rule-oriented language for rapid prototyping nondeterministically
      specified data/rule base transformations.

Furthermore, PROGRES is an almost statically typed language which
additionally offers "down casting" operators for runtime checked type
casting/conversion (in order to avoid severe restrictions concerning the
language's expressiveness).

The PROGRES environment consists of the following integrated set of tools:

1) a mixed textual/graphical syntax-directed editor (with an incrementally
      working table-driven pretty printer),

2) an integrated (micro-) emacs-like text editor (with an incrementally
      working parser),

3) an incrementally working type-checker which detects all inconsistencies
      with respect to the PROGRES language's static semantics,

5) a text-oriented specification browser for finding declarations, applied
      occurrences of identifiers, ... ,

4) an ER-like graphical graph scheme browser (an instantiation of the system
      EDGE of the University of Karlsruhe),

6) an integrated interpreter which translates PROGRES specifications into
      intermediate code and executes this code afterwards (with minor parts
      still being incomplete),

7) a graph browser for arbitrary graphs stored in the GRAS database (another
      instantiation of the system EDGE of the University of Karlsruhe), and

7) a cross-compiler from PROGRES to Modula-2-code and C code which uses the
      procedural interface of the GRAS database system (with minor parts
      still being incomplete).

Note that the PROGRES environment has been built on top of the following
major subcomponents:

1) The non-standard database system GRAS from our department which is
      available as free software via ftp from
      in /pub/unix/GRAS.

2) The generic graph browser EDGE from the University of Karlsruhe which
      is either available via ftp from in
      /pub/graphics (original version) or from
      in /pub/unix/GRAS (GRAS-adapted version being part of the GRAS release).

3) The Interviews user interface toolkit from the University of Stanford
      which is available as free software via ftp from
      and uses either X11R4/5 or OpenWindows3.

Documentation of the PROGRES language and environment

Up to now the following documents are available which either describe
the PROGRES language or its environment:

1) The complete and (in)formal report for PROGRES language, version 1.1:
      Printed book: /Schuerr91b/, see list of references (in German).

2) Informal description of all language extensions/modifications from
      version 1.1 to version 5.10:
      Postscript-File: man/ (in German).

3) A guided tour through PROGRES including INSTALLATION guide lines:
      ASCII-Text-File: man/GUIDED_TOUR.

4) A list of frequently asked questions:
      ASCII-Text-File: man/FAQ (initial version).

5) A list of known bugs:
      ASCII-Text-File: man/BUGS.

6) A description how to convert old specifications in version 5.10
      compatible ones:
      ASCII-Text-File: CONVERT-TO-5.10.

7) Online help texts for all functions of the PROGRES environment:
      ASCII-Text-Files in directory: data/messages.
      (do not try to read the plain text version but use the PROGRES
        environment to read these explanations).

8) All papers and technical reports mentioned in the list of references

An informal introduction to the latest version of the language PROGRES
which is more comprehensive than /Schuerr91a/ is under preparation.

The PROGRES release consists of the following directories and files

README_5.10 this file
                .<files> a number of examples for window manager
configuration files etc.
bin for all executable files (not graph browser)
data for all user modifiable data and examples
                edgb for all graph browser executables etc.
lib for (dynamic) libraries (Interviews etc.)
man for information files

All these files and subdirectories are available via anonymous ftp from and are contained in the following tar-file:

progres.<VersionNo>.tar.Z in directory pub/unix/PROGRES

The following instructions create a new directory "progres" with the
above mentioned files and subdirectories:

uncompress progres.<VersionNo>.tar
tar -xvf progres.<VersionNo>.tar

In the case of more than one user of the PROGRES environment at your
site please create ONE account or directory containing all delivered
files with read permissions for all PROGRES users.


Refer to the following publications for further info about GRAS, PROGRES, and
related topics:

/BL85/ Brandes T., Lewerentz C.: A Non-Standard Data Base System within
                          a Software Development Environment. In Proc. of the Workshop
                          on Software Engineering Environments for Programming-in-the-
                          Large, pp 113-121, Cape Cod, June 1985

/ELNSS92/ Engels G., Lewerentz C., Nagl M., Schaefer W., Schuerr A.:
Building Integrated Software Development Environments Part I:
Tool Specification. In acm Transactions on Software Engineering
and Methodology, vol. 1, no. 2, pp. 135-167

/Feye92/ Feye A.: Compilation of Path Expression (in German), Diploma
Thesis, RWTH Aachen, Germany (1992)

/Hoefer92/ Hoefer F.: Incremental Attribute Evaluation for Graphs (in
German), Diploma Thesis, RWTH Aachen, Germany (1992)

/Klein92/ Klein P.: The PROGRES Graph Code Machine (in German), Diploma
Thesis, RWTH Aachen, Germany (1992)

/Kossing92/ Kossing P.: Modelling of Abstract Syntax Graphs for normalized
EBNFs, Diploma Thesis, RWTH Aachen, Germany (1992)

/KSW92/ * Kiesel N., Schuerr A., Westfechtel B.: Design and Evaluation
of GRAS, a Graph-Oriented Database System for Engineering
Applications, Technical Report AIB 92-44, RWTH Aachen, Germany

/LS88/ Lewerentz C., Schuerr A.: GRAS, a Management System for
Graph-Like Documents. In Proceedings of the 3rd International
Conference on Data and Knowledge Bases, Morgan Kaufmann
Publ. Inc. (1988), pp 19-31

/Nagl89/ Nagl M.(ed.): Proc. WG'89 Workshop on Graphtheoretic Concepts
                          in Computer Science, LNCS 411, Springer Verlag (1989)

/Newbery91/ Newbery Paulisch F.: The Design of an Extendible Graph Editor
                          Dissertation, University of Karlsruhe, Germany (1991)

/NS91/ Nagl M., Schuerr A.: A Specification Environment for Graph
Grammars, in Proc. 4th Int. Workshop on Graph-Grammars and
Their Application to Computer Science, LNCS 532, Springer
Verlag (1991), pp 599-609

/Schuerr89/ Schuerr A.: Introduction to PROGRES, an Attribute Graph Grammar
                          Based Specification Language, in: /Nagl89/, pp 151-165

/Schuerr91a/*Schuerr A.: PROGRES: A VHL-Language Based on Graph Grammars,
                          in Proc. 4th Int. Workshop on Graph-Grammars and Their
Application to Computer Science, LNCS 532, Springer Verlag
(1991), pp 641-659, also: Technical Report AIB 90-16, RWTH
Aachen, Germany (1990)

/Schuerr91b/ Schuerr A.: Operational Specifications with Programmed Graph
Rewriting Systems (in German), Dissertation, RWTH Aachen,
Deutscher Universitaetsverlag (1991)

/SW92/ Schuer A., Westfechtel B.: Graph Grammars and Graph Rewriting
Systems (in German), Course Book, Technical Report AIB 92-15,
RWTH Aachen, Germany (1992)

/SZ91/ * Schuerr A., Zuendorf A.: Nondeterministic Control Structures
for Graph Rewriting Systems, in Proc. WG'91 Workshop in Graph-
theoretic Concepts in Computer Science, LNCS 570, Springer
Verlag (1992), pp 48-62, also: Technical Report AIB 91-17,
RWTH Aachen, Germany (1991)

/Westfe89/ Westfechtel B.: Extension of a Graph Storage for Software
                          Documents with Primitives for Undo/Redo and Revision Control.
Technical Report AIB Nr. 89-8, RWTH Aachen, Germany (1989)

/Westfe91/ Westfechtel B.: Revision Control in an Integrated Software
Development Environment (in German), Dissertation, RWTH Aachen,
Informatik-Fachberichte 280, Springer Verlag (1991)

/Zohren92/ Zohren St.: The GRAS Server: A Client-Server Realization of
GRAS (in German), Diploma Thesis, RWTH Aachen, Germany (1992)

/Zuendorf89/ Zuendorf A.: Control Structures for the Specification Language
PROGRES (in German), Diploma Thesis, RWTH Aachen, Germany (1989)

/Zuendorf92/*Zuendorf A.: Implementation of the Imperative/Rule Based
Language PROGRES, Technical Report AIB 92-38, RWTH Aachen,
Germany (1992)

/Zuendorf93/*Zuendorf A.: A Heuristic Solution for the (Sub-) Graph
Isomorphism Problem in Executing PROGRES, Technical
Report AIB 93-5, RWTH Aachen, Germany (1993)

* : All reports marked with an asterisk are available via anonymous ftp from in directory /pub/reports/... .

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.