Advertisement

Progress: A VHL-language based on graph grammars

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

Abstract

The Very High Level language PROGRESS presented within this paper is the first statically typed language which is based on the concepts of PRO grammed Graph RE-writing SyStems. This language supports different programming paradigms by offering procedural and declarative programming constructs for the definition of integrity constraints, functional attribute dependencies, derived binary relationships, atomic graph rewrite rules, and complex graph transformations.

Both the language and its underlying formalism are based on experiences of about ten 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 syntax-directed editor for a simple expression language. The construction of a PROGRESS-specific environment with an integrated set of tools is the topic of another paper within this volume (cf. /NS 90/).

Keywords

Model-oriented specification language graph rewriting systems attribute grammars programmed graph grammars statically typed language 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. /AC 87/.
    Alpern B., Carle A., Rosen B., Sweeney P., Zadeck K.: 1987 Incremental Evaluation of Attributed Graphs, T. Report CS-87-29; Providence, Rhode Island: Brown UniversityGoogle Scholar
  2. /AK 84/.
    Ait-Kaci H.: 1984 A Lattice-Theoretic Approach to Computation Based on a Calculus of Partially-Ordered Type Structures, Ph.D. Thesis; Philadelphia: University of PennsylvaniaGoogle Scholar
  3. /BM 81/.
    Burstall R.M., MacQueen D.B., Sannella D.T.: HOPE — An Experimental Applicative Language, Technical Report CSR-62-80; Edinburgh UniversityGoogle Scholar
  4. /CD 85/.
    Cunningham R.J., Dick A.J.J.: 1985 Rewrite Systems on a Lattice of Types, in Acta Informatica 22, Berlin: Springer Verlag, 149–169Google Scholar
  5. /Co 88/.
    Courcelle B., 1988 The Monadic Second Order Theory of Graphs: Definable Sets of Finite Graphs, in Leeuwen (ed.): Proc. Int. Workshop on Graph-Theoretic Concepts in Computer Science (WG '88), LNCS 344; Berlin: Springer VerlagGoogle Scholar
  6. /CZ 84/.
    Constable R., Zlatin D.: 1984 The Type Theory of PL/CV3, in ACM TOPLAS, vol. 6, no. 1, 94–117CrossRefGoogle Scholar
  7. /EH 86/.
    Ehrig H., Habel A.: 1986 Graph Grammars with Application Condition, in Rozenberg, Salomaa (eds.): The Book of L, Berlin: Springer Verlag, 87–100Google Scholar
  8. /EL 87/.
    Engels G., Lewerentz C., Schäfer W.: 1987 Graph Grammar Engineering — A Software Specification Method, in: Proc. 3rd Int. Workshop on Graph Grammars and Their Application to Computer Science, LNCS 153; Berlin: Springer Verlag, 186–201Google Scholar
  9. /ES 87/.
    Engels G., Schürr A.: 1987 A Hybrid Interpreter in a Software Development Environment, in: Proc. TAPSOFT '85, LNCS 186; Berlin: Springer-Verlag, 179–193Google Scholar
  10. /EW 83/.
    Elmasri R., Wiederhold G.: 1983 GORDAS: A Formal High-Level Query Language for the Entity-Relationship Model, in Chen (ed.): Entity-Relationship Approach to Information Modeling and Analysis, Amsterdam: Elsevier Science Publishers B.V. (North-Holland), 49–72Google Scholar
  11. /GJ 82/.
    Genrich H.J., Janssens D., Rozenberg G., Thiagarajan P.S.: 1982 Petri nets and their relation to graph grammars, in Ehrig et al. (ed.): Proc. 2nd Int. Workshop on Graph Grammars and Their Application to Computer Science, LNCS 153; Berlin: Springer Verlag, 115–142Google Scholar
  12. /Gö 88/.
    Göttler H.: 1988 Graphgrammatiken in der Softwaretechnik, IFB 178; Berlin: Springer-VerlagGoogle Scholar
  13. /He 89/.
    Herbrecht R.: 1989 Ein erweiterter Graphgrammatik-Editor, Diploma Thesis; Aachen: University of TechnologyGoogle Scholar
  14. /HT 86/.
    Horwitz S., Teitelbaum T.: 1986 Generating Editing Environments Based on Relations and Attributes, in Proc. ACM TOPLAS, vol. 8, no. 4, 577–608CrossRefGoogle Scholar
  15. /Hu 87/.
    Hudson S.E.: 1987 Incremental Attribute Evaluation: An Algorithm for Lazy Evaluation in Graphs, Technical Report TR 87-20; Tucson: University of ArizonaGoogle Scholar
  16. /HK 87/.
    Hull R., King R.: 1987 Semantic Database Modeling: Survey, Applications, and Research Issues, in: ACM Computing Surveys, vol. 19, No. 3, 201–260CrossRefGoogle Scholar
  17. /JF 84/.
    Johnson G.F., Fischer C.N.: A Metalanguage and System for Nonlocal Incremental Attribute Evaluation in Language-Based Editors, in: Proc. ACM Symp. POPL '84Google Scholar
  18. /Ka 85/.
    Kaul M.: Präzedenz-Graph-Grammatiken, PH.D. Thesis; University of PassauGoogle Scholar
  19. /KG 89/.
    Kaplan S.M., Goering St. K.: 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–320Google Scholar
  20. /Kö 90/.
    Köther R.: 1990 Der EBNF-Editor/Generator, Diploma Thesis; Aachen: University of TechnologyGoogle Scholar
  21. /Le 88/.
    Lewerentz C.: 1988 Interaktives Entwerfen großer Programmsysteme, PH.D. Thesis, IFB 194; Berlin: Springer-VerlagGoogle Scholar
  22. /LS 88/.
    Lewerentz C., Schürr A.: 1988 GRAS, a Management System for Graph-like Documents, in Beeri et al. (eds.): Proc. 3rd Int. Conf. on Data and Knowledge Bases; Los Altos, California: Morgan Kaufmann Publishers Inc., 19–31Google Scholar
  23. /MR 86/.
    Meyer A.M., Reinhold M.B.: 'Type’ is not a type, Proc. 13th ACM Symp. POPL '86, 287–295Google Scholar
  24. /Na 79/.
    Nagl M.: 1979 Graph-Grammatiken: Theorie, Implementierung, Anwendungen; Braunschweig: Vieweg-VerlagGoogle Scholar
  25. /Na 85/.
    Nagl M.: 1985 Graph Technology Applied to a Software Project, in: Rozenberg, Salomaa (eds): The Book of L; Berlin: Springer-Verlag, 303–322Google Scholar
  26. /Na 87/.
    Nagl M.: 1987 Set Theoretic Approaches to Graph Grammars, in: Proc. 3rd Int. Workshop on Graph Grammars, LNCS 291; Berlin: Springer Verlag, 41–54Google Scholar
  27. /NNG 90/.
    Nestor J.R., Newcomer J.M., Giannini P., Stone D.L.: 1990 IDL: The Language and Its Implementation; Engelwood Cliffs: Prentice HallGoogle Scholar
  28. /No 87/.
    Normark K.: Transformations and Abstract Presentations in Language Development Environment, Technical Report DAIMI PB-222; Aarhus UniversityGoogle Scholar
  29. /NS 90/.
    Nagl M., Schürr A.: A Specification Environment for Graph Grammars, this vol.Google Scholar
  30. /Re 84/.
    Reps T.: 1984 Generating Language-Based Environments, PH.D. Thesis; Cambridge, Mass.: MIT PressGoogle Scholar
  31. /RT 84/.
    Reps T., Teilbaum T.: The Synthesizer Generator, in: Proc. ACM SIGSOFT/SIGPLAN Symp. on Practical Software Development Environments, 42–48Google Scholar
  32. /Sc 87/.
    Schütte A.: 1987 Spezifikation und Generierung von Übersetzern für Graph-Sprachen durch attributierte Graph-Grammatiken, PH.D. Thesis; Berlin: EXpress-EditionGoogle Scholar
  33. /Sc 89/.
    Schürr A.: 1989 Introduction to PROGRESS, an Attribute Graph Grammar Based Specification Language, in: Nagl (ed.): Graph-Theoretic Concepts in Computer Science, WG '89, LNCS 411, Berlin: Springer Verlag, 151–165Google Scholar
  34. /Sc 90/.
    Schürr A.: 1990 Programmieren mit Graphersetzungssystemen: Theoretische Grundlagen und programmiersprachliche Einkleidung, PH.D. Thesis (in preparation); Aachen: University of TechnologyGoogle Scholar
  35. /So 84/.
    Sowa J.F.: 1984 Conceptual Structures: Information Processing in Minds and Machines; Reading, Mass.: Addison-WesleyGoogle Scholar
  36. /Sp 89/.
    Spielmann R.: 1989 Entwicklung einer Basisschicht für Gaphgrammatikinterpreter, Diploma Thesis; Aachen: University of TechnologyGoogle Scholar
  37. /We 90/.
    Westfechtel B.: 1990 Revisionskontrolle in einer integrierten Softwareentwicklungsumgebung, PH.D. Thesis (in preparation); Aachen: University of TechnologyGoogle Scholar
  38. /Zü 89/.
    Zündorf A.: 1989 Kontrollstrukturen für die Spezifikationssprache PROGRESS, Diploma Thesis, Aachen: University of TechnologyGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1991

Authors and Affiliations

  • Andy Schürr
    • 1
  1. 1.Lehrstuhl für Informatik IIIAachen University of TechnologyAachenGermany

Personalised recommendations