Mob is a service-oriented scripting language for programming mobile agents in distributed systems. The main novelty of the language is the integration of the service-oriented and mobile agent paradigms. The combination of the service-oriented and mobile agent paradigms in a programming language provides a useful tool for high-level programming of mobile agents. For instance, using a service-oriented language, programmers are not required to keep track of agent names. This makes applications more resilient since the same service may be provided transparently by several agents in the network. This is especially important in networks with volatile resources. Another key feature of the programming language is that agents may be simultaneously clients and servers, creating a more flexible framework for implementing distributed applications.
Mob programs are compiled into an intermediate language derived for a process calculus. This translation scheme forms the front-end of the language compiler and allows us to use, for the back-end and for the run-time system, a compiler and a virtual machine originally developed for the process calculus.