[ANN] First release of FSML

This is to announce the first public release of FSML, an OCaml library for describing and describing synchronous finite state machines.

FSML is a simplified version of the library provided in the Rfsm package for which

  • the system is composed of a single FSM

  • this FSM has a single, implicit, triggering event (typically called the clock , hence the term synchronous used in the description)

The FSML library provides

  • a type Fsm.t for describing FSMs

    • possibly having local variables
    • for which transitions , implicitely triggered by a clock, are defined by a set of boolean guards and a set of actions
  • a set of PPX extensions for building values of type Fsm.t

  • functions for producing and viewing graphical representations of FSMs in the .dot format

  • functions for saving and reading FSM representations in files using the JSON format

  • functions for performing single or multi-step simulations of FSMs and generating trace files in the .vcd format to be viewed by VCD viewers such as gtkwave

  • functions for generating C or VHDL code from a FSM representation (for integration into existing code and/or simulation)

FSML is available from Github or as an OPAM package.

7 Likes

Cool to see that soon we will be able to program robots in OCaml. :slight_smile: