23.08.2013 Views

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

9.5 A Computational Interleaving Semantics 279<br />

The message-send statement ¥¡ ¡ ¡ ¥ ch!m(E1 En) indicates that process Cp ¥¡ ¡ ¡ ¥ (E¡1 E¡r ) wants<br />

to transmit message m with parameters ¡ ¡ E1 En on channel ch. The execution <strong>of</strong> this<br />

message-send statement is observable by the environment through the performance <strong>of</strong><br />

send ch!m§ data action . If this send action is performed, process Cp (E¡1 ¥¡ ¡ ¡ ¥ E¡r) terminates<br />

successfully ¡ ¡ with state , ps¡ process stack and type ¡<br />

. data is a ¡ list copy( <br />

¥ ¡ ¡<br />

¡ ¥ ¡ 1 ¡ ¡ ), ¤ ,<br />

copy( <br />

¥ ¡ ¡<br />

¡ ¥ ¡ ) n <strong>of</strong> deepCopies <strong>of</strong> data ¤ objects ¡ ¡ ¤ 1 n . These data objects are ¤ obtained<br />

by evaluating data ¡ ¡ expressions E1 En for left to right, starting ¡ from state , process<br />

stack ps and type ¡ . Notice that the required deepCopies can only be calculated properly<br />

if each <br />

is a Sys-structure.<br />

¡<br />

(3’) Message reception<br />

¤ i ¥ ¡ ¡ ¥<br />

<br />

<br />

where ¥<br />

¡<br />

ch?m(p1 ¥¡ ¡ ¡ ¥ pn ¡ E) C § p ¡ ¡ ¡£ Er¢ ¥<br />

¡<br />

E1£<br />

<br />

¡<br />

<br />

¥ ps¡ ¥ ¡<br />

§ Cp ¡£ Er¢ ¥ E1£ ¡ ¡<br />

¡ <br />

¡ ¡ if ps 0 , data<br />

¥<br />

¥<br />

£<br />

¡<br />

<br />

<br />

£<br />

¥ Sys ¡ p Sys ¥<br />

<br />

¤ 1 ¥ ¡ 1¥<br />

¡<br />

ps¥ ¥ Sys ¥ ¡ p Sys ¥<br />

¡ 1 ¥¡ ¡ ¡ ¥<br />

bunk¦ true¥<br />

¡1 MaxId(¡ relabel ) (<br />

¤ ¡ 1 ¥ ¡ ¡1 ¥<br />

¡ 1 ¡ ¦ ¡ ¡1 ¥<br />

¡ 2 ¥ ¡ ¡2 ¤ ¥<br />

2 ¡<br />

<br />

¡ n ¥ ¡ ¡n ¤ ¥<br />

n ¡<br />

¡ 1¥ ¤ 1<br />

¡<br />

£<br />

¤ 2 2¥<br />

¡<br />

£<br />

¥ ¤ n n<br />

¥ ¡ ¡ ¥ ps¡ ¥<br />

¡<br />

¡<br />

¡<br />

¡ 1<br />

¡<br />

¡2 relabel ¡ ¡ MaxId( 1) (<br />

¡ 1 ¦ ¡ ¡2 ¥<br />

¡ 2<br />

¦<br />

¡ 1 ¦<br />

¡n relabel ¡ ¡ MaxId( ¢ n 1) (<br />

n 1 ¦ ¡ ¡n ¡ ¥<br />

¥<br />

¥<br />

¥<br />

¡<br />

¡ n<br />

£<br />

¡ n ¡ n(proc) £<br />

¡<br />

¡1<br />

¡<br />

¡2<br />

¡ n 1 ¦<br />

¡<br />

¤ 1 ¥ ¡ 1 ¥<br />

¤ n ¥ ¡ n ¥<br />

¤ 2 ¥ ¡ 2¥<br />

¡n<br />

¡ 1 )<br />

¤ n ¥ ¡ n ¥<br />

¡ 2 )<br />

data¤<br />

¤ £<br />

ch?m£<br />

¡ n ¡ Struc n Sys£ min and<br />

¡ n )<br />

¥<br />

¥ ¡ ¡ ¥<br />

¡ © ¤ proc¦ ¡ © ¦ ¥<br />

¡ ¥<br />

1 p1 top(ps)(2) if p1 IVar<br />

n top(ps)(2) £<br />

¦ ¡ © ¡<br />

£ ¤<br />

£ £<br />

¡ ¡<br />

1 p1 if p1 LVar<br />

1 1(proc) £<br />

¤ ¡ © ¤ £<br />

¦ ¡ © proc¦ ¥<br />

¡<br />

£<br />

¡ © ¥ ¦ ¡<br />

£<br />

¤ £ ¤ £<br />

¡ ¡<br />

2 p2 1<br />

1 1 2 p2<br />

if p2<br />

if p2<br />

IVar<br />

LVar<br />

n 1 n 1(proc) £<br />

¤ ¡ © ¤ £<br />

¦ ¡ © proc¦ ¥<br />

£<br />

¦ ¡ ¡ ¤ ©<br />

n pn n 1<br />

n pn<br />

if pn<br />

if pn<br />

IVar<br />

LVar<br />

¡ n 1 ¥ ¤ n 1<br />

¡ ¥ Sys ¡<br />

( E¥<br />

¡<br />

£<br />

¥ n push( ¤ n ¥ pop(ps))¥<br />

proc¥<br />

,<br />

¡ n ¥ Sys )<br />

,<br />

, ¡ ¡ ,<br />

Axiom (3’) deals with the reception <strong>of</strong> messages. Message-receive statement<br />

¥¡ ¡ ¡ ¥ ch?m(p1 ¡ pn E) indicates that process Cp ¥¡ ¡ ¡ ¥ (E1 Er) is willing to receive message<br />

m with parameters ¡ ¡ p1 pn from channel ch under reception condition E. The environment<br />

<strong>of</strong> process Cp ¥¡ ¡ ¡ ¥ (E1 Er) can observe the execution <strong>of</strong> this statement through the<br />

<br />

occurrence ch?m§ data <strong>of</strong> receive action . data ¤ is ¥ ¡ ¡ <br />

1¥ 1 ¥¡ ¡ ¡ ¥ ¤ a ¥ ¡ ¡<br />

list ¥ n 1 n n <strong>of</strong> minimal<br />

Sys-structures. These structures are such that E evaluates to true or bunk after the<br />

¤ ¡ relabelled ¡ ¡ ¤ ¡ data objects 1 n are bound ¡ ¡ to variables p1 pn and after variables state<br />

¡ and type ¡ are extended accordingly. The binding <strong>of</strong> variables is performed according<br />

to a so-called early instantiation scheme [MPW92]. This means that the variables<br />

are bound to concrete data objects at the time when the message reception axiom (3’) is<br />

inferred4 . The occurrence ch?m§ data <strong>of</strong> receive action results in a successfully terminated<br />

¡ ¡ configuration with state ps¡ , process stack and type ¡<br />

. ¡<br />

4 The early instantiation scheme contrasts the late instantiation scheme, where the input actions contain<br />

variables which are bound only when an internal communication is inferred (see rule u’). The late<br />

instantiation scheme is adopted by the ¤ -calculus [MPW92].<br />

and

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!