1 / 6

Section 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

tlandry
Download Presentation

Section 11.4 Regular Language Topics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 L | 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. 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, and conversely. Example. For the regular expression a*bc* we have the following grammars. Right regular: S aS | bT T L | cT. Left Regular: S Sc | Tb T L | Ta.

  2. F L Start S b a a I 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  L | eU. Left Regular: S Se | Td T a | Tb | Tc. Transforming an NFA to a Regular Grammar 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 L. Example/Quiz. Transform the following NFA into a regular grammar. Solution: S aI | F I aI | bF F  L This grammar can be simplified to S aI | L I aI | b

  3. a a a b J I F Start S b a J F a b a Start S b b E a, 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 | L I aF F  bJ | L J aF. Quiz. Simplify the grammar. Answer: S aS | baF | L F  baF | L Quiz. What happens when a DFA has an error state, like the following DFA? Answer: The resulting grammar: S aF | bE F  aE | bJ | L J  aF | bE E aE | bE. But E does not derive a terminal string. So the grammar simplifies to S aF F  bJ | L J  aF. Quiz: Simplify the grammar further. Answer: S aF F  baF | L.

  4. c T L d Start S F a I b 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 L. 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 L. Example/Quiz. Transform the following regular grammar into a NFA. S abS | T | L T cT | d Solution. Transform S abS into S aI and I bS, so the grammar becomes S aI | T | L 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)*(L + c*d)

  5. y z x Start Properties of Regular Languages When we know some properties of regular languages they can help us argue, BWOC, that certain 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 represent the concatenation of the letters along the edges of the path. So s = xyz and y ≠ L. Assume that the middle state is the first repeated state on the path. So | xy | ≤ m.Since the loop can be 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 ≠ L, | 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 ≠ L, 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.

  6. Quiz. In the previous proof we exhibited a contradiction when k = 2. Find similar contradictions 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 not regular. 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 ≠ L, | 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 = L 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 strngs of L must begin with aa. Case 3: xz = aabm – iac2m which 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.

More Related