- Establish a machine's five items and make them a quintuple.
- Transition structure and function
- User-friendly conventions for list of lists.
- Conversion of the transition structure to an array.
- Validation of it (each cell should be a state or empty)
- An access function for the transition array.
- The closure computation (delta-star) for multiple transitions
- Recognition: Starting at q0, use delta-star on the input
and check for reaching an accepting state.
- Input: Allow input of a string or a list of symbols. In lisp,
use the (generic) sequence function, ELT
- Output: Produce the solution path (states visited), not just
accept/reject.
- Termination:
- by end of input
- by empty cell - so trap state is not required
- Nondeterministic FAs:
- could do subset construction, but instead...
- either implement backtracking or
- keep track of all possibilities in parallel
- DFA and NFA together: delta takes atom or one-element list
- Lambda transitions:
- add lambda as a special member of the list of input symbols
- lambda heads an extra column of delta
- closure of lambda requires a function
- Transducers:
- representation of outputs
- adjust delta
- compute lambda closures from each state
- lambda closure needs to give all possible output sequences
for each state reached
- Upgrades for compatibility with Jurafsky & Martin text.
- Drop "Q" in the transition function; eg, 3 for Q3
- Categories of input symbols, eg, VOWEL
- Multi-character output on an arc; eg, "^s#"
- Output as a string
- Default pairs in FSTs: output=input
|