Skip to main content

CHESSBOARD: A synergy of object-oriented concurrent programming and program layering

  • Conference paper
  • First Online:
Concurrency and Parallelism, Programming, Networking, and Security (ASIAN 1996)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1179))

Included in the following conference series:

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++.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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

    Google Scholar 

  2. Elrad, T., Frances, N.: “Decomposition of Distributed Programs into Communication-Closed Layers”, Science of Computer Programming, No. 2, 1982, pp. 155–173, North-Holland

    Article  Google Scholar 

  3. 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

    Google Scholar 

  4. 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

    Google Scholar 

  5. 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

    Google Scholar 

  6. Gries, D.: “The Science of Programming”, Springer-Verlag, 1981

    Google Scholar 

  7. Gehani, NH.: “Capsules: A Shared Memory Access Mechanism for Concurrent C/C++”, AT&T Bell Laboratories, Murray Hill, NJ

    Google Scholar 

  8. 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

    Google Scholar 

  9. Jessen, Wilhelmus P. M.: “Layered Design of Parallel Systems”,CIP,1994

    Google Scholar 

  10. Meyer, B.: “Systematic Concurrent Object-Oriented Programming”, Communication of the ACM, September 1993, Vol. 36, No. 9, pp. 56–80

    Article  Google Scholar 

  11. Manna, Z., Pnueli, A.: “The Temporal Logic of Reactive and Concurrent Systems”, Springer-Verlag, 1991

    Google Scholar 

  12. 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

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Joxan Jaffar Roland H. C. Yap

Rights and permissions

Reprints 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

Publish with us

Policies and ethics