Lesson 1
Lesson 1
Lecture
#1
Theory Of Automata
1
What does automata mean?
2
Introduction to languages
3
Alphabets
Definition:
A finite non-empty set of symbols
(letters), is called an alphabet. It is
denoted by Σ ( Greek letter sigma).
Example:
Σ={a,b}
Σ={0,1} //important as this is the
language //which the computer
understands.
Σ={i,j,k}
4
NOTE:
A certain version of language ALGOL
has 113 letters
5
Strings
Definition:
Concatenation of finite symbols from
the alphabet is called a string.
Example:
If Σ= {a,b} then
a, abab, aaabb,
ababababababababab
6
NOTE:
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.
7
Words
Definition:
Words are strings belonging to some
language.
Example:
If Σ= {x} then a language L can be
defined as
L={xn : n=1,2,3,…..} or
L={x,xx,xxx,….}
Here x,xx,… are the words of L
8
Valid/In-valid alphabets
9
This 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
Σ = {a, b}.
10
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.
11
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.
12
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
13
Example:
Σ= {B, aB, bab, d}
s=BaBbabBd
Tokenizing=(B), (aB), (bab), (B), (d)
|s|=5
14
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
15
Example:
Σ= {B, aB, bab, d}
s=BaBbabBd
Rev(s)=dBbabaBB
16
Defining Languages
The languages can be defined in
different ways , such as Descriptive
definition, Recursive definition, using
Regular Expressions(RE) and using
Finite Automaton(FA) etc.
17
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, …}
18
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,…}
19
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,…}
20
Example: The language INTEGER, of
strings defined over Σ={-
,0,1,2,3,4,5,6,7,8,9}, can be written as
INTEGER = {…,-2,-1,0,1,2,…}
Example: The language EVEN, of stings
defined over Σ={-,0,1,2,3,4,5,6,7,8,9},
can be written as
EVEN = { …,-4,-2,0,2,4,…}
21
Example: The language {anbn }, of strings
defined over Σ={a,b}, as
{an bn : n=1,2,3,…}, can be written as
{ab, aabb, aaabbb,aaaabbbb,…}
Example: The language {anbnan }, of
strings defined over Σ={a,b}, as
{an bn an: n=1,2,3,…}, can be written as
{aba, aabbaa,
aaabbbaaa,aaaabbbbaaaa,…}
22
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.
23
Example: The language
DOUBLEFACTORIAL, of strings defined
over Σ={a, b}, as
{an!bn! : n=1,2,3,…}, can be written as
{ab, aabb, aaaaaabbbbbb,…}
Example: The language SQUARE, of
strings defined over Σ={a}, as
n2
{a : n=1,2,3,…}, can be written as
{a, aaaa, aaaaaaaaa,…}
24
Example:The language
DOUBLESQUARE, of strings defined
over Σ={a,b}, as
n2 n2
{a b : n=1,2,3,…}, can be written
as
{ab, aaaabbbb,
aaaaaaaaabbbbbbbbb,…}
25
Example: The language PRIME, of
strings defined over Σ={a}, as
{ap : p is prime}, can be written as
{aa,aaa,aaaaa,aaaaaaa,aaaaaaaaaaa
…}
26
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, ...}
27
Summing Up