Ada-concurrency specified by graph grammars
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].
Keywordsformal semantics specification programming language concurrency graph grammars dynamic semantics Ada
Unable to display preview. Download preview PDF.
- [AKdR]Apt, K. R., Francez, N., de Roever, W.: A proof system for communicating sequential processes; ACM TOPLAS vol. 2, no. 3, 1980Google Scholar
- [Broy]Broy, M. Extensional behaviour of concurrent, nondeterministic communicating systems; Universität Passau. Bericht MIP 8506, 1985Google Scholar
- [EnSch]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/82Google Scholar
- [Hoare]Hoare, C. A. R.: Communicating sequential processes; CACM 21.8.78, p. 666–677Google Scholar
- [LeNa]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, 1984Google Scholar
- [LRM]Ada Programming Language, Military Standard 22.01.1983; American National Standards Institute (ANSI/MIL-STD-1815A-1983)Google Scholar
- [Nagl1]Nagl, M.: Einführung in die Programmiersprache Ada; Braunschweig/Wiesbaden, Vieweg, 1982Google Scholar
- [Nagl2]Nagl, M.: Graph Grammatiken — Theorie, Implementierung, Anwendung; Braunschweig/Wiesbaden, Vieweg, 1979Google Scholar
- [Pratt]Pratt, T. W.: A theory of programming languages, part I; The University of Texas, Austin, 1975Google Scholar
- [SPEC]Jackel, M.: Formale Spezifikation nebenläufiger Konstrukte von Ada mit Graphgrammatiken; Dissertation, Osnabrück, 1986Google Scholar