- Deterministic Finite Automata (DFA)
- Nondeterministic Finite Automata (NFA)
- Push-down Automata (PDA)
- Turing Machines
These automata are formally defined by n-tuples, and as such we can build them by defining their corresponding instance fields in one of two ways: individually through setter methods, or through a structured YAML file. Once we’ve built our automaton, we’re then able to feed it input and evaluate the output.
There’s a ton of documentation available at the following:
But wait! There’s more!
To make our Gem and its features more accessible to non-Rubyists, non-programmers, and other students, I spun up a little web interface for it at automata.byji.co. You’re able to build an automaton by defining its features via YAML structure. Once you’ve built your machine, you can then feed it input and evaluate its output.