SDL-News: Algorithmic extensions to SDL

Subject: SDL-News: Algorithmic extensions to SDL
From: Anders Ek (
Date: Tue Nov 11 1997 - 16:11:15 GMT

The originator of this message is responsible for its content.
-----From Anders Ek <> to sdlnews -----

Dear SDL friends,

at the October Q.6/10 expert's meeting in Lutterworth, UK, it was
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. Shortly a document "Extended support for Algorithms in SDL"
that outlines the proposed language extensions will also be available
from the SDL Forum Web site.

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 solicited to help shape the
syntactic form by 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 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

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 (

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

procedure process_page fpar p Page {
  if (not all_expired) {
  } else {
    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;

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

Kind Regards

Thomas Weigert

(via Anders Ek)

-----End text from Anders Ek <> 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