- 84 Views
- Uploaded on
- Presentation posted in: General

Chapter 11 - 4

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Chapter 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.

- 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, andconversely.

- 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.

- 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.

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 →٨.

- 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

- 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.

- Simplify the grammar.
- Answer:
S → aS | baF | ٨

F → baF | ٨

- 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.

- Simplify the grammar further.
- Answer: S → aF
F → baF | ٨.

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 →٨.

- 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:

- What is the regular expression for the language of the grammar?
- Answer: (ab)*(٨ + c*d)

- When we know some properties of regular languages they can help us argue, BWOC, thatcertain languages are not regular.

- 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

- 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.

- 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.

- 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.