6
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 | aS | T T b | bT. Quiz. Write a regular grammar for {ab, acb, accb. …, ac n b, …}. 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. Right regular: S aS | bT T | cT. Left Regular: S Sc | Tb T | Ta.

1 Section 11.4 Regular Language Topics Regular languages are also characterized by special grammars called regular grammars whose productions take the

Embed Size (px)

Citation preview

Page 1: 1 Section 11.4 Regular Language Topics Regular languages are also characterized by special grammars called regular grammars whose productions take the

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

Left Regular: S Sc | Tb

T | Ta.

Page 2: 1 Section 11.4 Regular Language Topics Regular languages are also characterized by special grammars called regular grammars whose productions take the

2

Transforming an NFA to a Regular Grammar1. 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.

Start S

F

I

b

a

a

Solution:S aI | FI aI | bFF

This grammar can be simplified toS aI | I aI | b

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

Left Regular: S Se | TdT a | Tb | Tc.

Page 3: 1 Section 11.4 Regular Language Topics Regular languages are also characterized by special grammars called regular grammars whose productions take the

3

Example/Quiz. Transform the regular expression a*(ba)* into a regular grammar.

Solution: Draw an NFA and then use the algorithm.

Start S I

a

b F J

a

baAn NFA:

The resulting grammar:

S aS | bI | I aFF bJ |

J aF.

Quiz. Simplify the grammar.Answer:

S aS | baF | F baF |

Quiz. What happens when a DFA has an error state, like the following DFA? Start S

F J

a

ba

E

ba

b

a, bAnswer: The resulting grammar:

S aF | bEF aE | bJ | J aF | bE

E aE | bE.

But E does not derive a terminal string. So the grammar simplifies to

S aFF bJ | J aF

Quiz: Simplify the grammar further.Answer: S aF

F baF |

Page 4: 1 Section 11.4 Regular Language Topics Regular languages are also characterized by special grammars called regular grammars whose productions take the

4

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

Start ST

b

a

c

F

I

d

Quiz. What is the regular expression for the language of the grammar?

Answer: (ab)*( + c*d)

Solution. Transform S abS into S aI and I bS, so the grammar becomes

S aI | T | I bST cT | d

Now the NFA can be drawn:

Page 5: 1 Section 11.4 Regular Language Topics Regular languages are also characterized by special grammars called regular grammars whose productions take the

5

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

Start

y

x z

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

Page 6: 1 Section 11.4 Regular Language Topics Regular languages are also characterized by special grammars called regular grammars whose productions take the

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