From Objects to Agents: Rebooting Agent-Oriented Programming for Software Development

   page       attach   

The notion of agent more and more appears in different contexts of computer science, often with different meanings. The main acceptation is the AI (Artificial Intelligence) and Distributed AI one, where agents are essentially exploited as a technique to develop special-purpose systems exhibiting some kind of intelligent behavior. In this paper, we introduce a further perspective, shifting the focus from AI to computer programming and programming languages, seeing agents and related concepts as general-purpose abstractions useful for programming software systems in general, conceptually extending object-oriented programming with features that — we argue — are effective to tackle some main challenges of modern software development. First, we define a conceptual space framing the basic features that characterize the agent-oriented approach, then we show how such features are dealt with in practice by using a platform called JaCa. Real-world programming examples are introduced throughout to clarify the discussion.