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 |
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.
![]() |
![]() |
![]() |
Definition: Given an alphabet A, the class R(A) of regular expressions over A is obtained as follows:
Construct finite automata for the descriptors: a, aa|ba|ε, (a(bb|a)*)*, b(a*(ba*)*)*|a