Theoretical Aspects of Lexical Analysis/Exercise 4

From Wiki**3

< Theoretical Aspects of Lexical Analysis
Revision as of 09:51, 24 June 2016 by Root (talk | contribs)

Contents

==Problem?? Use Thompson's algorithm to build the NFA for the following regular expression. Build the corresponding DFA and minimize it.

  • (a|b)*abb(a|b)*

Solution

The non-deterministic finite automaton (NFA), built by applying Thompson's algorithm to the regular expression (a|b)*abb(a|b)* is the following:

NFA


Applying the determination algorithm to the above NFA, the following determination table is obtained:

Determination table

{

Graphically, the DFA is represented as follows:

DFA


The minimization tree is as follows:

Minimization tree

200

The tree expansion for non-splitting sets has been omitted for simplicity ("a" transition for non-final states and the {0, 2} "a" and "b" transitions. The final states are all indistinguishable, regarding both "a" or "b" transitions (remember that, at this stage, we assume that individual states -- i.e., the final states -- are all indistinguishable).

Given the minimization tree above, the final minimal DFA is as follows:

Minimal DFA