Re: SDL-News: ?: entity classes and 'state'

Subject: Re: SDL-News: ?: entity classes and 'state'
From: Rick Reed TSE (
Date: Tue Aug 08 2000 - 15:37:05 GMT

Become an SDL Forum Society member <>
The originator of this message is responsible for its content.
-----From Rick Reed TSE <> to sdlnews -----

Joerg Zieren at wrote on 08/08/2000 14:44:

> Maybe someone can give me a hint on this: To what entity class does a
> 'state' belong?
> I am trying to uniquely identify a state, which - according to the
> visibility and naming rules - requires its name, entity class and scope
> unit.

The answer to this question depends on whether "SDL" means SDL-92 (with or
without Addendum 1 - 1996), or SDL-2000.

However, I assume Joerg is using SDL-92, as SDL-2000 tools are not yet

As far as I can remember, in SDL-92 there are never any contexts where a
state name needs to be (or can be) explicitly qualified. Every use of the
name therefore refers to the local context in which it occurs. The name of a
state is not visible except directly in the context in which it occurs: it
is not allowed (for example) to leave a procedure by using a nextstate
containing the name of a state in an enclosing process or service or
procedure. The same rule applies to connector names.

In SDL-92 states are never a scope unit for some other entity, and therefore
never need to appear as an entity kind qualifying another entity. This is
also true for connectors.

Addendum 1 (1996) introduced "state expression" that allows the most
recently entered state to be determined. The value is determined statically
before the SDL is interpreted but taking into consideration convergence of
flow and asterisk states. Only states in the current context are considered
(in other words calls to procedures are ignored - even if they contain
states). The "state expression" produces a character string that contains
the spelling of the name not the identifier) for the state.

The net result is that the entity kind of a state never needs to be denoted
in SDL-92. However, for completeness states should be listed in the list of
entity kinds, because the use of a <name> is bound according to entity kinds
allowed where the name is used.

In SDL-2000 states and state types can be containers and therefore state is
more clearly an entity kind.

> What does "block and channel substructures" mean? Could this be what a
> state is classified as? (only guessing; I'm pretty new to SDL...)

Block substructure in SDL-92 is where a block contains blocks. A block can
contain one of the following:
1) A set of processes (or more precisely process instance sets);
2) A block substructure containing a number of blocks;
3) A set of processes AND a substructure containing a number of blocks.

Case (2) is the formal expansion of a block containing blocks. In practice
it would not be written in this way because it is much simpler to put the
block (references) directly in the block and let the language/tool take care
of the formal expansion.

Case (3) gives two alternative meanings to the block: the set of processes
OR the block substructure. To interpret the SDL one of the meanings has to
be chosen and the language does not define how this is done. The construct
is not well supported by tools and has been dropped in SDL-2000.

A channel substructure is a mechanism for replacing the channel with a block
connected to the two endpoints of the channel. This has also been dropped in

Rick Reed -
Tel:+44 1455 55 96 55 Fax:+44 1455 55 96 58 Mob.:+44 7970 50 96 50

-----End text from Rick Reed TSE <> to sdlnews ----- For extra SDL Forum Society benefits, join at <>

This archive was generated by hypermail 2a23 : Thu May 09 2013 - 16:05:49 GMT