Software

FAdo 0.9.6 released

FAdo2

Main improvements in this version include:

  • some random bugs corrected in combo and single operations


Software can be found
here.

FAdo 0.9.5 released

FAdo2

Main improvements in this version include:

  • star and concatenation for DFAs aiming minimal transition complexity

  • new API documentation

  • including with Yappy 2.0

  • better regular expression random generation


Software can be found
here.

FAdo 0.9.4 released

FAdo2

Main improvements in this version include:

  • New setup for generator (bug in in installation fixed)

  • shuffle migrated to fa.py

  • shuffle for NFAs

  • comboperations: shuffle corrected

  • fa: dump added to NFA and DFA


Software can be found
here.

FAdo 0.9.3 released

FAdo2

Main improvements in this version include:

  • Version in package now reflects the proper version and not the major one

  • fa.py: corrections and simplifications added to ADFA.minimal()

  • fl.py: andom balanced and "unbalanced" trie generation

  • Solved a bug with a mutual inclusions between fa and fl.

  • fl.py: DFAtoADFA now resides in fl.

  • fl.py: sigmaInititialSegment() added to fl

  • fa.py: product of dfas now ensures that its argument is a dfa.

  • fl.py: prefix-free and prefix-closed finite languages random trie added

  • fa.py: renaming of AcyclicP to acyclicP. Loops are now excluded from the test unless a strict flag is passed as an argument.

  • fa.py: trimP corrected accordingly.


Software can be found
here.

FAdo 0.9.2 released

FAdo2

Main improvements in this version include:

  • Grammar tables for grail, reex and FAdo now are “invisible”

  • fl.py (Finite Languages) added to the project: AFA, ADFA and ANFA supported

  • Grail+ interface improved. Now, only if the command has more than one argument a temporary file is created.

  • Uniform random generation of trie automata with (at least) a word of a maximum length added (fl.py)

  • rndfa.py added: a wrap for the ICDFA random Generator.

  • Errors corrected in minimisation methods.

  • readFromFile now supports comments as documented.

  • saveToFile deals correctly with append flag.

  • Bugs on deleteState() were corrected.


Software can be found
here.

FAdo 0.9.1 released

FAdo2

The FAdo system aims to provide an open source extensible high-performance software library for the symbolic manipulation of automata and other models of computation.
To allow high-level programming with complex data structures, easy prototyping of algorithms, and portability (to use in computer grid systems for example), are its main features. Our main motivation is the theoretical and experimental research, but we have also in mind the construction of a pedagogical tool for teaching automata theory and formal languages.

It currently includes most standard operations for the manipulation of regular languages. Regular languages can be represented by regular expressions (RE) or finite automata, among other formalisms. Finite automata may be deterministic (DFA) or non-deterministic (NFA). In FAdo these representations are implemented as Python classes. Elementary regular languages operations as union, intersection, concatenation, complementation and reverse are implemented for each class.
Several conversions between these representations are implemented: NFA -> DFA: subset construction; NFA -> RE: recursive method; GFA -> RE: state elimination, with possible choice of state orderings; RE-> NFA: Thompson method, Glushkov method, follow, Brzozowski, and partial derivatives.

For DFAs several minimization algorithms are available (some with C implementations): Moore, Hopcroft, and some incremental algorithms. Brzozowski minimization is available for NFAs. Language equivalence of two DFAs can be determined by reducing their correspondent minimal DFA to a canonical form, or by the Hopcroft and Karp algorithm.

The package can be found here.