Automata - Automaton Library

Card Puncher Data Processing

About

This page lists state machine libraries.

List

Regular expression library

All regular expression library implements an automaton.

We list a couple of example.

Automaton Library

http://www.brics.dk/automaton/ : Finite-state automaton for regular expressions.

This package uses deterministic finite-state automata (DFA), unlike most other regexp-packages that are based on nondeterministic automata (NFA). This means:

  • The notion of regular expressions used here has exactly the expressiveness of good old regular languages.
  • This package supports operations such as complement (the ~ operator) and intersection (the & operator).
  • The * operator is mathematically the Kleen Star (i.e. we don't have greedy/reluctant/possessive variants).
  • The time for pattern matching is optimal: once the regular expression has been converted into an automaton, it takes linear time in the length of a string to check whether it matches the expression - independently of the complexity of the expression. (NFA-based packages use backtracking.)
  • There is no support for capturing groups.

Example:

RegExp r = new RegExp("ab(c|d)*");
Automaton a = r.toAutomaton();
String s = "abcccdc";
System.out.println("Match: " + a.run(s)); // prints: true

Regepx Syntax of Brics Automaton

Multiregexp

multiregexp based on automaton

Stateless

stateless 1) Create state machines and lightweight state machine-based workflows directly in java code.





Discover More
Card Puncher Data Processing
What is a current-state driven model?

A process-based model is driven by the actual/current state of an entity whereas a event-based model is driven by the state changes. They are implemented as state machine. A process-based model is...



Share this page:
Follow us:
Task Runner