Declarative notations can be given a formal semantics directly, whereas procedural languages must first be mapped to declarative structures. Formal semantics is crucial for validating tools that build agents and their interaction protocols. It ensures predictable behavior, and enables efficiencies in implementation without jeopardizing soundness. User interfaces . Declarative specifications are easier to generate than procedural code, leading to greater productivity for interface developers and, coupled with clean semantics, greater predictability for users.
Mobility includes procedural encodings in two distinct respects.
One, the behavior of a mobile agent is procedurally coded. This might be reasonable for some static agents as well. Two, the interactions of a mobile agent are implicit in the code that constitutes it. This is unnecessary when the agent is static. Static agents can then be supplied by different vendors and programmed in different languages as long as they communicate properly with each other.