Skip to main content

Introduction to PROGRESS, an attribute graph grammar based specification language

  • Graph Grammars: Theory And Application
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 411))

Abstract

The language PROGRESS presented within this paper is the first strongly typed language which is based on the concepts of PROgrammed Graph REwriting SyStems. This language supports a data flow oriented style of programming (by means of attribute equations), an object oriented style of programming (by supporting multiple inheritance and dynamic bind of attribute designators to their value defining equations), a rule based style of programming (by using graph rewrite rules), and an imperative style of programming (by composing single graph rewrite rules to complex transformation programs). Both the language and its underlying formalism are based on an experience of about seven years with a model oriented approach to the specification of document classes and document processing tools (of the Integrated Programming Support ENvironment IPSEN). This approach, called graph grammar engineering, is characterized by using attributed graphs to model object structures. Programmed graph rewriting systems are used to specify operations in terms of their effect on these graph models. This paper informally introduces PROGRESS' underlying graph grammar formalism and demonstrates its systematic use by specifying parts of a desk calculator's functional behaviour.

Supported by Stiftung Volkswagenwerk

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. B. Alpern, A. Carle, B. Rosen, P. Sweeney, K. Zadeck: 1987 Incremental Evaluation of Attributed Graphs, T. Report CS-87-29; Providence, Rhode Island: Brown University

    Google Scholar 

  2. H. Ait-Kaci: 1984 A Lattice-Theoretic Approach to Computation Based on a Calculus of Partially-Ordered Type Structures, Ph.D. Thesis; Philadelphia: University of Pennsylvania

    Google Scholar 

  3. R.M.Burstall, D.B.MacQueen, D.T.Sannella: HOPE — An Experimental Applicative Language, Technical Report CSR-62-80; Edinburgh University

    Google Scholar 

  4. R.J. Cunningham, A.J.J. Dick: 1985 Rewrite Systems on a Lattice of Types, in Acta Informatica 22, Berlin: Springer Verlag, pp. 149–169

    Google Scholar 

  5. R. Constable, D. Zlatin: 1984 The Type Theory of PL/CV3, in ACM TOPLAS, vol. 6, no. 1, pp. 94–117

    Article  Google Scholar 

  6. G. Engels, C. Lewerentz, W. Schäfer: 1987 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; Berlin: Springer Verlag, pp. 186–201

    Google Scholar 

  7. G. Engels: 1986 Graphen als zentrale Datenstrukturen in einer Software-Entwicklungsumgebung, PH.D. Thesis; Düsseldorf: VDI-Verlag

    Google Scholar 

  8. G. Engels, W. Schäfer: 1985 Graph Grammar Engineering: A Method Used for the Development of an Integrated Programming Support Environment, in Ehrig et al. (Eds.): Proc. TAPSOFT '85, LNCS 186; Berlin: Springer-Verlag, pp. 179–193

    Google Scholar 

  9. R. Elmasri, G. Wiederhold: 1983 GORDAS: A Formal High-Level Query Language for the Entity-Relationship Model, in P.P. Chen (ed.): Entity-Relationship Approach to Information Modeling and Analysis, Amsterdam: Elsevier Science Publishers B.V. (North-Holland), pp. 49–72

    Google Scholar 

  10. H.J. Genrich, D. Janssens, G. Rozenberg, P.S. Thiagarajan: 1982 Petri nets an their relation to graph grammars, in Ehrig et al.: Proc. 2nd Int. Workshop on Graph Grammars and Their Application to Computer Science, LNCS 153; Berlin: Springer Verlag, pp. 115–142

    Google Scholar 

  11. H. Göttler: 1988 Graphgrammatiken in der Softwaretechnik, IFB 178; Berlin: Springer-Verlag

    Google Scholar 

  12. R.Herbrecht: Ein erweiterter Graphgrammatik-Editor, Diploma Thesis; University of Technology Aachen

    Google Scholar 

  13. S. Horwitz, T. Teitelbaum: 1986 Generating Editing Environments Based on Relations and Attributes, in Proc. ACM TOPLAS, vol. 8, no. 4, pp. 577–608

    Article  Google Scholar 

  14. S.E. Hudson: 1987 Incremental Attribute Evaluation: An Algorithm for Lazy Evaluation in Graphs, Technical Report TR 87-20; Tucson: University of Arizona

    Google Scholar 

  15. R. Hull, R. King: 1987 Semantic Database Modeling: Survey, Applications, and Research Issues, in ACM Computing Surveys, vol. 19, No. 3, pp. 201–260

    Article  Google Scholar 

  16. G.F.Johnson, C.N.Fischer: A Metalanguage and System for Nonlocal Incremental Attribute Evaluation in Language-Based Editors, in Proc. ACM Symp. POPL '84

    Google Scholar 

  17. M.Kaul: Präzedenz Graph-Grammatiken, PH.D. Thesis; University of Passau

    Google Scholar 

  18. S.M. Kaplan, St.K. Goering: 1989 Priority Controlled Incremental Attribute Evaluation in Attributed Graph Grammars, in Diaz, Orejas (Eds.): Proc. TAPSOFT '89, vol. 1, LNCS 351, Berlin: Springer Verlag, pp.306–320

    Google Scholar 

  19. P.J. Landin: 1966 The next 700 programming languages, Com. ACM 9, pp. 157–164

    Article  Google Scholar 

  20. C.Lewerentz: Extended Programming in the Large in a Software Development Environment, Proc 3rd ACM SIGPLAN/SIFSOFT Symp. on Practical Software Engineering Environments

    Google Scholar 

  21. C. Lewerentz: 1988a Interaktives Entwerfen großer Programmsysteme, PH.D. Thesis, IFB 194; Berlin: Springer-Verlag

    Google Scholar 

  22. C. Lewerentz, A. Schürr: 1988 GRAS, a Management System for Graph-like Documents, in C. Beeri et al. (Eds.): Proc. 3rd Int. Conf. on Data and Knowledge Bases; Los Altos, California: Morgan Kaufmann Publishers Inc., pp. 19–31

    Google Scholar 

  23. A.Meier: A Graph-Relational Approach to Geographic Databases, in /ENR 82/, pp. 245–254

    Google Scholar 

  24. A.R.Meyer, M.B.Reinhold: 'Type’ is not a type, Proc. 13th ACM Symp. POPL '86, pp. 287–295

    Google Scholar 

  25. U. Möncke, B. Weisgerber, R. Wilhelm: 1984 How to Implement a System for the Manipulation of Attributed Trees, in U. Ammann (Ed.): Programmiersprachen und Programmentwicklung, IFB 77; Berlin: Springer Verlag

    Google Scholar 

  26. M. Nagl: 1979 Graph-Grammatiken: Theorie, Implementierung, Anwendungen; Braunschweig: Vieweg-Verlag

    Google Scholar 

  27. M. Nagl: 1985 Graph Technology Applied to a Software Project, in Rozenberg, Salomaa (Eds): The Book of L; Berlin: Springer-Verlag, pp. 303–322

    Google Scholar 

  28. J. Newcomer: 1986 IDL: Past Experience and New Ideas, in Conradi et al. (Eds.): Advanced Programming Environments, LNCS 244; Berlin: Springer-Verlag, pp. 257–289

    Google Scholar 

  29. K.Normark: Transformations and Abstract Presentations in Language Development Environment, Technical Report DAIMI PB-222; Aarhus University

    Google Scholar 

  30. T. Reps: 1984 Generating Language-Based Environments, PH.D. Thesis; Cambridge, Mass.: MIT Press

    Google Scholar 

  31. T.Reps, T.Teilbaum: The Synthesizer Generator, in Proc. ACM SIGSOFT/SIGPLAN Symp. on Practical Software Development Environments, pp. 42–48

    Google Scholar 

  32. A. Schütte: 1987 Spezifikation und Generierung von Übersetzern für Graph-Sprachen durch attributierte Graph-Grammatiken, PH.D. Thesis; Berlin: EXpress-Edition

    Google Scholar 

  33. J.F. Sowa: 1984 Conceptual Structures: Information Processing in Minds and Machines; Reading, Mass.: Addison-Wesley

    Google Scholar 

  34. G. Tinhofer, G. Schmidt (Eds.): Proc. WG '86 Workshop on Graph-Theoretic Concepts in Computer Science, LNCS 246; Berlin: Springer-Verlag

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Manfred Nagl

Rights and permissions

Reprints and permissions

Copyright information

© 1990 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Schürr, A. (1990). Introduction to PROGRESS, an attribute graph grammar based specification language. In: Nagl, M. (eds) Graph-Theoretic Concepts in Computer Science. WG 1989. Lecture Notes in Computer Science, vol 411. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-52292-1_11

Download citation

  • DOI: https://doi.org/10.1007/3-540-52292-1_11

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-52292-8

  • Online ISBN: 978-3-540-46950-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics