Vcsn — Be Rational

From LRDE

Vcsn is a platform dedicated to the computation of, and with,
finite state machines. It provides an efficient C++ library, a Python
interface, and a graphical user interface on top of IPython.

Here finite state machines is to be understood in the broadest
possible sense: finite automata with multiple tapes — often called
transducers then — or even more generally finite automata with
multiplicity, that is, automata that not only accept sequences of
symbols but compute for such sequence a "value" that is associated
with it and which can be taken in any semiring.

Indeed, our framework is the set of automata with multiplicity over
any semiring: a general algorithm is written just once and can be
instantiated to any particular kind of automaton. As a result, we
obtain efficient code from algorithms written in an abstract way.

Vcsn benefits from the expertise the LRDE gained from our
intensive work on high performance generic programming for Olena. On
the other hand, its theoretical well-foundedness was ensured by Jacques
Sakarovitch, at Télécom ParisTech, and with Sylvain Lombardy at the
Laboratoire Bordelais de Recherche en Informatique.