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