Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/1883978.1883996acmotherconferencesArticle/Chapter ViewAbstractPublication PagesecoopConference Proceedingsconference-collections
Article

JCoBox: generalizing active objects to concurrent components

Published: 21 June 2010 Publication History

Abstract

Concurrency in object-oriented languages is still waiting for a satisfactory solution. Formany application areas, standardmechanisms like threads and locks are too low level and have shown to be error-prone and notmodular enough. Lately the actor paradigm has regained attention as a possible solution to concurrency in OOLs.
We propose JCoBox: a Java extension with an actor-like concurrencymodel based on the notion of concurrently running object groups, so-called coboxes. Communication is based on asynchronous method calls with standard objects as targets. Cooperative multi-tasking within coboxes allows for combining active and reactive behavior in a simple and safe way. Futures and promises lead to a data-driven synchronization of tasks.
This paper describes the concurrency model, the formal semantics, and the implementation of JCoBox, and shows that the performance of the implementation is comparable to state-of-the-art actor-based language implementations for the JVM.

References

[1]
Ábrahám, E., Grabe, I., Grüner, A., Steffen, M.: Behavioral interface description of an object-oriented language with futures and promises. Journal of Logic and Algebraic Programming 78(7), 491-518 (2009)
[2]
Ábrahám, E., Grüner, A., Steffen, M.: Abstract interface behavior of object-oriented languages with monitors. Theor. Comput. Sci. 43(3), 322-361 (2008)
[3]
Agha, G.: Actors: a model of concurrent computation in distributed systems. MIT Press, Cambridge (1986)
[4]
America, P.: Issues in the design of a parallel object-oriented language. Form. Asp. Comput. 1(4), 366-411 (1989)
[5]
Andrews, G.R., Coffin, M., Elshoff, I., Nilson, K., Townsend, G., Olsson, R.A., Purdin, T.: An overview of the SR language and implementation. TOPLAS 10(1), 51-86 (1988)
[6]
Armstrong, J.: Making reliable distributed systems in the presence of software errors. Ph.D. thesis, The Royal Institute of Technology, Stockholm, Sweden (2003)
[7]
Baduel, L., Baude, F., Caromel, D., Contes, A., Huet, F., Morel, M., Quilici, R.: Programming, deploying, composing, for the Grid. In: Cunha, J.C., Rana, O.F. (eds.) Grid Computing: Software Environments and Tools. Springer, Heidelberg (January 2006)
[8]
Baker Jr., H.G., Hewitt, C.: The incremental garbage collection of processes. In: Proceedings of the 1977 symposium on Artificial intelligence and programming languages, pp. 55-59. ACM, New York (August 1977)
[9]
Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for C#. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 415-440. Springer, Heidelberg (2002)
[10]
Bloom, B., Field, J., Nystrom, N.,Östlund, J., Richards, G., Strniša, R., Vitek, J., Wrigstad, T.: Thorn: robust, concurrent, extensible scripting on the JVM. SIGPLAN Not. 44(10), 117-136 (2009)
[11]
de Boer, F.S., Clarke, D., Johnsen, E.B.: A complete guide to the future. In: Nicola, R.D. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 316-330. Springer, Heidelberg (2007)
[12]
Briot, J.P., Guerraoui, R., Lohr, K.P.: Concurrency and distribution in object-oriented programming. ACM Comput. Surv. 30(3), 291-329 (1998)
[13]
Caromel, D.: Towards a method of object-oriented concurrent programming. Communications of the ACM 36(9), 90-102 (1993)
[14]
Caromel, D., Henrio, L., Serpette, B.P.: Asynchronous and deterministic objects. In: Jones, N.D., Leroy, X. (eds.) POPL, pp. 123-134. ACM, New York (2004)
[15]
Caromel, D., Mateu, L., Pothier, G., Tanter, É.: Parallel object monitors. Concurrency and Computation: Practice and Experience 20(12), 1387-1417 (2008)
[16]
Caromel, D., Mateu, L., Tanter, É.: Sequential object monitors. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 317-341. Springer, Heidelberg (2004)
[17]
Clarke, D., Potter, J., Noble, J.: Ownership types for flexible alias protection. In: OOPSLA, pp. 48-64. ACM Press, New York (October 1998)
[18]
Clarke, D., Wrigstad, T., Östlund, J., Johnsen, E.B.: Minimal ownership for active objects. In: Ramalingam, G. (ed.) APLAS 2008. LNCS, vol. 5356, pp. 139-154. Springer, Heidelberg (2008)
[19]
Clavel, M., Dur´n, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Talcott, C.L. (eds.): All AboutMaude - A High-Performance Logical Framework, How to Specify, Program and Verify Systems in Rewriting Logic. LNCS, vol. 4350. Springer, Heidelberg (2007)
[20]
Creeger, M.: Multicore cpus for the masses. Queue 3(7), 64-ff (2005)
[21]
Fähndrich, M., Aiken, M., Hawblitzel, C., Hodson, O., Hunt, G., Larus, J.R., Levi, S.: Language support for fast and reliable message-based communication in Singularity OS. SIGOPS Oper. Syst. Rev. 40(4), 177-190 (2006)
[22]
Felleisen, M., Hieb, R.: The revised report on the syntactic theories of sequential control and state. Theor. Comput. Sci. 103(2), 235-271 (1992)
[23]
Fischer, J., Majumdar, R., Millstein, T.: Tasks: language support for event-driven programming. In: Ramalingam, G., Visser, E. (eds.) PEPM, pp. 134-143. ACM, New York (2007)
[24]
Flatt, M., Krishnamurthi, S., Felleisen, M.: A programmer's reduction semantics for classes and mixins. In: Alves-Foss, J. (ed.) Formal Syntax and Semantics of Java. LNCS, vol. 1523, pp. 241-269. Springer, Heidelberg (1999)
[25]
Fournet, C., Gonthier, G.: The reflexive CHAM and the join-calculus. In: POPL, pp. 372- 385. ACM, New York (January 1996)
[26]
Georges, A., Buytaert, D., Eeckhout, L.: Statistically rigorous Java performance evaluation. In: Gabriel, R.P., Bacon, D.F., Lopes, C.V., Steele Jr., G.L. (eds.) OOPSLA, pp. 57-76. ACM, New York (2007)
[27]
Haack, C., Poll, E.: Type-based object immutability with flexible initialization. In: Drossopoulou, S. (ed.) ECOOP 2009 - Object-Oriented Programming. LNCS, vol. 5653, pp. 520-545. Springer, Heidelberg (2009)
[28]
Haack, C., Poll, E., Schäfer, J., Schubert, A.: Immutable objects for Java-like languages. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 347-362. Springer, Heidelberg (2007)
[29]
Haller, P., Odersky, M.: Scala actors: Unifying thread-based and event-based programming. Theor. Comput. Sci. 410(2-3), 202-220 (2009)
[30]
Halstead Jr., R.H.: Multilisp: a language for concurrent symbolic computation. ACM Trans. Program. Lang. Syst. 7(4), 501-538 (1985)
[31]
Hasselbring, W.: Programming languages and systems for prototyping concurrent applications. ACM Comput. Surv. 32(1), 43-79 (2000)
[32]
Haustein, M., Löhr, K.P.: Jac: declarative Java concurrency. Concurrency and Computation: Practice and Experience 18(5), 519-546 (2006)
[33]
Hewitt, C., Bishop, P., Steiger, R.: A universal modular ACTOR formalism for artificial intelligence. In: IJCAI, pp. 235-245. William Kaufmann, San Francisco (August 1973)
[34]
Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: A minimal core calculus for Java and GJ. ACM Trans. Program. Lang. Syst. 23(3), 396-450 (2001)
[35]
JCoBox website (2010), http://softech.cs.uni-kl.de/~jcobox
[36]
Jl5 polyglot extension, http://www.cs.ucla.edu/~milanst/projects/polyglot5/
[37]
Johnsen, E.B., Owe, O.: An asynchronous communication model for distributed concurrent objects. Software and Systems Modeling 6(1), 35-58 (2007)
[38]
Karmani, R.K., Shali, A., Agha, G.: Actor frameworks for the JVM platform: a comparative analysis. In: PPPJ, pp. 11-20. ACM, New York (2009)
[39]
Keen, A.W., Ge, T., Maris, J.T., Olsson, R.A.: JR: Flexible distributed programming in an extended java. ACM Trans. Program. Lang. Syst. 26(3), 578-608 (2004)
[40]
Lea, D.: A Java fork/join framework. In: JAVA 2000: Proceedings of the ACM 2000 conference on Java Grande, pp. 36-43. ACM, New York (2000)
[41]
Leijen, D., Schulte, W., Burckhardt, S.: The design of a task parallel library. SIGPLAN Not. 44(10), 227-242 (2009)
[42]
Lieberman, H.: Concurrent object-oriented programming in Act 1. In: Yonezawa, A., Tokoro, M. (eds.) Object-Oriented Concurrent Programming, pp. 9-36. MIT Press, Cambridge (1987)
[43]
Liskov, B., Shrira, L.: Promises: Linguistic support for efficient asynchronous procedure calls in distributed systems. In: PLDI, pp. 260-267 (1988)
[44]
Miller, M.S., Tribble, E.D., Shapiro, J.S.: Concurrency among strangers. In: De Nicola, R., Sangiorgi, D. (eds.) TGC 2005. LNCS, vol. 3705, pp. 195-229. Springer, Heidelberg (2005)
[45]
Morris, B.: Cactive and friends. Symbian Developer Network (June 2008)
[46]
Niehren, J., Schwinghammer, J., Smolka, G.: A concurrent lambda calculus with futures. Theor. Comput. Sci. 364(3), 338-356 (2006)
[47]
Nierstrasz, O.M.: Active objects in Hybrid. In: OOPSLA, pp. 243-253. ACM Press, New York (1987)
[48]
Nystrom, N., Clarkson, M.R., Myers, A.C.: Polyglot: An extensible compiler framework for Java. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 138-152. Springer, Heidelberg (2003)
[49]
Ousterhout, J.: Why threads are a bad idea (for most purposes) (1996), invited talk at the 1996 USENIX Conference
[50]
Philippsen, M.: A survey of concurrent object-oriented languages. Concurrency - Practice and Experience 12(10), 917-980 (2000)
[51]
Polyglot website (March 2010), http://www.cs.cornell.edu/projects/polyglot/
[52]
Rausch, A., Reussner, R., Plasil, F., Mirandola, R. (eds.): The Common Component Modeling Example: Comparing Software Component Models. LNCS, vol. 5153. Springer, Heidelberg (2008)
[53]
Rodriguez, N., Rossetto, S.: Integrating remote invocations with asynchronism and cooperative multitasking. Parallel Processing Letters 18(1), 71-85 (2008)
[54]
Schäfer, J., Poetzsch-Heffter, A.: CoBoxes: Unifying active objects and structured heaps. In: Barthe, G., de Boer, F.S. (eds.) FMOODS 2008. LNCS, vol. 5051, pp. 201-219. Springer, Heidelberg (2008)
[55]
Srinivasan, S., Mycroft, A.: Kilim: Isolation-typed actors for java. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 104-128. Springer, Heidelberg (2008)
[56]
Sutter, H.: The free lunch is over: A fundamental turn toward concurrency in software. Dr. Dobb's Journal 30(3) (March 2005)
[57]
The computer language benchmarks game, http://shootout.alioth.debian.org
[58]
The Java RMI Specification (December 2009), http://java.sun.com/products/jdk/rmi/
[59]
The OSGi specification release 4 version 4.2 (September 2009), http://www.osgi.org
[60]
Van Cutsem, T., Mostinckx, S., Boix, E.G., Dedecker, J., Meuter, W.D.: Ambienttalk: Object-oriented event-driven programming in mobile ad hoc networks. In: SCCC, pp. 3-12. IEEE Computer Society, Los Alamitos (2007)
[61]
Yonezawa, A., Briot, J.P., Shibayama, E.: Object-oriented concurrent programming ABCL/ 1. In: Meyrowitz, N. (ed.) OOPSLA, pp. 258-268. ACM Press, New York (1986)

Cited By

View all
  • (2017)Rely-Guarantee Termination and Cost Analyses of Loops with Concurrent InterleavingsJournal of Automated Reasoning10.1007/s10817-016-9400-659:1(47-85)Online publication date: 1-Jun-2017
  • (2016)Actor ServicesProceedings of the 25th European Symposium on Programming Languages and Systems - Volume 963210.5555/3089528.3089555(699-726)Online publication date: 2-Apr-2016
  • (2016)A Graph-Based Semantics Workbench for Concurrent Asynchronous ProgramsProceedings of the 19th International Conference on Fundamental Approaches to Software Engineering - Volume 963310.5555/3089458.3089463(31-48)Online publication date: 2-Apr-2016
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
ECOOP'10: Proceedings of the 24th European conference on Object-oriented programming
June 2010
599 pages
ISBN:3642141064
  • Editor:
  • Theo D'Hondt

Sponsors

  • Google Inc.

In-Cooperation

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 21 June 2010

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2017)Rely-Guarantee Termination and Cost Analyses of Loops with Concurrent InterleavingsJournal of Automated Reasoning10.1007/s10817-016-9400-659:1(47-85)Online publication date: 1-Jun-2017
  • (2016)Actor ServicesProceedings of the 25th European Symposium on Programming Languages and Systems - Volume 963210.5555/3089528.3089555(699-726)Online publication date: 2-Apr-2016
  • (2016)A Graph-Based Semantics Workbench for Concurrent Asynchronous ProgramsProceedings of the 19th International Conference on Fundamental Approaches to Software Engineering - Volume 963310.5555/3089458.3089463(31-48)Online publication date: 2-Apr-2016
  • (2016)OrcO: a concurrency-first approach to objectsACM SIGPLAN Notices10.1145/3022671.298402251:10(548-567)Online publication date: 19-Oct-2016
  • (2016)OrcO: a concurrency-first approach to objectsProceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications10.1145/2983990.2984022(548-567)Online publication date: 19-Oct-2016
  • (2016)DomainsComputer Languages, Systems and Structures10.1016/j.cl.2016.01.00345:C(132-160)Online publication date: 1-Apr-2016
  • (2016)ABSProceedings of the 42nd International Conference on SOFSEM 2016: Theory and Practice of Computer Science - Volume 958710.1007/978-3-662-49192-8_35(433-444)Online publication date: 23-Jan-2016
  • (2015)Efficient and reasonable object-oriented concurrencyProceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering10.1145/2786805.2786822(734-744)Online publication date: 30-Aug-2015
  • (2015)Structured synchronous reactive programming with CéuProceedings of the 14th International Conference on Modularity10.1145/2724525.2724571(29-40)Online publication date: 16-Mar-2015
  • (2015)Special issue on programming based on actors, agents and decentralized controlScience of Computer Programming10.1016/j.scico.2014.10.00398:P2(117-119)Online publication date: 1-Feb-2015
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media