Extending Jason with Promises for Concurrent Computation

  • Alex MuscarEmail author
Conference paper
Part of the Studies in Computational Intelligence book series (SCI, volume 446)


Even though the agent-oriented paradigm (AOP) has lost some of its charm in the past couple of years, the agent community is still active and a large variety of real world applications have been developed lately. Ranging from web applications to mobile applications, the paradigm has shown it is a viable choice. From an overview of these applications Jason seems to be the most widely used AOP language. But, while the core foundation of Jason, the Belief-Desire-Intention (BDI) theory, has gotten a lot of attention over the years, the language is still lacking with respect to some practical aspects such as concurrent programming. In this paper we propose an extension to Jason that makes concurrent programming easier with the aid of promises. This extension makes it possible to express concurrent flows in a more natural way. We first present a non-intrusive extension that enables this style of programming and motivate its usefulness. Then we propose a language extension that avoids the inversion of control problem inherent when using promises. We also take into account some of the drawbacks of our proposed approach and investigate some possible solutions.


agent-oriented programming concurrent programming asynchronous programming promises 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aspinall, D., Stark, I.: Futures and promises in alice ml (2008),
  2. 2.
    Bordini, R.H., Hubner, J.F., Vieira, R.: Jason and the golden fleece of agent-oriented programming. In: Bordini, R.H., Dastani, M., Dix, J., Fallah-Seghrouchni, A.E. (eds.) Multi-Agent Programming, Multiagent Systems, Artificial Societies, and Simulated Organizations, vol. 15, pp. 3–37. Springer (2005)Google Scholar
  3. 3.
    Bordini, R.H., Wooldridge, M., Hubner, J.F.: Programming Multi-Agent Systems in AgentSpeak using Jason. Wiley Series in Agent Technology. John Wiley & Sons (2007)Google Scholar
  4. 4.
    Clark, K.L., McCabe, F.G.: Go! - a multi-paradigm programming language for implementing multi-threaded agents. Annals of Mathematics and Artificial Intelligence 41(2-4), 171–206 (2004)zbMATHCrossRefGoogle Scholar
  5. 5.
    Friedman, D., Wise, D.: The Impact of Applicative Programming on Multiprocessing. Technical report (Indiana University, Bloomington. Computer Science Dept.). Indiana University, Computer Science Department (1976)Google Scholar
  6. 6.
    Johnsson, T.: Lambda lifting: transforming programs to recursive equations. In: Proc. of a Conference on Functional Programming Languages and Computer Architecture, pp. 190–203. Springer-Verlag New York, Inc., New York (1985)CrossRefGoogle Scholar
  7. 7.
    Miller, M.S.: Robust composition: towards a unified approach to access control and concurrency control. Ph.D. thesis, Baltimore, MD, USA (2006) AA13245526Google Scholar
  8. 8.
    Miller, M.S., Tribble, E.D., Shapiro, J.S.: Concurrency Among Strangers: Programming in E as Plan Coordination. In: De Nicola, R., Sangiorgi, D. (eds.) TGC 2005. LNCS, vol. 3705, pp. 195–229. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  9. 9.
    Miller, M.S., Yee, K.P., Shapiro, J.: Capability Myths Demolished. Tech. rep., Systems Research Laboratory, Johns Hopkins University (2003)Google Scholar
  10. 10.
    Minotti, M., Piancastelli, G., Ricci, A.: Agent-Oriented Programming for Client-Side Concurrent Web 2.0 Applications. In: Cordeiro, J., Filipe, J. (eds.) WEBIST 2009. LNBIP, vol. 45, pp. 17–29. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  11. 11.
    Ricci, A., Santi, A.: Designing a general-purpose programming language based on agent-oriented abstractions: the simpal project. In: Proceedings of the Compilation of the Co-located Workshops on DSM 2011, TMC 2011, AGERE! 2011, AOOPES 2011, NEAT 2011, VMIL 2011, SPLASH 2011 Workshops, vol. 38, pp. 159–170. ACM, New York (2011), doi:10.1145/2095050.2095078Google Scholar
  12. 12.
    Santi, A., Guidi, M., Ricci, A.: JaCa-Android: An Agent-Based Platform for Building Smart Mobile Applications. In: Dastani, M., El Fallah Seghrouchni, A., Hübner, J., Leite, J. (eds.) LADS 2010. LNCS, vol. 6822, pp. 95–114. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  13. 13.
    International Organization of Securities Commissions, T.C.: Regulatory issues raised by the impact of technological changes on market integrity and efficiency. Tech. rep., International Organization of Securities Commissions (2011)Google Scholar
  14. 14.
    Shavit, N., Touitou, D.: Software transactional memory. Distributed Computing 10(2), 99–116 (1997)CrossRefGoogle Scholar
  15. 15.
    Sussman, G.J., Steele Jr., G.L.: Scheme: an interpreter for extended lambda calculus. MIT AI Memo, vol. 349. Massachusetts Institute of Technology, Cambridge (1975)Google Scholar
  16. 16.
    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)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  1. 1.University of CraiovaCraiovaRomania

Personalised recommendations