SDL-News: (Reminder) SDL enhancements


Subject: SDL-News: (Reminder) SDL enhancements
From: Thomas Weigert (weigert#mothost.mot.com)
Date: Thu Jan 29 1998 - 03:12:36 GMT


The originator of this message is responsible for its content.
-----From Thomas Weigert <weigert#mothost.mot.com> to sdlnews -----

Dear friends,

at the October Q.6/10 expert's meeting in Lutterworth, UK, it was also
decided that SDL be augmented with the capability of expressing
algorithms textually in a manner familiar from structured programming
and specification languages. Textually expressed algorithms can be
freely included in graphical SDL specifications in task boxes and text
symbols. I have, in a separate mailing, distributed a document
"Extended support for Algorithms in SDL" outlining the proposed
language extensions.

While the expert's group adopted on the constructs to be provided and
their semantics, the concrete syntax will be decided based on feedback
from SDL users. Therefore, your input is solicitated to help shape the
syntactic from through which textual algorithms can be expressed in
SDL. You are invited to submit suggestions and preferences which will
be considered when selecting the concrete syntax. Submitted
suggestions should be accompanied by design guidelines which were
followed when developing the proposal. Alternatively, design
guidelines by themselves could be submitted. The minimum requirement
is that any proposed syntax has to be compatible with SDL.

For example, to make the above mentioned document concrete, we had to
select a particular syntax to present the constructs provided. When
choosing a that syntax, we had followed these design principles:

(1) The extensions need not have exactly the same "style" as the PR
forms since the PR forms are not used for the majority of
specifications. Rather, a syntactic similarity with the GR forms is
desirable. For example, the decision in its PR form is terminated by
the keyword 'enddecision', and the <question> and <decision body> are
separated by an <end>. Very few users ever encounter this form and,
therefore, we need not feel obliged that a textual counterpart follow
that syntactic form. On the other hand, users do encounter the
<answer> even in the GR form; a textual form similar to a decision
should use that notation for its <answer>.

(2) Since the majority of SDL specifications are in graphical form,
the amount of space used on the diagrams needs to be considered.
The task boxes and text symbols are often overflowing with text, and
space on a page is usually at a premium. These extensions, therefore,
follow a more terse style relying on bracketing to express grouping
rather than the use of beginning and terminating keywords wherever
appropriate.

This is merely meant as an example, and should not prejudge the
discussion. Again, any proposed syntax must fit into the existing SDL
style, albeit it is often quite difficult to determine what that style
really is. (Witness the differing use of separators, terminators, and
keywords in different parts of the language.)

Appended to this mailing are several example specification fragments
written in the syntax of the mentioned document (more details to be
found there). Any proposal should also submit these example fragments
transliterated into the suggested syntax and should feel free to
include other illustrative examples.

I am looking forward to your contributions. Any discussions should be
directed to this mailing list or to me (weigert#comm.mot.com).

---------------------- example below -----------------------

procedure process_page fpar p Page {
  if (not all_expired) {
    look_for_duplicate_and_store(p);
    expire_pages(p);
  } else {
    store_page(p);
    if (not p!Errored)
      output Page_received;
  }
  count := p!Errored ? 0 : p!MLength;
  all_expired := false;
}

procedure expire_pages fpar p Page {
  for (dcl i Integer:= 1, i <= Length(pagestore), i + 1)
    if (too_close(p!Timestamp, now))
      pagestore(i)!Expired := true;
}

procedure look_for_duplicate_and_store fpar p Page {
  for (dcl p1 Page := first_page(pagestore), p1 /= NO_PAGE,
                                   next_page(pagestore, p1))
     if (p1!ToneOnly = p!ToneOnly and p1!Group = p!Group) {
       p!Duplicate := true;
       return;
     }
  store_page(p);
}

---------------------- example end -------------------------

-----End text from Thomas Weigert <weigert#mothost.mot.com> 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