Regular Expression
As discussed earlier that a* generates
Λ, a, aa, aaa, …
and a+ generates a, aa, aaa, aaaa, …, so
the language L1 = {Λ, a, aa, aaa, …} and
L2 = {a, aa, aaa, aaaa, …} can simply
be expressed by a* and a+, respectively.
a* and a+ are called the regular expressions
(RE) for L1 and L2 respectively.
Note: a+, aa* and a*a generate L2.
1
Important Notes
A language may have more than one RE
We may have more than one languages
over the same alphabet. i.e. a(a*),(a+) etc.
There are so many languages that cannot
be expressed by RE i.e. L= {Λ}, Λ*= Λ,
L={a} =>a L={b} =>b,
Strings can never be added or multiplied
only languages can be added or multiplied.
Two RE’s are said to be equivalent not
equal to exact, if they generate the same
language i.e. a+ = aa*
2
Recursive definition of Regular
Expression(RE)
Step 1: Every letter of Σ including Λ is a regular
expression.
Step 2: If r1 and r2 are regular expressions then
1. (r1)
2. r1 r2
3. r1 + r2 and r2 + r1
4. r1*
are also regular expressions.
Step 3: Nothing else is a regular expression.
3
Defining Languages (continued)…
Method 3 (Regular Expressions)
Consider the language L={Λ, x, xx, xxx,…}
of strings, defined over Σ = {x}.
We can write this language as the Kleene
star closure of alphabet Σ or L=Σ*={x}*
this language can also be expressed by the
regular expression x*.
Similarly the language L={x, xx, xxx,…},
defined over Σ = {x}, can be expressed by
the regular expression x+.
4
Now consider another language L,
consisting of all possible strings, defined
over Σ = {a, b}. This language can
also be expressed by the regular
expression
(a + b)*.
Now consider another language L, of
strings having exactly double a, defined
over Σ = {a, b}, then it’s regular
expression may be
b*aab*
5
Now consider another language L, of
even length, defined over Σ = {a, b},
then it’s regular expression may be
((a+b)(a+b))*
Now consider another language L, of
odd length, defined over Σ = {a, b},
then it’s regular expression may be
(a+b)((a+b)(a+b))* or
((a+b)(a+b))*(a+b)
6
Remark
It may be noted that a language may be
expressed by more than one regular
expressions, while given a regular
expression there exist a unique language
generated by that regular expression.
7
Example:
Consider the language, defined over
Σ={a , b} of words having at least one a,
may be expressed by a regular
expression
(a+b)*a(a+b)*.
Consider the language, defined over
Σ = {a, b} of words having at least one a
and one b, may be expressed by a
regular expression
(a+b)*a(a+b)*b(a+b)*+ (a+b)*b(a+b)*a(a+b)*. 8
Consider the language, defined over
Σ={a, b}, of words starting with double
a and ending in double b then its
regular expression may be aa(a+b)*bb
Consider the language, defined over
Σ={a, b} of words starting with a and
ending in b OR starting with b and
ending in a, then its regular expression
may be a(a+b)*b+b(a+b)*a
9
TASK
Consider the language, defined over
Σ={a, b} of words beginning with a,
then its regular expression may be a(a+b)*
Consider the language, defined over
Σ={a, b} of words beginning and
ending in same letter, then its regular
expression may be (a+b)
+a(a+b)*a+b(a+b)*b
10
TASK
Consider the language, defined over
Σ={a, b} of words ending in b, then
its regular expression may be (a+b) *b.
Consider the language, defined over
Σ={a, b} of words not ending in a,
then its regular expression may be (a+b) *b
+ Λ. It is to be noted that this language
may also be expressed by ((a+b) *b)*.
11