All Projects → Oneiroe → PySimpleAutomata

Oneiroe / PySimpleAutomata

Licence: MIT license
Academic Python Library to manage DFA, NFA and AFW automata.

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to PySimpleAutomata

rustfst
Rust re-implementation of OpenFST - library for constructing, combining, optimizing, and searching weighted finite-state transducers (FSTs). A Python binding is also available.
Stars: ✭ 104 (+511.76%)
Mutual labels:  automata
libvata
VATA Tree Automata Library
Stars: ✭ 23 (+35.29%)
Mutual labels:  automata
typestate-rs
Proc-macro typestate DSL for Rust
Stars: ✭ 110 (+547.06%)
Mutual labels:  automata
visual-automata
Visual Automata is a Python 3 library built as a wrapper for the Automata library to add more visualization features.
Stars: ✭ 55 (+223.53%)
Mutual labels:  automata
frame transpiler
Frame is a markdown language for creating state machines (automata) in 8 programming languages as well as generating UML documentation.
Stars: ✭ 35 (+105.88%)
Mutual labels:  automata
glider
Generative music using conway's game of life
Stars: ✭ 38 (+123.53%)
Mutual labels:  automata
Regex
An implementation of regular expressions for Rust. This implementation uses finite automata and guarantees linear time matching on all inputs.
Stars: ✭ 2,125 (+12400%)
Mutual labels:  automata
php aho corasick
Aho-Corasick string search algorithm PHP extension implementation.
Stars: ✭ 45 (+164.71%)
Mutual labels:  automata
computation-py
Python implementation for Understanding Computation book.
Stars: ✭ 22 (+29.41%)
Mutual labels:  automata
NTUA-slp-nlp
💻Speech and Natural Language Processing (SLP & NLP) Lab Assignments for ECE NTUA
Stars: ✭ 19 (+11.76%)
Mutual labels:  automata
AALpy
An Active Automata Learning Library Written in Python
Stars: ✭ 60 (+252.94%)
Mutual labels:  automata
kaliningraph
🕸️ Graphs, finite fields and discrete dynamical systems in Kotlin
Stars: ✭ 62 (+264.71%)
Mutual labels:  automata
FormaleSysteme
Unterlagen zur Vorlesung "Formale Systeme", Fakultät Informatik, TU Dresden
Stars: ✭ 31 (+82.35%)
Mutual labels:  automata
conway
Conway's game of life
Stars: ✭ 27 (+58.82%)
Mutual labels:  automata
omega
Specify and synthesize systems using symbolic algorithms
Stars: ✭ 36 (+111.76%)
Mutual labels:  automata

PySimpleAutomata

PySimpleAutomata is a Python library to manage Deterministic Finite Automata (DFA), Nondeterministic Finite Automata(NFA) and Alternate Finite state automata on Word (AFW).

This library is not meant for performance nor space consumption optimization, but for academic purposes: PySimpleAutomata aims to be an easily readable but working representation of automata theory.

This project has been developed for "Process and Service Modelling and Analysis" class of Master of Science in Engineering in Computer Science from Sapienza University of Rome.

Structure

/PySimpleAutomata
|
+---/PySimpleAutomata : Library sources
|   |
|   +--- AFW.py : Functions to handle AFWs automata.
|   |
|   +--- automata_IO.py : Functions of IN/OUTput for all the automata types.
|   |
|   +--- DFA.py : Functions to handle DFAs automata.
|   |
|   +--- NFA.py : Functions to handle NFAs automata.
|
+---/doc : Documentation sources
|
+---/tests : Unit testing and test-cases inputs

Requirements

The project is Python3 only, tested on Python 3.5 and 3.6.

Graphviz - Graph Visualization Software is required to be installed and present on system path to input/output dot files, while Python packages pydot and graphviz are used to handle them (respectively input and output).

Sphinx is used to generate the documentation.

Unittest for Unit testing.

Installation

From PyPi using pip:

pip install pysimpleautomata

From source:

python setup.py install
pip install -r requirements.txt

It is advised in any case to use a Python Virtual environment instead of a global installation.

Documentation

For a detailed explanation of the library API consult the online documentation or download it.

Licence

This code is provided under MIT Licence.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].