The urbiscript language was created in 2003 by
Jean-Christophe Baillie in the Cognitive Robotics Lab of
ENSTA, Paris. It has been actively and further developed in the industry through the Gostai company founded in 2006. It is now an open source project, with a BSD license, available on GitHub. The urbiscript language can be best described as an orchestration script language: like
Lua in video games, urbiscript can be used to glue together C++ components into a functional behavior, the CPU-intensive algorithmic part being left to C++ and the behavior scripting part being left to the script language which is more flexible, easy to maintain and allows dynamic interaction during program execution. As an orchestration language, urbiscript also brings some useful abstractions to a program by having
parallelism and
event-based programming as part of the language semantics. The scripting of parallel behaviors and reactions to events are core requirements of most robotic and complex AI applications, therefore urbiscript (and the whole Urbi platform) is well suited to such applications.
Language attributes • Parallelism and event-based programming •
Prototype-based programming • C++ like syntax •
Java and C++ based component architecture (UObject) with possibility to link objects or run them remotely •
Client–server model architecture • Cross platform: Linux, Macintosh, Windows, others. • Embeddable, Urbi can run on various processors: x86, ARM, MIPS, powerPC, etc. • Job control via "tags" == Functions ==