Professional Documents
Culture Documents
FORMAL LANGUAGES,
AUTOMATA AND
COMPUTABILITY
Some Homework 1 Statistics:
Max: 100
Mean: 78
Median: 79.02
Std Dev: 15.65
NOTE :
Your 1st Project Report is
Due Tuesday!
THURSDAY Jan 31
string pop push
ε,ε → $
0,ε → 0
1,0 → ε
ε,$ → ε
1,0 → ε
CONTEXT-FREE GRAMMARS
Production rules
variable terminals
A → 0A1
A→ε (VΣ)*
L is recognized by a PDA
Suppose L is generated by a CFG G = (V, Σ, R, S)
Construct P = (Q, Σ, Γ, , q, F) that recognizes L
A Language L is generated by a CFG
L is recognized by a PDA
Suppose L is generated by a CFG G = (V, Σ, R, S)
Construct P = (Q, Σ, Γ, , q, F) that recognizes L
ε,ε → S$ For each rule 'A → w’ R:
ε,A → wR
For each terminal a Σ:
a,a → ε
ε,$ → ε
S → aTb
T → Ta | ε
ε,ε → $
ε,ε → T
ε,ε → S ε,ε → T
ε,$ → ε
ε,ε → a
ε,T → ε
a,a → ε
b,b → ε
S → aTb S * ab
T → Ta | ε (derives)
ε,ε → $
ε,ε → T
ε,ε → S ε,ε → T
ε,$ → ε
ε,ε → a
ε,T → ε
a,a → ε
b,b → ε
Suppose L is generated by a CFG G = (V, Σ, R, S)
Describe P = (Q, Σ, Γ, , q, F) that recognizes L :
L is recognized by a PDA
A Language L is generated by a CFG
L is recognized by a PDA
1,0 → ε
ε,$ → ε
q3 q2 1,0 → ε
SIMPLIFY
ε,ε → E
ε,ε → $
Q q0 q1 0,ε → 0
ε,ε → ε 1,0 → ε
ε,$ → ε
q3 q2 1,0 → ε
ε,ε → ε
q4
ε,E → ε
ε,σ → ε q5
SIMPLIFY
ε,ε → E
ε,ε → $
Q q0 q1 0,ε → 0
ε,ε → D 1,0 → ε
q’0 ε,$ → ε
q3 q2 1,0 → ε
ε,D→ ε
q’3 ε,ε → D
ε,D → ε
q4
ε,E → ε q5
ε,σ → ε
Idea For Our Grammar G:
For every pair of states p and q in PDA P,
V = {Apq | p,qQ }
S = Aq0qacc
ε,ε → E
ε,ε → $
Q q0 q1 0,ε → 0
ε,ε → D 1,0 → ε
q’0 ε,$ → ε
q3 q2 1,0 → ε
q’3 ε,ε → D
Aq0q1 generates?
ε,D → ε
q4 Aq1q2 generates?
ε,E → ε {0n1n | n > 0}
q5
Aq1q3 generates?
ε,σ → ε
WANT: Apq generates all strings that take p
with an empty stack to q with empty stack
WANT: Apq generates all strings that take p
with an empty stack to q with empty stack
Let x be such a string
• P’s first move on x must be a push
• P’s last move on x must be a pop
Two possibilities:
1. The symbol popped at the end is exactly
the one pushed at the beginning
stack
height
r s
input a push t pop t b
string p ────x──── q
δ(p, a, ε) → (r, t)
δ(s, b, t) → (q, ε) Apq → aArsb
2. The symbol popped at the end is not
the one pushed at the beginning
stack
height
input
string p r q
Apq → AprArq
Formally:
V = {Apq | p, qQ }
S = Aq0qacc
For every p, q, r Q,
add the rule Apq → AprArq
For every p Q,
add the rule App → ε
For all x, Apq generates x
L is recognized by a PDA
Corollary: Every regular
language is context-free
WWW.FLAC.WS