Abstract
This paper demonstrates a notion for formal semantics specification of concurrent programming languages and applies it to the concurrent part of the programming language Ada. The abstract syntax of an Ada program is given by a graph representation called the program graph. This program graph is the input for an abstract interpreter consisting of a set of graph rewriting rules. Therefore, this interpreter is a graph rewriting system, i. e. a graph grammar. A derivation step in this graph grammar allows the parallel application of a finite set of sequential rewriting rules, thus modelling the independent progress of parallel tasks. It is shown that the notion successfully copes with Ada concurrency, including dynamic creation of tasks, task hierarchies, synchronization, and timing considerations. The abstract implementation by an interpreter gives rise to some considerations concerning the precision of the informal, official Ada Standard and the adequacy of some language features, especially with respect to the interaction of exception handling and concurrency.
This paper gives an extended abstract of the main ideas of [SPEC].
Preview
Unable to display preview. Download preview PDF.
Bibliography
Apt, K. R., Francez, N., de Roever, W.: A proof system for communicating sequential processes; ACM TOPLAS vol. 2, no. 3, 1980
Broy, M. Extensional behaviour of concurrent, nondeterministic communicating systems; Universität Passau. Bericht MIP 8506, 1985
Engels, G., Schäfer, W.: Graph grammar engineering: a method for the development of an integrated programming support environment; Osnabrücker Schriften zur Mathematik, Reihe I 5/82
Hoare, C. A. R.: Communicating sequential processes; CACM 21.8.78, p. 666–677
Lewerentz, C., Nagl, M.: A formal specification language for software systems defined by graph grammars, in Pape, U: Proceedings WG'84 in graphtheoretic concepts in computer science; Teubner, Linz, 1984
Ada Programming Language, Military Standard 22.01.1983; American National Standards Institute (ANSI/MIL-STD-1815A-1983)
Nagl, M.: Einführung in die Programmiersprache Ada; Braunschweig/Wiesbaden, Vieweg, 1982
Nagl, M.: Graph Grammatiken — Theorie, Implementierung, Anwendung; Braunschweig/Wiesbaden, Vieweg, 1979
Pratt, T. W.: A theory of programming languages, part I; The University of Texas, Austin, 1975
Jackel, M.: Formale Spezifikation nebenläufiger Konstrukte von Ada mit Graphgrammatiken; Dissertation, Osnabrück, 1986
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1987 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Jackel, M. (1987). Ada-concurrency specified by graph grammars. In: Ehrig, H., Nagl, M., Rozenberg, G., Rosenfeld, A. (eds) Graph-Grammars and Their Application to Computer Science. Graph Grammars 1986. Lecture Notes in Computer Science, vol 291. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-18771-5_58
Download citation
DOI: https://doi.org/10.1007/3-540-18771-5_58
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-18771-4
Online ISBN: 978-3-540-48178-2
eBook Packages: Springer Book Archive