![]() |
T10:
|
Programming Languages for Multi-Agent Systems |
|
presenters:
Multi-agent system is a very broad area, and has produced an impressive variety of techniques that can have an important impact on the development of intelligent distributed systems. Some of these techniques have indeed been incorporated into working implementations of large-scale multi-agent systems. However, as a norm, such techniques have been used within systems that have been implemented using traditional software engineering methodologies and programming languages. This is far from ideal, but until recently there was no available alternative. Fortunately, there is now a body of work on agent-oriented software engineering as well as agent-oriented programming languages that is reasonably mature. Moreover, some agent-oriented software engineering approaches (e.g., Prometheus) have been conceived specifically for implementation with agent-oriented programming languages. This tutorial is aimed at giving a comprehensive overview of the work being done on agent-oriented programming languages, concentrating on approaches that are now mature enough to be used in the development of (in some cases large-scale) multi-agent systems applications. Because of the variety of application areas for which multi-agent systems can be adequately used, it is unlikely that a single programming language will become the norm. Each agent-oriented programming language provides particular features that usually have different importance for different application areas. Thus, it is important to give a broad view of the work on programming languages and platforms for multi-agent systems. However, we think it is important to present at least some of these languages in more detail, so that we can show the various issues that are involved in the design and development of agent programming languages and platforms. We will give a reasonably detailed account of two agent programming languages and their corresponding platforms. First, the Jason programming language and its platform will be presented. This platform implements the operational semantics of an extended version of AgentSpeak. Then, we present the 3APL programming language and its platform. We discuss the syntax and operational semantics of 3APL, and explain various programming facilities provided by the 3APL platform. Finally, we present the main features of a sample of the various existing approaches for agent programming languages, in particular ConGolog, JACK, Jadex, MetateM, IMPACT, and CLAIM. We will also provide references to a number of agent programming languages that have appeared in the literature. Therefore, this tutorial is relevant not only for those interested in research on agent-oriented programming, but also for any researcher on multi-agent systems who intends to produce working, large-scale applications in which they can then incorporate their favourite techniques. Also, the tutorial is equally relevant for those intending to choose a platform for practical coursework when teaching multi-agent systems, as well as students interested in learning how to program multi-agent systems with appropriate abstractions for such task. |