non predictive parsing

Upload: chandan-singh

Post on 07-Apr-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 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