RE: MSC-News: Alignment of MSC'96 grammar to Annex B (Formal sema ntics)


Subject: RE: MSC-News: Alignment of MSC'96 grammar to Annex B (Formal sema ntics)
From: Jan Docekal (jan.docekal#telelogic.se)
Date: Thu May 28 1998 - 12:06:41 GMT


The originator of this message is responsible for its content.
-----From Jan Docekal <jan.docekal#telelogic.se> to mscnews -----

Something bad* happened with the grammar rules, here comes a (hopefully)
corrected version.

*Microsoft index markers got expanded into the text.

/Sorry for the inconvenience
Jan D.

        -----Corrected, Original Message-----
        From: Jan Docekal [SMTP:jan.docekal#telelogic.se]
        Sent: den 28 maj 1998 13:34
        To: 'mscnews#sdl-forum.org'
        Subject: MSC-news: Alignment of MSC'96 grammar to Annex B
(Formal semantics)

        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> ::=
                        <gate name>

        To:

        <actual order in gate> ::=
                        <gate name>[ after <order dest> ]

        In addition, change from:

        <inline order out gate> ::=
                        <gate name>
                        [ external before <order dest> ]

        To:

        <inline order out gate> ::=
                        <gate name> [ after <order dest> ]
                        [ external before <order dest> ]

        In addition, change from:

        <inline order in gate> ::=
                        <gate name> before <order dest>
                        [ external ]

        To:
        <inline order in gate> ::=
                        <gate name> before <order dest>
                        [ external ] [ after <order dest> ]

        Finnally, change from:

        <def order out gate> ::=
                        <gate name>

        To:

        <def order out gate> ::=
                        <gate name> [ after <order dest> ]

        C2: Clarify semantics syntactically.

        Change from:

        <inf natural> ::=
                        inf | <natural name>

        to:

        <inf natural> ::=
                        inf | <decimal digit>*

        <decimal digit> ::=
                        0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

        C3a: Clarify what is an msc and an hmsc.

        Change from:

        <msc document body> ::=
                        { <message sequence chart> | <msc diagram><msc
diagram> }*

        <message sequence chart> ::=
                        msc { <msc body> | expr <msc expression> }
endmsc <end>

        <msc head> ::=
                        <msc name> <end> [ <msc interface> ]

        TO

        <msc document body> ::=
                        { msc { <msc> | <hmsc> } endmsc <end><message }*
| <msc diagram><msc diagram> *

        <msc > ::=
                        <msc body>

        <hmsc> ::=
                         expr <msc expression>

        C3b: Avoid duplication of grammar rules;

        Change from:

        <start> ::=
                        <label name> {alt <label name> }* <end>

        <node expression> ::=
                        <label name> : { <node> seq (<label name> { alt
<label name> }* ) | end } <end>

        TO

        <start> ::=
                        <label name list>

        <node expression> ::=
                        <label name> : { <node> seq (<label name list>)
| end } <end>

        <label name list> ::=
                        <label name> {alt <label name> }* <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

-----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