Lecture 5UofH - COSC Dr. Verma 1 COSC 3340: Introduction to Theory of Computation University of Houston Dr. Verma 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 5UofH - 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 5UofH - 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 5UofH - 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 5UofH - 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 5UofH - COSC 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
Lecture 5UofH - COSC Dr. Verma 8 Parse Tree for (a U b)* b b * Uab
Lecture 5UofH - COSC Dr. Verma 9 Example: NFA for (a U b)*b ab aUb
Lecture 5UofH - COSC Dr. Verma 10 Example (contd.) : NFA for (a U b)*b (aUb)*
Lecture 5UofH - COSC Dr. Verma 11 Example (contd.) : NFA for (a U b)*b (a U b)*b
Lecture 5UofH - 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 5UofH - 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 5UofH - COSC 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
Lecture 5UofH - COSC Dr. Verma 15 Constructing regular expression. DFA L = {w in {a, b}* | w has odd number of b's }
Lecture 5UofH - COSC Dr. Verma 16 Constructing regular expression (contd.) Added: a new start state and a new final state with empty transitions
Lecture 5UofH - COSC 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
Lecture 5UofH - COSC Dr. Verma 18 Constructing regular expression (contd.) q rip We take out the q rip state and we are left with the regular expression