A specification environment for graph grammars

  • M. Nagl
  • A. Schürr
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 532)


Modelling environments (e.g. software development environments) offer tools which build up and maintain complex internal data structures. Therefore, before implementing such tools, it is advisable for the tool developer to formally specify the structure and the operations of these internal data structures. Graph Grammars as an operational specification method have been successfully used for this purpose for many years.

This paper describes an integrated set of tools for building up, maintaining, analyzing and executing such an internal specification described in the language PROGRESS, a graph grammar based VHL-Language. It sketches the characteristics of the PROGRESS environment, its software architecture, the specification of the environment in the language itself, and the implementation which, for the biggest part, have been generated.

The environment will be used for the following two main purposes: (i) for (syntax) checking PROGRESS specifications (at specification time) before implementing an efficiently working system which is equivalent to the specification, and (ii) for rapid prototyping purposes, i.e. for directly executing a specification.

The following paper has to be read in connection with /Sc 90a/ of this volume. Whereas /Sc 90a/ introduces the specification language PROGRESS and its methodological application to a small example the following paper concentrates on the environment's user characteristics and the realization of the environment.


Operational specification of abstract data types by graph grammars modelling environments especially software development environments static (type) checking rapid prototyping data modelling integrated and incremental tools 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

7. References

  1. /BL 85/.
    Th. Brandes/C. Lewerentz: GRAS: A Non-standard Data Base System within a Software Development, Proc. of the GTE Workshop on Software Engineering Environments for Programming in the Large, Harwichport, 113–121, (June 1985).Google Scholar
  2. /Ce 83/.
    S. Ceri (Ed.): Methodology and Tools for Database Design, North-Holland (1983).Google Scholar
  3. /EGNS 83/.
    G. Engels/R. Gall/M. Nagl/W. Schäfer: Software Specification using Graph Grammars, Computing 31, 317–346 (1983).CrossRefGoogle Scholar
  4. /ELS 87/.
    G. Engels/C. Lewerentz/W. Schäfer: Graph Grammar Engineering — A Software Specification Method, in Ehrig et al. (Eds.): Proc. 3rd Int. Workshop on Graph Grammars and Their Application to Computer Science, LNCS 153, 186–201, Berlin: Springer-Verlag (1987).Google Scholar
  5. /En 86/.
    G. Engels: Graphs as Central Data Structures in a Software Development Environment (in German), Doctoral Thesis, Düsseldorf: VDI-Verlag (1986).Google Scholar
  6. /ENS 86/.
    G. Engels/M. Nagl/W. Schäfer: On the Structure of Structures Editors for Different Applications, Proc. 2nd ACM Software Eng. Symp. on Pract. Software Development Environments, SIGPLAN Notices 22, 1, 190–198 (1986).Google Scholar
  7. /ES 87/.
    G. Engels/A. Schürr: A Hybrid Interpreter in a Software Development Environment, Proc. 1st European Software Engineering Conf., LNCS 289, 87–96, Berlin: Springer-Verlag (1980).Google Scholar
  8. /ES 89/.
    G. Engels/W. Schäfer: Program Development Environments — Concepts and Realization (in German), Stuttgart: Teubner Verlag (1989).Google Scholar
  9. /Gö 88/.
    H. Göttler: Graph Grammars in Software Engineering (in German), IFB 178, Berlin: Springer-Verlag (1988).Google Scholar
  10. /He 89/.
    R. Herbrecht: A Graph Grammar Editor (in German), Diploma-Thesis; RWTH Aachen (1989).Google Scholar
  11. /HT 86/.
    S. Horwitz/T. Teitelbaum: Generating Editing Environments Based on Relations and Attributes, ACM TOPLAS 8, 4, 577–608 (1986).CrossRefGoogle Scholar
  12. /Ja 86/.
    M. Jackel: Formal Specification of the Concurrent Constructs of Ada by Graph Grammars, Doctoral Dissertation, Univ. of Osnabrueck (1986).Google Scholar
  13. /Ja 91/.
    Th. Janning: Requirements Engineering and a Mapping to Programming in the Large, Dissertation forthcoming.Google Scholar
  14. /Le 88a/.
    C. Lewerentz: Extended Programming in the Large in a Software Development Environment, Proc. 3rd ACM SIGPLAN/SIGSOFT Symp. on Practical Software Engineering Environments, Software Engineering Notes 13, 5, 173–182 (1988).CrossRefGoogle Scholar
  15. /Le 88b/.
    C. Lewerentz: Interactive Design of Large Program Systems (in German), Doctoral Thesis, IFB 194, Berlin: Springer-Verlag (1988).Google Scholar
  16. /LM 86/.
    P.C. Lockemann/H.C. Mayr: Information System Design: Techniques and Software Support, in H.-J. Kugler (Ed.): Information Processing 86, 617–634, Elsevier Science Publ. (1986).Google Scholar
  17. /LS 88/.
    C. Lewerentz/A. Schürr: GRAS, a Management System for Graph-like Documents, in C. Beeri et al. (Eds.): Prod. 3rd Int. Conf. on Data and Knowledge Bases, 19–31, Los Altos: Morgan Kaufmann Publishers (1988).Google Scholar
  18. /Na 79/.
    M. Nagl: Graph Grammars: Theory, Applications, and Implementations (in German), Braunschweig: Vieweg-Verlag (1979).Google Scholar
  19. /Na 85/.
    M. Nagl: Graph Technology Applied to a Software Project, in Rozenberg, Salomaa (Eds.): The Book of L, 303–322, Berlin: Springer-Verlag (1985).Google Scholar
  20. /Re 84/.
    T. Reps: Generating Language-Based Environments, PH.D. Thesis, Cambridge, Mass.: MIT Press (1984).Google Scholar
  21. /Sc 86/.
    W. Schäfer: An Integrated Software Development Environment: Concepts, Design and Implementation (in German) Doctoral Thesis, Düsseldorf; VDI-Verlag (1986).Google Scholar
  22. /Sc 89/.
    A. Schürr: Introduction to PROGRESS, an Attribute Graph Grammar Based Specification Language, LNCS 411, 151–165 (1989).Google Scholar
  23. /Sc 90a/.
    A. Schürr: PROGRESS: A VHL-Language Based on Graph Grammars, this volume.Google Scholar
  24. /Sc 90b/.
    A. Schürr: Programming by Graph Rewriting Systems — Theoretical Foundations and the Corresponding Language (in German), Doctoral Dissertation, RWTH Aachen (1990).Google Scholar
  25. /Sp 89/.
    R.Spielmann: Development of a Basic Layer for Graph Grammar Interpreters (in German), Diploma Thesis, RWTH Aachen (1989).Google Scholar
  26. /We 90/.
    B. Westfechtel: Revision Control in an Integrated Software Development Environment (in German), Doctoral Dissertation, RWTH Aachen (1990).Google Scholar
  27. /Zü 89/.
    A. Zündorf: Control Structures for the Specification Language PROGRESS (in German), Diploma Thesis, RWTH (1989).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1991

Authors and Affiliations

  • M. Nagl
    • 1
  • A. Schürr
    • 1
  1. 1.Lehrstuhl f. Informatik IIIAachen University of TechnologyAachenGermany

Personalised recommendations