Fork me on GitHub


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:

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.

Of course, you can call SARL methods from Java, too, in a completely transparent way. Furthermore, SARL provides a modern Eclipse-based IDE closely integrated with the Eclipse Java Development Tools (JDT), including features like call-hierarchies, rename refactoring, debugging and many more.

Nevertheless, and even if SARL is closely related to Java, the SARL compiler is able to generate code for other target languages, e.g. Python.

For a brief comparison between SARL, Java, Xtend and Scala languages, see the Section "Comparison between SARL, Java and Xtend".

We provide a first set of tools to support the SARL program execution based on the new version 2.0 of the Janus Platform, but it can be linked with other existing agent platforms and frameworks.

Original Authors

The original authors are the originators of the SARL language and framework. They are passionate in supporting the SARL community, developing the framework continuously further and creating the perfect agent DSL for their customers. SARL is open source and completely free to use - but you can be faster and more successful with our professional support.
Dr. Stéphane Galland

prof. dr. Stéphane Galland

Stéphane is Professor in agent-based modeling and simulation at Burgundy Franche-Comté University, France. He is one of the contributors to the ASPECS methodology, CRIO metamodel, and Janus agent platform. He contributes to a wide variety of professional and open source projects, including Xtext, Hazelcast, Checkstyle, CTAN, and Jnario.

Dr. Nicolas Gaud

dr. Nicolas Gaud

Nicolas is Professor in agent-based software engineering and simulation at Burgundy Franche-Comté University. His main research interests deal with the modeling, analysis and simulation of complex systems using Agent-Oriented Software Engineering, Holonic Multiagent Systems and Multiagent-based simulation. He is also involved in various professional projects dealing with the simulation of entities (pedestrian, transportation systems, etc) in virtual environments.

Pr.Dr. Sebastian Rodriguez

prof. dr. Sebastian Rodriguez

Sebastian is Senior Lecturer at the Computer Science and Software Engineering Department at RMIT University in Melbourne, Australia. He contributes to agent software engineering field with the CRIO metamodel, the ASPECS methodology, and the Janus agent platform.

Major Authors

dr. Alexandre Lombard

Alexandre is Professor in computer science and multiagent systems at Burgundy Franche-Comté University. His main research interests deal with the modeling, analysis and simulation of complex systems using machine learning models.

Other Contributors

Antoine Bartuccio

Fireworks and Sierpinski fractal examples

Jérôme Boulmier

Game of Life example

Greg Bowering

Fixes for localization support within the fireworks example

Mohamed Ezzat

Code cleaning and optimization

Thomas Farrenkopf

Documentation contributor

James Foster

Documentation contributor

Jeremie Jost

Documentation contributor

Ludovico de Nittis

Documentation contributor

Maxime Pinard

Game of Life example

Thomas Piotrowski

Maven Configuration

Sebastian Sardina

Documentation contributor

License of SARL

Copyright 2014-2023 the original authors or authors.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.