Regular Expression to Finite Automaton Conversion - Theory

Regular Languages

Definition: A regular language L over an alphabet A is a formal language that satisfies the following equivalent properties:

Example:
Acceptor
Descriptor
Generator
a*ba* S → aS | bA
A → ε | aA

Closure of the class of regular Languages under union, catenation, and Kleene star

Definition: Language L ∈ A* is called regular iff L is accepted by some FA.

Given L, L' ∈ A*, define union L ∪ L', catenation L ∘ L' = { v = ww' | w ∈ L, w' ∈ L'}

Define L0 = { ε }, Lk = L ∘ Lk-1 for k > 0. Kleene star: L* = ⋃ (k = 0 to ∞ ) Lk.

Theorem - closure under the regular operations: If L, L' ∈ A* are regular languages, L ∪ L', L ∘ L' and L* are regular Languages.

Proof Given FAs that accept L, L' respectively, construct NFAs to accept L ∪ L', L ∘ L' and L* as shown. The given FAs are represented as boxes with starting state at left and one accepting state (representative of all others) at right. In each case we add a new starting state and some ε-transitions as shown.

Regular Expressions

Definition: Given an alphabet A, the class R(A) of regular expressions over A is obtained as follows:

Exercises

Construct finite automata for the descriptors: a, aa|ba|ε, (a(bb|a)*)*, b(a*(ba*)*)*|a