Related articles |
---|
Graph Grammar Based Integrated Env't/VHL-Language PROGRES available andy@i3.informatik.rwth-aachen.de (1993-11-02) |
Newsgroups: | comp.compilers |
From: | andy@i3.informatik.rwth-aachen.de (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.
RESEARCH PROTOTYPE - ALPHA RELEASE
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
andy@i3.informatik.rwth-aachen.de
albert@i3.informatik.rwth-aachen.de
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: ftp.informatik.rwth-aachen.de 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
paradigms/purposes:
1) Structurally object-oriented specification of attributed graph structures
with multiple inheritance hierarchies and types of types (for parametric
polymorphy).
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
conditions),
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 ftp.informatik.rwth-aachen.de
in /pub/unix/GRAS.
2) The generic graph browser EDGE from the University of Karlsruhe which
is either available via ftp from ftp.informatik.uni-karlsruhe.de in
/pub/graphics (original version) or from ftp.informatik.rwth-aachen.de
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 interviews.stanford.edu
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/PROGRES-Nachtrag-93.ps (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
below.
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
ftp.informatik.rwth-aachen.de 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.
References
----------
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
(1992)
/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
ftp.informatik.rwth-aachen.de in directory /pub/reports/... .
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.