You are on page 1of 41

Automata Theory and Logic

Regular Language & Regular Expression

A T U TO R IAL
BY
A N I M ESH CHAT U RVEDI
AT
I N DI A N I N STITU TE OF T ECHN OLOGY I N DOR E ( I I T - I)
DFA, NFA, Regular Expression (RegEx)
and Regular Language (RegLang)
A DFA represent a Regular Expression language
Language of given Regular Expression?
Regular Expression Regular Language
(0 + 10∗)
(0∗ 10∗)
(0 + ε)(1 + ε)
(a + b)*

(a + b)* abb

(11)*

(aa)*(bb)*b

(aa + ab + ba +bb)*

https://www.tutorialspoint.com/automata_theory/regular_expressions.htm
Language of given Regular Expression?
Regular Expression Regular Language
(0 + 10∗) L = { 0, 1, 10, 100, 1000, 10000, … }
(0∗ 10∗) L = {1, 01, 10, 010, 0010, …}
(0 + ε)(1 + ε) L = {ε, 0, 1, 01}
(a + b)*

(a + b)* abb

(11)*

(aa)*(bb)*b

(aa + ab + ba +bb)*

https://www.tutorialspoint.com/automata_theory/regular_expressions.htm
Language of given Regular Expression?
Regular Expression Regular Language
(0 + 10∗) L = { 0, 1, 10, 100, 1000, 10000, … }
(0∗ 10∗) L = {1, 01, 10, 010, 0010, …}
(0 + ε)(1 + ε) L = {ε, 0, 1, 01}
(a + b)* Set of strings of a’s and b’s of any length including the null string. So L = { ε, a, b,
aa , ab , bb , ba, aaa…….}
(a + b)* abb Set of strings of a’s and b’s ending with the string abb. So L = {abb, aabb, babb,
aaabb, ababb, …………..}
(11)*

(aa)*(bb)*b

(aa + ab + ba +bb)*

https://www.tutorialspoint.com/automata_theory/regular_expressions.htm
Language of given Regular Expression?
Regular Expression Regular Language
(0 + 10∗) L = { 0, 1, 10, 100, 1000, 10000, … }
(0∗ 10∗) L = {1, 01, 10, 010, 0010, …}
(0 + ε)(1 + ε) L = {ε, 0, 1, 01}
(a + b)* Set of strings of a’s and b’s of any length including the null string. So L = { ε, a, b,
aa , ab , bb , ba, aaa…….}
(a + b)* abb Set of strings of a’s and b’s ending with the string abb. So L = {abb, aabb, babb,
aaabb, ababb, …………..}
(11)* Set consisting of even number of 1’s including empty string, So L= {ε, 11, 1111,
111111, ……….}
(aa)*(bb)*b Set of strings consisting of even number of a’s followed by odd number of b’s , so L = {b, aab, aabbb, aabbbbb, aaaab,
aaaabbb, …………..}
(aa + ab + ba +bb)* String of a’s and b’s of even length can be obtained by concatenating any
combination of the strings aa, ab, ba and bb including null, so L = {aa, ab, ba, bb, aaab, aaba, ………..}

https://www.tutorialspoint.com/automata_theory/regular_expressions.htm
Number of states for a given language
Definition of a language L with alphabet {a} is given as following
L = {ank | k > 0, and n is a positive integer constant}
What is the minimum number of states needed in a DFA to recognize L?

Computer Science GATE 2011


Number of states for a given language
Definition of a language L with alphabet {a} is given as following
L = {ank | k > 0, and n is a positive integer constant}
What is the minimum number of states needed in a DFA to recognize L?

n+1 states are needed in a DFA to recognize L

Let n = 3 and k=1


3+1 = 4 states

Computer Science GATE 2011


Minimal DFA for a given language
Draw a minimal DFA which accepts the same language as a DFA with alphabet ∑ = {0, 1} is given
below {0, 1} ∪ {x ∈ {0, 1}∗ | len(x) ≥ 3}

Konrad Slind Notes on Computation Theory, September 21, 2010


Minimal DFA for a given language
Draw a minimal DFA which accepts the same language as a DFA with alphabet ∑ = {0, 1} is given
below {0, 1} ∪ {x ∈ {0, 1}∗ | len(x) ≥ 3}

Konrad Slind Notes on Computation Theory, September 21, 2010


Minimal DFA for a given language
Draw a minimal DFA which accepts the same language as a DFA with alphabet ∑ = {0, 1} is given
below {0, 1} ∪ {x ∈ {0, 1}∗ | len(x) ≥ 3}

Konrad Slind Notes on Computation Theory, September 21, 2010


Minimal DFA for a given language
Draw a minimal DFA which accepts the same language as a DFA with alphabet ∑ = {0, 1} is given
below {0, 1} ∪ {x ∈ {0, 1}∗ | len(x) ≥ 3}

Konrad Slind Notes on Computation Theory, September 21, 2010


Minimal DFA for a given language
Draw a minimal DFA which accepts the same language as a DFA with alphabet ∑ = {0, 1} is given
below {0n | ∃k. n = 3k + 1}

Konrad Slind Notes on Computation Theory, September 21, 2010


Minimal DFA for a given language
Draw a minimal DFA which accepts the same language as a DFA with alphabet ∑ = {0, 1} is given
below {0n | ∃k. n = 3k + 1}

Konrad Slind Notes on Computation Theory, September 21, 2010


Minimal DFA for a given language
Draw a minimal DFA which accepts the same language as a DFA with alphabet ∑ = {0, 1} is given
below {0n | ∃k. n = 3k + 1}

Konrad Slind Notes on Computation Theory, September 21, 2010


Convert NFA to DFA for a given RegEx
Construct DFA to accept 00(0+1)*

Dr. Ding-Zhu Du http://www.utdallas.edu/~dzdu/cs4384/lect7.ppt


Convert NFA to DFA for a given RegEx
Construct DFA to accept 00(0+1)*

Dr. Ding-Zhu Du http://www.utdallas.edu/~dzdu/cs4384/lect7.ppt


Convert NFA to DFA for a given RegEx
Construct DFA to accept (0+1)*11

Dr. Ding-Zhu Du http://www.utdallas.edu/~dzdu/cs4384/lect7.ppt


Convert NFA to DFA for a given RegEx
Construct DFA to accept (0+1)*11

Dr. Ding-Zhu Du http://www.utdallas.edu/~dzdu/cs4384/lect7.ppt


Convert NFA to DFA for a given RegEx
Construct DFA to accept 00(0+1)*11

Dr. Ding-Zhu Du http://www.utdallas.edu/~dzdu/cs4384/lect7.ppt


Convert NFA to DFA for a given RegEx
Construct DFA to accept 00(0+1)*11

Dr. Ding-Zhu Du http://www.utdallas.edu/~dzdu/cs4384/lect7.ppt


Convert NFA to DFA for a given RegLang
Construct DFA to accept L(M)=ε

Dr. Ding-Zhu Du http://www.utdallas.edu/~dzdu/cs4384/lect7.ppt


Convert NFA to DFA for a given RegLang
Construct DFA to accept L(M)=ε

Dr. Ding-Zhu Du http://www.utdallas.edu/~dzdu/cs4384/lect7.ppt


Convert NFA to DFA for a given RegLang
Construct DFA to accept L(M)=Ǿ

Dr. Ding-Zhu Du http://www.utdallas.edu/~dzdu/cs4384/lect7.ppt


Convert NFA to DFA for a given RegLang
Construct DFA to accept L(M)=Ǿ

Dr. Ding-Zhu Du http://www.utdallas.edu/~dzdu/cs4384/lect7.ppt


Convert NFA to DFA for a given RegLang
Construct DFA to accept L(M)=(0+1)*

Dr. Ding-Zhu Du http://www.utdallas.edu/~dzdu/cs4384/lect7.ppt


Convert NFA to DFA for a given RegLang
Construct DFA to accept L(M)=(0+1)*

Dr. Ding-Zhu Du http://www.utdallas.edu/~dzdu/cs4384/lect7.ppt


Regular Expression
What is the language accepted by the NFA for one literal {a} show below?
Assume ε is the empty string

Computer Science GATE 2012


Regular Expression
What is the language accepted by the NFA for one literal {a} show below?
Assume ε is the empty string

Language accepted by NFA is a+, so complement of this language is {є}

Computer Science GATE 2012


What is the DFA & Regular expression?
Example: the set of strings containing an even number of zeros and an even number of ones

Lexical Analysis by Prof. O. Nierstrasz 30


What is the DFA & Regular expression?
Example: the set of strings containing an even number of zeros and an even number of ones

Lexical Analysis by Prof. O. Nierstrasz 31


What is the DFA & Regular expression?
Example: the set of strings containing an even number of zeros and an even number of ones

The RE is (0011)*((0110)(0011)*(0110)(0011)*)*

Lexical Analysis by Prof. O. Nierstrasz 32


Draw NFA for given regular expressions
For the RE (a|b)*abb ?

Lexical Analysis by Prof. O. Nierstrasz 33


Draw NFA for given regular expressions
For the RE (a|b)*abb ?

Lexical Analysis by Prof. O. Nierstrasz 34


Draw NFA for given regular expressions
For the RE (a|b)*abb ?

State s0 has multiple transitions on a! It is a non-deterministic finite automaton

Lexical Analysis by Prof. O. Nierstrasz 35


A language is regular if it is recognized by
a deterministic finite automaton
Whether L = { w | w contains 001} is regular or not?
Check it by building an automaton accepts all and only those strings that contain 001

Steven Rudich: www.cs.cmu.edu/~rudich rudich0123456789 36


A language is regular if it is recognized by
a deterministic finite automaton
Whether L = { w | w contains 001} is regular or not?
Check it by building an automaton accepts all and only those strings that contain 001

1 0,1
0

0 0 1
q q0 q00 q001
1

Steven Rudich: www.cs.cmu.edu/~rudich rudich0123456789 37


A language is regular if it is recognized by
a deterministic finite automaton
Whether L = { w | w has an even number of 1s} is regular or not?
Check it by building an automaton accepts all and only those strings that has an even number
of 1s

Steven Rudich: www.cs.cmu.edu/~rudich rudich0123456789


A language is regular if it is recognized by
a deterministic finite automaton
Whether L = { w | w has an even number of 1s} is regular or not?
Check it by building an automaton accepts all and only those strings that has an even number
of 1s

0 0
1
q0 q1
1

Steven Rudich: www.cs.cmu.edu/~rudich rudich0123456789


References
https://www.tutorialspoint.com/automata_theory/regular_expressions.htm
Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University
http://www.cs.tau.ac.il/~orilahav/CompModelFall10/Compute2-print.pdf
Slide by: Dr. Harry H. Porter http://web.cecs.pdx.edu/~harry/compilers/slides/LexicalPart3.pdf
Slide by Dr. Ding-Zhu Du http://www.utdallas.edu/~dzdu/cs4384/lect7.ppt
Prof. Shunichi Toida http://www.cs.odu.edu/~toida/nerzic/390teched/regular/fa/nfa-2-dfa.html
Konrad Slind Notes on Computation Theory, September 21, 2010
Lexical Analysis by Prof. O. Nierstrasz
GATE (Graduate Aptitude Test of Engineering) jointly conducted by IIT’s

You might also like