Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Lecture 5UofH - COSC 3340 - Dr. Verma 1 COSC 3340: Introduction to Theory of Computation University of Houston Dr. Verma Lecture 5."— Presentation transcript:

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

2 UofH - COSC 3340 - 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 

3 Lecture 5UofH - COSC 3340 - 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(  ))*

4 Lecture 5UofH - COSC 3340 - 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

5 Lecture 5UofH - COSC 3340 - 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}.

6 Lecture 5UofH - COSC 3340 - 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 *

7 Lecture 5UofH - COSC 3340 - Dr. Verma 7 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 * Regular expressions versus FA's

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

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

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

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

12 Lecture 5UofH - COSC 3340 - 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.

13 Lecture 5UofH - COSC 3340 - 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.

14 Lecture 5UofH - COSC 3340 - Dr. Verma 14 Eliminating state q {rip} R4R4 R3R3 R1R1 (R 1 )(R 2 )* (R 3 )  (R 4 ) R2R2 qiqi q rip qjqj qiqi qjqj

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

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

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

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


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

Similar presentations


Ads by Google