Your SlideShare is downloading.
×

×

Saving this for later?
Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.

Text the download link to your phone

Standard text messaging rates apply

Like this document? Why not share!

- Chapter Three(2) by bolovv 2058 views
- Compiler Design(NANTHU NOTES) by guest251d9a 74652 views
- Lexical analyzer by Ashwini Sonawane 21578 views
- Compiler Design by Mir Majid 12571 views
- Data structures question paper anna... by sangeethajames07 25348 views
- Principles of Compiler Design by Babu Pushkaran 9034 views
- Compiler Design Material 2 by Dr. C.V. Suresh ... 4940 views
- PCD ?s(MCA) by guestf07b62f 1158 views
- Pcd(Mca) by guestf07b62f 1817 views
- Pcd(Mca) by guestf07b62f 1548 views
- Chapter Two(1) by bolovv 2689 views
- Ch3 by kinnarshah8888 4977 views

No Downloads

Total Views

1,204

On Slideshare

0

From Embeds

0

Number of Embeds

0

Shares

0

Downloads

0

Comments

0

Likes

1

No embeds

No notes for slide

- 1. 2.4 From Regular Expression To DFAs An algorithm: translating a regular expression into a DFA via NFA. regular expression NFA DFA program 2.4.1 From a regular expression to an NFA The idea of thompson’s construction: Use ε-transitions to “glue together” the machine of each piece of a regular expression to form a machine that corresponds to the whole expression. 1. Basic regular expression: a basic regular expression is of the form a, ε,or φ a ε 2. Concatenation: rs ε r s ¨¨ ¨¨ We have connected the accepting state of the machine of r to the start state of the machine of s by anε-transition. The new machine has the start stale of the machine of r as its start state and the accepting state of the machine of j as its accepting state. Clearly, this machine accepts L(rs) = L(r)L(s) and so corresponds to the regular expression rs. 3. Choice among alternatives: r|s ε r ¨¨ ε s ε ε ¨¨ We have added a new start state and a new accepting state and connected them as shown usingε-transitions. Clearly, this machine accepts the language L(r|s) =L(r )UL ( s). 1
- 2. 4. Repetition: construct a machine that corresponds to r* Given a machine that corresponds to r. We added two new states, a start state and an accepting state. The repetition in this machine is afforded by the newε-transition from the accepting state of the machine of r to its start state. We most also draw an ε-transition from the new start state to the new accepting state. This construction is not unique, simplifications are possible in the many cases. Example 1: The regular expression ab|a a b 2
- 3. Example 2: regular expression letter(letter|digit)* The machine for the choice letter |digit: letter digit The NFA for the repetition (letter|digit) * as follows: ε Finally, the NFA for the letter(letter|digit)*: ε 2.4.2 from an NFA to a DFA Given an arbitrary NFA, construct an equivalent DFA. (i.e., one that accepts precisely the same strings) 3
- 4. We need some methods for: (1) Eliminating ε-transitions ε-closure: the set of all states reachable by ε-transitions from a state or states. (2) Eliminating multiple transitions from a state on a single input character. Keeping track of the set of states that are reachable by matching a single character. Both these processes lead us to consider sets of states instead of single states. Thus, it is not surprising that the DFA we construct has as its states sets of states of the original NFA. The algorithm is called the subset construction. 1. The ε-closure of a Set of states: The ε-closure of a single state s is the set of states reachable by a series of zero or more ε-transitions, and we write this set as s . Example 2.14: regular a* 1 = { 1，2，4}， 2 ={2}， 3 ={2，3，4}， and 4 ={4}. The ε-closure of a set of states : the union of the ε-closures of each individual state. S= s sin S {1,3} = 1 ∪ 3 = {1，2，3}∪{2，3，4}={1，2，3，4} 4
- 5. 2. The Subset Construction: (1) compute the ε-closure of the start state of M; this becomes the start state of M . (2) For this set, and for each subsequent set, we compute transitions on characters a as follows. Given a set S of states and a character a in the alphabet, Compute the set S′a = { t | for some s in S there is a transition from s to t on a }. Then, compute S a ' , the ε-closure of S′a. This defines a new state in the subset construction, together with a new transition S→ S a ' . (3) Continue with this process until no new states or transitions are created. (4) Mark as accepting those states constructed in this manner that contain an accepting state of M. Example 2.15: consider the NFA of example 2.14 M ε-closure of M ( S ) S′a 1 1,2,4 2,3,4 2,3,4 2,3,4 2,3,4 a a 5

Be the first to comment