SARL (programming language)

It aims at providing the fundamental abstractions for dealing with concurrency, distribution, interaction, decentralization, reactivity, autonomy and dynamic reconfiguration.

It provides a set of agent-oriented first-class abstractions directly at the language level (see the section on the concepts).

The metamodel of SARL is based on four main concepts: Agent, Capacity, Space and Skill.

[1] The core metamodel of SARL is presented in Figure 1, and the main concepts are colored in light blue.

In SARL, a Multiagent System (MAS) is a collection of Agents interacting together in shared distributed Spaces.

Despite its open nature, SARL imposes some fundamental principles to be respected by the various Virtual Machines (VM) that wants to support it.

One of the key principles governing SARL consists in not imposing a predefined way for Agents to interact within a Space.

The SARL tools have been developed on top of Xtext, that enables to easily build domain-specific languages that are directly integrated into the Eclipse framework.

An Event is the specification of some occurrence in a Space that may potentially trigger effects by a listener (e.g. agent, behavior, etc.).

The programmer is free to implement any control or authority protocol for their own application scenario, except for the initialization and destruction events.

This provides agents with a self-adaptation mechanism that allow them to dynamically change their architecture according to their current needs and goals.

Each agent can then create specific public or private spaces to achieve its personal goals.

The notion of Context makes complete sense when agents are considered composed or holonic (see below).

The on keyword permits to define the actions when an occurrence of the specified event is received by the agent A.

The major assumption made at the SARL language level are supported by this run-time environment: fully distributed, parallel execution of agent's behaviors.

Figure 1: The concepts of the SARL programming language.
Figure 1: The concepts of the SARL programming language.