Presentation is loading. Please wait.

Presentation is loading. Please wait.

COSC 3340: Introduction to Theory of Computation

Similar presentations


Presentation on theme: "COSC 3340: Introduction to Theory of Computation"— Presentation transcript:

1 COSC 3340: Introduction to Theory of Computation
University of Houston Dr. Verma Lecture 5 Lecture 5 UofH - COSC Dr. Verma

2 Regular expressions A third way to view regular languages.
A language generator model instead of language acceptor. Definition of Regular expressions: The smallest class of strings over   {(, ), *, , , } that includes: 1.  (basic reg. exp.) 2.  for every  in . (basic reg. exp.) and is closed under , * and  Lecture 5 UofH - COSC Dr. Verma

3 Language generated by a regular expression r
Notation: L(r) denotes language generated by reg. exp. r. L() =  L() = {} L(  ) = L()  L() L(  ) = L()L() L(*) = (L())* Lecture 5 UofH - COSC Dr. Verma

4 Examples of regular expressions
Note: We drop parentheses when not required. Example: (a  b) is written a  b Let  = {a,b} The following are regular expressions: , a, b *, a*, b*, ab, a  b (a  b)*, a*b*, (ab)* (a  b)*ab, etc. Are the following regular expressions?   a, *a, a*b, a*b Lecture 5 UofH - COSC Dr. Verma

5 Some exercises on regular expressions
Example: What is L((a  b)*a(a  b)*)? Ans: {w in {a, b}* | w contains at least one a} Write regular expressions for: 1. {w in {a,b}* | |w| is odd }. 2. {w in {a,b}* | w does not have ab as a substring}. 3. {w in {a,b,c}* | no b in w can come before any c in w}. Lecture 5 UofH - COSC Dr. Verma

6 Tips for Regular Expressions
Regular expressions are harder to design for: Languages that have complementation in their definition. Example: Exercise 2 on previous slide. Languages that have intersection in their definition. The reason is that we need to express these operations in terms of ,  and * Lecture 5 UofH - COSC Dr. Verma

7 Regular expressions versus FA's
Regular expressions generate exactly the class of regular languages. Theorem: (a) For every regular expression there is an equivalent NFA (b) For every DFA there is an equivalent regular expression. Proof of (a): For , the NFA is: For , the NFA is: For composite regular expressions: use closure under ,  and * Lecture 5 UofH - COSC Dr. Verma

8 Parse Tree for (a U b)*  b
Lecture 5 UofH - COSC Dr. Verma

9 Example: NFA for (a U b)*b
Lecture 5 UofH - COSC Dr. Verma

10 Example (contd.) : NFA for (a U b)*b
Lecture 5 UofH - COSC Dr. Verma

11 Example (contd.) : NFA for (a U b)*b
Lecture 5 UofH - COSC Dr. Verma

12 DFA  regular expression
Easier to do: DFA  GNFA  regular expression. GNFA (Generalized NFA) labels of transitions can be regular expressions. Need special GNFA that satisfies: (1) start state has no incoming transition (2) only one final state (3) final state has no outgoing transition. Lecture 5 UofH - COSC Dr. Verma

13 DFA  regular expression (contd.)
Idea: Convert DFA  special GNFA. Eliminate all states, except start and final state, one state at a time. Output the label on the single transition left at the end. Lecture 5 UofH - COSC Dr. Verma

14 Eliminating state q{rip}
qi qj R1 R3 qrip (R1 )(R2)* (R3)  (R4) R2 qi qj Lecture 5 UofH - COSC Dr. Verma

15 Constructing regular expression.
DFA L = {w in {a, b}* | w has odd number of b's } Lecture 5 UofH - COSC Dr. Verma

16 Constructing regular expression (contd.)
Added: a new start state and a new final state with empty transitions Lecture 5 UofH - COSC Dr. Verma

17 Constructing regular expression (contd.)
Eliminate states one-by-one qrip Before we take out qrip, we have to see all the paths to the qrip state and all possible transitions. We take out the qrip state and it leaves us with a 3 state Finite Automata Lecture 5 UofH - COSC Dr. Verma

18 Constructing regular expression (contd.)
qrip We take out the qrip state and we are left with the regular expression Lecture 5 UofH - COSC Dr. Verma


Download ppt "COSC 3340: Introduction to Theory of Computation"

Similar presentations


Ads by Google