Abstract
Language support to enable programming by contract offers a systematic approach to the development and verification of object oriented programs [M93]. An object behavior is locally defined in terms of obligations (preconditions) and benefits (postconditions). Concurrent object-oriented programming seems to be an appealing idea because it imposes structure on objects' communication. Since structure of a tightly-coupled, interprocess dependent concurrent program is more than the simple collection of its objects, set of local assertions is not enough to capture cooperation among the different objects. A complementary view which depicts the cooperation among different objects is needed. The concept of communication-closed layers [EF82] is extended for object-oriented concurrent programming. The synergy between concurrent object-oriented programming and layering enables dual reflections of a program as both a collection of objects and a sequence of subgoals achieved by inter-object cooperation. On top of Meyer's intra-object programming by contract we propose inter-object contracts. Intra-object contracts are used for the verification of object state consistency, and inter-object contracts, called teamwork assertions, are used for ensuring cooperation among objects. We view a concurrent program as a CHESSBOARD. The columns are the different objects/tasks and the rows are the program layers. Every square on the board is a logical component of both an object/task and a layer. Our proposal enables a horizontal decomposition of concurrent programs on top of its vertical decomposition into objects/tasks. This synergy, we believe, could make existing design and verification methods for concurrent programming more applicable as teamwork assertions are used to decompose complex programs. The concept neither introduces any physical synchronization barrier among layers nor relies on particular computer architecture and programming language. CHESSBOARD is most beneficial for applications where the objects/tasks are tightly bounded to compute a common objective. We present a simple example of a concurrent program viewed as a CHESSBOARD. The program runs on a Sun workstation using Concurrent C++.
Preview
Unable to display preview. Download preview PDF.
References
Elrad, T.: “A Practical Software Development for Dynamic Testing of Distributed Programs”, IEEE Proceedings of the International Conference on Parallel Processing, Bellaire, MI, August 1984, pp. 388–392
Elrad, T., Frances, N.: “Decomposition of Distributed Programs into Communication-Closed Layers”, Science of Computer Programming, No. 2, 1982, pp. 155–173, North-Holland
Elrad, T., Kumar, K.: “State Space Abstraction of Concurrent Systems: A Means to Computation Progressive Scheduling”, Proceedings of the 19th International Conference on Parallel Processing, August 1990, pp. 482–483
Elrad, T., Kumar, K.: “The Use of Communication-Closed Layers to Support Imprecise Scheduling for Distributed Real-Time Programs”, Proceedings of the 10th Annual International Conference on Computers and Communications, March 1991, pp.226–231
Elrad, T., Kumar, K.: “Scheduling Cooperative Work: Viewing Distributed Systems as Both CSP and SCL”, Proceedings of the 13 th International Conference on Distributed Computing Systems, Pittsburgh, May 1993
Gries, D.: “The Science of Programming”, Springer-Verlag, 1981
Gehani, NH.: “Capsules: A Shared Memory Access Mechanism for Concurrent C/C++”, AT&T Bell Laboratories, Murray Hill, NJ
Gerth, R.T., Shrira, L.: “On Proving Communication Closeness of Distributed Layers”, Proceedings of the 6th Conference on Foundations of Software Technology and Theoretical Computer Science, New Delhi, India, 1986
Jessen, Wilhelmus P. M.: “Layered Design of Parallel Systems”,CIP,1994
Meyer, B.: “Systematic Concurrent Object-Oriented Programming”, Communication of the ACM, September 1993, Vol. 36, No. 9, pp. 56–80
Manna, Z., Pnueli, A.: “The Temporal Logic of Reactive and Concurrent Systems”, Springer-Verlag, 1991
Stomp, F.A., W.P. de Roever: “A Correctness Proof of a Distributed Minimum-Weight Spanning Tree Algorithm”, Proceedings of the 7th International Conference on Distributed Computer Systems, Berlin, W. Germany, 1987
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Elrad, T., Sheen, B., Nastasic, N.V. (1996). CHESSBOARD: A synergy of object-oriented concurrent programming and program layering. In: Jaffar, J., Yap, R.H.C. (eds) Concurrency and Parallelism, Programming, Networking, and Security. ASIAN 1996. Lecture Notes in Computer Science, vol 1179. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0027795
Download citation
DOI: https://doi.org/10.1007/BFb0027795
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-62031-0
Online ISBN: 978-3-540-49626-7
eBook Packages: Springer Book Archive