Interface DFAInterface<L extends LabelInterface>

Type Parameters:
L - The type of Label associated with this DFA.
All Superinterfaces:
Annotatable, ArtifactInterface, java.lang.Cloneable, FSAInterface<L>, Persistent,, Visualizable
All Known Subinterfaces:
MutableDFAInterface<L>, RunnableDFAInterface<L>
All Known Implementing Classes:
MutableDFA, RunnableDFA

public interface DFAInterface<L extends LabelInterface>
extends FSAInterface<L>

A DFA is a deterministic finite state automaton. It does not support epsilon (ε) transitions or nondeterminism. It is defined as an 8-tuple:

(Q, Σ, q0, A, T, source, target, label)

Q, Σ, q0, A, source, and target have the same definition as FSAInterface. But label and T are restricted as follows:

label : T → Σ is a function that given any transition in T returns the label of the transition, a symbol in Σ.

T is a finite set of transitions. The transitions implement FSATransitionInterface. FSAStateInterface#getOutgoingTransitions(L) is defined to return zero or one transitions. In other words, (∀ x, yT : source(x) = source(y) ∧ label(x) = label(y) → x = y).

Heather M. Conboy (

Field Summary
Fields inherited from interface laser.util.Persistent
Method Summary
Methods inherited from interface laser.regularlanguage.fsa.FSAInterface
checkWellFormed, clone, getAcceptStates, getAlphabet, getDescription, getEpsilonTransition, getFactory, getName, getNonAcceptStates, getStartState, getStates, getStateWithID, getTransition, getTransitions, getTransitions, getTransitionWithID, hasTransitionsOnEpsilon, isDeterministic, isTotal, setDescription, setName, supportsEpsilonTransitions, supportsNondeterminism
Methods inherited from interface laser.util.Annotatable
addAnnotation, addAnnotations, copyAnnotations, getAnnotationClasses, getAnnotationClasses, getAnnotationFilters, getAnnotations, getAnnotations, removeAnnotation, removeAnnotations, removeAnnotations, removeAnnotations, setAnnotationFilters
Methods inherited from interface laser.util.Persistent
writePersistent, writePersistent
Methods inherited from interface laser.util.Visualizable
getVisExtension, visualize, visualize