The document discusses recursive definitions of formal languages using regular expressions. It provides examples of recursively defining languages like INTEGER, EVEN, and factorial. Regular expressions can be used to concisely represent languages. The recursive definition of a regular expression is given. Examples are provided of regular expressions for various languages over alphabets. Regular languages are those generated by regular expressions, and operations on regular expressions correspond to operations on the languages they represent.
Defining Languages Continued…
Recursive definition of languages:
The following three steps are used in recursive
definition
1. Some basic words are specified in the language.
2. Rules for constructing more words are defined
in the language.
3. No strings except those constructed in above,
are allowed to be in the language.
3.
Example
Defining language ofINTEGER
Step 1: 1 is in INTEGER.
Step 2: If x is in INTEGER then x+1 and x-1
are also in INTEGER.
Step 3: No strings except those constructed in
above, are allowed to be in INTEGER.
4.
Example
Defining language ofEVEN
Step 1: 2 is in EVEN.
Step 2: If x is in EVEN then x+2 and x-2 are
also in EVEN.
Step 3: No strings except those constructed in
above, are allowed to be in EVEN.
5.
Example
Defining the languagefactorial
Step 1: As 0!=1, so 1 is in factorial.
Step 2: n!=n*(n-1)! is in factorial.
Step 3: No strings except those constructed in
above, are allowed to be in factorial.
6.
Defining the languagePALINDROME, defined over Σ
= {a,b}
Step 1: a and b are in PALINDROME
Step 2: if x is palindrome, then s(x)Rev(s) and
xx will also be palindrome, where s belongs to Σ*
Step 3: No strings except those constructed in
above, are allowed to be in palindrome
7.
Defining the language{an
bn
}, n=1,2,3,… , of strings
defined over Σ={a,b}
Step 1: ab is in {an
bn
}
Step 2: if x is in {an
bn
}, then axb is in {an
bn
}
Step 3: No strings except those
constructed in above, are allowed to be in {an
bn
}
8.
Defining the languageL, of strings ending in a ,
defined over Σ={a,b}
Step 1: a is in L
Step 2: if x is in L then s(x) is also in L, where s
belongs to Σ*
Step 3: No strings except those constructed in
above, are allowed to be in L
9.
Defining the languageL, of strings beginning and
ending in same letters , defined over Σ={a, b}
Step 1: a and b are in L
Step 2: (a)s(a) and (b)s(b) are also in L, where
s belongs to Σ*
Step 3: No strings except those constructed in
above, are allowed to be in L
10.
Defining the languageL, of strings containing aa or
bb , defined over Σ={a, b}
Step 1: aa and bb are in L
Step 2: s(aa)s and s(bb)s are also in L, where s
belongs to Σ*
Step 3: No strings except those constructed in
above, are allowed to be in L
11.
Defining the languageL, of strings containing exactly
aa, defined over Σ={a, b}
Step 1: aa is in L
Step 2: s(aa)s is also in L, where s belongs to
b*
Step 3: No strings except those constructed in
above, are allowed to be in L
12.
Q2) Prove thatfor any set of strings S
(S+
)*=(S*)*
Solution: In general Λ is not in S+ , while Λ does
belong to S*. Obviously Λ will now be in (S+
)*,
while (S*)* and S* generate the same set of
strings. Hence (S+
)*=(S*)*.
13.
ii) (S+
)+
=S+
Solution: sinceS+ generates all possible strings
that can be obtained by concatenating the strings
of S, so (S+)+ generates all possible strings that
can be obtained by concatenating the strings of
S+ , will not generate any new string. Hence (S+)
+=S+
14.
Is (S*)+
=(S+
)*
Solution: sinceΛ belongs to S* ,so Λ will belong
to (S*)+
as member of S* .Moreover Λ may not
belong to S+
, in general, while Λ will automatically
belong to (S+
)*. Hence
(S*)+
=(S+
)*
Regular Expression
As discussedearlier 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 also generate L2.
18.
Recursive definition ofRegular Expression(RE)
Step 1: Every letter of Σ including Λ is a regular expression
Step 2: If r1 and r2 are regular expressions then
(r1)
r1r2
r1 + r2 and
r1*
are also regular expressions.
Step 3: Nothing else is a regular expression
19.
Method 3 (RegularExpressions)
Consider the language L={Λ, a, aa, aaa,…} of
strings, defined over Σ = {a}. We can write this
language as the Kleene star closure of alphabet Σ
or L=Σ*={a}* this language can also be expressed
by the regular expression a*.
Similarly the language L={a, aa, aaa,…}, defined
over Σ = {a}, can be expressed by the regular
expression a+
.
20.
Example
Now consider anotherlanguage L, consisting of all
possible strings, defined over Σ = {a, b}. This
language can also be expressed by the regular
expression (a + b)*
21.
Example
Now consider anotherlanguage 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, having any number of b’s
defined over Σ = {a, b}, then it’s regular
expression may be
b*aab*
22.
Example
Now consider anotherlanguage 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)
23.
Remark
It may benoted 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.
24.
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)*
25.
Example
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
26.
Practice – RegularExpression ?
Consider the language, defined over Σ={a, b} of
words beginning with a
Consider the language, defined over Σ={a, b} of
words beginning and ending in same letter
27.
Practice – RegularExpression ?
Consider the language, defined over Σ={a, b} of
words ending in b
Consider the language, defined over Σ={a, b} of
words not ending in a
28.
An important Example
TheLanguage EVEN-EVEN :
Language of strings, defined over Σ={a, b} having
even number of a’s and even number of b’s.
i.e.
EVEN-EVEN = {Λ, aa, bb, aaaa,aabb,abab, abba,
baab, baba, bbaa, bbbb,…},
Its regular expression can be written as
( aa + bb + (ab+ba)(aa+bb)*(ab+ba) )*
29.
Note
It is importantto be clear about the difference of
the following regular expressions
r1=a*+b*
r2=(a+b)*
Here r1 does not generate any string of
concatenation of a and b, while r2 generates such
strings.
30.
Equivalent Regular Expressions
Definition:Two regular expressions are said to
be equivalent if they generate the same language.
Example: Consider the following regular
expressions
r1= (a + b)* (aa + bb)
r2= (a + b)*aa + ( a + b)*bb then
both regular expressions define the language of
strings ending in aa or bb.
31.
Note
If r1=(aa + bb) and r2 =( a + b) then
1. r1 + r2 =(aa + bb) + (a + b)
2. r1 r2 = (aa + bb) (a + b) = (aaa + aab + bba + bbb)
3. (r1)* =(aa + bb)*
32.
Regular Languages
Definition:
The languagegenerated by any regular
expression is called a regular language.
It is to be noted that if r1, r2 are regular
expressions, corresponding to the languages L1
and L2then the languages generated by r1 + r2 , r1r2
( or r2r1) and r1*( or r2*) are also regular
languages.
33.
Note
It isto be noted that if L1 and L2 are expressed by
r1 and r2, respectively then the language expressed
by
1. r1+ r2, is the language L1+ L2 or L1U L2
2. r1 r2, , is the language L1L2, of strings obtained by
prefixing every string of L1 with every string of L2
3. r1*, is the language L1*, of strings obtained by
concatenating the strings of L, including the null
string.
34.
Example
If r1=(aa+bb) andr2=(a+b) then the language of
strings generated by r1+ r2, is also a regular
language, expressed by (aa+bb)+(a+b)
If r1=(aa+bb) and r2=(a+b) then the language of
strings generated by r1r2, is also a regular
language, expressed by (aa+bb)(a+b)
If r=(aa+bb) then the language of strings
generated by r*, is also a regular language,
expressed by (aa+bb)*
35.
All finite languagesare regular
Example:
Consider the language L, defined over Σ={a,b}, of
strings of length 2, starting with a, then
L={aa, ab}, may be expressed by the regular
expression aa+ab.
Hence L, by definition, is a regular language.
36.
Note
It may benoted that if a language contains even
thousand words, its RE may be expressed, placing
‘ + ’ between all the words.
Here the special structure of RE is not important.
Consider the language L={aaa, aab, aba, abb, baa,
bab, bba, bbb}, that may be expressed by a RE
aaa+aab+aba+abb+baa+bab+bba+bbb, which is
equivalent to (a+b)(a+b)(a+b).