Information Technology Reference
In-Depth Information
where C n ∈CN
is a class name from the set of class-names
CN
and C b
is the
body of the type definition:
C b = df
|
[
var V : T = I
methods M 1
n
= M 1
b
; ...; M n
= M b
N 1
n
= N 1
b
;...; N n = N b
actions
do A od
: M I
Similar to our definition of action systems, V denotes a vector of state-variables
of types T , initialized with a value of I .Aclassmayhave m methods, each one
having a name and a body: M i = df ( M n
]
|
,M b
m ). As in action systems,
the class may import a set of methods M I from other classes. Like before, we do
not allow for recursive calls of methods (so we can easily in-line the calls), and
named actions may only be called from within the do od -block. Notice that this
implies that methods are “public”, as they can be called by any other method
or action. Again, methods are free to return a value while named actions may
only take input parameters.
We restrict an object-oriented action system to a finite set of classes
)(1
i
C
= df
{
C 1 ,...,C k }
and a finite set of objects. Practically, this means that we allow
object-instantiation only during state-variable initialization, which permits us a
rather easy check of finiteness. When a class in an object-oriented action system
is marked as autocons , one instance of the class will be created automatically at
system start and is called a “root object”.
We assume that all objects of one class have the same priority. Between objects
of different classes, however, we allow ordering with the help of the prioritized
composition operator: we introduce a so-called system assembling block ( SAB ).
The SAB , which is an extension to the work of [4], specifies the ordering of
priorities between objects of different classes. We rely extensively on this feature
in order to model, e.g., event broadcasting, as is discussed in Section 4.4. The
syntax of the system assembling block is defined by the following grammar.
SAB ::= C n ((
|
// ) SAB )?
Notice that the non-deterministic choice operator denotes parallel composition
and the prioritizing composition operator expresses a prioritizing composition of
objects. As an example, C 1 // C 2 means that only if there is no action enabled
in any of the C 1 objects, actions of any of the C 2 objects will be looked at.
Hence, we define an object-oriented action system as a 3-tuple (
C
,
R
, SAB ),
C 1 ,...C k }
where
is a set of classes that
need to be instantiated once at system start, and SAB is the system assembling
block. Within the system assembling block, each class-name C n ∈C
C
is a finite set of classes
{
,
R⊆C
must be
CN
listed once, and all listed names must be from
.
The semantics of object-oriented action systems are given by a mapping to
action systems which is based on the work presented in [4]. The main idea of the
mapping is to create one action system per object and join all action systems as
specified in the system assembling block.
 
Search WWH ::




Custom Search