[:Outline:]
SARL is a statically-typed agent-programming language. SARL aims at providing the fundamental abstractions for dealing with concurrency, distribution, interaction, decentralization, reactivity, autonomy and dynamic reconfiguration. These high-level features are now considered as the major requirements for an easy and practical implementation of modern complex software applications. We are convinced that the agent-oriented paradigm holds the keys to effectively meet this challenge.
Syntactically and semantically SARL has its roots in the Java programming language but improves on many aspects:
- Agent specific statements - provide specific statements for agent programming
- Type inference - you rarely need to write down type signatures anymore
- Lambda expressions - concise syntax for anonymous function literals
- Operator overloading - make your libraries even more expressive
- Extension methods - enhance closed types with new functionality
- Powerful switch expressions - type based switching with implicit casts
- No statements - everything is an expression
- Full support for Java generics - including all conformance and conversion rules
- Translates to Java not bytecode - understand what is going on and use your code for platforms such as Android or GWT
Unlike other JVM languages, SARL has zero interoperability issues with Java: everything you write interacts with Java exactly as expected. At the same time, SARL is much more concise, readable and expressive.
The language is platform- and architecture-independent.
For a brief comparison between SARL, Java and Xtend languages, see the Section "Comparison between SARL and other languages".
Yes.
SARL may be used to build agent based applications. Natively, SARL provides features for agent execution and direct communication. The agents may be deployed across multiple networked computers.
Yes.
SARL may be used for agent based simulations. Natively, SARL provides features for agent execution and direct communication. An extension is provided for supporting the simulated environments (time management, environment model...)
Yes.
Holon is recursively composed of holons. In SARL, agents are holons. SARL provides a complete support for holons.
Yes.
An extension to SARL is available that defines an organizational space based on the CRIO meta-model (Capacity-Role-Interaction-Organization). This meta-model defines a system as a set of organizations in which roles are defined and interact together. Agents play roles in organization instances (or groups) and provides embedded capacity implementations required by the played roles.
Another organizational model may be in another space.
Yes and No.
While SARL is an agent-oriented programming language, it is possible to use object-oriented concepts when writing the agent code (skills...) A part of the grammar of SARL is inherited from the Xbase partial programming language, provided by the Xtext framework. It provides statements and rules that correspond to object-oriented languages.
Yes.
SARL and Java are 100% interoperable. There are no exceptional cases and you do not have to think in two worlds. You can invoke SARL code from Java and vice versa without any surprises or hassles. [:Fact:]{typeof(Integer)}
No.
You can create a SARL project with Eclipse without Maven. Indeed, the SARL Eclipse product supports creation of a SARL project.
However, the SARL developers recommend Maven because it simplifies the management of your project's dependencies on the SARL libraries.
SRE stands for "SARL Runtime Environment." The SRE is an implementation of an agent platform which is able to run a SARL program. The official standard SRE supported by the SARL developers is the Janus platform.
SARL is a general-purpose agent-oriented language. Janus is a runtime environment (SRE) for multi-agent applications that fully supports the concepts of SARL.
We can compare the SARL universe with the Java universe:
SARL Universe | Java Universe | |
---|---|---|
Language Specification | SARL Specification | Java Specification |
Standard Development Kit | SARL SDK | J(ava)DK |
Runtime environment | Janus, TinyMAS... | Hotspot, IcedTea, Dalvik... |
The release planning of SARL is detailed on the milestones page on Github.
If your question is not addressed in the FAQ, the reference documents, or the existing issues, you may ask the SARL developers on the SARL forum.
A community driven list of useful SARL libraries, frameworks and software is maintained on Github. This is not a catalog of all the libraries, just a starting point for your explorations. This list is used by the SARL team to update the official web site of SARL.
SARL is based on a part of the Eclipse API. Every operating system which has a compatible Java Virtual Machine with Eclipse may be used to run SARL.
SARL requires the JRE and the JDK [:compiler.level!] or higher to compile and run. Note that if you plan to create Android applications, you should configure your JDK to produce 1.6 class files from [:compiler.level!] Java code. :Fact:
Most of the time the problem is due to an incompatibility between the configuration of your operating system or Java virtual machine, and the SARL Eclipse product.
If a problem occured, find the ".log" file in which Eclipse is writting the complete error trace. Usually, it is in your home directory or in the folder of the SARL Eclipse executable file.
This is due to a problem in your configuration. Most of the time the log file (see the previous question) contains the error "Cannot load 64-bit SWT libraries on 32-bit JVM".
It means that you're trying to run the 64-bit version of the SARL Eclipse with a Java virtual machine (JVM) that is 32-bit. You should install a fully 64-bit JVM, or use the 32-bit version of the SARL Eclipse product.
If another error occurs, you should go on the SARL forum and report this problem.
This is due to a problem in your configuration. SARL tools need the Eclipse framework to be run with a Java Development Kit [:compiler.level!] or higher. You are currently running the SARL product with a lower version of the JDK.
You must run the SARL product with a valid version of the JDK. Two ways are available for solving this issue:
- install the JDK [:compiler.level!], and configuring your operating system to use it by default; or
- force the SARL product to use the JDK [:compiler.level!] by editing the
eclipse-sarl.ini
file. Add the following parameter on a new line:-vm path
, wherepath
is the path to the binary filejavaw[.exe]
orjava[.exe]
of the JDK [:compiler.level!]. :Fact:
By default in the SARL product, the shortcut key for invoking the content assistant is Ctrl+Space
or Apple+Space
.
But, the Spotlight tool on MacOS is also using the same shortcut key.
For enabling the SARL product content assist, we recommend to change its shortcut in the SARL product. Go to:
- Window > Preferences
- General > Keys
- Content Assist
- Change the shortcut key
The sources for SARL are available on Github. Details for getting the source code may be found on the download page.
SARL Core Developers use Github to manage bug tracking and project workflow. The issues are listed on Github.
You should submit your issue on this page.