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.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
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
America, P.: Issues in the design of a parallel object-oriented language. Formal Aspects of Computing 1(4), 366–411 (1989)
America, P., de Boer, F.: Reasoning about dynamically evolving process structures. Formal Aspects of Computing 6(3), 269–316 (1994)
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)
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)
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)
Back, R., von Wright, J.: Trace refinement of action systems. In: Jonsson, B., Parrow, J. (eds.) CONCUR 1994. LNCS, vol. 836. Springer, Heidelberg (1994)
Back, R., von Wright, J.: Refinement Calculus – A Systematic Introduction. Springer, Heidelberg (1998)
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)
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)
Briot, J.-P., Guerraoui, R., Lohr, K.-P.: Concurrency and distribution in object-oriented programming. ACM Computing Surveys 30(3), 291–329 (1998)
Büchi, M., Sekerinski, E.: A foundation for refining concurrent objects. Fundamenta Informaticae 44(1), 25–61 (2000)
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)
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)
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)
Jackson, D.: Alloy: A lightweight object modelling notation. ACM Transactions on Software Engineering and Methodology 11(2), 256–290 (2002)
Jones, C.B.: Accomodating interference in the formal design of concurrent object-based programs. Formal Methods in System Design 8(2), 105–122 (1996)
Lou, K.: A Compiler for an Action-Based Object-Oriented Programming Language. Master’s thesis, McMaster University (2003)
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)
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)
Misra, J.: A simple, object-based view of multiprogramming. Formal Methods in System Design 20(1), 23–45 (2002)
Rumbaugh, J., Blaha, M., Premerlani, W., Eddi, F., Lorensen, W.: Object-Oriented Modeling and Design. Prentice-Hall, Englewood Cliffs (1991)
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)
Sere, K., Waldén, M.: Data refinement of remote procedures. Formal Aspects of Computing 12(4), 278–297 (2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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