This is Vaucanson, a C++ generic library for weighted finite state machine.

Introduction to Vaucanson

Date:2005-06-23

Vaucanson, a C++ generic library for weighted finite state machine.

Overview

Firstly initiated by Jacques Sakarovitch in 2000, Vaucanson is a project developed by the Ecole Nationale Supérieure des Télécommunications [1] and the EPITA Research and Development Laboratory (LRDE) [2].

[1]http://www.enst.fr
[2]http://www.lrde.epita.fr

The goal of this library is to enable the development of C++ programs in an abstract and general way with, at the same time, a large specialization power. Indeed, on the one hand, we can write algorithms working on every automaton with weights over any semirings and with words from any free monoids. And on the other hand, a particular algorithm can be specialized for a particular data structure implementing only a pseudo behaviour.

Yet, Vaucanson is an ongoing development project. Therefore algorithms, data structures and the general architecture are not totally stable and well tested.

Please send any question or comments to vaucanson@lrde.epita.fr, and bug reports to vaucanson-bugs@lrde.epita.fr.

Installation

To install Vaucanson on your system, type in the classical sequence at the command prompt:

./configure
make sanity-check
make check ([1])
make install (as root)

Note that an installation is specific to the compiler used to install it. Indeed, the call to ./configure enables some workarounds and, consequently, users must compile with the same compiler to avoid compatibility problems.

[1]: Optional: check the whole library. Note that this process takes about 1.5 Go of free space (memory swap included) and several hours.

Additional features

There is a Python interpreter in the package. It is disabled by default because its compilation takes several hours. If you have time to spare, use instead:

./configure --enable-vaucanswig

There is an XML I/O subsystem in the library. It is enabled by default, but requires a working installation of another software package called Xerces-C++. If you do not have this package, or if you do not want to use XML I/O in Vaucanson, you can use:

./configure --disable-xml

To specify a special path for the Xerces-C library, you can use:

./configure --with-xerces=/absolute/path/to/xerces

For further configure options, type:

./configure --help

Tweaking compilation options

Use CXXFLAGS_DEBUG or CXXFLAGS_OPTIMIZE to pass debug or optimization flags, not CXXFLAGS. For example:

./configure CXXFLAGS_DEBUG='-fstack-check -fbounds-check -ggdb'

This is because Vaucanson tries to use some particular default flags with some specific compilers such as GCC or ICC. Using CXXFLAGS conflicts with those specific flags; CXXFLAGS_DEBUG and CXXFLAGS_OPTIMIZE override these default flags.

Requirements

Vaucanson was tested with the GNU C++ Compiler (GCC) version 3.[34] and 4.0, and should work with ICC 9. The code is written in respect to the ISO-IEC 14882 (ISO C++) standard to permit a higher portability in the future.

A known bug in GCC 4.0.0 for MacOs is supported to make the code compliant with this specific compiler version, but MacOs users are encouraged to upgrade their compiler.

Moreover, high verbose mode of the testing suites uses the AT&T dot format to save automaton in a human readable file. Use Graphviz to visualize these .dot files.

If you want to use the XML I/O system, you will need the Apache Xerces-C++ library version 2.3 or above.

Using Vaucanson

We are sorry but we do not provide a documentation of Vaucanson.

However Vaucanson comes with several demos. Looking at them is a good way to see what Vaucanson can do and how it works. Those demos can be found in the src/demos directory.

See Also

There are other sources of interest in the distribution.

  • Headline news about the project can be found in the file NEWS at the root of the source tree.
  • Documentation about the XML I/O subsystem can be found in the doc/xml subdirectory.
  • The library reference manual, generated by Doxygen, is located in doc/ref. It comes distributed as an archive of HTML files called ref.tar.gz.
  • Information about the test suite generation mechanism can be found in the file src/tests/test-suites/README.
[3]http://www.research.att.com/sw/tools/fsm/

Licence

Vaucanson is now released under the GNU General Public Licence. See the file COPYING (at the root of the source tree) for details.

Vaucanson was released under the GNU Lesser General Public Licence until version 0.7.

Contacts

The team can be reached by mail at vaucanson@lrde.epita.fr. Snail mail addresses follow.

  • Vaucanson - ENST

    Jacques Sakarovitch
    46, rue Barrault
    F-75013 Paris
    France
  • Vaucanson - LIAFA

    Sylvain Lombardy
    175, rue du Chevaleret
    F-75013 Paris
    France
  • Vaucanson - LRDE

    24,rue Pasteur
    Paristalie, batiment X, aile Mistral
    F-94270 Le Kremlin Bicêtre cedex
    France