Automata

A library that implements formal finite state automata.

License

License

The MIT License (MIT)
Categories

Categories

Auto Application Layer Libs Code Generators
GroupId

GroupId

tel.schich
ArtifactId

ArtifactId

automata
Last Version

Last Version

0.2.1
Release Date

Release Date

Type

Type

jar
Description

Description

Automata
A library that implements formal finite state automata.
Project URL

Project URL

https://schich.tel
Source Code Management

Source Code Management

https://github.com/pschichtel/automata

Download automata

How to add to project

<!-- https://jarcasting.com/artifacts/tel.schich/automata/ -->
<dependency>
    <groupId>tel.schich</groupId>
    <artifactId>automata</artifactId>
    <version>0.2.1</version>
</dependency>
// https://jarcasting.com/artifacts/tel.schich/automata/
implementation 'tel.schich:automata:0.2.1'
// https://jarcasting.com/artifacts/tel.schich/automata/
implementation ("tel.schich:automata:0.2.1")
'tel.schich:automata:jar:0.2.1'
<dependency org="tel.schich" name="automata" rev="0.2.1">
  <artifact name="automata" type="jar" />
</dependency>
@Grapes(
@Grab(group='tel.schich', module='automata', version='0.2.1')
)
libraryDependencies += "tel.schich" % "automata" % "0.2.1"
[tel.schich/automata "0.2.1"]

Dependencies

test (1)

Group / Artifact Type Version
junit : junit jar 4.12

Project Modules

There are no modules declared in this project.

Automata Maven Central

A library that implements formal finite state automata.

If you are looking for an efficient and feature complete linear-time regular expression engine, then this is not the project for you. Google's re2 will very likely do a better job at that.

However if you are trying to convert regular expressions into FSAs in order to proof certain properties of the regular expressions and are not too tight on performance requirements, this could be the project you are looking for.

What works?

  • Converting simple ("formal") regular expressions into NFAs
  • Converting Java's Patterns (most of the regular syntax is supported) into NFAs
  • Converting NFAs into DFAs
  • Various operations on DFAs and/or NFAs:
    • minimizing DFAs
    • completing DFAs
    • combining multiple automata into a one (e.g. intersection)
    • complements
  • simple text matching

Possible future features

  • Transition events
  • ???

Inspired by

Prof. Dr. Karl Stroetmann's Formal Languages Lecture

Versions

Version
0.2.1
0.2.0
0.1.0