ABSTRACT
The integration of autonomous and reactive behavior is a relevant problem in the context of concurrent programming, related to the integration of thread-based and event-driven programming. From a programming paradigm perspective, the problem can not be easily solved by approaches based on object-oriented concurrent programming or by the actor model, being them natively based on the reactivity principle only. In this paper we tackle the problem with agent-oriented programming, using an agent-oriented programming language called simpAL.
Supplemental Material
Available for Download
The supplemental material is a PDF file reporting the source codes of the test programs described in section 7, implemented in 5.8.3, ActorFoundry 1.0, Jason 1.3.7 and simpAL version 0.7.
- A. Adya, J. Howell, M. Theimer, W. J. Bolosky, and J. R. Douceur. Cooperative task management without manual stack management. In Proc. of ATEC'02, pages 289--302, Berkeley, CA, USA, 2002. USENIX Association. Google ScholarDigital Library
- 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
- G. Agha and C. Hewitt. Concurrent programming using actors. In A. Yonezawa and M. Tokoro, editors, Object-oriented concurrent programming, pages 37--53. MIT Press, Cambridge, MA, USA, 1987. Google ScholarDigital Library
- G. Agha, S. Frølund, W. Kim, R. Panwar, A. Patterson, and D. Sturman. Abstraction and modularity mechanisms for concurrent computing. IEEE Parallel Distrib. Technol., 1 (2): 3--14, May 1993. Google ScholarDigital Library
- G. A. Agha, I. A. Mason, S. F. Smith, and C. L. Talcott. A foundation for actor computation. J. Funct. Program., 7 (1): 1--72, Jan. 1997. Google ScholarDigital Library
- J. Armstrong. Erlang. Communications of the ACM, 53 (9): 68--75, 2010. Google ScholarDigital Library
- M. Ben-Ari. Principle of Concurrent and Distributed Programming. Wiley, 2005. Google ScholarDigital Library
- O. Boissier, R. H. Bordini, J. F. Hübner, A. Ricci, and A. Santi. Multi-agent oriented programming with jacamo. Science of Computer Programming, 2012. 10.1016/j.scico.2011.10.004. In press. 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
- R. H. Bordini, M. Dastani, J. Dix, and A. El Fallah Seghrouchni. Special Issue: Multi-Agent Programming, volume 23 (2). Springer Verlag, 2011.Google Scholar
- M. E. Bratman. Intention, Plans, and Practical Reason. Cambridge University Press, Mar. 1999.Google Scholar
- 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
- J. Fischer, R. Majumdar, and T. Millstein. Tasks: language support for event-driven programming. In Proc. of PEPM'07, pages 134--143, New York, NY, USA, 2007. ACM. Google ScholarDigital Library
- E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Pattens. Addison Wesley, 1995.Google Scholar
- S. E. Ganz, D. P. Friedman, and M. Wand. Trampolined style. SIGPLAN Not., 34 (9): 18--27, Sept. 1999. Google ScholarDigital Library
- N. Gehani. ADA: Concurrent Programming. Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1984. Google ScholarDigital Library
- P. Haller and M. Odersky. Actors that unify threads and events. In Proceedings of the 9th international conference on Coordination models and languages, COORDINATION'07, pages 171--190, Berlin, Heidelberg, 2007. Springer-Verlag. Google ScholarDigital Library
- D. Harel, A. Marron, and G. Weiss. Behavioral programming. Commun. ACM, 55 (7): 90--100, July 2012. Google ScholarDigital Library
- T. Harris, M. Abadi, R. Isaacs, and R. McIlroy. AC: composable asynchronous io for native languages. SIGPLAN Not., 46 (10): 903--920, Oct. 2011. Google ScholarDigital Library
- N. R. Jennings. An agent-based approach for building complex software systems. Commun. ACM, 44 (4): 35--41, 2001. 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
- A. C. Kay. The reactive engine. PhD thesis, The University of Utah, 1969. AAI7003806. Google ScholarDigital Library
- H. C. Lauer and R. M. Needham. On the duality of operating system structures. SIGOPS Oper. Syst. Rev., 13 (2): 3--19, Apr. 1979. Google ScholarDigital Library
- P. Li and S. Zdancewic. Combining events and threads for scalable network services implementation and evaluation of monadic, application-level concurrency primitives. SIGPLAN Not., 42 (6): 189--199, June 2007. Google ScholarDigital Library
- M. Miller, E. Tribble, and J. Shapiro. Concurrency among strangers: programming in E as plan coordination. In phTrustworthy Global Computing, volume 3705 of LNCS, pages 195--229. Springer Berlin / Heidelberg, 2005. Google ScholarDigital Library
- J. Ousterhout. Why Threads Are A Bad Idea (for most purposes), 1996. Presented at USENIX Technical Conference.Google Scholar
- A. S. Rao. AgentSpeak(L): Bdi agents speak out in a logical computable language. In Proc. of MAAMAW'96, pages 42--55. Springer-Verlag New York, Inc., 1996. Google ScholarDigital Library
- A. S. Rao and M. P. Georgeff. BDI Agents: From Theory to Practice. In Proc. of ICMAS'95, 1995.Google Scholar
- }Ricci:2011:DGP:2095050.2095078A. Ricci and A. Santi. Designing a general-purpose programming language based on agent-oriented abstractions: the simpAL project. In Proc. of AGERE! 2011, SPLASH'11 Workshops, pages 159--170, New York, NY, USA, 2011. ACM. Google ScholarDigital Library
- }rs11fcpA. Ricci and A. Santi. Agent-oriented computing: Agents as a paradigm for computer programming and software development. In Proc. of Future Computing'11, Rome, Italy, 2011. IARIA.Google Scholar
- Y. Shoham. Agent-oriented programming. Artificial Intelligence, 60 (1): 51--92, 1993. Google ScholarDigital Library
- S. Srinivasan and A. Mycroft. Kilim: Isolation-typed actors for java. In Proc. of ECOOP'08, pages 104--128, Berlin, Heidelberg, 2008. Springer-Verlag. Google ScholarDigital Library
- D. Syme, T. Petricek, and D. Lomov. The F# asynchronous programming model. In Proc. of PADL'11, pages 175--189, Berlin, Heidelberg, 2011. Springer-Verlag. Google ScholarDigital Library
- R. von Behren, J. Condit, and E. Brewer. Why events are a bad idea (for high-concurrency servers). In Proc. of HOTOS'03, pages 4--4, Berkeley, CA, USA, 2003. USENIX Association. Google ScholarDigital Library
Index Terms
- Programming abstractions for integrating autonomous and reactive behaviors: an agent-oriented approach
Recommendations
Workshop preview of the 2015 workshop on programming based on actors, agents, and decentralized control (AGERE! 2015)
SPLASH Companion 2015: Companion Proceedings of the 2015 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for HumanityThe AGERE! workshop focuses on programming systems, languages and applications based on actors, active/concurrent objects, agents and -- more generally -- high-level programming paradigms promoting a mindset of decentralized control in solving problems ...
AGERE!: programming based on actors, agents, and decentralized control
SPLASH '12: Proceedings of the 3rd annual conference on Systems, programming, and applications: software for humanityThe fundamental turn of software into concurrency and distribution is not only a matter of performance, but also of design and abstraction. It calls for programming paradigms that, compared to current mainstream paradigms, would allow us to more ...
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 ...
Comments