Q.11, 13/17 My progress report - last 2 weeks


Subject: Q.11, 13/17 My progress report - last 2 weeks
From: Rick Reed TSE (rickreed#tseng.co.uk)
Date: Thu Jul 20 2006 - 13:54:43 GMT


Dear Colleagues,

My intention for the last two weeks was to produce an initial proposal for
the content of SDL-2008.

However, I have been side-tracked for the following reason. What I intended
to do was to provide some proposed changes to Z.100, but to do this I wanted
a formalism for incrementally extending the language grammar. The way this
is done in the current Z.100 (Annex B), Z.104, Z.105 and Z.107 is informal
by stating a concrete syntax item is extended and redefining the concrete
syntax rule. Currently there is no way to extend the abstract grammar. So
for this reason I decided to look at the detail of Z.111 (the proposed
standard "Notations to Define ITU-T languages" - the current version is
ITU-T TD3099). The intention is that SDL-2008 will refer to this document,
rather than describe the meta-grammar in Z.100 itself.

When I started looking at Z.111, realised that the document needed to be
reviewed and the current meta-grammars could be improved - partly to make
them more consistent with UML and partly to make it easier to use in
documents like Z.100.

I have not finished this work on Z.111 either! However, I have some
proposals I would like to share with you.

1. A basic requirement is that the Z.111 should be backwards compatible with
Z.100 as it is.

2. In the abstract syntax grammar it is currently allowed to specify a list
of (zero or more) by suffix "*", and a list of (one or more) by suffix "+".
However, sometimes (for example gates on a channel) it is desirable to
specify a exact number in the list (in this case 2), or explicit bounds on a
list. In UML this is done by specifying a multiplicity. So my proposal is
that the following should be allowed:
   suffix "[n]" for a list of exactly n items,
                   where n is a positive integer;
   suffix "[n..m]" for a list of between n and m items,
                   where n is a non-negative integer,
                   m is a positive integer > n;

   suffix "[n..*]" for a list of at least n items,
                   where n is a non-negative integer;

   suffix "*" for a possibly empty list,
                   which is equivalent to the suffix [0,*];

   suffix "+" for a non-empty list,
                   which is equivalent to the suffix [1,*].

3. In the concrete grammar the same suffixes should be allowed as for the
abstract grammar (see 2. Above) but in this case there is an possible
ambiguity between the suffixes with [ ] and the use of [ ] for optional
(this does not arise with abstract syntax because an optional item can not
start with a digit), so the rule is that [ ] for optional has to be
separated by at least one space.

4. In the concrete grammar, it may be desirable to have a more compact way
of specifying a list rather than
<list item> { <separator> <list item> }*
For example, <list item>**<separator>
However, if we there is no agreement on the meta-syntax, I would leave it
as-is.

I do not have any explicit proposals for incremental extension, but Z.111
already allows in the abstract syntax

B-rule ( A-rule ) :: C-rule

for B-rule inheriting ( A-rule ) and all it components and adding C-rule, so
maybe the concrete syntax should have the same.

So I have not yet made a proposal for SDL-2008. That is a target for the
next 2 weeks, and a target for the next week is to finish reviewing and
providing a proposal for Z.111.

--
Rick Reed - rickreed#tseng.co.uk
Tel:+44 15394 88462 Mob.:+44 7970 50 96 50
Skype: rickreed_windermere



This archive was generated by hypermail 2a23 : Tue Jul 12 2011 - 13:35:48 GMT