Subject: MSC-News: Alignment of MSC'96 grammar to Annex B (Formal semantics)
From: Jan Docekal (jan.docekal#telelogic.se)
Date: Thu May 28 1998 - 11:33:51 GMT
The originator of this message is responsible for its content.
-----From Jan Docekal <jan.docekal#telelogic.se> to mscnews -----
Hi Z.120 grammar experts,
Below follows a proposal to changes in the MSC'96 grammar's to align it
with the grammar in Annex B (formal semantics). Please feel free to give
any comments.
Best regards,
Jan Docekal.
Alignment of MSC'96 grammar to Annex B (Formal semantics)
The grammar describing the semantics in Annex B differs from what is
specified in the main document. Currently this is not a problem since
the changes are of a technical nature, making it simpler to express the
semantics. It is however important not to let the two grammars diverge.
My approach is to make the grammar in Annex B to be a true subset of the
main document.
The grammar in Annex B was changed ion the following way:
Omissions: Annex B restricts the grammar so that shorthand's
etc. are no longer part of the language. The approach here is just to
ignore these changes.
Semantical clarifications: Annex B changes some grammar rules to
be stricter so that what was expressed semantically is now also
expressed syntactically. These changes are introduced in the main
document.
Clarifications/Beautification's: In some places the grammar is
changed (non-terminals added) to clarify the boundaries of important
concepts. In other places, duplication of grammar rules is eliminated.
Extensions: In some places the grammar is extended to avoid the
need for the semantic rules to specify how certain relations are
calculated. In the main document, these constructs have been added so
that they can be optionally used.
The following text refers to the chapter B.5 Concrete textual syntax on
p. 43 and onwards.
The rules on page 43 to the middle of page 45 are only omissions from
the grammar since they are not needed for the semantical description in
the annex (Items 1-4).
Item 1-3 on page 45-46 will be treated here:
This item only describes which omissions in the grammar have
been made in the description of the semantics.
The after constructs are added optionally to the recommendation,
in that way it is possible to write constructs that are in accordance
with the grammar definition in the semantics (C1).
This change only clarifies what is written in the informal
semantics (C2).
On page 46, the following changes in the annex make the language more
beautiful and easy to read (C3a and C3b).
The changes follows here:
C1: Add the keyword after to make the semantics simpler.
Change from:
<actual order in gate><actual order in gate> ::=
<gate name><gate name>
To:
<actual order in gate><actual order in gate> ::=
<gate name><gate name> [ after <order dest> ]
In addition, change from:
<inline order out gate><inline order out gate> ::=
<gate name><gate name>
[ external before <order dest><order dest> ]
To:
<inline order out gate><inline order out gate> ::=
<gate name> [ after <order dest> ]<gate name>
[ external before <order dest><order dest> ]
In addition, change from:
<inline order in gate><inline order in gate> ::=
<gate name><gate name> beforebefore <order dest><order
dest>
[ externalexternal ]
To:
<inline order in gate><inline order in gate> ::=
<gate name><gate name> beforebefore <order dest><order
dest>
[ externalexternal ] [ after <order dest> ]
Finnally, change from:
<def order out gate><def order out gate> ::=
<gate name><gate name>
To:
<def order out gate><def order out gate> ::=
<gate name><gate name> [ after <order dest> ]
C2: Clarify semantics syntactically.
Change from:
<inf natural><inf natural> ::=
infinf | <natural name><natural name>
to:
<inf natural><inf natural> ::=
infinf | <decimal digit><natural name>*
<decimal digit><inf natural> ::=
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
C3a: Clarify what is an msc and an hmsc.
Change from:
<msc document body><msc document body> ::=
{ <message sequence chart><message sequence chart> |
<msc diagram><msc diagram> }*
<message sequence chart><message sequence chart> ::=
mscmsc <msc head><msc head> { <msc body><msc body> |
expr <msc expression><msc expression> } endmscendmsc <end><end>
<msc head><msc head> ::=
<msc name><msc name> <end><end> [ <msc interface><msc
interface> ]
TO
<msc document body><msc document body> ::=
{ msc <msc head>{ <msc> | <hmsc> } endmsc <end><message
sequence chart> }* | <msc diagram><msc diagram> *
<msc ><msc document body> ::=
<msc body><msc diagram>
<hmsc><msc document body> ::=
expr <msc expression> <message sequence chart><msc
diagram>
C3b: Avoid duplication of grammar rules;
Change from:
<start><start> ::=
<label name><label name> {altalt <label name> }*
<end><end>
<node expression><node expression> ::=
<label name><label name> : { <node><node> seqseq (<label
name> { altalt <label name> }* ) | endend }<end><end>
<start><start> ::=
<label name list><label name><end>
<node expression><node expression> ::=
<label name><label name> : { <node><node> seqseq (
<label name list>) | endend }<end><end>
<label name list><start> ::=
<label name><label name> {altalt <label name> }*
<end><end>
-----End text from Jan Docekal <jan.docekal#telelogic.se> to mscnews -----
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-mscnews#sdl-forum.org
This archive was generated by hypermail 2a23 : Wed Jun 19 2013 - 13:16:38 GMT