Information Technology Reference
In-Depth Information
initloc(iots2) = initloc(iots1)
trans(iots2) =
trans(iots1)
\
{
}
(l0, g, mk Assign(
(x, mk Sum(mk Var(x), mk Const(1)))
), l3)
{
(l0, g, mk Assign(
(y, mk Var(x))
), l1),
(l1, TRUE, mk Assign(
(y, mk Sum(mk Var(y), mk Const(1)))
), l2),
(l2, TRUE, mk Assign(
(x, mk Var(y))
), l3)
}∧
assigned before read(iots1, l3, y)
equiv(iots1, iots2)
l0
l0
<=>
x[i] := y[i]
aux1 := i
l4
l1
aux2 := i
l2
aux2 := y[aux2]
l3
x[aux1] := aux2
l4
Fig. 6. Another transformation rule
Another example of a transformation rule is one stating that an IOTS iots 1
can be transformed into an equivalent IOTS iots 2 by replacing the transition
shown on the left hand side of Fig. 6 with the four transitions shown on the
right hand side of Fig. 6, or vice versa, provided that (1) l 1, l 2and l 3are
not locations of iots 1, aux 1and aux 2 are local variables, and (2) in any path
emanating from location l 4, the variables aux 1and aux 2 are assigned before
read. The rule is generic in locations l 0, l 1, l 2, l 3and l 4, and variables aux 1,
aux 2, x and y .
7.5
IOTS Semantics of the Source and Target Languages
In [30] it is explained how to derive the IOTS semantics for generated SystemC
models and assembler code. This can be formalised in RSL by defining abstract
Search WWH ::




Custom Search