laser.regularlanguage.fsa
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, java.io.Serializable, 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).

Author:
Heather M. Conboy (laser-software@cs.umass.edu)

Field Summary
 
Fields inherited from interface laser.util.Persistent
PER_EXTENSION, READ_PERSISTENT_METHOD_NAME
 
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