Professional Documents
Culture Documents
• Introduction
• Chomsky normal form
• Preliminary simplifications
• Final steps
• Greibach Normal Form
• Algorithm (Example)
• Summary
Grammar: G = (V, T, P, S)
Terminals T = { a, b }
Variables V = A, B, C
Start Symbol S
Production P=S→A
Grammar example
S → aBSc
S → abc
L = { anbncn | n ≥ 1 }
Ba → aB
Bb → bb
S→P
P → aPb L = { anbn | n ≥ 0 }
P→ε
• Introduction
• Chomsky normal form
• Preliminary simplifications
• Final simplification
• Greibach Normal Form
• Algorithm (Example)
• Summary
• Introduction
• Chomsky normal form
• Preliminary simplifications
• Final steps
• Greibach Normal Form
• Algorithm (Example)
• Summary
2 Eliminate ε productions
• X is generating if X
* ω for some terminal string ω.
• X is reachable if there is a derivation X
* αXβ
for some α and β
S → AB | a
A→b Initial CFL grammar
S → AB | a
Identify generating symbols
A→b
S→a
Remove non-generating
A→b
S→a
Identify reachable symbols
A→b
S → AB | a S→a
A→b A→b
2 Eliminate ε productions
Eliminate ε Productions
A
* ε
Nullable variable
If A is a nullable variable
S → ASA | aB
A→B|S Nullable: {A, B}
B→b|ε
Eliminate ε Productions
S → ASA | aB S → ASA | aB | AS | SA | S | a
A→B|S A→B|S
B→b|ε B→b
Eliminate ε Productions
S → ASA | aB S → ASA | aB | AS | SA | S | a
A→B|S A→B|S
B→b|ε B→b
Eliminate ε Productions
S → ASA | aB S → ASA | aB | AS | SA | S | a
A→B|S A→B|S
B→b|ε B→b
2 Eliminate ε productions
A
* B
A → B, B → ω, then A → ω
Example:
T = {*, +, (, ), a, b, 0, 1} Pairs Productions
( E, E ) E→E+T
I → a | b | Ia | Ib | I0 | I1 ( E, T ) E→T*F
F → I | (E) ( E, F ) E → (E)
T→F|T*F ( E, I ) E → a | b | Ia | Ib | I0 | I1
E→T|E+T ( T, T ) T→T*F
( T, F ) T → (E)
( T, I ) T → a | b | Ia |Ib | I0 | I1
Basis: (A, A) is a unit pair ( F, F ) F → (E)
of any variable A, if ( F, I ) F → a | b | Ia | Ib | I0 | I1
A * A by 0 steps. ( I, I ) I → a | b | Ia | Ib | I0 | I1
Example:
Pairs Productions
… …
( T, T ) T→T*F
( T, F ) T → (E)
( T, I ) T → a | b | Ia |Ib | I0 | I1
… …
I → a | b | Ia | Ib | I0 | I1
E → E + T | T * F | (E ) | a | b | la | lb | l0 | l1
T → T * F | (E) | a | b | Ia | Ib | I0 | I1
F → (E) | a | b | Ia | Ib | I0 | I1
• Introduction
• Chomsky normal form
• Preliminary simplifications
• Final steps
• Greibach Normal Form
• Algorithm (Example)
• Summary
• Introduction
• Chomsky normal form
• Preliminary simplifications
• Final steps
• Greibach Normal Form
• Algorithm (Example)
• Summary
A → αX
• Introduction
• Chomsky normal form
• Preliminary simplifications
• Final steps
• Greibach Normal Form
• Algorithm (Example)
• Summary
Example:
S → XA | BB S = A1 A1 → A2A3 | A4A4
B → b | SB X = A2 A4 → b | A1A4
X→b A = A3 A2 → b
A→a B = A4 A3 → a
Example:
A4 → A1A4
Example:
Example:
A4 → A4A4A4
Example:
Second Step
Eliminate Left
Recursions
Example:
A1 → A2A3 | A4A4
A4 → bA3A4 | b | bA3A4Z | bZ A → αX
Z → A4A4 | A4A4 Z
A2 → b GNF
A3 → a
Example:
A1 → A2A3 | A4A4
A4 → bA3A4 | b | bA3A4Z | bZ
Z → A4A4 | A4A4 Z
A2 → b
A3 → a
Example:
References
[1] Introduction to Automata Theory, Languages and Computation, John E.
Hopcroft, Rajeev Motwani and Jeffrey D. Ullman, 2nd edition, Addison
Wesley 2001 (ISBN: 0-201-44124-1)