Abstract
Language-level concurrency is becoming more widely available in programming languages, placing parallel programming features in the hands of many programmers for the first time. Unfortunately, the precise semantics of these features is frequently not well understood, principally because of the informal way in which such features are described. Typical of such informal description techniques is the manner in which technical English is used in the Ada Language Reference Manual to define the tasking facilities of Ada.
This paper describes a formal model of the intertask communication aspect of the programming language Ada. The model is an information structure model whose precision is based on the use of shared data abstractions (an extension of abstract data types which allows for parallel access). The model enables the description of parallel programming languages in a manner which is suited to the needs of diverse groups of potential users of a language definition: programmers, compiler writers and those interested in making comparisons between languages (such as language designers).
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
D.H. Freidel. Modelling Communication and Synchronization in Parallel Programming Languages. Technical Report 84-01, Department of Computer Science, The University of Iowa, Iowa City, Iowa, May 1984. {Ph.D. Thesis}.
D.H. Freidel, C.D. Marlin, and M.J. Oudshoorn. Modelling Communication in Ada with Shared Data Abstractions. Technical Report 88-06, Department of Computer Science, The University of Adelaide, Adelaide, South Australia, December 1988. (Revised September 1989).
J.A. Goguen, J.W. Thatcher and E.G. Wagner. An initial algebra approach to the specification, correctness and implementation of abstract data types. In R.T. Yeh, editor, Current Trends in Programming Methodology, chapter 5, pages 80–149, Prentice-Hall, Inc., Englewood Cliffs, New Jersey, 1978.
J.V. Guttag. Notes on type abstraction (Version 2). I.E.E.E. Transactions on Software Engineering. Volume SE-6, pages 13–23, January 1980.
J.V. Guttag and J.J. Horning. The algebraic specification of abstract data types. Acta Informatica. Volume 10, number 1, pages 27–52, 1978.
Honeywell, Inc.Formal Definition of Ada. Interim Draft, Systems and Research Center, Honeywell Inc., Minneapolis, Minnesota, October 1979.
W.R. Mallgren. Formal Specification of Interactive Graphics Programming Languages. M.I.T. Press, Cambridge, Massachusetts, 1983.
C.D. Marlin. Coroutines: A Programming Methodology, a Language Design and an Implementation. Volume 95 of Lecture Notes in Computer Science, Springer-Verlag, Berlin, 1980.
M.J. Oudshoorn and C.D. Marlin. Describing data control in programming languages. In IEEE International Conference on Computer Languages '88, pages 100–109, Miami Beach, Florida, October 9–13 1988.
M.J. Oudshoorn and C.D. Marlin. Language definition and implementation. Australian Computer Science Communications. Volume 11, number 1, pages 26–36, February 1989.
J. Uhl, S. Drossopoulou, G. Persch, G. Goos, M. Dausmann, G. Winterstein, and W. Kirchgässner. An Attribute Grammar for the Semantic Analysis of Ada. Volume 139 of Lecture Notes in Computer Science, Springer-Verlag, Berlin, 1982.
U.S. Department of Defense. The Programming Language Ada Reference Manual, ANSI/MILSTD-1815A-1983. United States Department of Defense, Washington, D.C., 1983.
P. Wegner. Data structure models for programming languages. In J.T. Tou and P. Wegner, editors, Proceedings of the Symposium on Data Structures in Programming Languages, pages 1–54, 1971.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1991 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Marlin, C., Oudshoorn, M., Freidel, D. (1991). A model of communication in Ada using shared data abstractions. In: Akl, S.G., Fiala, F., Koczkodaj, W.W. (eds) Advances in Computing and Information — ICCI '90. ICCI 1990. Lecture Notes in Computer Science, vol 468. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-53504-7_102
Download citation
DOI: https://doi.org/10.1007/3-540-53504-7_102
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-53504-1
Online ISBN: 978-3-540-46677-2
eBook Packages: Springer Book Archive