Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CS 301 - Lecture 10
Chomsky and Greibach
Normal Forms
Fall 2008
Regular Languages
Today:
More Simplifications
Normal Forms
Nullable Variables
production :
Nullable Variable:
to
if all
to
Final Grammar
Example Grammar:
S aMb
M aMb
M
S aMb
M aMb
M
Substitute
S aMb
S ab
M aMb
M ab
Nullable variable
Unit-Productions
Unit Production:
A B
A A
Is removed immediately
Example Grammar:
S aA
Aa
A B
BA
B bb
S aA | aB
Aa
B A| B
B bb
Remove
BB
S aA
Aa
A B
BA
B bb
S aA | aB
Aa
BA
B bb
Substitute
A B
S aA | aB
Aa
Substitute
BA
BA
B bb
S aA | aB
Aa
B A| B
B bb
S aA | aB | aA
Aa
B bb
Removing All
Final grammar
S aA | aB | aA
Aa
B bb
S aA | aB
Aa
B bb
Normal Forms
for
Context-free Grammars
A BC
variable
or
variable
Aa
terminal
Examples:
S AS
S a
A SA
Ab
Chomsky
Normal Form
S AS
S AAS
A SA
A aa
Ta , Tb , Tc
S ABTa
B Ac
Example:
A TaTaTb
B ATc
Ta a
Tb b
Tc c
S ABa
A aab
B Ac
Not Chomsky
Normal Form
Not Chomsky
Normal Form
S ABa
A aab
Conversion to Chomsky
Normal Form
S ABTa
A TaTaTb
B ATc
Ta a
Tb b
Tc c
V1
S AV1
V1 BTa
A TaTaTb
B ATc
Ta a
Tb b
Tc c
S AV1
V1 BTa
A TaTaTb
B ATc
Ta a
Tb b
Tc c
V2
S AV1
S AV1
V1 BTa
V1 BTa
A TaV2
V2 TaTb
B ATc
Ta a
Tb b
Initial grammar
S ABa
A aab
B Ac
V2 TaTb
B ATc
Ta a
Tb b
Tc c
Tc c
In general:
A TaV2
The Procedure
First remove:
Nullable variables
Unit productions
a:
with
Ta a
Add production
In productions: replace
New variable:
a with Ta
Ta
A C1C2 Cn
A C1V1
V1 C2V2
Vn2 Cn1Cn
V1, V2 , ,Vn2
Observations
Theorem:
Examples:
A a V1V2 Vk
symbol
k 0
variables
S abSb
S aa
S aTb STb
S aTa
S cAB
A aA | bB | b
Bb
Greibach
Normal Form
Theorem:
S abSb
S aa
Not Greibach
Normal Form
Ta a
Tb b
Greibach
Normal Form
Observations
Greibach normal forms are very good
for parsing
Whats Next
Read
Linz Chapter 1,2.1, 2.2, 2.3, (skip 2.4), 3, 4, 5, 6.1, 6.2, (skip 6.3), and 7.1
JFLAP Chapter 1, 2.1, (skip 2.2), 3, 4, 5, 6.1, 7
Homework
Homework Due Today
New Homework Available Friday Morning
New Homework Due Next Thursday