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.
References
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
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
R.M.Burstall, D.B.MacQueen, D.T.Sannella: HOPE — An Experimental Applicative Language, Technical Report CSR-62-80; Edinburgh University
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
R. Constable, D. Zlatin: 1984 The Type Theory of PL/CV3, in ACM TOPLAS, vol. 6, no. 1, pp. 94–117
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
G. Engels: 1986 Graphen als zentrale Datenstrukturen in einer Software-Entwicklungsumgebung, PH.D. Thesis; Düsseldorf: VDI-Verlag
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
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
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
H. Göttler: 1988 Graphgrammatiken in der Softwaretechnik, IFB 178; Berlin: Springer-Verlag
R.Herbrecht: Ein erweiterter Graphgrammatik-Editor, Diploma Thesis; University of Technology Aachen
S. Horwitz, T. Teitelbaum: 1986 Generating Editing Environments Based on Relations and Attributes, in Proc. ACM TOPLAS, vol. 8, no. 4, pp. 577–608
S.E. Hudson: 1987 Incremental Attribute Evaluation: An Algorithm for Lazy Evaluation in Graphs, Technical Report TR 87-20; Tucson: University of Arizona
R. Hull, R. King: 1987 Semantic Database Modeling: Survey, Applications, and Research Issues, in ACM Computing Surveys, vol. 19, No. 3, pp. 201–260
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
M.Kaul: Präzedenz Graph-Grammatiken, PH.D. Thesis; University of Passau
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
P.J. Landin: 1966 The next 700 programming languages, Com. ACM 9, pp. 157–164
C.Lewerentz: Extended Programming in the Large in a Software Development Environment, Proc 3rd ACM SIGPLAN/SIFSOFT Symp. on Practical Software Engineering Environments
C. Lewerentz: 1988a Interaktives Entwerfen großer Programmsysteme, PH.D. Thesis, IFB 194; Berlin: Springer-Verlag
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
A.Meier: A Graph-Relational Approach to Geographic Databases, in /ENR 82/, pp. 245–254
A.R.Meyer, M.B.Reinhold: 'Type’ is not a type, Proc. 13th ACM Symp. POPL '86, pp. 287–295
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
M. Nagl: 1979 Graph-Grammatiken: Theorie, Implementierung, Anwendungen; Braunschweig: Vieweg-Verlag
M. Nagl: 1985 Graph Technology Applied to a Software Project, in Rozenberg, Salomaa (Eds): The Book of L; Berlin: Springer-Verlag, pp. 303–322
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
K.Normark: Transformations and Abstract Presentations in Language Development Environment, Technical Report DAIMI PB-222; Aarhus University
T. Reps: 1984 Generating Language-Based Environments, PH.D. Thesis; Cambridge, Mass.: MIT Press
T.Reps, T.Teilbaum: The Synthesizer Generator, in Proc. ACM SIGSOFT/SIGPLAN Symp. on Practical Software Development Environments, pp. 42–48
A. Schütte: 1987 Spezifikation und Generierung von Übersetzern für Graph-Sprachen durch attributierte Graph-Grammatiken, PH.D. Thesis; Berlin: EXpress-Edition
J.F. Sowa: 1984 Conceptual Structures: Information Processing in Minds and Machines; Reading, Mass.: Addison-Wesley
G. Tinhofer, G. Schmidt (Eds.): Proc. WG '86 Workshop on Graph-Theoretic Concepts in Computer Science, LNCS 246; Berlin: Springer-Verlag
Author information
Authors and Affiliations
Editor information
Rights 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