210 likes | 348 Views
Chapter 11 - 4. Regular Language Topics. Section 11.4 Regular Language Topics. Regular languages are also characterized by special grammars called regular grammars whose productions take the following form, where w is a string of terminals. A → wB or A → w.
E N D
Chapter 11 - 4 Regular Language Topics
Section 11.4 Regular Language Topics • Regular languages are also characterized by special grammars called regular grammars whose productions take the following form, where w is a string of terminals. A → wB or A → w. • Example. A regular grammar for the language of a*b* is S →٨ | aS | T T → b | bT.
Quiz • Write a regular grammar for {ab, acb, accb, …, acnb, …}. • Solution: A regular expression for the language is ac*b. A regular grammar is S → aT T → b | cT.
Left/Right-regular grammar • Regular grammars as we have defined them are often called right-regular because there are also left-regular grammars that require productions to have the form A → Bw or A → w. • Any language with a right-regular grammar also has a left-regular grammar, andconversely.
Example • For the regular expression a*bc* we have the following grammars. • Right regular: S → aS | bT T →٨ | cT. • Left Regular: S → Sc | Tb T →٨ | Ta.
derivation • Notice in the previous example that right-regular grammars derive strings by examining the leftmost letter first, while left-regular grammars examine the rightmost letter first. • Example/Quiz. Find a right-regular grammar and a left-regular grammar for the language of the regular expression a(b + c)*de*. • Right regular: S → aT T → bT | cT | dU U →٨ | eU. • Left Regular: S → Se | Td T → a | Tb | Tc.
Transforming an NFA to a Regular Grammar 1. State names become the nonterminals. So rename them to be uppercase letters. 2. The start state becomes the start symbol of the grammar. 3. For each state transition from I to J labeled with x construct a production I → xJ. 4. For each final state F construct a production F →٨.
Example/Quiz • Transform the following NFA into a regular grammar. Solution: S → aI | F I → aI | bF F →٨ This grammar can be simplified to S → aI | ٨ I → aI | b
Example/Quiz • Transform the regular expression a*(ba)* into a regular grammar. • Solution: Draw an NFA and then use the algorithm. An NFA: The resulting grammar: S → aS | bI | ٨ I → aF F → bJ | ٨ J → aF.
Quiz • Simplify the grammar. • Answer: S → aS | baF | ٨ F → baF | ٨
Quiz • What happens when a DFA hasan error state, like the following DFA? • Answer: The resulting grammar: S → aF | bE F → aE | bJ | ٨ J → aF | bE E → aE | bE. But E does not derive a terminal string. So the grammar simplifies to S → aF F → bJ | ٨ J → aF.
Quiz • Simplify the grammar further. • Answer: S → aF F → baF | ٨.
Transforming a Regular Grammar to an NFA 1. Replace any production with multiple terminals by productions with single terminals. 2. The start state is the grammar start symbol. 3. Transform I → aJ into a transition from I to J labeled with a. 4. Transform I → J into a transition from I to J labeled with ٨. 5. Transform each I → a into a transition from I to new single final state F labeled with a. 6. The final states are F together with each state I with a production I →٨.
Example/Quiz • Transform the following regular grammar into a NFA. S → abS | T | ٨ T → cT | d • Solution. Transform S → abS into S → aI and I → bS, so the grammar becomes S → aI | T | ٨ I → bS T → cT | d Now the NFA can be drawn:
Quiz • What is the regular expression for the language of the grammar? • Answer: (ab)*(٨ + c*d)
Properties of Regular Languages • When we know some properties of regular languages they can help us argue, BWOC, thatcertain languages are not regular.
The Pumping Lemma • If L is an infinite regular language, then it is recognized by a DFA with, say, m states. • If s in L and | s | ≥ m, then an acceptance path for s must pass through some state twice. • The following graph depicts the situation. • The dotted arrows represent the path to acceptance for s and the letters x, y, and z representthe concatenation of the letters along the edges of the path. So s = xyz and y ≠٨. Assumethat the middle state is the first repeated state on the path. So | xy | ≤ m. Since the loop canbe traversed any number of times, we have the pumping property: xykz ∈ L for all k ∈ N
Example • The language L = {anbn | n ∈ N} is not regular. • Proof: Assume, BWOC, that L is regular. Since L is infinite, the pumping lemma applies. Choose s = ambm. Then s = xyz, where y ≠٨, | xy | ≤ m, and xykz ∈ L for all k ∈ N. Since | xy | ≤ m and s = ambm = xyz, it follows that xy is a string of a’s. Since y ≠٨, it must be that y = ai for some i > 0. We’ll try for a contradiction with k = 2. The pumping property implies xy2z ∈ L. But xy2z = am + ibm, which is not in L because i > 0. This contradiction implies that L is not regular. QED.
Quiz • In the previous proof we exhibited a contradiction when k = 2. Find similarcontradictions for k = 0 and k = 3. • Answer: (k = 0) The pumping property implies xy0z ∈ L. In other words, xz ∈ L. But xz = am-ibm, which is not in L because i > 0. This contradiction implies that L is notregular. QED. (k = 3) The pumping property implies xy3z ∈ L. But xy3z = am + 2ibm, which is not in L because i > 0. This contradiction implies that L is not regular. QED.
Example/Quiz • Prove the language L = {aabnac2n | n ∈ N} is not regular. • Proof: Assume, BWOC, that L is regular. Since L is infinite, the pumping lemma applies. Choose s = aabmac2m. Then s = xyz, where y ≠٨, | xy | ≤ m and xykz ∈ L for all k ∈ N. Since | xy | ≤ m, there are three cases for y: Case 1: y = aabi for some 0 ≤ i ≤ m-2. (Remember, | xy | ≤ m, so x = ٨ in this case.) Case 2: y = abi for some 0 ≤ i ≤ m-2. (In this case, we have x = a.) Case 3: y = bi for some 0 < i ≤ m-2-j. (In this case, x = aabj for some 0 ≤ j ≤ m-3) We can obtain a contradiction in each case by considering k = 0, which implies xz ∈ L. Case 1: xz = bm-iac2m which is not in L because strings of L must begin with aa. Case 2: xz = abm-iac2m which is not in L because strings of L must begin with aa. Case 3: xz = aabm-iac2mwhich is not in L because strings in L must have twice as many c’s as b’s which can’t be the case since i > 0. So each of the three cases yields a contradiction. Therefore L is not regular. QED.