Monadic Foundations for Promises in Jason
Keywords: agent-oriented programming, concurrent programming, asynchronous programming, promises, monads
AbstractEven 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 a design for an extension to Jason that makes concurrent programming easier with the aid of promises. The proposed extension is based on a monadic characterisation of promises which makes it possible to express concurrent flows in a more natural way. It also avoids the inversion of control problem inherent when programming with callbacks. We also take into account some of the drawbacks of our proposed approach and investigate some possible solutions.
Special Section: Agent Technologies
Copyright terms are indicated in the Republic of Lithuania Law on Copyright and Related Rights, Articles 4-37.