Skip to main content

Concurrent Object-Oriented Programs: From Specification to Code

  • Conference paper

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

Abstract

In this paper we put forward a concurrent object-oriented programming language in which concurrency is tightly integrated with objects. Concurrency is expressed by extending classes with actions and allowing methods to be guarded. Concurrency in an object may be hidden to the outside, thus allowing concurrency to be introduced in subclasses of a class hierarchy. A disciplined form of intra-object concurrency is supported. The language is formally defined by translation to action systems. Inheritance and subtyping is also considered. A theory of class refinement is presented, allowing concurrent programs to be developed from sequential specifications. Our goal is to have direct rules for verification and refinement on one hand and a practical implementation on the other hand. We briefly sketch our implementation. While the implementation relies on threads, the management of threads is hidden to the programmer.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. America, P.: Issues in the design of a parallel object-oriented language. Formal Aspects of Computing 1(4), 366–411 (1989)

    Article  Google Scholar 

  2. America, P., de Boer, F.: Reasoning about dynamically evolving process structures. Formal Aspects of Computing 6(3), 269–316 (1994)

    Article  MATH  Google Scholar 

  3. Back, R.: Refinement calculus, part II: Parallel and reactive programs. In: de Bakker, J.W., de Roever, W.-P., Rozenberg, G. (eds.) REX 1989. LNCS, vol. 430, pp. 67–93. Springer, Heidelberg (1990)

    Google Scholar 

  4. Back, R., Büchi, M., Sekerinski, E.: Action-based concurrency and synchronization for objects. In: Rus, T., Bertrán, M. (eds.) AMAST-ARTS 1997, ARTS 1997, and AMAST-WS 1997. LNCS, vol. 1231, pp. 248–262. Springer, Heidelberg (1997)

    Google Scholar 

  5. Back, R., Sere, K.: Action systems with synchronous communication. In: Olderog, E.-R. (ed.) IFIP Working Conference on Programming Concepts, Methods, Calculi, San Miniato, Italy, pp. 107–126. North-Holland, Amsterdam (1994)

    Google Scholar 

  6. Back, R., von Wright, J.: Trace refinement of action systems. In: Jonsson, B., Parrow, J. (eds.) CONCUR 1994. LNCS, vol. 836. Springer, Heidelberg (1994)

    Chapter  Google Scholar 

  7. Back, R., von Wright, J.: Refinement Calculus – A Systematic Introduction. Springer, Heidelberg (1998)

    MATH  Google Scholar 

  8. Bonsangue, M.M., Kok, J.N., Sere, K.: An approach to object-orientation in action systems. In: Jeuring, J. (ed.) MPC 1998. LNCS, vol. 1422, p. 68. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  9. Bonsangue, M.M., Kok, J.N., Sere, K.: Developing object-based distributed systems. In: Ciancarini, P., Fantechi, A., Gorrieri, R. (eds.) 3rd IFIP International Conference on Formal Methods for Open Object-based Distributed Systems (FMOODS 1999), pp. 19–34. Kluwer, Dordrecht (1999)

    Google Scholar 

  10. Briot, J.-P., Guerraoui, R., Lohr, K.-P.: Concurrency and distribution in object-oriented programming. ACM Computing Surveys 30(3), 291–329 (1998)

    Article  Google Scholar 

  11. Büchi, M., Sekerinski, E.: A foundation for refining concurrent objects. Fundamenta Informaticae 44(1), 25–61 (2000)

    MATH  MathSciNet  Google Scholar 

  12. Cardelli, L.: A semantics of multiple inheritance. In: Plotkin, G., MacQueen, D.B., Kahn, G. (eds.) Semantics of Data Types 1984. LNCS, vol. 173, pp. 51–67. Springer, Heidelberg (1984)

    Google Scholar 

  13. Cook, W., Palsberg, J.: A denotational semantics of inheritence and its correctness. In: ACM Conference Object Oriented Programming Systems, Languages and Applications. ACM SIGPLAN Notices, vol. 14(10), pp. 433–443 (1989)

    Google Scholar 

  14. Hodges, S.J., Jones, C.B.: Non-interference properties of a concurrent object-based language: Proofs based on an operational semantics. In: Freitag, B., Jones, C.B., Lengauer, C., Schek, H.-J. (eds.) Object Orientation with Parallelism and Persistence, pp. 1–22. Kluwer Academic Publishers, Dordrecht (1996)

    Google Scholar 

  15. Jackson, D.: Alloy: A lightweight object modelling notation. ACM Transactions on Software Engineering and Methodology 11(2), 256–290 (2002)

    Article  Google Scholar 

  16. Jones, C.B.: Accomodating interference in the formal design of concurrent object-based programs. Formal Methods in System Design 8(2), 105–122 (1996)

    Article  Google Scholar 

  17. Lou, K.: A Compiler for an Action-Based Object-Oriented Programming Language. Master’s thesis, McMaster University (2003)

    Google Scholar 

  18. Mikhajlov, L., Sekerinski, E.: A study of the fragile base class problem. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, pp. 355–382. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  19. Mikhajlov, L., Sekerinski, E., Laibinis, L.: Developing components in presence of re-entrance. In: Woodcock, J.C.P., Davies, J., Wing, J.M. (eds.) FM 1999. LNCS, vol. 1709, p. 1301. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  20. Misra, J.: A simple, object-based view of multiprogramming. Formal Methods in System Design 20(1), 23–45 (2002)

    Article  MATH  Google Scholar 

  21. Rumbaugh, J., Blaha, M., Premerlani, W., Eddi, F., Lorensen, W.: Object-Oriented Modeling and Design. Prentice-Hall, Englewood Cliffs (1991)

    Google Scholar 

  22. Sekerinski, E.: A type-theoretic basis for an object-oriented refinement calculus. In: Goldsack, S.J., Kent, S.J.H. (eds.) Formal Methods and Object Technology, pp. 317–335. Springer, Heidelberg (1996)

    Google Scholar 

  23. Sere, K., Waldén, M.: Data refinement of remote procedures. Formal Aspects of Computing 12(4), 278–297 (2000)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Sekerinski, E. (2003). Concurrent Object-Oriented Programs: From Specification to Code. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, WP. (eds) Formal Methods for Components and Objects. FMCO 2002. Lecture Notes in Computer Science, vol 2852. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-39656-7_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-39656-7_17

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-20303-2

  • Online ISBN: 978-3-540-39656-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics