# Finite-State Automata (FSA) ```CIS 324: Language Design and Implementation
Language Recognition
1. Finite-State Automata (FSA)
Finite-state automata are capable of recognizing regular languages:
given an input string they determine whether it belongs to the
language predefined by a regular expression.
The FSA can be nondeterministic (NFA)- when more than one transition
out of a state is possible on the same input symbol, or deterministic (DFA).
An NFA can be converted into a DFA by a special algorithm.
2. Nondeterministic Finite Automata (NFA)
A nondeterministic finite-state automaton is a model consisting of:
1) a set of states S
2) a set of input symbols  (the input symbol alphabet)
3) a transition function move that maps input symbol pairs
to sets of states
4) a state s0 that is distinguished as the start (or initial) state
5) a set of states F distinguished as accepting (or final) states
An NFA accepts the input string if and only if there is a path in the
corresponding transition graph from the start state to some accepting
state such that the edge labels along this path spell out the input.
When describing an NFA we use the corresponding transition diagram.
Example: The NFA for the language: ( a | b )*abb is given by the
following transition diagram
b
start
0
a
a
1
b
2
b
3
3. Deterministic Finite Automata (DFA)
A deterministic finite-state automaton is a model consisting of:
1) a set of states S
2) a set of input symbols  (the input symbol alphabet)
3) a transition function move that maps input symbol pairs to sets of states
4) a state s0 that is distinguished as the start (or initial) state
5) a set of states F distinguished as accepting (or final) states
6) NO state has -transition, i.e. a transition on input 
7) for each state s and input symbol a there is
at most one edge labeled a leaving s
Example: The DFA for the language: ( a | b )*abb is given by the
following transition diagram
b
b
start
0
a
1
a
b
a
2
a
b
3
```