Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aspinall, D., Stark, I.: Futures and promises in alice ml (2008), http://www.inf.ed.ac.uk/teaching/courses/apl/2010-2011/examples/aliceml.pdf
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)
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)
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)
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)
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)
Miller, M.S.: Robust composition: towards a unified approach to access control and concurrency control. Ph.D. thesis, Baltimore, MD, USA (2006) AA13245526
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)
Miller, M.S., Yee, K.P., Shapiro, J.: Capability Myths Demolished. Tech. rep., Systems Research Laboratory, Johns Hopkins University (2003)
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)
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.2095078
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)
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)
Shavit, N., Touitou, D.: Software transactional memory. Distributed Computing 10(2), 99–116 (1997)
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)
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)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Muscar, A. (2013). Extending Jason with Promises for Concurrent Computation. In: Fortino, G., Badica, C., Malgeri, M., Unland, R. (eds) Intelligent Distributed Computing VI. Studies in Computational Intelligence, vol 446. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-32524-3_7
Download citation
DOI: https://doi.org/10.1007/978-3-642-32524-3_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-32523-6
Online ISBN: 978-3-642-32524-3
eBook Packages: EngineeringEngineering (R0)