0% found this document useful (0 votes)
69 views44 pages

Automata - Lecture 01

The document provides an introduction to automata theory and finite automata. It defines key concepts such as alphabets, strings, words, languages, and describes ways to define languages through descriptive definitions and examples. Length, reversal of strings are explained. Applications of finite automata in various domains like compilers, text editors are listed.

Uploaded by

Elyas Amini
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)
69 views44 pages

Automata - Lecture 01

The document provides an introduction to automata theory and finite automata. It defines key concepts such as alphabets, strings, words, languages, and describes ways to define languages through descriptive definitions and examples. Length, reversal of strings are explained. Applications of finite automata in various domains like compilers, text editors are listed.

Uploaded by

Elyas Amini
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/ 44

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. Introduction to Languages and Theory of
Computation, by J. C. Martin, McGraw Hill
Book Co., 1997, Second Edition

2
Grading

There will be One term exam and one final


exam. The final exam will be comprehensive.
These will contribute the following
percentages to the final grade:

Mid-Term Exams. 20%


Sessional. 30%
Final Exams. 50%
3
Automaton Cont..

 The word automata (the plural of automaton) comes


from the Greek word αὐτόματος, which means "self-
acting”.
 An automaton (Automata in plural) is an abstract
self-operating computing device which follows a
predetermined sequence of operations automatically.
 An automaton with a finite number of states is called
a Finite Automaton (FA) or Finite-State Machine
(FSM).

4
What does automata mean?

It is the study of theoretical /abstract machines and the computation


problems that can be solved using these machines.
The abstract machine is called the automata.
Motivation.
The main motivation behind developing the automata theory was
to develop methods to describe and analyze the dynamic behavior
of discrete systems.

It is the plural of automaton, and it means “something that works


automatically”

5
 Automaton is used in software systems, e.g the
states of an ATM machine is a automaton.
 Web applications where the user is to be
tracked at what state he/she is, can be termed
as automaton.
 The states of a bank account in its entire life
time is also a automaton (open, active, inactive,
closed, blocked, e.t.c)

6
The applications of Finite
Automata:

Design of the lexical analysis of a compiler.


Recognize the pattern by using regular expressions.
Use of the Mealy and Moore Machines for designing
the sequential circuits.
Used in text editors.
Used for spell checkers.

7
 Used in the Syntax Analysis phase of compiler .
 Implementation of stack applications.
 Used in evaluations of the arithmetic expressions.
 Used for solving the Tower of Hanoi Problem.
 Used for neural networks implementation.
 Used in Robotics Applications.
 Used in the implementation of artificial intelligence.

8
Introduction to languages

 There are two types of languages

 Formal Languages (Syntactic languages)


 Informal Languages (Semantic
languages)

9
If we want to instruct a computer, we have to use
something much more precise.

Languages with precise syntax and


semantics are called formal languages.
Programming languages are examples of formal
languages.
 Semantics: precise rules that tell you the
meanings of the symbols and legal expressions.
10
Alphabets

 Symbol: Symbol(often also called character) is the smallest


building block, which can be any alphabet, letter, or picture. 
 Alphabet
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}
11
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

12
Strings

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

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

14
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

15
NOTE:

 All words are strings, but not all strings


are words.

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

17
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}.

18
 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.

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

20
Conclusion

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


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

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


alphabet.

21
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

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

23
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

24
 Example:
Σ= {B, aB, bab, d}
s=BaBbabBd
Rev(s)=dBbabaBB

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

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

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

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

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

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

31
 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.
32
 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,…}

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

34
 Example: The language PRIME, of strings
defined over Σ={a}, as
{ap : p is prime}, can be written as
{aa,aaa,aaaaa,aaaaaaa,aaaaaaaaaaa…}

35
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, ...}

36
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:

37
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

38
 To calculate the number of palindromes of
length(2n), consider the following diagram,

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

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

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

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

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

44

You might also like