I need help building a data structure for a state diagram
Matthew Wilson
matt at tplus1.com
Sun May 24 19:46:31 EDT 2009
On Sun 24 May 2009 03:42:01 PM EDT, Kay Schluehr wrote:
>
> General answer: you can encode finite state machines as grammars.
> States as non-terminals and transition labels as terminals:
>
> UNSTARTED: 'start' STARTED
> STARTED: 'ok' FINISHED | 'cancel' ABANDONED
> ABANDONED: 'done'
> FINISHED: 'done'
>
> In some sense each state-machine is also a little language.
I've never formally studied grammars, but I've worked through trivial
stuff that uses BNF to express ideas like
<postal-address> ::= <name-part> <street-address> <zip-part>
I don't really understand how to apply that notion to this statement:
UNSTARTED: 'start' STARTED
That doesn't seem to be BNF, and that's all I know about grammar stuff.
Can you explain a little more? This idea of using grammars for my
workflow sounds *really* fun and I'd love to learn this stuff, but I
could benefit from some more explanation.
Matt
More information about the Python-list
mailing list