Date post: | 07-Apr-2018 |
Category: |
Documents |
Upload: | chandan-singh |
View: | 225 times |
Download: | 0 times |
of 16
8/3/2019 Non Predictive Parsing
1/16
N o n - r e c u r s i v e p r e d i c t i v e p a r s i n g
O b s e r v a t i o n :
O u r r e c u r s i v e d e s c e n t p a r s e r e n c o d e s s t a t e
i n f o r m a t i o n i n i t s r u n - t i m e s t a c k , o r c a l l
s t a c k .
U s i n g r e c u r s i v e p r o c e d u r e c a l l s t o i m p l e m e n t a
s t a c k a b s t r a c t i o n m a y n o t b e p a r t i c u l a r l y e c i e n t .
T h i s s u g g e s t s o t h e r i m p l e m e n t a t i o n m e t h o d s .
e x p l i c i t s t a c k , h a n d - c o d e d p a r s e r
s t a c k - b a s e d , t a b l e - d r i v e n p a r s e r
C P S C 4 3 4 L e c t u r e 7 , P a g e 1
8/3/2019 Non Predictive Parsing
2/16
N o n - r e c u r s i v e p r e d i c t i v e p a r s i n g
N o w , a p r e d i c t i v e p a r s e r l o o k s l i k e :
p a r s i n g
t a b l e s
s o u r c e
c o d e
s c a n n e r p a r s e r i l
s t a c k
o p t i o n a l
R a t h e r t h a n w r i t i n g c o d e , w e b u i l d t a b l e s .
B u i l d i n g t a b l e s c a n b e a u t o m a t e d !
C P S C 4 3 4 L e c t u r e 7 , P a g e 2
8/3/2019 Non Predictive Parsing
3/16
T a b l e - d r i v e n p a r s e r s
A p a r s e r g e n e r a t o r s y s t e m o f t e n l o o k s l i k e :
g r a m m a r
p a r s e r
g e n e r a t o r
p a r s i n g
t a b l e s
s o u r c e
c o d e
s c a n n e r
t a b l e -
d r i v e n
p a r s e r
i l
s t a c k
T h i s i s t r u e f o r b o t h t o p d o w n a n d b o t t o m u p
p a r s e r s
L L ( 1 ) : l e f t t o r i g h t , l e f t m o s t d e r i v a t i o n ,
l o o k a h e a d ( 1 )
L R ( 1 ) : l e f t t o r i g h t , r e v e r s e r i g h t m o s t d e r i v a t i o n ,
l o o k a h e a d ( 1 )
C P S C 4 3 4 L e c t u r e 7 , P a g e 3
8/3/2019 Non Predictive Parsing
4/16
T a b l e - d r i v e n p a r s i n g a l g o r i t h m
I n p u t : a s t r i n g w a n d a p a r s i n g t a b l e M f o r G
t o s 0
S t a c k t o s + + ] e o f
S t a c k t o s + + ] S t a r t S y m b o l
t o k e n n e x t t o k e n ( )
X S t a c k t o s ]
r e p e a t
i f X i s a t e r m i n a l o r e o f t h e n
i f X = t o k e n t h e n
p o p X
t o k e n n e x t t o k e n ( )
e l s e e r r o r ( )
e l s e / * X i s a n o n - t e r m i n a l * /
i f M X , t o k e n ] = X ! Y
1
Y
2
Y
k
t h e n
p o p X
p u s h Y
k
; Y
k ? 1
; ; Y
1
e l s e e r r o r ( )
X S t a c k t o s ]
u n t i l X = e o f
A h o , S e t h i , a n d U l l m a n , A l g o r i t h m 4 . 3
C P S C 4 3 4 L e c t u r e 7 , P a g e 4
8/3/2019 Non Predictive Parsing
5/16
T h e g r a m m a r a n d i t s t a b l e
O u r l o n g - s u e r i n g e x p r e s s i o n g r a m m a r
h g o a l i : : = h e x p r i
h e x p r i : : = h t e r m i h e x p r
0
i
h e x p r
0
i : : = + h e x p r i
j - h e x p r i
j
h t e r m i : : = h f a c t o r i h t e r m
0
i
h t e r m
0
i : : = * h t e r m i
j / h t e r m i
j
h f a c t o r i : : = n u m
j i d
L L ( 1 ) p a r s e t a b l e
i d n u m + - * / e o f
h g o a l i g ! e g ! e { { { { {
h e x p r i e ! t e
0
e ! t e
0
{ { { { {
h e x p r
0
i { { e
0
! + e e
0
! - e { { e
0
!
h t e r m i t ! f t
0
t ! f t
0
{ { { { {
h t e r m
0
i { { t
0
! t
0
! t
0
! * t t
0
! / t t
0
!
h f a c t o r i f ! i d f ! n u m { { { { {
C P S C 4 3 4 L e c t u r e 7 , P a g e 5
8/3/2019 Non Predictive Parsing
6/16
T h e F I R S T s e t
F o r a s t r i n g o f g r a m m a r s y m b o l s , d e n e F I R S T ( )
a s
t h e s e t o f t e r m i n a l s y m b o l s t h a t b e g i n s t r i n g s
d e r i v e d f r o m
i f )
, t h e n 2 F I R S T ( )
F I R S T ( ) c o n t a i n s t h e s e t o f t o k e n s v a l i d i n t h e r s t
p o s i t i o n o f
T o b u i l d F I R S T ( X ) :
1 . i f X i s a t e r m i n a l , F I R S T ( X ) i s f X g
2 . i f X : : = , t h e n 2 F I R S T ( X )
3 . i f X : : = Y
1
Y
2
Y
k
t h e n p u t F I R S T ( Y
1
) i n
F I R S T ( X )
4 . i f X i s a n o n - t e r m i n a l a n d X : : = Y
1
Y
2
Y
k
,
t h e n a 2 F I R S T ( X ) i f a 2 F I R S T ( Y
i
) a n d
2 F I R S T ( Y
j
) f o r a l l 1 j < i
( I f 6 2 F I R S T ( Y
1
) , t h e n F I R S T ( Y
i
) i s i r r e l e v a n t , f o r
1 < i )
C P S C 4 3 4 L e c t u r e 7 , P a g e 6
8/3/2019 Non Predictive Parsing
7/16
O u r e x a m p l e g r a m m a r
1 h g o a l i : : = h e x p r i
2 h e x p r i : : = h t e r m i h e x p r
0
i
3 h e x p r
0
i : : = + h e x p r i
4 j - h e x p r i
5 j
6 h t e r m i : : = h f a c t o r i h t e r m
0
i
7 h t e r m
0
i : : = * h t e r m i
8 j / h t e r m i
9 j
1 0 h f a c t o r i : : = n u m
1 1 j i d
C P S C 4 3 4 L e c t u r e 7 , P a g e 7
8/3/2019 Non Predictive Parsing
8/16
T h e F I R S T c o n s t r u c t i o n
r u l e 1 2 3 4 F I R S T
g o a l { { n u m , i d { f n u m , i d g
e x p r { { n u m , i d { f n u m , i d g
e x p r
0
{ + , - { f , + , - g
t e r m { { n u m , i d { f n u m , i d g
t e r m
0
{ * , / { f , * , / g
f a c t o r { { n u m , i d { f n u m , i d g
n u m n u m { { { f n u m g
i d i d { { { f i d g
+ + { { { f + g
- - { { { f - g
* * { { { f * g
/ / { { { f / g
C P S C 4 3 4 L e c t u r e 7 , P a g e 8
8/3/2019 Non Predictive Parsing
9/16
T h e F O L L O W s e t
F o r a n o n - t e r m i n a l A , d e n e F O L L O W ( A ) a s
t h e s e t o f t e r m i n a l s t h a t c a n a p p e a r i m m e d i a t e l y
t o t h e r i g h t o f A i n s o m e s e n t e n t i a l f o r m
T h u s , a n o n - t e r m i n a l ' s F O L L O W s e t s p e c i e s t h e
t o k e n s t h a t c a n l e g a l l y a p p e a r a f t e r i t
A t e r m i n a l s y m b o l h a s n o F O L L O W s e t
T o b u i l d F O L L O W ( X ) :
1 . p l a c e e o f i n F O L L O W ( h g o a l i )
2 . i f A : : = B , t h e n p u t f F I R S T ( ) ? g i n
F O L L O W ( B )
3 . i f A : : = B t h e n p u t F O L L O W ( A ) i n F O L L O W ( B )
4 . i f A : : = B a n d 2 F I R S T ( ) , t h e n p u t
F O L L O W ( A ) i n F O L L O W ( B )
C P S C 4 3 4 L e c t u r e 7 , P a g e 9
8/3/2019 Non Predictive Parsing
10/16
T h e F O L L O W c o n s t r u c t i o n
r u l e 1 2 3 4 F O L L O W
g o a l e o f { { { f e o f g
e x p r { { e o f { f e o f g
e x p r
0
{ { e o f { f e o f g
t e r m { + , - { e o f f e o f , + , - g
t e r m
0
{ { e o f , + , - { f e o f , + , - g
f a c t o r { * , / { e o f , + , - f e o f , + , - , * , / g
C P S C 4 3 4 L e c t u r e 7 , P a g e 1 0
8/3/2019 Non Predictive Parsing
11/16
L L ( 1 ) p a r s e t a b l e c o n s t r u c t i o n
I n p u t : a g r a m m a r G
M e t h o d
1 . 8 p r o d u c t i o n A : : = , p e r f o r m s t e p s 2 { 4
2 . 8 t e r m i n a l a i n F I R S T ( ) , a d d A : : = t o M A ; a ]
3 . i f 2 F I R S T ( ) , a d d A : : = t o M A ; b ]
8 t e r m i n a l b 2 F O L L O W ( A )
4 . i f 2 F I R S T ( ) a n d e o f 2 F O L L O W ( A ) , a d d
A : : = t o M A ; e o f ]
5 . s e t e a c h u n d e n e d e n t r y o f M t o e r r o r
I f t h i s f a i l s , t h e g r a m m a r i s n o t L L ( 1 )
A h o , S e t h i , a n d U l l m a n , A l g o r i t h m 4 . 4
C P S C 4 3 4 L e c t u r e 7 , P a g e 1 1
8/3/2019 Non Predictive Parsing
12/16
L L ( 1 ) p a r s e t a b l e f o r e x a m p l e
i d n u m + - * / e o f
h g o a l i g ! e g ! e { { { { {
h e x p r i e ! t e
0
e ! t e
0
{ { { { {
h e x p r
0
i { { e
0
! + e e
0
! - e { { e
0
!
h t e r m i t ! f t
0
t ! f t
0
{ { { { {
h t e r m
0
i { { t
0
! t
0
! t
0
! * t t
0
! / t t
0
!
h f a c t o r i f ! i d f ! n u m { { { { {
S y m b o l F I R S T F O L L O W
f i d , n u m b e r g f e o f g
f i d , n u m b e r g f e o f g
f , + , - g f e o f g
f i d , n u m b e r g f e o f , + , - g
f , * , / g f e o f , + , - g
f i d , n u m b e r g f e o f , + , - , * , / g
+ f + g |
- f - g |
* f * g |
/ f / g |
i d f i d g |
n u m b e r f n u m b e r g |
C P S C 4 3 4 L e c t u r e 7 , P a g e 1 2
8/3/2019 Non Predictive Parsing
13/16
B u i l d i n g t h e t r e e
I n s e r t s o m e c o d e a t t h e a p p r o p r i a t e p o i n t s
t o s 0
S t a c k t o s + + ] e o f
S t a c k t o s + + ] r o o t n o d e
S t a c k t o s + + ] S t a r t S y m b o l
t o k e n n e x t t o k e n ( )
X S t a c k t o s ]
r e p e a t
i f X i s a t e r m i n a l o r e o f t h e n
i f X = t o k e n t h e n
p o p X
t o k e n n e x t t o k e n ( )
p o p a n d l l i n n o d e
e l s e e r r o r ( )
e l s e / * X i s a n o n - t e r m i n a l * /
i f M X , t o k e n ] = X ! Y
1
Y
2
Y
k
t h e n
p o p X
p o p n o d e f o r X
b u i l d n o d e f o r e a c h c h i l d a n d
m a k e i t a c h i l d o f n o d e f o r X
p u s h n
k
; Y
k
; n
k ? 1
; Y
k ? 1
; ; n
1
; Y
1
e l s e e r r o r ( )
u n t i l X = e o f
C P S C 4 3 4 L e c t u r e 7 , P a g e 1 3
8/3/2019 Non Predictive Parsing
14/16
L L ( 1 ) g r a m m a r s
F e a t u r e s
i n p u t p a r s e d f r o m l e f t t o r i g h t
l e f t m o s t d e r i v a t i o n
o n e t o k e n l o o k a h e a d
D e n i t i o n
A g r a m m a r G i s L L ( 1 ) i f a n d o n l y i f , f o r a l l
n o n - t e r m i n a l s A , e a c h d i s t i n c t p a i r o f
p r o d u c t i o n s A : : = a n d A : : = s a t i s f y t h e
c o n d i t i o n F I R S T ( )
T
F I R S T ( ) = ;
A g r a m m a r G i s L L ( 1 ) i f a n d o n l y i f f o r e a c h s e t o f
p r o d u c t i o n s A : : =
1
j
2
j j
n
1 . F I R S T (
1
) ; F I R S T (
2
) ; ; F I R S T (
n
) a r e a l l
p a i r w i s e d i s j o i n t
2 . i f
i
)
, t h e n F I R S T (
j
)
T
F O L L O W ( A ) = ; , f o r
a l l 1 j n ; i 6 = j .
I f G i s { f r e e , c o n d i t i o n 1 i s s u c i e n t .
C P S C 4 3 4 L e c t u r e 7 , P a g e 1 4
8/3/2019 Non Predictive Parsing
15/16
L L ( 1 ) g r a m m a r s
P r o v a b l e f a c t s a b o u t L L ( 1 ) g r a m m a r s :
n o l e f t r e c u r s i v e g r a m m a r i s L L ( 1 )
n o a m b i g u o u s g r a m m a r i s L L ( 1 )
L L ( 1 ) p a r s e r s o p e r a t e i n l i n e a r t i m e
a n { f r e e g r a m m a r w h e r e e a c h a l t e r n a t i v e
e x p a n s i o n f o r A b e g i n s w i t h a d i s t i n c t t e r m i n a l
i s a s i m p l e L L ( 1 ) g r a m m a r
N o t a l l g r a m m a r s a r e L L ( 1 )
S : : = a S j a
i s n o t L L ( 1 )
F I R S T ( a S ) = F I R S T ( a ) = f a g
S : : = a S
0
S
0
: : = a S
0
j
a c c e p t s t h e s a m e l a n g u a g e a n d i s L L ( 1 )
C P S C 4 3 4 L e c t u r e 7 , P a g e 1 5
8/3/2019 Non Predictive Parsing
16/16
L L g r a m m a r s
L L ( 1 ) g r a m m a r s
m a y n e e d t o r e w r i t e g r a m m a r
( l e f t r e c u r s i o n , l e f t f a c t o r i n g )
r e s u l t i n g g r a m m a r l a r g e r , l e s s m a i n t a i n a b l e
L L ( k ) g r a m m a r s
k - t o k e n l o o k a h e a d
m o r e p o w e r f u l t h a n L L ( 1 ) g r a m m a r s
e x a m p l e :
S : : = a c j a b c i s L L ( 2 )
N o t a l l g r a m m a r s a r e L L ( k )
e x a m p l e :
S : : = a
i
b
j
w h e r e i j
e q u i v a l e n t t o d a n g l i n g e l s e p r o b l e m
p r o b l e m - m u s t c h o o s e p r o d u c t i o n a f t e r k t o k e n s
o f l o o k a h e a d
B o t t o m - u p p a r s e r s a v o i d t h i s p r o b l e m