Shadok, an implementation

Shadok is an implementation of the Cosmogol language. The Cosmogol mini-language (or DSL for domain-specific language) is a proposal for an IETF standard to specify finite state machines.

Cosmogol is specified in the IETF Internet-Draft draft-bortzmeyer-language-state-machines-NN where NN is the current version. You can search the last version (use "machines" in the field Filename).

Shadok can:

Through Graphviz or Graph::Easy, you can have the state machine rendered in ASCII art, HTML, PNG, etc.

Since the Cosmogol language is currently still in flux, discrepancies between the language and this implementation would not be a surprise.

Shadok is written in Haskell and is using the Parsec parsers combinators library.

You can download a tar archive.

To run it, you need an Haskell compiler or interpreter (only ghc, has been tested now). Then, type "make" to build the program.

Sample state machines can be found in the "tests*" directories and in the Internet-Draft. Some examples are online.

Shadok is distributed under the terms of the GNU General Public Licence (GPL) version 2.

Bug reports, patches, advices and criticisms are welcome.

Many thanks to the folks at the IRC channel #haskell and at the mailing list haskell-cafe for their unending will to help newbies. Special thanks to Chris Kuklewicz, Malcolm Wallace, Tomasz Zielonka, Henning Thielemann, and of course Udo Stenzel.