Ambient Abstract State Machines with applications

https://doi.org/10.1016/j.jcss.2011.08.004Get rights and content
Under an Elsevier user license
open archive

Abstract

We define a flexible abstract ambient concept which turned out to support current programming practice, in fact can be instantiated to apparently any environment paradigm in use in frameworks for distributed computing with heterogeneous components. For the sake of generality and to also support rigorous high-level system design practice we give the definition in terms of Abstract State Machines. We show the definition to uniformly capture the common static and dynamic disciplines for isolating states or concurrent behavior (e.g. handling of multiple threads for Java) as well as for sharing memory, patterns of object-oriented programming (e.g. for delegation, incremental refinement, encapsulation, views) and agent mobility.

Highlights

► A general ambient concept is defined for software system design. ► It uses parameterization of Abstract State Machines. ► It is shown to capture isolation of states and memory sharing. ► It permits uniform descriptions of concurrent behavior. ► It generalizes some behavioral design patterns.

Keywords

Ambient concept
Abstract State Machines
Naming disciplines
Memory sharing disciplines
Object-oriented design patterns
Mobile agents

Cited by (0)

This work was partially supported by the Italian Government under the project PRIN 2007 D-ASAP (2007XKEHFA). Part of the work of the first author was done when he was on a sabbatical leave, visiting the Computer Science Department of the ETH Zürich. The material has been presented by the first author to the Amir Pnueli Memorial Symposium at Courant Institute, NYU, New York, 7–9.5.2010.