Subject: SDL-News: Exact semantics of OUTPUT
From: A. Hirche (hirche#informatik.uni-essen.de)
Date: Wed Jun 10 1998 - 14:20:41 GMT
The originator of this message is responsible for its content.
-----From "A. Hirche" <hirche#informatik.uni-essen.de> to sdlnews -----
Hi!
I am trying to get through the semantics of the output statement but are
stuck with the meaning of the VIA / VIA ALL constructs. I looked into
Z100, Z100-F3, Ellsberger/Hogrefe/Sarma: SDL and
Olsen/Faergemand/Moeller-Pedersen/Reed/Smith: Systems Engineering Using
SDL-92, but was not quite satiesfied with the explanations offered
there.
So could someone please sort this out once and for all :-)?
I have included a small specification to demonstrate what I THINK should
happen and where the problem lies. Pointing out any misconceptions on my
side is greatly appreciated.
Consider the following specification:
-------------------------------------
system via_test;
signal s1;
block block1 referenced;
block block2 referenced;
channel ch1
from block1 to block2 with s1;
endchannel ch1;
channel ch2
from block1 to block2 with s1;
endchannel ch2;
endsystem via_test;
block block1;
process p1 referenced;
signalroute sr1
from p1 to ENV with s1;
signalroute sr2
from p1 to ENV with s1;
connect ch1, ch2 and sr1, sr2;
endblock block1;
block block2;
process p2 referenced;
signalroute sr3
from ENV to p2 with s1;
signalroute sr4
from ENV to p2 with s1;
connect ch1, ch2 and sr3, sr4;
endblock block2;
process p1(1,1);
start;
nextstate send;
state send;
input none;
/* HERE */
nextstate -;
endstate send;
endprocess p1;
process p2(1,1);
start;
nextstate receive;
state receive;
input s1;
nextstate -;
endstate receive;
endprocess p2;
--------------------------------------
Now consider replacing the comment /* HERE */ in p1 with one of the
following:
(0) output s1;
Signal s1 may take any route that takes it to a possible receiver, in
this case one of the eight possible routes from p1 to p2, which are:
sr1->ch1->sr3
sr1->ch1->sr4
sr1->ch2->sr3
sr1->ch2->sr4
sr2->ch1->sr3
sr2->ch1->sr4
sr2->ch2->sr3
sr2->ch2->sr4
(1) output s1 via sr1;
s1 may only take pathes passing through sr1, thus leaving it with four
possibilities.
(2) output s1 via sr1, ch1;
The number of choices is reduced even more, leaving s1 with only two
possible choices.
(3) output s1 via sr1, ch1, sr3;
This is an error, as none of the Signal-route-pathes of sr3 originates
from p1.
Is there a reason why it is not allowed to give the full path in SDL?
(4) output s1 via all;
This should result in a total of eight signals arriving at p2, with each
signal taking a distinct path.
(5) output s1 via all sr1, ch1;
Under Model, the Z100 says "Stating via all is derived syntax for
multicasting the signal via the communication paths mentioned in <via
path>, so that signals are sent in the same order as <via path element>s
appear in <via path>, one via each <via path element>."
Does this mean, that (4) is equivalent to
a) output s1 via all sr1;
output s1 via all ch1;
i.e. (4) is a shorthand for two separate outputs,
resulting in a total of 8 signals arriving at p2,
b) sending two instances of s1, one taking the path sr1->ch1->sr3
and the other taking the path sr1->ch1->sr4.
Thanks for taking the time to read all this :-)
Best regards,
Axel
---------------------------------------
hirche # informatik . uni - essen . de
(remove spaces to reconstruct address)
-----End text from "A. Hirche" <hirche#informatik.uni-essen.de> to sdlnews -----
For help, email "majordomo#sdl-forum.org" with the body of your email as:
help
or (iff this does not answer your question) email: owner-sdlnews#sdl-forum.org
This archive was generated by hypermail 2a23 : Sun Jun 16 2013 - 10:41:40 GMT