About AutomataLib :: Parent

A fully generic library for automata, graphs, and models, written in Java. This is the parent artifact which does not have any source code. Please refer to the "modules" page for more detailed documentation on the single library artifacts.

Project Modules

This project has declared the following modules:

Name Description
AutomataLib :: API This artifact contains the API of AutomataLib, which mainly consists of interfaces for the various concepts and automaton models supported by the AutomataLib core. In addition to that, it also defines some fundamental classes for dealing with words of symbols.
AutomataLib :: Core The core artifact of AutomataLib. This library contains concrete implementations for many of the automaton model interfaces defined in the API artifact, as well as abstract base classes that facilitate implementing new automaton model classes. Note that concrete algorithms (traversal, reachability analysis etc.) are not in the scope of this artifact.
AutomataLib :: Utilities This artifact provides various common utility operations for analyzing and manipulating automata and graphs, such as traversal, minimization and copying.
AutomataLib :: Commons :: Utilities Basic utility library containing several useful classes (e.g., a Pair class) to ease everyday programming.
AutomataLib :: Commons :: Smart Collections This library provides efficient implementations for various collection data structures (esp. linked lists and priority queues), which have very insufficient implementation in the Java Collections Foundations that makes it hard or even impossible to exploit their efficiencies.
AutomataLib :: Commons :: DOT Utilities This utility artifact contains methods that facilitate interaction with the <a href="http://www.graphviz.org/">GraphVIZ DOT</a> tool, and allows to render and display DOT models directly from within the application.
AutomataLib :: Commons Common parent metaproject for various small Java libraries which are required by AutomataLib, but are not specific to AutomataLib itself (i.e., are not or only indirectly related to modeling automata and graphs).
AutomataLib :: Misc :: Incremental A library for incremental automata construction. This artifact contains algorithms for incrementally constructing DFAs (both prefix-closed and non-prefix-closed) and Mealy machines from a finite, incrementally growing set of example inputs/outputs.
AutomataLib :: Misc :: Misc. Algorithms This artifact contains several miscellaneous, well-known algorithms, which however are rather specific in their concrete use case and therefore not fit for the AutomataLib Utilities library. Examples include Dijkstra's algorithm for the SSSP problem, the Floyd-Warshall algorithm for the APSP problem and Tarjan's algorithm for finding all strongly-connected components in a graph.
AutomataLib :: Misc Common parent metaproject for various miscellaneous additions (algorithms, automaton types) to AutomataLib, which are rather specific in their respective use case.
AutomataLib :: Adapters :: BRICS This artifact contains adapter classes for treating the <tt>Automaton</tt> objects from the <a href="http://www.brics.dk/automaton">BRICS library</a> as AutomataLib models.
AutomataLib :: Adapters Common parent metaproject for various adapters, i.e., wrapper class that allow to treat automaton or graph models from other software libraries as AutomataLib automata or graphs.
AutomataLib :: Examples A collection of various small example applications that illustrate several use cases of AutomataLib.<br /> <em>Note:</em> This artifact is not intended as a library, but only exists for educational purposes.
AutomataLib :: Archetypes :: Core Parent metaproject for archetypes that facilitate getting started with AutomataLib.
AutomataLib :: Archetypes :: Typical Parent metaproject for archetypes that facilitate getting started with AutomataLib.
AutomataLib :: Archetypes :: Complete Parent metaproject for archetypes that facilitate getting started with AutomataLib.
AutomataLib :: Archetypes Parent metaproject for archetypes that facilitate getting started with AutomataLib.