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

Lesson 01

The document discusses key concepts related to formal languages and automata theory including: 1. Alphabets are finite sets of symbols used to define languages. Strings are concatenations of symbols in an alphabet. Words are strings that belong to a specific language. 2. Languages can be defined descriptively by specifying properties of their words. Examples include languages of odd length strings or strings with equal numbers of a's and b's. 3. An important language is the set of palindromic strings, where the string reads the same forward and backward. Other concepts discussed include regular expressions and finite automata.

Uploaded by

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

Lesson 01

The document discusses key concepts related to formal languages and automata theory including: 1. Alphabets are finite sets of symbols used to define languages. Strings are concatenations of symbols in an alphabet. Words are strings that belong to a specific language. 2. Languages can be defined descriptively by specifying properties of their words. Examples include languages of odd length strings or strings with equal numbers of a's and b's. 3. An important language is the set of palindromic strings, where the string reads the same forward and backward. Other concepts discussed include regular expressions and finite automata.

Uploaded by

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

Text and Reference Material

1. John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman


"Introduction to Automata Theory, Languages, and
Computation", Third Edition, Pearson/Addison-Wesley, 2007,
ISBN 0-321-46225-4
2. Introduction to Languages and Theory of Computation, by J.
C. Martin, McGraw Hill Book Co., 1997, Second Edition
3. Michael Sipser, "Introduction to the Theory of Computation",
2nd Edition
Thomson, 2006.
4. Introduction to Computer Theory, by Daniel I. Cohen, John
Wiley and Sons, Inc., 1991, Second Edition
1
What does automata mean?

 It is the plural of automaton, and it means


“something that works automatically”

2
Introduction to languages

 There are two types of languages

 Formal Languages (Syntactic


languages)
 Informal Languages (Semantic
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

Σ (alphabet) includes letters, digits and a


variety of operators including sequential
operators such as GOTO and IF

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

 All words are strings, but not all strings


are words.

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

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

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

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

13
Conclusion

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


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

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


alphabet.

14
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

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

16
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

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

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

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

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

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

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

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

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

You might also like