Mobile agents, i.e, pieces of programs that can be sent around networks of
computers, appear more and more frequently on the Internet. These programs
may be seen as an enrichment of traditional distributed computing, and stru
cturing applications using mobile agents is destined to become the de facto
way of constructing distributed systems in the near future. Since mobile a
gents may carry communication links with them as they move across the netwo
rk, they create very dynamic interconnection structures that can be extreme
ly complex to analyse. In this paper we study an example of a system based
on the mobile agent principle, written in the Facile programming language.
We propose a Structural Operational Semantics (SOS) for Facile, giving a pr
oved transition system that records encodings of the derivation trees of tr
ansitions in their labels. This information enables us to easily recover no
n-interleaving semantics for Facile by looking only at the labels of transi
tions. We use the new semantics to debug an agent based system. This exampl
e is a scaled down version of a system demonstrated at the European IT Conf
erence Exhibition in Brussels, 1995. We also adopt our causal semantics to
analyse the specification of a prefetch pipeline processor.