Abstract
In this paper, we introduce a new abstraction mechanism, called a script,which hides the low-level details that implement patterns of communication. A script localizes the communication between a set of roles (formal processes), to which actual processes enroll to participate in the action of the script. The paper discusses the addition of scripts to the languages CSP and Ada, and to a shared-variable language with monitors. Proof rules are presented for proving partial correctness and freedom from deadlock in concurrent programs using scripts.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
K. R. Apt, N. Francez, and W. P. De Roever. A proof system for communicating sequential processes. ACM Transactions on Programming Languages and Systems 2 (3): 359–385, July 1980.
K. R. Apt. Ten years of Hoare logic: A survey (part 1). ACM Transactions on Programming Languages and Systems 3 (4): 431–483, October 1981.
K. R. Apt. Formal justification of a proof system for communicating sequential processes. Journal of the ACM 30 (1): 197–216, January 1983.
P. Brinch Hansen. The programming language Concurrent Pascal. IEEE Transactions on Software Engineering SE-1(2): 199–207, June 1975.
T. Elrad and N. Francez. Decomposition of distributed programs into communication-closed layers. Science of Computer Programming, North Holland. 2: 155–173, 1982.
N. Francez. Extended naming conventions for communicating processes. Proceedings of the Ninth Annual ACM Symposium on Principles of Programming Languages (Albuquerque), pages 40–45, January 1982.
N. Francez and S. Yemini. A fully abstract and composable inter-task communication construct. Submitted to ACM Transactions on Programming Languages and Systems. Draft, 1983.
R. Gerth and W. P. de Roever. A proof system for concurrent Ada programs. To appear in Science of Computer Programming, North Holland.
D. Gries and G. Levin. Assignment and procedure call proof rules. ACM Transactions on Programming Languages and Systems 2 (4): 564–579, October 1980.
B. Hailpern and S. Owicki. Modular verification of concurrent programs. Proceedings of the Ninth ACM Symposium on Principles of Programming Languages (Albuquerque), pages 322–336, January 1982.
P. Hilfinger, G. Feldman, R. Fitzgerald, I. Kimura, R. L. London, KVS Prasad, VR Prasad, J. Rosenberg, M. Shaw, and W. A. Wulf (editor). An informal definition of Alphard (preliminary). Technical report CMU-CS-78–105, Carnegie-Mellon University, February 1978.
P. N. Hilfinger. Implementation strategies for Ada tasking idioms. Proceedings of the ACM-AdaTEC Conference on Ada ( Arlington ), October 1982.
C. A. R. Hoare. Procedures and parameters: An axiomatic approach. In E. Engler, editor, Symposium on Semantics of Algorithmic Languages, pages 102–116. Notes in Mathematics, volume 188. Springer Verlag, 1971.
C. A. R. Hoare. Communicating sequential processes. Communications of the ACM 21 (8): 666–677, August 1978.
M. Joseph. Schemes for communication. Technical report CMU-CS-81–122, Carnegie-Mellon University, June 1981.
H. F. Korth. Edge locks and deadlock avoidance in distributed systems. Proceedings of ACM Symposium on Principles of Distributed Computing (Ottawa), pages 173–182, August 1982.
D. A. Lamb and P. N. Hilfinger. Simulation of procedure variables using Ada tasks. IEEE Transactions on Software Engineering SE-9(1): 13–15, January 1983.
L. Lamport. Specifying concurrent program modules. ACM Transactions on Programming Languages and Systems 5 (2): 190–222, April 1983.
B. H. Liskov, R. A. Atkinson, T. Bloom, J. E. Schaffert, R. W. Scheifler, and A. Snyder. CLU Reference Manual. Lecture Notes in Computer Science, volume 114. Springer-Verlag, 1981.
J. G. Mitchell, William Maybury, and Richard Sweet. Mesa language manual (version 5.0). CSL-79–3, Xerox Palo Alto Research Center, April 1979.
S. S. Owicki and D. Gries. An axiomatic proof technique for parallel programs. Acta Informatica 6: 319–340, 1976.
Richard Rashid and George Robertson. Accent: A communication oriented network operating system kernel. Proceedings of the Eight Symposium on Operating Systems Principles (Asilomar), pages 64–75, ACM, December 1981.
L. G. Reid. Control and communication in programming systems. Technical report CMU-CS-80–142, Carnegie-Mellon University, September 1980.
J. Skansholm. Multicast and synchronization in distributed systems. Research report, Department of Computer Science, University of Goteborg, 1981.
United States Department of Defense. Reference Manual for the Ada Programming Language. ACM-AdaTEC, July 1982.
D. W. Wall. Mechanisms for Broadcast and Selective Broadcast. Ph.D. Thesis, Stanford University, 1980. Available as technical report 190, Computer Systems Laboratory, Stanford University, June 1980.
N. Wirth. Modula: A language for modular multiprogramming Software Practice and Experience 7 (1): 3–35, January-February 1977.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1985 Springer-Verlag Heidelberg
About this paper
Cite this paper
Francez, N., Hailpern, B., Taubenfeld, G. (1985). Script: A Communication Abstraction Mechanism and its Verification. In: Apt, K.R. (eds) Logics and Models of Concurrent Systems. NATO ASI Series, vol 13. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-82453-1_7
Download citation
DOI: https://doi.org/10.1007/978-3-642-82453-1_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-82455-5
Online ISBN: 978-3-642-82453-1
eBook Packages: Springer Book Archive