draft-bortzmeyer-language-state-machines St ephane Bortzmeyer - - - PowerPoint PPT Presentation

draft bortzmeyer language state machines
SMART_READER_LITE
LIVE PREVIEW

draft-bortzmeyer-language-state-machines St ephane Bortzmeyer - - - PowerPoint PPT Presentation

draft-bortzmeyer-language-state-machines St ephane Bortzmeyer - AFNIC IETF 68 - Prague St ephane Bortzmeyer - AFNIC () draft-bortzmeyer-language-state-machines IETF 68 - Prague 1 / 7 The question You have two extremely different ways


slide-1
SLIDE 1

draft-bortzmeyer-language-state-machines

St´ ephane Bortzmeyer - AFNIC IETF 68 - Prague

St´ ephane Bortzmeyer - AFNIC () draft-bortzmeyer-language-state-machines IETF 68 - Prague 1 / 7

slide-2
SLIDE 2

The question

You have two extremely different ways to write specs / standards:

1 Use only a formal language and write specs in Lotos or similar. Hard,

very hard (may be impossible) but allows to automatic processing (checking, pretty-printing, . . . ).

2 Use only natural language. Easy but you cannot check it or translate

to code automatically. An intermediate solution is to use mostly natural language with a few formal languages for specific tasks. This is what IETF does: English + (ABNF and / or MIB).

Other formal languages are being developed (draft-ietf-rohc-formal-notation for describing packet headers).

St´ ephane Bortzmeyer - AFNIC () draft-bortzmeyer-language-state-machines IETF 68 - Prague 2 / 7

slide-3
SLIDE 3

State machines

There are many of them in RFCs but no formal language.

1 Stuck to ASCII-ART, informal tables or lists of tuples, 2 No automatic checking possible (these checks catch a lot of ABNF

mistakes, for instance)

3 No code generation possible St´ ephane Bortzmeyer - AFNIC () draft-bortzmeyer-language-state-machines IETF 68 - Prague 3 / 7

slide-4
SLIDE 4

Cosmogol, a candidate

1 Based on the “list of tuples” approach, 2 Current state, message, next state, action: a transition, 3 Formal syntax, 4 A reference implementation which can: 1

Check the SM (for instance its connectivity),

2

Translate to Graphviz or Graph::Easy.

St´ ephane Bortzmeyer - AFNIC () draft-bortzmeyer-language-state-machines IETF 68 - Prague 4 / 7

slide-5
SLIDE 5

Example

# RFC 2461, "Neighbor Discovery for IP Version 6" START : "Packet to send" -> INCOMPLETE : "Send multicast NS"; INCOMPLETE : "Retransmit timeout, less than N" -> INCOMPLETE : "Retransmit NS"; INCOMPLETE : "Retransmit timeout, N or more" -> START : "Send ICMP error"; INCOMPLETE : "NA not solicited" -> STALE; INCOMPLETE : "NA solicited" -> REACHABLE;

St´ ephane Bortzmeyer - AFNIC () draft-bortzmeyer-language-state-machines IETF 68 - Prague 5 / 7

slide-6
SLIDE 6

Roadmap of discussions

St´ ephane Bortzmeyer - AFNIC () draft-bortzmeyer-language-state-machines IETF 68 - Prague 6 / 7

slide-7
SLIDE 7

Roadmap of discussions

1 Do we want a formal SM language? St´ ephane Bortzmeyer - AFNIC () draft-bortzmeyer-language-state-machines IETF 68 - Prague 6 / 7

slide-8
SLIDE 8

Roadmap of discussions

1 Do we want a formal SM language? 2 If so, do we develop one? St´ ephane Bortzmeyer - AFNIC () draft-bortzmeyer-language-state-machines IETF 68 - Prague 6 / 7

slide-9
SLIDE 9

Roadmap of discussions

1 Do we want a formal SM language? 2 If so, do we develop one? 1

If not, which one to use? State Chart XML, UML, Z.100/SDL?

St´ ephane Bortzmeyer - AFNIC () draft-bortzmeyer-language-state-machines IETF 68 - Prague 6 / 7

slide-10
SLIDE 10

Roadmap of discussions

1 Do we want a formal SM language? 2 If so, do we develop one? 1

If not, which one to use? State Chart XML, UML, Z.100/SDL?

2

If yes, is Cosmogol a good candidate? If yes, all the following issues should be for the WG to work on

1

Named sets of states / messages?

2

Substates

3

Syntax details?

4

Unicode identifiers?

St´ ephane Bortzmeyer - AFNIC () draft-bortzmeyer-language-state-machines IETF 68 - Prague 6 / 7

slide-11
SLIDE 11

Creating a WG?

Depends on the output of the previous discussions. Volunteers to work? See proposed charter sent on the mailing list.

St´ ephane Bortzmeyer - AFNIC () draft-bortzmeyer-language-state-machines IETF 68 - Prague 7 / 7