ASIAN 1996: Concurrency and Parallelism, Programming, Networking, and Security pp 223-233 | Cite as
CHESSBOARD: A synergy of object-oriented concurrent programming and program layering
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++.
Keywords
Parallel Program Concurrent Program Virtual Time Computational Path Vertical DecompositionPreview
Unable to display preview. Download preview PDF.
References
- [E84]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–392Google Scholar
- [EF82]Elrad, T., Frances, N.: “Decomposition of Distributed Programs into Communication-Closed Layers”, Science of Computer Programming, No. 2, 1982, pp. 155–173, North-HollandCrossRefGoogle Scholar
- [EK90]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–483Google Scholar
- [EK91]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–231Google Scholar
- [EK93]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 1993Google Scholar
- [G81]Gries, D.: “The Science of Programming”, Springer-Verlag, 1981Google Scholar
- [G93]Gehani, NH.: “Capsules: A Shared Memory Access Mechanism for Concurrent C/C++”, AT&T Bell Laboratories, Murray Hill, NJGoogle Scholar
- [GS86]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, 1986Google Scholar
- [J94]Jessen, Wilhelmus P. M.: “Layered Design of Parallel Systems”,CIP,1994Google Scholar
- [M93]Meyer, B.: “Systematic Concurrent Object-Oriented Programming”, Communication of the ACM, September 1993, Vol. 36, No. 9, pp. 56–80CrossRefGoogle Scholar
- [MP91]Manna, Z., Pnueli, A.: “The Temporal Logic of Reactive and Concurrent Systems”, Springer-Verlag, 1991Google Scholar
- [SdR87]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, 1987Google Scholar