CSCI 2670
Introduction to Theory of
Computing
September 15, 2004
Agenda
• Yesterday
– Pumping lemma review
• Today
– Prove the pumping lemma
– Introduce context-free grammars
Announcement
• Quiz tomorrow
– CGF parse trees & interpretation
– Pumping lemma
Nonregular languages
• There are many nonregular languages
– {0n1n | n 0}
– {101,101001,1010010001,…}
– {w | w has the same number of 0s and 1s}
• All regular languages can be
generated by finite automata
• States must be reused if the length
of a string is greater than the
number of states
– If states are reused, there will be
repetition
The pumping lemma
Theorem: If A is a regular language,
then there is a number p where, if s
is any string in A of length at least
p, then s may be divided into three
pieces, s = xyz, satisfying the
following conditions
1. for each i 0, xyiz is in A
2. |y| > 0, and
3. |xy| p
p is called the pumping length
Proof idea
• Pumping length is equal to the number
of states in the DFA whose language
is A
– p = |Q|
• If A accepts a word w with |w| > p,
then some state must be entered
twice while processing w
– Pigeonhole principle
Proof idea
y
x
1. for each i 0, xyiz is in A
2. |y| > 0, and
3. |xy| p
z
Proof
•
•
•
•
Let A be any regular language
Find DFA M=(Q,,,q0,F) with L(M)=A
Let p=|Q|
Let s=s1s2s3…sn be any string in A with
|s| = n p
– What if no such s is in A?
Proof (cont.)
• Let r1, r2, r3, …, rn+1 be the sequence
of states entered while processing s
– r1 = q 0
– rn+1 F
– ri+1 = (ri, si)
Proof (cont.)
• Consider the first p+1 elements of
this sequence
– p+1 states must contain a repeated state
• Let rk be the first state to be
repeated and let rt be the second
occurance of this state
– t p+1
Proof (cont.)
• Let x=s1s2…sk-1, y=sksk+1…st-1,
z=stst+1…sn
• There is an error in the proof on page 79 of
Sipser (y is incorrectly defined)
– x takes M from r1 to rk
– y takes M from rk to rt
– z takes M from rt to rn+1, which is an
accept state
• Since rk and rt are the same state, M
must accept xyiz for any i=0, 1, 2, …
Proof (cont.)
•
Have we satisfied the conditions of
the theorem?
1. for each i 0, xyiz is in A
Yes
2. |y| > 0, and
Yes since t > k and y=sksk+1…st-1
3. |xy| p
Yes since t p+1 and xy = s1s2…st-1
Regular languages -- Summary
•
•
Let R be any language. The following
are equivalent
1. R is a regular language
2. R = L(M) for some finite automata M,
where M is a DFA, an NFA, or a GNFA
3. R is describe by some regular
expression
4. R has a pumping length of p
If R can be shown not to have a
finite pumping length, then R is not
regular
Context-free grammars
• The shortcoming of finite automata is
that each state has very limited
meaning
– You have no memory of where you’ve
been – only knowledge of where you are
• Context-free grammars are a more
powerful method of describing
languages
– Example: {0n1n | n 0} is a CFG
Example CFG
• Context-free grammars use
substitution to maintain knowledge
S (S)
S SS
S ()
• All possible legal parenthesis pairings
can be expressed by consecutive
applications of these rules
• Is this a regular language?
Example
S (S) | SS | ()
• (()())(())
• S SS
(S)(S)
(SS)(())
(()())(())
• This sequence of substitutions is
called a derivation
Parse tree
S (S) | SS | ()
S
(
S
S
S
S
S
S
()
()
)
(
()
)
Example 2
•
S Sb | Bb
B aBb | aCb
Cε
Derivation for aaabbbbb
SSb
aBbbb
Bbb
aaBbbbb aaaCbbbbb
aaaεbbbbb
Example 2 parse tree
S
S
B
B
B
C
a
a
a
ε
b
b b
b b
Example 2
S Sb | Bb
B aBb | aCb
Cε
Question 1: What language does this
grammar accept?
Answer: {anbm | m > n > 0}
Question 2: Can this CFG be simplified?
Answer: yes.
Replace BaCb with Bab and remove Cε
Other languages described by CFG’s
• The foxtrot
– http://linus.socs.uts.edu.au/~don/pubs/foxtrot.html
• A type of Tamil poetry called Venpa
• Ancient language of Sanscrit
– http://en.wikipedia.org/wiki/Context-free_grammar
Tomorrow
• Formal definition for CFG
• Designing CFG’s
© Copyright 2026 Paperzz