ABSTRACT
A long-standing problem in concurrent object-oriented programming is finding a sound and effective way to integrate active entities - being them actors, active objects, processes - with plain passive objects. Even if the problem is quite old, this is still an open issue: different kinds of approaches have been proposed in literature - also recently - each bringing some benefits and drawbacks. In this paper we describe a proposal based on agent-oriented abstractions, called ALOO. ALOO can be conceived as a conservative extension of sequential OOP languages, so plain old objects, adopting agents and agent organizations as first-class abstractions to model the active side of systems, encapsulating the decentralized control. ALOO is an evolution of a previous model/language called simpAL - an agent-oriented programming approach - towards to concurrent object-oriented programming.
- G. Agha. Actors: a model of concurrent computation in distributed systems. MIT Press, Cambridge, MA, USA, 1986. Google ScholarDigital Library
- G. Agha. Concurrent object-oriented programming. Commun. ACM, 33(9):125--141, Sept. 1990. Google ScholarDigital Library
- P. America. Issues in the design of a parallel object-oriented language. Formal Aspects of Computing, 1(1):366--411, 1989. Google ScholarCross Ref
- J. Armstrong. Erlang. Communications of the ACM, 53(9):68--75, 2010. Google ScholarDigital Library
- F. S. Boer, D. Clarke, and E. B. Johnsen. A complete guide to the future. In Programming Languages and Systems, volume 4421 of LNCS, pages 316--330. Springer, 2007. Google ScholarDigital Library
- R. Bordini, J. Hübner, and M. Wooldridge. Programming Multi-Agent Systems in AgentSpeak Using Jason. John Wiley & Sons, Ltd, 2007. Google ScholarDigital Library
- J.-P. Briot, R. Guerraoui, and K.-P. Lohr. Concurrency and distribution in object-oriented programming. ACM Comput. Surv., 30(3):291--329, 1998. Google ScholarDigital Library
- D. Caromel. Toward a method of object-oriented concurrent programming. Commun. ACM, 36(9):90--102, Sept. 1993. Google ScholarDigital Library
- T. V. Cutsem, S. Mostinckx, E. G. Boix, J. Dedecker, and W. D. Meuter. AmbientTalk: Object-oriented event-driven programming in mobile ad hoc networks. In Proc. of SCCC'07, pages 3--12, Washington, DC, USA, 2007. IEEE Computer Society. Google ScholarDigital Library
- J. De Koster, S. Marr, T. D'Hondt, and T. Van Cutsem. Tanks: Multiple reader, single writer actors. In Proc. of AGERE!'13. ACM, 2013. Google ScholarDigital Library
- J. De Koster, T. Van Cutsem, and T. D'Hondt. Domains: safe sharing among actors. In Proc. of AGERE!'12, pages 11--22, New York, NY, USA, 2012. ACM. Google ScholarDigital Library
- P. Haller and M. Odersky. Scala actors: Unifying threadbased and event-based programming. Theoretical Computer Science, 410(2-3):202--220, 2009. Google ScholarDigital Library
- P. B. Hansen. Operating system principles. Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1973. Google ScholarDigital Library
- C. Hewitt. Viewing control structures as patterns of passing messages. Artificial Intelligence, 8(3):323--364, 1977. Google ScholarDigital Library
- N. R. Jennings. An agent-based approach for building complex software systems. Commun. ACM, 44(4):35--41, Apr. 2001. Google ScholarDigital Library
- E. Johnsen and O. Owe. An asynchronous communication model for distributed concurrent objects. Software & Systems Modeling, 6(1):39--58, 2007.Google ScholarCross Ref
- E. B. Johnsen, R. Hähnle, J. Schäfer, R. Schlatte, and M. Steffen. Abs: A core language for abstract behavioral specification. In Formal Methods for Components and Objects, volume 6957 of LNCS, pages 142--164. Springer, 2012. Google ScholarDigital Library
- R. K. Karmani, A. Shali, and G. Agha. Actor frameworks for the jvm platform: a comparative analysis. In Proc. of PPPJ'09, pages 11--20, New York, NY, USA, 2009. ACM. Google ScholarDigital Library
- M. Miller, E. Tribble, and J. Shapiro. Concurrency among strangers: programming in E as plan coordination. In Trustworthy Global Computing, volume 3705 of LNCS, pages 195--229. Springer Berlin / Heidelberg, 2005. Google ScholarDigital Library
- M. Philippsen. A survey of concurrent object-oriented languages. Concurrency: Practice and Experience, 12(10):917--980, 2000.Google ScholarCross Ref
- A. S. Rao and M. P. Georgeff. BDI Agents: From Theory to Practice. In Proc. of ICMAS'95, 1995.Google Scholar
- A. Ricci and A. Santi. Designing a general-purpose programming language based on agent-oriented abstractions: the simpAL project. In Proc. of AGERE!'11, SPLASH '11 Workshops, pages 159--170, New York, NY, USA, 2011. ACM. Google ScholarDigital Library
- A. Ricci and A. Santi. Programming abstractions for integrating autonomous and reactive behaviors: an agent-oriented approach. In Proc. of AGERE!'12, AGERE! '12, pages 83--94, New York, NY, USA, 2012. ACM. Google ScholarDigital Library
- S. Russell and P. Norvig. Artificial Intelligence, A Modern Approach (second edition). Prentice Hall, 2003. Google ScholarDigital Library
- J. Schäfer and A. Poetzsch-Heffter. CoBoxes: Unifying active objects and structured heaps. In Proc. of FMOODS'08, pages 201--219, Berlin, Heidelberg, 2008. Springer-Verlag. Google ScholarDigital Library
- J. Schäfer and A. Poetzsch-Heffter. JCoBox: generalizing active objects to concurrent components. In Proc. of ECOOP'10, pages 275--299, Berlin, Heidelberg, 2010. Springer-Verlag. Google ScholarDigital Library
- L. Sterling and K. Taveter. The Art of Agent-Oriented Modeling. The MIT Press, 2009. Google ScholarDigital Library
- S. Tasharofi, P. Dinges, and R. Johnson. Why do scala developers mix the actor model with other concurrency models? In G. Castagna, editor, ECOOP 2013, volume 7920 of LNCS, pages 302--326. Springer, 2013. Google ScholarDigital Library
- C. Varela and G. Agha. Programming dynamically reconfigurable open systems with salsa. SIGPLAN Not., 36(12):20--34, Dec. 2001. Google ScholarDigital Library
- A. Yonezawa, J.-P. Briot, and E. Shibayama. Object-oriented concurrent programming abcl/1. SIGPLAN Not., 21(11):258--268, June 1986. Google ScholarDigital Library
- A. Yonezawa and M. Tokoro, editors. Object-oriented concurrent programming, Cambridge, MA, USA, 1987. MIT Press. Google ScholarDigital Library
Index Terms
- Concurrent object-oriented programming with agent-oriented abstractions: the ALOO approach
Recommendations
Designing a general-purpose programming language based on agent-oriented abstractions: the simpAL project
SPLASH '11 Workshops: Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE! 2011, AOOPES'11, NEAT'11, & VMIL'11The fundamental turn of software toward concurrency, decentralization, distribution, interaction calls for conceptually extending or evolving mainstream programming paradigms with proper high-level features to tackle these aspects. To this purpose, in ...
Concurrent object-oriented programming in Classic-Ada
Although Ada supports concurrency and can thus be used as a concurrent programming language, it is not generally considered to be an object-oriented programming language. Classic-Ada is a preprocessor which adds the concepts of classes, inheritance, and ...
What Is Object-Oriented Programming?
The meaning of the term 'object oriented' is examined in the context of the general-purpose programming language C++. This choice is made partly to introduce C++ and partly because C++ is one of the few languages that supports data abstraction, object-...
Comments