0% found this document useful (0 votes)
4 views

Lesson 01

The document provides an overview of the Theory of Automata and Formal Languages, including definitions of key concepts such as alphabets, strings, and words. It outlines the grading structure for the course, introduces formal and informal languages, and discusses various types of languages with examples. Additionally, it emphasizes the importance of valid alphabets and the characteristics of different language definitions.

Uploaded by

kashafbutt72
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Lesson 01

The document provides an overview of the Theory of Automata and Formal Languages, including definitions of key concepts such as alphabets, strings, and words. It outlines the grading structure for the course, introduces formal and informal languages, and discusses various types of languages with examples. Additionally, it emphasizes the importance of valid alphabets and the characteristics of different language definitions.

Uploaded by

kashafbutt72
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 31

Welcome to !

Theory Of Automata & Formal


Languages

1
Text and Reference Material

1. Introduction to Computer Theory, by


Daniel I. Cohen, John Wiley and Sons,
Inc., 1991, Latest Edition
2. Introduction to Languages and Theory of
Computation, by J. C. Martin, McGraw Hill
Book Co., 1997, Latest 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. 30%


Quizzes 20%
Assignments 10%
Final Exams. 40% 3
What does automata mean?

 It is the plural of automaton, and it


means “something that works
automatically”
 Example:
 Traffic Signals is good example of
Automata
4
Introduction to languages

 There are two types of languages

 Formal Languages (Syntactic


languages)
 Informal Languages (Semantic
languages)

5
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}
6
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

7
Strings

 Definition:
Concatenation of finite symbols from the
alphabet is called a string.
 String is always written from left to right.
 Strings never have infinite letters.
 Example:
If Σ= {a,b} then
a, abab, aaabb, ababababababababab

8
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.
9
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
10
NOTE:

All words are strings, but not all


strings are words.

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

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

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

14
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.
15
Conclusion

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


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

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


valid alphabet.

16
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

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

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

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

21
Examples

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

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

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

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

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

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

30
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, ...}
31

You might also like