Glossary
This glossary was prepared from material and comments contributed (in alphabetic order) by
Luca Cardelli, Gianpaolo Cugola, Carlo Ghezzi, Gian Pietro Picco, Christian Tschudin,
Giovanni Vigna and Jan Vitek.
- Anchored resource A resource which may not be moved to another host, these usually include the like of devices, user interface elements, or files.
- Checkpointing Checkpointing, in this context refers to the operation of saving the execution state of a running computation.
- Code closure A code closure is the collection of code fragments required for the successful execution a routine, thread or computation. A code closure is exact if it includes only the code fragments that will be executed. It is approximate if it includes code fragments that will not be executed.
- Code fragment A code fragment is a syntactically valid sequence of instructions.
- Code Mobility In the context of mobile code languages, the term mobility refers to mechanisms to move code among different computational environments.
Code On Demand paradigm (COD) It is a paradigm to develop mobile code applications. MCAs developed using this paradigm can download and link on-the-fly part of their code from a different (remote) component that acts as a code server.
- Component Components are resources or computations.
- Computation A computation denotes an executing program composed of one or more active threads. Each computation consists of a code closure which specifies its behaviour, an execution state which stores all control information related to the execution the computation and a data space that includes all the resources accessible by the computation.
- Computational Environment (CE) The computational environment is a container for components. It provides some low level services and controls access to underlying resources of the host. The CE's implementation may be a run-time system on top of a standard operating system or an operating system in its own right.
- Data space The data space of an computation is composed of all the resources accessible from all the active routines of that computation.
- Data closure The data closure of an execution unit is the set of all local and non-local resources that are accessible by the currently executing routine. This data space constituent allows the computation to proceed, possibly calling other routines, but does not necessarily include the resources of the routine's caller.
- Execution state The execution state holds all the control information related to a computation. For example, the instruction pointer is part of the execution state.
- External resources Resources that are outside of the computational environment, e.g. a window in the host's windowing system.
- Location A location is a named computational environment. Locations names may be globally unique or relative to the current computational environment.
- Mobile Agent The term Mobile Agent lacks a widely recognized definition. In this context, we assume that a mobile agent is a synonym of mobile computation.
- Mobile Code Applications (MCA) Mobile Code Applications are software systems that exploit some form of code mobility.
- Mobile Code Language (MCL) A programming language supporting code mobility.
- Mobile Object System A mobile object system is an object system which can move autonomously from a CE to another CE in order carry out a computation.
- Mobile Computation It is a computation which is able to migrate autonomously to a different computational environment. Mobile computations imply code mobility.
- Mobile Software Agent see Mobile Agent.
- Object System An object system is a computation whose data space is composed of objects and whose code closure contains the code that specifies the behaviour of the objects.
- Remote Evaluation paradigm (REV) It is a paradigm to develop mobile code applications. Any component of an MCA developed using this paradigm can invoke services provided by other components (located on different computational environments by providing not only the input data needed to perform the service (like in a remote procedure call scheme) but also providing the code that describes how to perform the service.
- Remote reference A network reference allows a computation to access components that are located on a computational environment other than the one where the computation is being executed.
- Resource Resources are passive entities representing data.
- State distribution The use of network references enables an execution unit to own a data space that is composed of components spread on different computational environments. We refer to this situation with the term "state distribution", because a relevant portion of the state of a computation (the data space) is actually distributed on different CEs.
- Thread A sequential flow of control.
- Ubiquitous resources Resources guaranteed to be present in all the computational environments.