Trace
- with , and
slide: Transitions -- example
To derive the transition
corresponding with the program fragment
we must dissect the fragment and construct
transitions for each of its (elementary)
statements as shown in , and .
The second statement, the method call ,
needs two transitions and , of which the
first represents the execution of the body of inc
in the local context of the object created in
and the second represents the effect of the method
call from a global perspective.
For the first statement, we have assumed that
the constructor for ctr is empty
and may hence be omitted.
Notice that the object identifier
(introduced in ) is assumed in to effect
the appropriate local changes to n.
After constructing the transitions for
the individual statements we may compose these
transitions by applying the composition rule
and, in this case, identifying
with
and
with .
As observable behavior we obtain
(where ),
which represents the creation of a counter
and its subsequent modification by inc.
Discussion
Transition systems, such as the one given above,
were originally introduced
as a means to model the behavior of CSP.
They have been extensively used to model
the operational semantics of programming languages,
including concurrent and object-oriented languages.
See, for example, [ABKR89] and [Eliens92].
In [AptO], transition systems have been used as
a model to prove the soundness and completeness
of correctness rules for concurrent programming
constructs.
Also in [AmBo93], transition systems are used
to demonstrate the validity of a proof system
for a parallel object-oriented programming language.
The interested reader is invited to explore
the sources mentioned for further study.
[]
readme
course
preface
1
2
3
4
5
6
7
8
9
10
11
12
appendix
lectures
resources
eliens@cs.vu.nl

draft version 0.1 (15/7/2001)