SDL-News: Exact semantics of OUTPUT

Subject: SDL-News: Exact semantics of OUTPUT
From: A. Hirche (
Date: Wed Jun 10 1998 - 14:20:41 GMT

The originator of this message is responsible for its content.
-----From "A. Hirche" <> to sdlnews -----


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
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);
    nextstate send;
  state send;
    input none;
      /* HERE */
    nextstate -;
  endstate send;
endprocess p1;

process p2(1,1);
    nextstate receive;
  state receive;
    input s1;
      nextstate -;
  endstate receive;
endprocess p2;

Now consider replacing the comment /* HERE */ in p1 with one of the

(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:

(1) output s1 via sr1;
s1 may only take pathes passing through sr1, thus leaving it with four

(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,


hirche # informatik . uni - essen . de
(remove spaces to reconstruct address)

-----End text from "A. Hirche" <> to sdlnews -----
For help, email "" with the body of your email as:
or (iff this does not answer your question) email:

This archive was generated by hypermail 2a23 : Sun Jun 16 2013 - 10:41:40 GMT