0% found this document useful (0 votes)
60 views31 pages

Automata 2

The document discusses valid and invalid alphabets. It provides examples of valid alphabet Σ1 and invalid alphabet Σ2. The key points are: 1. An alphabet is invalid if it allows ambiguity in tokenizing strings, such as the string "BababB" over Σ2. 2. When defining an alphabet, no letter should be a prefix of another to avoid ambiguity, though a letter may be a suffix. 3. The document concludes that Σ1 is a valid alphabet while Σ2 is invalid due to ambiguity in tokenizing strings.

Uploaded by

jalil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
60 views31 pages

Automata 2

The document discusses valid and invalid alphabets. It provides examples of valid alphabet Σ1 and invalid alphabet Σ2. The key points are: 1. An alphabet is invalid if it allows ambiguity in tokenizing strings, such as the string "BababB" over Σ2. 2. When defining an alphabet, no letter should be a prefix of another to avoid ambiguity, though a letter may be a suffix. 3. The document concludes that Σ1 is a valid alphabet while Σ2 is invalid due to ambiguity in tokenizing strings.

Uploaded by

jalil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 31

Valid/In-valid alphabets

 While defining an alphabet, an alphabet may contain letters


consisting of group of symbols for example Σ1= {B, aB, bab, d}.

 Now consider an alphabet


Σ2= {B, Ba, bab, d} and a string BababB
Valid/In-valid alphabets

 This BababB (string) can be tokenized in two different ways


 (Ba), (bab), (B)
 (B), (abab), (B)

 Which shows that the second group cannot be identified as a


string, defined over
Σ2= {B, Ba, bab, d}
Valid/In-valid alphabets

 As when this string is scanned by the compiler (Lexical Analyzer),


first symbol B is identified as a letter belonging to Σ, while for the
second letter the lexical analyzer would not be able to identify, so
while defining an alphabet it should be kept in mind that ambiguity
should not be created.
Remarks:

 While defining an alphabet of letters consisting of more than one


symbols, no letter should be started with the letter of the same
alphabet i.e. one letter should not be the prefix of another. However,
a letter may be ended in the letter of same alphabet i.e. one letter
may be the suffix of another.
Conclusion

 Σ1= {B, aB, bab, d}


 Σ2= {B, Ba, bab, d}

 Σ1 is a valid alphabet while Σ2 is an in-valid alphabet.


EMPTY STRING or NULL STRING

 Sometimes a string with no symbol at all is used,


denoted by (Small Greek letter Lambda) λ or (Capital
Greek letter Lambda) Λ, is called an empty string or
null string.

 The
capital lambda will mostly be used to denote the
empty string, in further discussion.
Length of Strings

 Definition:

The length of string s, denoted by |s|, is the number of


letters in the string.

 Example:

Σ={a,b}
s=ababa
|s|=5
 Example:

Σ= {B, aB, bab, d}


s=BaBbabBd
Tokenizing=(B), (aB), (bab), (B), (d) |s|=5
Reverse of a String

 Definition:

The reverse of a string s denoted by Rev(s) or sr, is


obtained by writing the letters of s in reverse order.
 Example:

If s = abc is a string defined over


Σ={a,b,c} then
Rev(s) or sr = cba
Reverse of a String

 Example:

Σ= {B, aB, bab, d}


s=BaBbabBd
Tokenizing=(B) (aB) (bab) (B) (d)

Rev(s)=dBbabaBB
Defining Languages
 The languages can be defined in different ways , such
as
1. Descriptive definition,
2. Recursive definition,
3. using Regular Expressions(RE) and
4. using Finite Automaton(FA) etc.

 Descriptive definition of language:


The language is defined, describing the conditions
imposed on its words.
 Example:

The language L of strings of odd length, defined over


Σ={a}, can be written as
L={a, aaa, aaaaa,…..}
 Example:

The language L of strings that does not start with a,


defined over Σ={a,b,c}, can be written as
L={b, c, ba, bb, bc, ca, cb, cc, …}
 Example:

The language L of strings of length 2, defined over


Σ={0,1,2}, can be written as
L={00, 01, 02,10, 11,12,20,21,22}

 Example:

The language L of strings ending in 0, defined over Σ


={0,1}, can be written as
L={0,00,10,000,010,100,110,…}
 Example:

The language EQUAL, of strings with number of a’s


equal to number of b’s, defined over Σ={a,b}, can be
written as
{Λ ,ab,aabb,abab,baba,abba,…}
 Example:

The language EVEN-EVEN, of strings with even


number of a’s and even number of b’s, defined over
Σ={a,b}, can be written as
{Λ, aa, bb, aaaa,aabb,abab, abba, baab, baba, bbaa,
bbbb,…}
 Example:

The language factorial, of strings defined over


Σ={1,2,3,4,5,6,7,8,9} i.e. {1,2,6,24,120,…}

 Example:

The language FACTORIAL, of strings defined over


Σ={a}, as {an! : n=1,2,3,…}, can be written as
{a,aa,aaaaaa,…}.
It is to be noted that the language FACTORIAL can
be defined over any single letter alphabet.
An Important language

 PALINDROME

The language consisting of Λ and the strings s


defined over Σ such that Rev(s)=s. It is to be
denoted that the words of PALINDROME are called
palindromes.

 Example:

For Σ={a,b}, PALINDROME={Λ , a, b, aa, bb,


aaa, aba, bab, bbb, ...}
Kleene Star/Kleene Closure/Kleene Operator

 Given Σ, then the Kleene Star Closure of the alphabet Σ,


denoted by Σ*, is the collection of all strings defined over
Σ, including Λ.

 Itis to be noted that Kleene Star Closure can be defined


over any set of strings.
Examples

 If Σ = {x}
Then Σ* = {Λ, x, xx, xxx, xxxx, ….}

 If Σ = {0,1}
Then Σ* = {Λ, 0, 1, 00, 01, 10, 11, ….}

 If Σ = {aaB, c}
Then Σ* = {Λ, aaB, c, aaBaaB, aaBc, caaB, cc, ….}
Note

 Languages generated by Kleene Star Closure of set of strings, are infinite


languages.

 (By infinite language, it is supposed that the language contains infinite many
words, each of finite length).
Kleene PLUS/Kleene Positive/Positive Closure

 Plus Operation is same as Kleene Star Closure except


that it does not generate Λ (null string),
automatically.
 Example:
 If Σ = {0,1}
Then Σ+ = {0, 1, 00, 01, 10, 11, ….}
 If Σ = {aab, c}
Then Σ+ = {aab, c, aabaab, aabc, caab, cc, ….}
Remark

 Itis to be noted that Kleene Star can also be operated


on any string i.e. a* can be considered to be all
possible strings defined over {a}, which shows that
a* generates Λ, a, aa, aaa, …

 Itmay also be noted that a+ can be considered to be


all possible non empty strings defined over {a},
which shows that a+ generates
a, aa, aaa, aaaa, …
Recursive definition
of languages
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.
Example

 Defining language of INTEGER

 Step 1: 1 is in INTEGER.

 Step 2: If x is in INTEGER then x+1 and x-1 are


also in INTEGER.

 Step3: No strings except those constructed in


above, are allowed to be in INTEGER.
Example

 Defining language of EVEN

 Step 1: 2 is in EVEN.

 Step
2: If x is in EVEN then x+2 and x-2 are also in
EVEN.

 Step3: No strings except those constructed in


above, are allowed to be in EVEN.
Defining the language L, 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
Defining the language L, 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 Σ*

 Step3: No strings except those constructed in


above, are allowed to be in L
Defining the language L, 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 Σ*

 Step3: No strings except those constructed in


above, are allowed to be in L
Defining the language L, 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*

 Step3: No strings except those constructed in


above, are allowed to be in L
Example

 Defining the language factorial

 Step 1: As 0!=1, so 1 is in factorial.

 Step 2: n!=n*(n-1)! is in factorial.

 Step3: No strings except those constructed in


above, are allowed to be in factorial.

You might also like