Skip to main content

From Actors and Concurrent Objects to Agent-Oriented Programming in simpAL

  • Chapter
Concurrent Objects and Beyond

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8665))

Abstract

Today we are witnessing a fundamental turn of software towards concurrency, distribution and interaction in every-day programming. This calls for introducing further abstraction layers on top of mainstream programming paradigms, to tackle more effectively the complexities that such turn implies. To this purpose, agent-oriented programming can be framed as an evolution of actors and concurrent objects, introducing a further level of human-inspired concepts for programming software systems. In that perspective, a program is conceived like an organization of human workers (agents), proactively doing some tasks and working together inside a possibly distributed environment—sharing resources and tools. In this paper we describe a new programming language called simpAL which allows for investigating agent-oriented programming as a general purpose paradigm for developing software systems.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Agha, G.: Actors: a model of concurrent computation in distributed systems. MIT Press, Cambridge (1986)

    Google Scholar 

  2. Agha, G.: Concurrent object-oriented programming. Commun. ACM 33(9), 125–141 (1990)

    Article  Google Scholar 

  3. Agha, G., Callsen, C.J.: Actorspace: an open distributed programming paradigm. SIGPLAN Not. 28(7), 23–32 (1993)

    Article  Google Scholar 

  4. Agha, G., Frolund, S., Kim, W., Panwar, R., Patterson, A., Sturman, D.: Abstraction and modularity mechanisms for concurrent computing. IEEE Parallel Distributed Technology: Systems Applications 1(2), 3–14 (1993)

    Article  Google Scholar 

  5. Agha, G., Hewitt, C.: Concurrent programming using actors. In: Yonezawa, A., Tokoro, M. (eds.) Object-oriented Concurrent Programming, pp. 37–53. MIT Press, Cambridge (1987)

    Google Scholar 

  6. Agha, G., Yonezawa, A., Wegner, P. (eds.): Research Directions in Concurrent Object-Oriented Programming. The MIT Press (1993)

    Google Scholar 

  7. Armstrong, J.: Erlang. Communications of the ACM 53(9), 68–75 (2010)

    Article  Google Scholar 

  8. Bellifemine, F., Caire, G., Poggi, A., Rimassa, G.: Jade: A software framework for developing multi-agent applications. lessons learned. Information & Software Technology 50(1-2), 10–21 (2008)

    Article  Google Scholar 

  9. Bellifemine, F.L., Caire, G., Greenwood, D.: Developing Multi-Agent Systems with JADE. Wiley (2007)

    Google Scholar 

  10. Boissier, O., Bordini, R.H., Hübner, J.F., Ricci, A., Santi, A.: Multi-agent oriented programming with jacamo. Science of Computer Programming 78(6), 747–761 (2013)

    Article  Google Scholar 

  11. Bordini, R., Dastani, M., Dix, J., El Fallah Seghrouchni, A. (eds.): Multi-Agent Programming Languages, Platforms and Applications, vol. 1, 15. Springer (2005)

    Google Scholar 

  12. Bordini, R., Dastani, M., Dix, J., El Fallah Seghrouchni, A. (eds.): Multi-Agent Programming Languages, Platforms and Applications, vol. 2. Springer (2009)

    Google Scholar 

  13. Bordini, R.H., Hübner, J.F.: BDI agent programming in AgentSpeak using jason (Tutorial paper). In: Toni, F., Torroni, P. (eds.) CLIMA 2005. LNCS (LNAI), vol. 3900, pp. 143–164. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  14. Bordini, R., HĂĽbner, J., Wooldridge, M.: Programming Multi-Agent Systems in AgentSpeak Using Jason. John Wiley & Sons, Ltd. (2007)

    Google Scholar 

  15. Bordini, R.H., Dastani, M., Dix, J., El Fallah Seghrouchni, A.: Special Issue: Multi-Agent Programming, vol. 23 (2). Springer (2011)

    Google Scholar 

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

    Article  Google Scholar 

  17. Chin, B., Adsul, B.: Responders: Language support for interactive applications. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 255–278. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  18. Ciancarini, P.: Coordination models and languages as software integrators. ACM Comput. Surv. 28(2), 300–302 (1996)

    Article  Google Scholar 

  19. Damiani, F., Giannini, P., Ricci, A., Viroli, M.: A calculus of agents and artifacts. In: Cordeiro, J., Ranchordas, A., Shishkov, B. (eds.) ICSOFT 2009. CCIS, vol. 50, pp. 124–136. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  20. Dastani, M.: 2apl: a practical agent programming language. Autonomous Agents and Multi-Agent Systems 16(3), 214–248 (2008)

    Article  Google Scholar 

  21. Dastani, M., van Riemsdijk, M.B., Dignum, F.P.M., Meyer, J.-J.C.: A programming language for cognitive agents goal directed 3APL. In: Dastani, M., Dix, J., El Fallah-Seghrouchni, A. (eds.) PROMAS 2003. LNCS (LNAI), vol. 3067, pp. 111–130. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  22. Frolund, S., Agha, G.: Abstracting interactions based on message sets. In: Ciancarini, P., Wang, J. (eds.) ECOOP-WS 1994. LNCS, vol. 924, pp. 107–124. Springer, Heidelberg (1995)

    Chapter  Google Scholar 

  23. Gamma, E.: Design patterns: elements of reusable object-oriented software. Addison-Wesley Professional (1995)

    Google Scholar 

  24. Gelernter, D.: Generative communication in Linda. ACM Transactions on Programming Languages and Systems 7(1), 80–112 (1985)

    Article  MATH  Google Scholar 

  25. Gelernter, D., Carriero, N.: Coordination languages and their significance. Commun. ACM 35(2), 97–107 (1992)

    Article  Google Scholar 

  26. Google. Dart programming language specification, Online document, available at: http://www.dartlang.org/docs/spec/ (last retrieved: April 12, 2012)

  27. Haller, P., Odersky, M.: Event-based programming without inversion of control. In: Lightfoot, D.E., Ren, X.-M. (eds.) JMLC 2006. LNCS, vol. 4228, pp. 4–22. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  28. Haller, P., Odersky, M.: Scala actors: Unifying thread-based and event-based programming. Theoretical Computer Science (2008)

    Google Scholar 

  29. Haller, P., Odersky, M.: Scala actors: Unifying thread-based and event-based programming. Theoretical Computer Science 410(23), 202–220 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  30. Hickey, R.: Agents and asynchronous actions (in clojure), Online document, available at: http://clojure.org/agents (last retrieved: September 1, 2011)

  31. Hindriks, K.V.: Programming rational agents in GOAL. In: Bordini, R.H., Dastani, M., Dix, J., El Fallah Seghrouchni, A. (eds.) Multi-Agent Programming: Languages, Platforms and Applications, vol. 2, pp. 3–37. Springer (2009)

    Google Scholar 

  32. Jennings, N.R.: An agent-based approach for building complex software systems. Commun. ACM 44(4), 35–41 (2001)

    Article  Google Scholar 

  33. Jennings, N.R., Wooldridge, M.: Agent-oriented software engineering. Artificial Intelligence 117, 277–296 (2000)

    Article  MATH  Google Scholar 

  34. Johnson, R.E., Foote, B.: Designing reusable classes. Journal of Object-Oriented Programming 1(2) (1988)

    Google Scholar 

  35. Karmani, R.K., Agha, G.: Actors. In: Padua, D.A. (ed.) Encyclopedia of Parallel Computing, pp. 1–11. Springer (2011)

    Google Scholar 

  36. Karmani, R.K., Shali, A., Agha, G.: Actor frameworks for the JVM platform: a comparative analysis. In: Proceedings of the 7th International Conference on Principles and Practice of Programming in Java, PPPJ 2009, pp. 11–20. ACM, New York (2009)

    Google Scholar 

  37. Kay, A.C.: The early history of smalltalk. In: Bergin Jr., T.J., Gibson Jr., R.G. (eds.) History of programming languages—II, pp. 511–598. ACM, New York (1996)

    Chapter  Google Scholar 

  38. 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)

    Chapter  Google Scholar 

  39. Mitchell, J.: Concepts in Programming Languages. Cambridge University Press (2002)

    Google Scholar 

  40. Omicini, A., Ossowski, S.: Objective versus subjective coordination in the engineering of agent systems. In: Klusch, M., Bergamaschi, S., Edwards, P., Petta, P. (eds.) Intelligent Information Agents. LNCS (LNAI), vol. 2586, pp. 179–202. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  41. Omicini, A., Ricci, A., Viroli, M.: Artifacts in the A&A meta-model for multi-agent systems. Autonomous Agents and Multi-Agent Systems 17(3), 432–456 (2008)

    Article  Google Scholar 

  42. Omicini, A., Ricci, A., Viroli, M., Castelfranchi, C., Tummolini, L.: Coordination artifacts: Environment-based coordination for intelligent agents. In: Jennings, N.R., Sierra, C., Sonenberg, L., Tambe, M. (eds.) AAMAS 2004, vol. 1, pp. 286–293. ACM (2004)

    Google Scholar 

  43. Pierce, B.C.: Types and programming languages. MIT Press, Cambridge (2002)

    MATH  Google Scholar 

  44. Pokahr, A., Braubach, L., Lamersdorf, W.: Jadex: A BDI reasoning engine. In: Bordini, R., Dastani, M., Dix, J., Seghrouchni, A.E.F. (eds.) Multi-Agent Programming. Kluwer (2005)

    Google Scholar 

  45. Rao, A.S.: AgentSpeak(l): BDI agents speak out in a logical computable language. In: Perram, J., Van de Velde, W. (eds.) MAAMAW 1996. LNCS, vol. 1038, pp. 42–55. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  46. Rao, A.S., Georgeff, M.P.: BDI Agents: From Theory to Practice. In: First International Conference on Multi Agent Systems, ICMAS 95 (1995)

    Google Scholar 

  47. Ricci, A., Piunti, M., Viroli, M.: Environment programming in multi-agent systems: an artifact-based perspective. Autonomous Agents and Multi-Agent Systems 23, 158–192 (2011)

    Article  Google Scholar 

  48. Ricci, A., Piunti, M., Viroli, M., Omicini, A.: Environment programming in CArtAgO. In: Bordini, R.H., Dastani, M., Dix, J., El Fallah-Seghrouchni, A. (eds.) Multi-Agent Programming: Languages, Platforms and Applications, vol. 2, pp. 259–288. Springer (2009)

    Google Scholar 

  49. Ricci, A., Santi, A.: Designing a general-purpose programming language based on agent-oriented abstractions: the simpAL project. In: Proc. of AGERE! 2011, SPLASH 2011 Workshops, pp. 159–170. ACM, New York (2011)

    Google Scholar 

  50. Ricci, A., Santi, A.: Programming abstractions for integrating autonomous and reactive behaviors: an agent-oriented approach. In: Proc. of AGERE! 2012, pp. 83–94. ACM, New York (2012)

    Google Scholar 

  51. Ricci, A., Santi, A.: A programming paradigm based on agent-oriented abstractions. International Journal on Advances in Software 5, 36–52 (2012)

    Google Scholar 

  52. Ricci, A., Santi, A.: Typing multi-agent programs in simpAL. In: Dastani, M., Hübner, J.F., Logan, B. (eds.) ProMAS 2012. LNCS, vol. 7837, pp. 138–157. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  53. Ricci, A., Santi, A.: Concurrent object-oriented programming with agent-oriented abstractions the aloo approach. In: Proc. of AGERE! 2013, ACM, New York (2013)

    Google Scholar 

  54. Ricci, A., Santi, A.: Concurrent OOP with agents. In: Proceedings of the 4th Annual Conference on Systems, Programming, and Applications: Software for Humanity, SPLASH 2013. ACM, New York (to appear, 2013), Extended abstract

    Google Scholar 

  55. Ricci, A., Viroli, M., Piancastelli, G.: simpA: An agent-oriented approach for programming concurrent applications on top of java. Sci. Comput. Program. 76, 37–62 (2011)

    Article  MATH  Google Scholar 

  56. Santi, A., Ricci, A.: Programming distributed multi-agent systems in simpAL. In: Flavio, D.P., Giuseppe, V. (eds.) Proceedings of the 13th Workshop on Objects and Agents (WOA 2012). CEUR Workshop Proceedings, vol. 892, Sun SITE Central Europe, RWTH Aachen University (2012)

    Google Scholar 

  57. Shoham, Y.: Agent-oriented programming. Artificial Intelligence 60(1), 51–92 (1993)

    Article  MathSciNet  Google Scholar 

  58. Sutter, H., Larus, J.: Software and the concurrency revolution. ACM Queue: Tomorrow’s Computing Today 3(7), 54–62 (2005)

    Article  Google Scholar 

  59. Syme, D., Petricek, T., Lomov, D.: The F# asynchronous programming model. In: Rocha, R., Launchbury, J. (eds.) PADL 2011. LNCS, vol. 6539, pp. 175–189. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  60. Varela, C., Agha, G.: Programming dynamically reconfigurable open systems with salsa. SIGPLAN Not. 36(12), 20–34 (2001)

    Article  Google Scholar 

  61. Wegner, P., Zdonik, S.B.: Inheritance as an incremental modification mechanism or what like is and isn’t like. In: Gjessing, S., Chepoi, V. (eds.) ECOOP 1988. LNCS, vol. 322, pp. 55–77. Springer, Heidelberg (1988)

    Chapter  Google Scholar 

  62. Yonezawa, A.: ABCL – an object-oriented concurrent system. MIT Press series in computer systems. MIT Press (1990)

    Google Scholar 

  63. Yonezawa, A., Briot, J.-P., Shibayama, E.: Object-oriented concurrent programming in ABCL/1. In: Meyrowitz, N.K. (ed.) Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 1986), Portland, Oregon, pp. 258–268. ACM (1986)

    Google Scholar 

  64. Yonezawa, A., Shibayama, E., Takada, T., Honda, Y.: Modelling and programming in an object-oriented concurrent language ABCL/1. In: Yonezawa, A., Tokoro, M. (eds.) Object-oriented Concurrent Programming, pp. 55–89. MIT Press, Cambridge (1987)

    Google Scholar 

  65. Yonezawa, A., Tokoro, M. (eds.): Object-oriented concurrent programming. MIT Press (1987)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Ricci, A., Santi, A. (2014). From Actors and Concurrent Objects to Agent-Oriented Programming in simpAL. In: Agha, G., et al. Concurrent Objects and Beyond. Lecture Notes in Computer Science, vol 8665. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-44471-9_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-44471-9_17

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-44470-2

  • Online ISBN: 978-3-662-44471-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics