0% found this document useful (0 votes)
10 views41 pages

Lesson 01

The document provides an overview of the Theory of Automata, detailing concepts such as automata, abstract machines, alphabets, strings, and languages. It distinguishes between formal and informal languages and discusses the properties of valid and invalid alphabets. Additionally, it introduces various types of languages, including palindromes and examples of language definitions using descriptive methods.

Uploaded by

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

Lesson 01

The document provides an overview of the Theory of Automata, detailing concepts such as automata, abstract machines, alphabets, strings, and languages. It distinguishes between formal and informal languages and discusses the properties of valid and invalid alphabets. Additionally, it introduces various types of languages, including palindromes and examples of language definitions using descriptive methods.

Uploaded by

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

Welcome to !

Theory Of Automata

1
Text and Reference Material

1. Introduction to Computer Theory, by


Daniel I. Cohen, John Wiley and Sons,
Inc., 1991, Second Edition

2
What does automata mean?

 It is the plural of automaton, and it


means “something that works
automatically”

3
Theory of Computation

In theoretical computer science and


mathematics, the theory of computation is
the branch that deals with how efficiently
problems can be solved on a model
of computation, using an algorithm. The field
is divided into three major branches:
• automata theory,
• computability theory
• computational complexity theory.
Automata theory

 Automata theory is the study


of Abstract machines and Automata, as
well as the computational problems that
can be solved using them.
Abstract machines : An abstract machine, also called
an abstract computer, is a theoretical model of a computer hardware or
software system used in automata theory. An abstract machine is a model
of a computer system (considered either as hardware or software)
constructed to allow a detailed and precise analysis of how the computer
system works. Such a model usually consists of input, output, and
operations that can be preformed (the operation set), and so can be
thought of as a processor.

Automata : is a self-operating machine, or a machine or control


mechanism designed to follow automatically a predetermined sequence of
operations, or respond to predetermined instructions.
Automata means something that works automatically.
Introduction to languages

 There are two types of languages

 Formal Languages (Syntactic


languages)
 Informal Languages (Semantic
languages)

6
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}
7
Alphabets & Strings
 Alphabets
A finite non-empty set of symbols
(called letters), is called an alphabet. It is
denoted by Σ ( Greek letter sigma).
Example
Σ = {a,b}, Σ = {i,j,k}

 Strings
Concatenation of finite number of
letters from the alphabet is called a string.
Example
If Σ = {a,b} then
a, abab, aaabb, ababababababababab
are strings.
NOTE:

 A certain version of language ALGOL


has 113 letters

Σ (alphabet) includes letters, digits and


a variety of operators including
sequential operators such as GOTO and
IF

9
Strings

 Definition:
Concatenation of finite symbols from
the alphabet is called a string.
 Example:
If Σ= {a,b} then
a, abab, aaabb,
ababababababababab

10
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.
11
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
12
NOTE:

All words are strings, but not all


strings are words.

13
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.

14
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}.
15
 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.

16
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.
17
Conclusion

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


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

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


valid alphabet.

18
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

19
 Example:
Σ= {B, aB, bab, d}
s=BaBbabBd
Tokenizing=(B), (aB), (bab), (d)
|s|=4

20
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
21
 Example:
Σ= {B, aB, bab, d}
s=BaBbabBd
Rev(s)=dBbabaBB

22
Lecture 2

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.

Descriptive definition of language:


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

23
 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, …}

24
 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,…}

25
 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,…}
26
 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,…}
27
 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,
…}
28
 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.

29
 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,…}
30
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,…}

31
Example: The language PRIME, of
strings defined over Σ={a}, as
{ap : p is prime}, can be written as

{aa,aaa,aaaaa,aaaaaaa,aaaaaaaaaa
a…}

32
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, ...}
33
Remark

 There are as many palindromes of


length 2n as there are of length 2n-1.
To prove the above remark, the
following is to be noted:

34
Note

 Number of strings of length ‘m’ defined


over alphabet of ‘n’ letters is nm.
 Examples:
 The language of strings of length 2,
defined over Σ={a,b} is L={aa, ab, ba,
bb} i.e. number of strings = 22
 The language of strings of length 3,
defined over Σ={a,b} is L={aaa, aab,
aba, baa, abb, bab, bba, bbb} i.e.
number of strings = 23
35
 To calculate the number of
palindromes of length(2n), consider
the following diagram,

36
which shows that there are as many
palindromes of length 2n as there are the
strings of length n i.e. the required
number of palindromes are 2n.

37
 To calculate the number of
palindromes of length (2n-1) with ‘a’ as
the middle letter, consider the
following diagram,

38
which shows that there are as many
palindromes of length 2n-1 as there are
the strings of length n-1 i.e. the required
number of palindromes are 2n-1.
Similarly the number of palindromes of
length 2n-1, with ‘ b ’ as middle letter, will
be 2n-1 as well. Hence the total number of
palindromes of length 2n-1 will be 2n-1 +
2n-1 = 2 (2n-1)= 2n .

39
Exercise

 Q) Prove that there are as many


palindromes of length 2n, defined over
Σ = {a,b,c}, as there are of length 2n-
1. Determine the number of
palindromes of length 2n defined over
the same alphabet as well.

40
SummingUp Lecture-1

 Introduction to the course title, Formal and


In-formal languages, Alphabets, Strings, Null
string, Words, Valid and In-valid alphabets,
length of a string, Reverse of a string,
Defining languages, Descriptive definition of
languages, EQUAL, EVEN-EVEN, INTEGER,
EVEN, { an bn}, { an bn an }, factorial,
FACTORIAL, DOUBLEFACTORIAL, SQUARE,
DOUBLESQUARE, PRIME, PALINDROME.

41

You might also like