Re: Syntax of transitions

"Clive D.W. Feather" <clive@demon.net> Fri, 12 January 2007 07:38 UTC

Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1H5GzV-0006RN-CC; Fri, 12 Jan 2007 02:38:21 -0500
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1H5GzU-0006RI-Ch for cosmogol@ietf.org; Fri, 12 Jan 2007 02:38:20 -0500
Received: from anchor-internal-1.mail.demon.net ([195.173.56.100]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1H5GzS-0003Cs-VE for cosmogol@ietf.org; Fri, 12 Jan 2007 02:38:20 -0500
Received: from finch-staff-1.server.demon.net (finch-staff-1.server.demon.net [193.195.224.1]) by anchor-internal-1.mail.demon.net with ESMTP� id l0C7cIHk002531Fri, 12 Jan 2007 07:38:18 GMT
Received: from clive by finch-staff-1.server.demon.net with local (Exim 3.36 #1) id 1H5GzR-000Cu1-00; Fri, 12 Jan 2007 07:38:17 +0000
Date: Fri, 12 Jan 2007 07:38:17 +0000
From: "Clive D.W. Feather" <clive@demon.net>
To: Frank Ellermann <nobody@xyzzy.claranet.de>
Message-ID: <20070112073817.GB44116@finch-staff-1.thus.net>
References: <20070108162900.GA66689@finch-staff-1.thus.net> <20070109221042.GC28340@sources.org> <45A56A51.2874@xyzzy.claranet.de> <20070111145057.GE24072@finch-staff-1.thus.net> <45A69776.2653@xyzzy.claranet.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <45A69776.2653@xyzzy.claranet.de>
User-Agent: Mutt/1.5.3i
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 10d3e4e3c32e363f129e380e644649be
Cc: cosmogol@ietf.org
Subject: Re: Syntax of transitions
X-BeenThere: cosmogol@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: DIscussion on state machine specification in IETF protocols <cosmogol.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/cosmogol>, <mailto:cosmogol-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/cosmogol>
List-Post: <mailto:cosmogol@ietf.org>
List-Help: <mailto:cosmogol-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/cosmogol>, <mailto:cosmogol-request@ietf.org?subject=subscribe>
Errors-To: cosmogol-bounces@ietf.org

Frank Ellermann said:
>>> you want the states written into lines with 69 characters.
>> Non-sequitor.
> The RFC line length is 72 minus 3 for the left margin.  It's
> difficult to squeeze formal languages into these limits, and
> if you fold longer lines the result can be hard to read.

That depends. I agree that line lengths should be taken into account.

> But we want folks to read and understand state machines in
> RFCs - if they'd be forced to extract the source and feed it
> into some presentation tool it's a lost battle because no
> casual reader or reviewer will do this.

Agreed.

> Maybe authors could write something like...
> 
> messageX1,
> messageABC @    state1,
>                 stateC-3,
>                 state46 ->      state47 :       action101,
>                                                 actionconnect;

or

messageX1, messageABC @ state1, stateC-3, state46
  -> state47 : action101, actionconnect ;

> But they could as well identify the corresponding action(s)
> with a single name "do101", and mention the details in a
> comment of the declaration:
> 
> actions:        foo,            # do the foo thing
>                 bar,            # do the bar stuff
>                 do101;          # signal 101 and connect

No. Firstly because there may be other places where you want to do
actionconnect but not action101. Secondly because the comment will be in
the wrong place - it will be at the declaration and not at the place where
the action actually happens. And thirdly because it clutters up the
namespace and so harms the user's understanding.

>> I want to be able to write:
> 
>>     Signal1 @ IDLE -> BUSY : "Send 101", connectSubscriber ;
> 
>> without having to invent a set just to contain these two actions.
> 
> Okay, for readability reasons I'd want to be able to define
> and use a "do101" set of actions.  If it's in some "artwork"
> (69 characters) of an RFC that could be better.

I'm very happy to allow you to define sets that can be used in these
contexts, provided that I'm not forced to use them.

> So I guess we need comma-separated lists of messages, actions,
> and states (excl. next states after "->").
> 
> And maybe we need named sets as shorthands for such lists.

I think we're in agreement then: sets available, lists available, state
machine author chooses what seems best in each situation.

> But
> above all we need KISS, not a convoluted syntax with tons of
> different ways to express the same idea.  It should be intuitive,
> readers must get the point without ever looking into the manual.

Agreed.

At present, the proposals that involve more than one way of doing things
are:

(1) "message @ state -> state" versus "state + message -> state"

(2) Grouping: "message @ (state -> state, state -> state)" versus expanding
it out.

(3) Use of lists versus sets.

All of these, I think, offer more benefit than risk of confusion.

-- 
Clive D.W. Feather  | Work:  <clive@demon.net>   | Tel:    +44 20 8495 6138
Internet Expert     | Home:  <clive@davros.org>  | Fax:    +44 870 051 9937
Demon Internet      | WWW: http://www.davros.org | Mobile: +44 7973 377646
THUS plc            |                            |

_______________________________________________
Cosmogol mailing list
Cosmogol@ietf.org
https://www1.ietf.org/mailman/listinfo/cosmogol