10
7/27/2019 PAPER a Simple Tree Parser http://slidepdf.com/reader/full/paper-a-simple-tree-parser 1/10

PAPER a Simple Tree Parser

Embed Size (px)

Citation preview

Page 1: PAPER a Simple Tree Parser

7/27/2019 PAPER a Simple Tree Parser

http://slidepdf.com/reader/full/paper-a-simple-tree-parser 1/10

A n O v e r v i e w o f S O R C E R E R :

A S i m p l e T r e e - P a r s e r G e n e r a t o r  

T e r e n c e J . P a r r

? ?

U n i v e r s i t y o f M i n n e s o t a

A r m y H i g h P e r f o r m a n c e C o m p u t i n g R e s e a r c h C e n t e r

p a r r t @ a c m . o r g

A b s t r a c t . D e s p i t e t h e s o p h i s t i c a t i o n o f c o d e - g e n e r a t o r g e n e r a t o r s a n d s o u r c e - t o - s o u r c e t r a n s l a -

t o r g e n e r a t o r s ( s u c h a s a t t r i b u t e g r a m m a r b a s e d t o o l s ) , p r o g r a m m e r s o f t e n c h o o s e t o b u i l d t r e e

p a r s e r s b y h a n d f o r s o u r c e t r a n s l a t i o n p r o b l e m s . I n m a n y c a s e s , a p r o g r a m m e r h a s a f r o n t - e n d  

t h a t c o n s t r u c t s i n t e r m e d i a t e f o r m t r e e s a n d s i m p l y w a n t s t o t r a v e r s e t h e t r e e s a n d e x e c u t e a

f e w a c t i o n s . I n t h i s c a s e , t h e o p t i m a l t r e e w a l k s o f c o d e - g e n e r a t o r g e n e r a t o r s a n d t h e p o w e r f u l a t -

t r i b u t e e v a l u a t i o n s c h e m e s o f s o u r c e - t o - s o u r c e t r a n s l a t o r s y s t e m s a r e o v e r k i l l ; p r o g r a m m e r s w o u l d  

r a t h e r a v o i d t h e o v e r h e a d a n d c o m p l e x i t y .

W e i n t r o d u c e a f r e e l y a v a i l a b l e t o o l , S O R C E R E R , t h a t i s m o r e s u i t a b l e f o r t h e c l a s s o f t r a n s l a -

t i o n p r o b l e m s l y i n g b e t w e e n t h o s e s o l v e d b y c o d e - g e n e r a t o r g e n e r a t o r s a n d b y f u l l s o u r c e - t o - s o u r c e

t r a n s l a t o r g e n e r a t o r s . S O R C E R E R g e n e r a t e s s i m p l e , e x i b l e , t o p - d o w n , t r e e p a r s e r s t h a t , i n c o n -

t r a s t t o c o d e - g e n e r a t o r s , m a y e x e c u t e a c t i o n s a t a n y p o i n t d u r i n g a t r e e w a l k . S O R C E R E R a c c e p t s

e x t e n d e d B N F n o t a t i o n , a l l o w s p r e d i c a t e s t o d i r e c t t h e t r e e w a l k w i t h s e m a n t i c a n d s y n t a c t i c c o n -

t e x t i n f o r m a t i o n , a n d d o e s n o t r e l y o n a n y p a r t i c u l a r i n t e r m e d i a t e f o r m , p a r s e r g e n e r a t o r , o r o t h e r

p r e - e x i s t i n g a p p l i c a t i o n .

S O R C E R E R w a s c r e a t e d t o a i d i n t h e d e v e l o p m e n t o f a l a r g e a p p l i c a t i o n S O P 9 3 ] t h a t t r a n s l a t e s

s c i e n t i c F O R T R A N p r o g r a m s . I t h a s a l s o b e e n u s e d f o r a n u m b e r o f s m a l l e r t r a n s l a t i o n p r o b l e m s .

F o r e x a m p l e , t h e t r e e s d e p i c t e d g r a p h i c a l l y i n t h i s p a p e r w e r e p a r t i a l l y t r a n s l a t e d f r o m t e r s e ,

t e x t u a l d e s c r i p t i o n s t o P o s t S c r i p t

3

b y a s m a l l S O R C E R E R a p p l i c a t i o n .

1 I n t r o d u c t i o n  

T h e c o n s t r u c t i o n o f c o m p u t e r l a n g u a g e t r a n s l a t o r s a n d c o m p i l e r s i s g e n e r a l l y b r o k e n d o w n i n t o s e p a r a t e

p h a s e s s u c h a s l e x i c a l a n a l y s i s , s y n t a c t i c a n a l y s i s , a n d t r a n s l a t i o n w h e r e t h e i n p u t t o t h e t r a n s l a t i o n  

p h a s e i s a n i n t e r m e d i a t e r e p r e s e n t a t i o n ( I R ) u s u a l l y i n t h e f o r m o f a s e t o f t r e e s . M a n y t r a n s l a t o r s a r e

b u i l t b y h a n d ( i n a t o p - d o w n f a s h i o n ) w h i l e o t h e r s a r e d e s c r i b e d i n t h e m e t a - l a n g u a g e o f a t r a n s l a t o r

g e n e r a t o r s y s t e m . I t i s i r o n i c t h a t m o s t t r a n s l a t o r g e n e r a t o r s a r e c o m p i l e r c o d e - g e n e r a t o r g e n e r a t o r s ,

e v e n t h o u g h m o s t t r a n s l a t i o n p r o b l e m s d o n o t i n v o l v e c o m p i l a t i o n . U n f o r t u n a t e l y , f e w p r a c t i c a l t o o l s

e x i s t f o r t h e l a r g e r s c o p e o f s o u r c e - t o - s o u r c e t r a n s l a t i o n . U N I X u t i l i t i e s s u c h a s s e d  a n d  a w k  p r o v i d e

s o l u t i o n s f o r s o m e t r a n s l a t i o n s , b u t a r e l i m i t e d t o m a t c h i n g r e g u l a r e x p r e s s i o n s a n d o n l y o n a l i n e - b y - l i n e

b a s i s .

I n t h i s p a p e r , w e d e s c r i b e a n e w t r a n s l a t i o n t o o l c a l l e d S O R C E R E R t h a t i s w e l l s u i t e d t o b o t h s m a l l

a n d l a r g e p r o b l e m s . S O R C E R E R d i e r s f r o m c o d e - g e n e r a t o r g e n e r a t o r s i n t h a t n o \ c o s t s " o r \ w e i g h t s "

a r e a u t o m a t i c a l l y a s s o c i a t e d w i t h a p p l y i n g a p r o d u c t i o n a n d , h e n c e , o p t i m a l t r a v e r s a l s a r e n o t t h e g o a l ;

i . e . , t h e t r e e g r a m m a r m u s t b e u n a m b i g u o u s a n d w a r n i n g s a r e g e n e r a t e d f o r n o n c o n f o r m a n t g r a m m a r s .

A S O R C E R E R d e s c r i p t i o n i s e s s e n t i a l l y a n u n a m b i g u o u s g r a m m a r ( c o l l e c t i o n o f r u l e s ) i n E x t e n d e d  

B N F n o t a t i o n , t h a t d e s c r i b e s t h e s t r u c t u r e a n d c o n t e n t o f a u s e r ' s ( I R ) t r e e s . T h e p r o g r a m m e r a n n o -

t a t e s t h e t r e e g r a m m a r w i t h a c t i o n s t o e e c t a t r a n s l a t i o n , m a n i p u l a t e a u s e r - d e n e d d a t a s t r u c t u r e ,

o r m a n i p u l a t e t h e I R i t s e l f . S O R C E R E R g e n e r a t e s a c o l l e c t i o n o f s i m p l e a n d s e l f - c o n t a i n e d C o r C + +  

?

T o A p p e a r a t I n t ' l C o n f e r e n c e o n C o m p i l e r C o n s t r u c t i o n ; A p r i l 1 9 9 4 .

? ?

P a r t i a l s u p p o r t f o r t h i s w o r k h a s c o m e f r o m t h e A r m y R e s e a r c h O c e c o n t r a c t n u m b e r D A A L 0 3 - 8 9 - C -

0 0 3 8 w i t h t h e A r m y H i g h P e r f o r m a n c e C o m p u t i n g R e s e a r c h C e n t e r a t t h e U o f M N a n d t h e M i n n e s o t a

S u p e r c o m p u t e r I n s t i t u t e .

3

P o s t s c r i p t i s a t r a d e m a r k o f A d o b e S y s t e m s I n c .

Page 2: PAPER a Simple Tree Parser

7/27/2019 PAPER a Simple Tree Parser

http://slidepdf.com/reader/full/paper-a-simple-tree-parser 2/10

f u n c t i o n s , o n e f o r e a c h t r e e g r a m m a r r u l e , t h a t r e c o g n i z e s I R s u b t r e e s a n d p e r f o r m s t h e p r o g r a m m e r ' s

a c t i o n s i n t h e s p e c i e d s e q u e n c e . F o r e x a m p l e , a S O R C E R E R - g e n e r a t e d t r e e r e c o g n i z e r m a y b e e m b e d -

d e d i n a p r o g r a m m e r ' s C o r C + + l e v i a E M A C S S t a 8 6 ] b y s i m p l y l t e r i n g a t r e e d e s c r i p t i o n t h r o u g h  

S O R C E R E R w i t h t h e E M A C S   s h e l l - c o m m a n d - o n - r e g i o n   c o m m a n d .

T r e e p a t t e r n m a t c h i n g i s d o n e e c i e n t l y i n a t o p - d o w n m a n n e r v i a a n   L L  ( 1 ) - b a s e d  

4

p a r s i n g s t r a t e g y  

a u g m e n t e d w i t h s y n t a c t i c p r e d i c a t e s P Q 9 4 ] t o r e s o l v e n o n - L L  ( 1 ) c o n s t r u c t s ( w i t h s e l e c t i v e b a c k t r a c k -

i n g ) a n d s e m a n t i c p r e d i c a t e s t o s p e c i f y a n y c o n t e x t - s e n s i t i v e t r e e p a t t e r n s . T r e e t r a v e r s a l s p e e d i s

l i n e a r i n t h e s i z e o f t h e I R u n l e s s a n o n - L L  ( 1 ) c o n s t r u c t i s s p e c i e d | i n w h i c h c a s e b a c k t r a c k i n g c a n  

b e e m p l o y e d s e l e c t i v e l y t o r e c o g n i z e t h e c o n s t r u c t w h i l e m a i n t a i n i n g n e a r - l i n e a r t r a v e r s a l s p e e d .

W e b e g i n w i t h a c o m p a r i s o n o f S O R C E R E R t o c u r r e n t t r a n s l a t i o n t o o l s .

2 P r e v i o u s W o r k  

T h e a u t o m a t i c t r a n s l a t i o n o f s o u r c e p r o g r a m s h a s b e e n a p p r o a c h e d f r o m m a n y d i e r e n t a n g l e s w h e t h e r

t h e t a r g e t b e a s s e m b l y c o d e o r a n o t h e r s o u r c e l a n g u a g e . P r o g r a m m e r s h a v e u s e d a n u m b e r o f d i e r e n t

a p p r o a c h e s i n c l u d i n g :

{  h a n d - w r i t t e n t r a n s l a t o r s .

{  a t t r i b u t e g r a m m a r b a s e d t r a n s l a t o r g e n e r a t o r s K n u 6 8 ] ; e . g . , T X L C C 7 8 ] , C o r n e l l P r o g r a m S y n -

t h e s i z e r R T D 8 3 ] , P u m a G r o 9 1 ] , E l i G H L  

9 2 ] , O x B i s 9 2 ] , a n d C O C O L R M 8 9 ] .

{  a x g r a m m a r b a s e d t r a n s l a t o r g e n e r a t o r s K o s 7 1 ] ; e . g . , E A G S e u 9 3 ] .

A n u m b e r o f n a r r o w l y d e n e d r e s t r u c t u r e r s a n d t r a n s l a t o r s h a v e a l s o b e e n b u i l t :

{  f o r F O R T R A N ( e . g . , D E L T A P a d 8 9 ] , K A P a n d P a r a f r a s e E B 9 1 ] ) .

{  f o r a s s e m b l y c o d e g e n e r a t i o n ( e . g . , T W I G A G T 8 9 ] , I B U R G F H P 9 2 ] , B E G E S L 8 9 ] , a n d G C C  

( R T L ) S t a 9 0 ] ) .

U l t i m a t e l y , t h e t r u e t e s t o f a l a n g u a g e t o o l ' s u s e f u l n e s s i s p r o v i d e d b y t h e v a s t i n d u s t r i a l p r o g r a m -

m e r c o m m u n i t y . A r g u m e n t s c o n c e r n i n g t h e r e l a t i v e s t r e n g t h s o f u n r e s t r i c t e d a t t r i b u t e g r a m m a r s , a x  

g r a m m a r s , S - a t t r i b u t e d , a n d L - a t t r i b u t e d g r a m m a r s L R S 7 4 ] a r e f r e q u e n t l y i r r e l e v a n t b e c a u s e m o s t

p r o g r a m m e r s a r e n o t e v e n f a m i l i a r w i t h t h e t e r m s . P r o g r a m m e r s w a n t t o u s e t o o l s t h a t a r e e x i b l e ,

t h a t e m p l o y m e c h a n i s m s t h e y u n d e r s t a n d , a n d t h a t g e n e r a t e o u t p u t t h a t i s e a s i l y f o l d e d i n t o t h e i r a p -

p l i c a t i o n . T h e y d o n o t w a n t t o b e f o r c e d i n t o a n e n v i r o n m e n t w i t h i t s o w n s h e l l , e s o t e r i c p r o g r a m m i n g  

l a n g u a g e , o r u n u s u a l i n p u t d e s c r i p t i o n l a n g u a g e . T h e r e s u l t i n g a p p l i c a t i o n s m u s t a l s o b e s t a n d a l o n e

( i . e . , t h e i r c u s t o m e r s m u s t n o t b e r e q u i r e d t o i n s t a l l t h e l a n g u a g e t o o l e n v i r o n m e n t ) . I n s u c h c a s e s , t h e

c o s t o f t h e t o o l a n d t h e c o s t p e r d e l i v e r e d a p p l i c a t i o n c a n b e a n i s s u e .

A s a r e s u l t , S O R C E R E R u s e s a c o m m o n d e s c r i p t i o n l a n g u a g e , g e n e r a t e s e x t r e m e l y s i m p l e s t a n d a l o n e

t r a n s l a t o r s i n C o r C + + w h i c h c a n b e d e b u g g e d b y s t a n d a r d s o u r c e - l e v e l d e b u g g e r s . S O R C E R E R m a k e s

o n l y a s i n g l e a s s u m p t i o n a b o u t y o u r a p p l i c a t i o n p r o g r a m | t h a t t h e t r e e s , w i t h n o d e t y p e A S T  , b e i n  

c h i l d - s i b l i n g f o r m w i t h t h e e l d s t o k e n   r i g h t , a n d   d o w n   d e n e d . L a s t l y , S O R C E R E R i s f r e e ; w e o n l y  

r e q u e s t t h a t u s e r s a c k n o w l e d g e u s .

M o s t t r a n s l a t i o n t o o l s u s e d i n p r a c t i c e a r e c o d e - g e n e r a t o r g e n e r a t o r s , w h i c h s o l v e a s u c i e n t l y d i e r -

e n t p r o b l e m f r o m s o u r c e - t o - s o u r c e t r a n s l a t i o n t h a t t h e u s e o f d i e r e n t t o o l s i s w a r r a n t e d . F o r e x a m p l e ,

w h i l e c o d e - g e n e r a t o r g e n e r a t o r s h a n d l e u n a m b i g u o u s g r a m m a r a s w e l l a s a m b i g u o u s g r a m m a r s , t h e y  

m a y n o t h a n d l e u n a m b i g u o u s g r a m m a r s a s e c i e n t l y a s a t o o l s p e c i c a l l y t u n e d f o r f a s t d e t e r m i n i s t i c

p a r s i n g . F u r t h e r m o r e , c o d e - g e n e r a t o r s c a n n o t e x e c u t e a c t i o n s a t a n y p o i n t d u r i n g t h e r e c o g n i t i o n o f a  

p r o d u c t i o n , t y p i c a l l y a l l o w o n l y B N F c o n s t r u c t s , a n d a r e n o t d e s i g n e d f o r i n p u t t r e e m a n i p u l a t i o n s .

T h e a v a i l a b l e s o u r c e - t o - s o u r c e t r a n s l a t i o n s y s t e m s h a v e a n u m b e r o f l i m i t a t i o n s t h a t w e h o p e t o  

o v e r c o m e w i t h S O R C E R E R . T h e e x i s t i n g t o o l s a r e e i t h e r s p e c i c t o F O R T R A N t r a n s l a t i o n ( e . g . ,

D E L T A ) , r e l y o n t o o l - s p e c i c l a n g u a g e s ( e . g . , T X L ) o r o n u n c o m m o n l a n g u a g e s s u c h a s M o d u l a - 2 ( e . g . ,

4

W e b u i l d t o p - d o w n p a r s e r s w i t h o n e s y m b o l o f l o o k a h e a d b e c a u s e t h e y a r e u s u a l l y s u c i e n t t o r e c o g n i z e I R s

a s I R s a r e o f t e n s p e c i c a l l y d e s i g n e d t o m a k e t r a n s l a t i o n e a s y ; m o r e o v e r , r e c u r s i v e - d e s c e n t p a r s e r s p r o v i d e

t r e m e n d o u s s e m a n t i c e x i b i l i t y

Page 3: PAPER a Simple Tree Parser

7/27/2019 PAPER a Simple Tree Parser

http://slidepdf.com/reader/full/paper-a-simple-tree-parser 3/10

C O C O L , P u m a )

5

, r e s t r i c t p l a c e m e n t o f p r o g r a m m e r - s p e c i e d a c t i o n s t o a f t e r r e c o g n i t i o n o f e n t i r e t r e e

p a t t e r n s ( e . g . , P u m a ) , r e q u i r e t h a t t h e i r f r o n t - e n d b e u s e d ( e . g . , C O C O L , C o r n e l l P r o g r a m S y n t h e s i z e r ,

E A G , E l i , O x , P u m a , T X L ) , o r a r e d i c u l t t o m e r g e w i t h e x i s t i n g a p p l i c a t i o n s ( e . g . , E l i , C o r n e l l

P r o g r a m S y n t h e s i z e r , T X L ) . W h i l e a l l o f t h e s e a t t r i b u t e g r a m m a r b a s e d t o o l s a r e u s e f u l ( s o m e a r e

e x t r e m e l y g o o d a t p r o t o t y p i n g t r a n s l a t o r s ) , t h e i r p r a c t i c a l i t y h a s n o t b e e n a d e q u a t e l y e s t a b l i s h e d w i t h  

l a r g e i n d u s t r i a l b a s e s .

S O R C E R E R c a n b e c o n s i d e r e d a n   e x t e n s i o n   t o a n e x i s t i n g l a n g u a g e r a t h e r t h a n a t o t a l r e p l a c e -

m e n t a s o t h e r t o o l s a s p i r e t o b e . C o n s e q u e n t l y , p r o g r a m m e r s c a n u s e S O R C E R E R t o p e r f o r m t h e w e l l

u n d e r s t o o d , t e d i o u s , p r o b l e m o f p a r s i n g t r e e s , w h i l e n o t l i m i t i n g t h e m s e l v e s t o d e s c r i b i n g t h e i n t e n d e d  

t r a n s l a t i o n p r o b l e m p u r e l y a s a t t r i b u t e m a n i p u l a t i o n s . S O R C E R E R d o e s n o t f o r c e t h e u s e r t o u s e a n y  

p a r t i c u l a r p a r s e r g e n e r a t o r o r i n t e r m e d i a t e r e p r e s e n t a t i o n . I t s a p p l i c a t i o n i n t e r f a c e i s e x t r e m e l y s i m p l e

a n d c a n b e l i n k e d w i t h a l m o s t a n y a p p l i c a t i o n t h a t c o n s t r u c t s a n d m a n i p u l a t e s t r e e s .

3 S O R C E R E R a s a P r o g r a m m i n g L a n g u a g e E x t e n s i o n  

S O R C E R E R ' s m a i n s t r e n g t h i s t h a t i t r e p r e s e n t s s i m p l y a s h o r t h a n d n o t a t i o n f o r w h a t p r o g r a m m e r s

t y p i c a l l y w r i t e b y h a n d . T h i s n o t o n l y m a k e s S O R C E R E R a s i m p l e t o o l t o i m p l e m e n t a n d t o u n d e r s t a n d ,

b u t i t d o e s n o t a r t i c i a l l y i n t r o d u c e l i m i t a t i o n s o n t h e p r o g r a m m e r . I m a g i n e t h a t y o u h a v e b e e n g i v e n  

t h e s i m p l e t a s k o f t r a n s l a t i n g C l a n g u a g e a s s i g n m e n t s , w h i c h h a v e b e e n s t o r e d i n a n I R o f t h e f o r m  

d e p i c t e d i n F i g u r e 1 , t o P a s c a l . F i g u r e 2 p r o v i d e s a f u n c t i o n t h a t a c c e p t s a t r e e o f t h i s f o r m a n d  

p r i n t s o u t t h e a s s i g n m e n t w i t h t h e P a s c a l \  : =  " a s s i g n m e n t o p e r a t o r ( a s s u m i n g t h a t f u n c t i o n   e x p r  

e x i s t s e l s e w h e r e a n d p r i n t s o u t a n e x p r e s s i o n i n P a s c a l n o t a t i o n ) . T h e e x a c t s a m e f u n c t i o n a l i t y m a y  

b e a c h i e v e d w i t h a S O R C E R E R d e s c r i p t i o n a s s h o w n i n F i g u r e 3 . T h e S O R C E R E R t r e e d e s c r i p t i o n  

n o t a t i o n i s t h e s a m e a s L I S P c h i l d - s i b l i n g n o t a t i o n w i t h t h e e x c e p t i o n t h a t t r e e s a r e p r e x e d w i t h \   #  " t o 

d i s t i n g u i s h t h e m f r o m t h e E x t e n d e d B N F g r o u p i n g s y m b o l s \  ( . . . ) " . A c t i o n s a r e e n c l o s e d i n E u r o p e a n  

q u o t e s < < . . . > >  , t e r m i n a l s b e g i n w i t h u p p e r - c a s e l e t t e r s , a n d r u l e s ( n o n t e r m i n a l s ) b e g i n w i t h l o w e r - c a s e

l e t t e r s . T h e r u l e d e n i t i o n s y n t a x i t s e l f i s s i m i l a r t o Y A C C a n d c o n s i s t e n t w i t h A N T L R P D C 9 2 ] .

C h i l d - s i b l i n g n o t a t i o n G r a p h i c a l f o r m  

( A S S I G N l h s r h s )

ASSIGN

lhs rhs

( A S S I G N I D ( P L U S F L O A T I D ) )

ASSIGN

ID PLUS

FLOAT ID

F i g . 1 . I R F o r m f o r C A s s i g n m e n t s

T h i s e x a m p l e i l l u s t r a t e s a n i m p o r t a n t f e a t u r e o f S O R C E R E R d e s c r i p t i o n s | a c t i o n p l a c e m e n t i s

s i g n i c a n t w h e r e a s c o d e - g e n e r a t o r g e n e r a t o r s t y p i c a l l y h a v e a s i n g l e a c t i o n t h a t e m i t s a s s e m b l y c o d e

a f t e r t h e t r e e p a t t e r n i s m a t c h e d . A c t i o n s a r e e x e c u t e d a f t e r t h e r e c o g n i t i o n o f t h e e l e m e n t s t o t h e

l e f t a n d b e f o r e t h e r e c o g n i t i o n o f e l e m e n t s t o t h e r i g h t . F o r e x a m p l e , p l a c i n g t h e p r i n t f a c t i o n a t t h e

e n d o f t h e a s s i g n   r u l e w o u l d p r o d u c e i n c o r r e c t r e s u l t s a s i t w o u l d p r i n t t h e a s s i g n m e n t o p e r a t o r a f t e r

t h e r i g h t - h a n d - s i d e e x p r e s s i o n h a d b e e n p r i n t e d . P r o g r a m m i n g l a n g u a g e s w i t h o u t a n e x p l i c i t e x e c u t i o n  

o r d e r , s u c h a s P r o l o g , a r e o f t e n e x c e l l e n t v e h i c l e s f o r d e s c r i b i n g p r o b l e m s , b u t r e s u l t i n p r o g r a m s t h a t

a r e n o t o r i o u s l y d i c u l t t o d e b u g . H e n c e , w e h a v e c h o s e n t o s u p p o r t a n i m p l i e d e x e c u t i o n o r d e r f o r

S O R C E R E R d e s c r i p t i o n s .

5

F o r b e t t e r o r w o r s e , C a n d C + + a r e m u c h m o r e p r e v a l e n t .

Page 4: PAPER a Simple Tree Parser

7/27/2019 PAPER a Simple Tree Parser

http://slidepdf.com/reader/full/paper-a-simple-tree-parser 4/10

a s s i g n ( A S T t )

f

i f ( t - > t o k e n = = A S S I G N ) f

e x p r ( t - > d o w n ) ;

p r i n t f ( " : = " ) ;

e x p r ( t - > d o w n - > r i g h t ) ;

g

e l s e e r r o r ;

g

F i g . 2 . P a r t i a l C C o d e t o T r a n s l a t e C A s s i g n m e n t s

a s s i g n : # ( A S S I G N e x p r < < p r i n t f ( " : = " ) ; > > e x p r )

;

F i g . 3 . P a r t i a l S O R C E R E R D e s c r i p t i o n t o T r a n s l a t e C A s s i g n m e n t s

4 S O R C E R E R D e s c r i p t i o n L a n g u a g e  

J u s t a s Y A C C a n d A N T L R g r a m m a r s s p e c i f y a s e q u e n c e o f a c t i o n s t o p e r f o r m f o r a g i v e n i n p u t

s e n t e n c e , S O R C E R E R d e s c r i p t i o n s s p e c i f y a s e q u e n c e o f a c t i o n s t o p e r f o r m f o r a g i v e n i n p u t t r e e . T h e

o n l y d i e r e n c e b e t w e e n a c o n v e n t i o n a l l a n g u a g e p a r s e r a n d a t r e e p a r s e r i s t h a t t r e e p a r s e r s h a v e t o  

r e c o g n i z e t r e e s t r u c t u r e a s w e l l a s g r a m m a t i c a l s t r u c t u r e . F o r t h i s r e a s o n , t h e o n l y s i g n i c a n t d i e r e n c e

b e t w e e n A N T L R i n p u t a n d S O R C E R E R i n p u t i s t h a t S O R C E R E R g r a m m a r p r o d u c t i o n s c a n u s e a n  

a d d i t i o n a l g r o u p i n g c o n s t r u c t | a c o n s t r u c t t o i d e n t i f y t h e e l e m e n t s a n d s t r u c t u r e o f a t r e e . I n t h i s

s e c t i o n , w e s u m m a r i z e t h e m o s t i m p o r t a n t p o r t i o n s o f S O R C E R E R s y n t a x .

4 . 1 R u l e a n d E l e m e n t S y n t a x  

A S O R C E R E R d e s c r i p t i o n i s a c o l l e c t i o n o f r u l e s i n E x t e n d e d B N F ( E B N F ) f o r m a n d u s e r - d e n e d  

a c t i o n s p r e c e d e d b y a h e a d e r a c t i o n w h e r e t h e p r o g r a m m e r d e n e s t h e t y p e o f a S O R C E R E R t r e e :

# h e a d e r < < h e a d e r a c t i o n   > >

a c t i o n s

r u l e s

a c t i o n s

w h e r e a c t i o n s a r e e n c l o s e d i n E u r o p e a n q u o t e s < <  > >  a n d r u l e s a r e d e n e d a s f o l l o w s :

r u l e : a l t e r n a t i v e

1

| a l t e r n a t i v e

2

| a l t e r n a t i v e

n

;

E a c h a l t e r n a t i v e p r o d u c t i o n i s c o m p o s e d o f a l i s t o f e l e m e n t s w h e r e a n e l e m e n t c a n b e o n e o f t h e i t e m s

i n F i g u r e 4 . T h e \   " w i t h i n t h e g r o u p i n g c o n s t r u c t s c a n t h e m s e l v e s b e l i s t s o f a l t e r n a t i v e s o r i t e m s

f r o m F i g u r e 4 . T r e e p a t t e r n s a r e s p e c i e d i n a L I S P - l i k e n o t a t i o n o f t h e f o r m :

# ( r o o t - i t e m i t e m . . . i t e m )

w h e r e t h e #  d i s t i n g u i s h e s a p a r e n t h e s i z e d e x p r e s s i o n f r o m t h e E B N F g r o u p i n g c o n s t r u c t a n d   r o o t - i t e m  

i s a l e a f n o d e i d e n t i e r s u c h a s I D  . F l a t t r e e s ( l i s t s o f i t e m s w i t h o u t p a r e n t s ) a r e o f t h e f o r m :

i t e m . . . i t e m  

S O R C E R E R - g e n e r a t e d t r a n s l a t o r s c a n u s e e i t h e r u s e r - d e n e d t o k e n t y p e s o r c a n h a v e S O R C E R E R  

a s s i g n t o k e n t y p e s t o e a c h t e r m i n a l r e f e r e n c e d i n t h e g r a m m a r d e s c r i p t i o n .

Page 5: PAPER a Simple Tree Parser

7/27/2019 PAPER a Simple Tree Parser

http://slidepdf.com/reader/full/paper-a-simple-tree-parser 5/10

I t e m D e s c r i p t i o n E x a m p l e

l e a f t o k e n t y p e I D

w i l d c a r d   # ( F U N C I D ( . ) * )

r u l e - n a m e r e f e r e n c e t o a n o t h e r r u l e e x p r

# ( . . . ) t r e e p a t t e r n   # ( I F e x p r s l i s t s l i s t )

< < . . . > > u s e r - d e n e d s e m a n t i c a c t i o n   < < p r i n t f ( " % s " , t - > n a m e ) ; > >

( . . . ) s u b r u l e ( " i n t " | I D | s t o r a g e c l a s s )

( . . . ) * c l o s u r e I D ( " , " I D ) *

( . . . ) + p o s i t i v e c l o s u r e s l i s t : ( s t a t | S E M I C O L O N ) + ;

f g o p t i o n a l f E L S E s t a t g

< < . . . > > ? s e m a n t i c p r e d i c a t e i d : < < i s T Y P E ( s t r ) > > ? I D ;

( . . . ) ? s y n t a c t i c p r e d i c a t e ( ( l i s t E Q ) ? l i s t E Q l i s t | l i s t )

F i g . 4 . S O R C E R E R D e s c r i p t i o n E l e m e n t s

4 . 2 T r a n s l a t i o n S u p p o r t

O n c e t h e s t r u c t u r e o f t h e I R h a s b e e n d e s c r i b e d u s i n g t h e n o t a t i o n g i v e n i n t h e p r e v i o u s s e c t i o n , a c t i o n s

m u s t b e e m b e d d e d t o s p e c i f y a t r a n s l a t i o n . A c t i o n s h a v e a c c e s s t o I R s u b t r e e s v i a n o d e l a b e l s a n d m a y  

c o m m u n i c a t e w i t h o t h e r r u l e s v i a r u l e p a r a m e t e r s a n d r e t u r n v a l u e s a n a l o g o u s t o C f u n c t i o n p a r a m e t e r s

a n d r e t u r n v a l u e s ; e a c h r u l e h a s a n i m p l i c i t p a r a m e t e r r o o t w h i c h i s t h e s u b t r e e t o b e m a t c h e d .

R u l e e l e m e n t s c a n b e l a b e l e d w i t h a n i d e n t i e r , w h i c h i s a u t o m a t i c a l l y d e n e d a s a n I R t r e e n o d e

p o i n t e r , t h a t c a n b e r e f e r e n c e d b y u s e r a c t i o n s . T h e s y n t a x i s :

t : e l e m e n t

w h e r e t m a y b e a n y u p p e r o r l o w e r c a s e i d e n t i e r a n d   e l e m e n t i s e i t h e r a t o k e n r e f e r e n c e , r u l e r e f e r e n c e ,

o r t h e w i l d - c a r d . S u b t r e e s m a y b e l a b e l e d b y l a b e l i n g t h e r o o t n o d e . T h e f o l l o w i n g g r a m m a r f r a g m e n t

i l l u s t r a t e s a t y p i c a l u s e o f a n e l e m e n t l a b e l s .

a : # ( D O u : I D e x p r e x p r # ( v : S L I S T ( s t a t ) * ) )

< < p r i n t f ( " i n d u c t i o n v a r i s % s \ n " , u - > s y m b o l ) ; a n a l y z e c o d e ( v ) ; > >

;

w h e r e s y m b o l   i s s o m e e l d t h a t t h e u s e r h a s d e n e d a s p a r t o f a n   A S T  . T h e s e l a b e l s a r e p o i n t e r s t o  

t h e n o d e s a s s o c i a t e d w i t h t h e r e f e r e n c e d e l e m e n t a n d a r e o n l y a v a i l a b l e a f t e r t h e r e c o g n i t i o n o f t h e

a s s o c i a t e d t r e e e l e m e n t .

A c t i o n s w i t h i n a r u l e a c c e s s t r e e s v i a l a b e l s a n d c o m m u n i c a t e v i a l o c a l v a r i a b l e s . A s p e c i a l a c t i o n  

c a l l e d a n i n i t - a c t i o n c a n b e s p e c i e d a t t h e s t a r t o f a n y a l t e r n a t i v e o f a r u l e o r s u b r u l e . F o r e x a m p l e ,

/ * m a t c h a f u n c t i o n c a l l w i t h a r b i t r a r y n u m b e r o f a r g u m e n t s * /

f c : < < i n t i = 0 ; > >

# ( F U N C I D ( . < < i + + ; > > ) * )

< < p r i n t f ( " f o u n d f u n c c a l l w i t h % d a r g u m e n t s \ n " , i ) ; > >

;

A c t i o n s m a y c o m m u n i c a t e a c r o s s r u l e s v i a r u l e p a r a m e t e r s a n d r e t u r n v a l u e s . F o r e x a m p l e , i t i s

o f t e n d e s i r a b l e t o p a s s a v a l u e t o a n e x p r e s s i o n r u l e i n d i c a t i n g w h e t h e r i t i s o n t h e l e f t o r r i g h t h a n d  

s i d e o f a n a s s i g n m e n t :

< < e n u m S I D E f L H S , R H S g ; > >

s t a t : # ( A S S I G N e x p r L H S ] e x p r R H S ] )

| . . .

;

e x p r i n t s i d e ] : . . . ;

A l t e r n a t i v e l y , o n e c a n p a s s i n f o r m a t i o n b e t w e e n r u l e s a s r e t u r n v a l u e s . T h e f o l l o w i n g e x a m p l e d e m o n -

s t r a t e s h o w t h e n u m b e r o f a r g u m e n t s i n a f u n c t i o n c a l l c o u l d b e r e t u r n e d a n d p l a c e d i n t o a l o c a l v a r i a b l e

Page 6: PAPER a Simple Tree Parser

7/27/2019 PAPER a Simple Tree Parser

http://slidepdf.com/reader/full/paper-a-simple-tree-parser 6/10

o f t h e i n v o k i n g r u l e .

e x p r : I D

| F L O A T

| < < i n t n ; > >

f c > n ]

< < p r i n t f ( " f u n c c a l l h a s % d a r g u m e n t s \ n " , n ) ; > >

;

f c > i n t n a r g s ]

: < < i n t i = 0 ; > >

# ( F U N C I D ( . < < i + + ; > > ) * )

< < n a r g s = i ; > >

;

4 . 3 S e m a n t i c P r e d i c a t e s

M o s t s o u r c e - t o - s o u r c e t r e e g r a m m a r s a r e u n a m b i g u o u s b e c a u s e , u n l i k e c o d e g e n e r a t i o n , s o u r c e c o n -

s t r u c t s n o r m a l l y h a v e a s i n g l e t r a n s l a t i o n i n t h e t a r g e t l a n g u a g e . H o w e v e r , t h i s i s n o t e x c l u s i v e l y t h e

c a s e a n d i t i s o f t e n d e s i r a b l e t o s p e c i f y c o n t e x t - s e n s i t i v e s t r u c t u r e s . M a n y s y n t a c t i c a m b i g u i t i e s c a n  

b e r e s o l v e d a n d m a n y c o n t e x t - s e n s i t i v e s t r u c t u r e s c a n b e e x p r e s s e d e a s i l y w i t h   s e m a n t i c p r e d i c a t e s

( P Q 9 4 ] , P C D 9 3 ] ) . S e m a n t i c p r e d i c a t e s a r e u s e r - d e n e d e x p r e s s i o n s , w h i c h e v a l u a t e t o t r u e o r f a l s e ,

t h a t i n d i c a t e t h e s e m a n t i c v a l i d i t y o f a t t e m p t i n g t o m a t c h a t r e e . F o r e x a m p l e , c o n s i d e r h o w o n e w o u l d  

d i s a b l e c e r t a i n e x p r e s s i o n e l e m e n t s w h e n m a t c h i n g t h e l e f t h a n d s i d e o f a n a s s i g n m e n t . T h e f o l l o w i n g  

f r a g m e n t d e m o n s t r a t e s h o w p r e d i c a t e s c a n b e u s e d t o t u r n c e r t a i n a l t e r n a t i v e s o n a n d o d e p e n d i n g  

o n t h e c o n t e x t .

< < e n u m S I D E f L H S , R H S g ; > >

s t a t : # ( A S S I G N e x p r L H S ] e x p r R H S ] )

| . . .

;

e x p r i n t s i d e ]

: < < s i d e ! = L H S > > ? I N T < < a c t i o n  

1

> >

| I D < < a c t i o n  

2

> >

;

T h e S O R C E R E R - g e n e r a t e d c o d e t o r e c o g n i z e r u l e e x p r   s i m p l y i n c o r p o r a t e s t h e p r e d i c a t e i n t h e p r e -

d i c t i o n o f t h e r s t a l t e r n a t i v e ; i . e . , t h e p r e d i c t i o n e x p r e s s i o n w o u l d b e :

( t ! = N U L L & & t - > t o k e n = = I N T & & s i d e ! = L H S )

S e m a n t i c p r e d i c a t e s m a y a l s o e x a m i n e t h e s t r u c t u r e o r c o n t e n t s o f a t r e e b e f o r e r e c o g n i t i o n i s

a t t e m p t e d b y r e f e r e n c i n g t h e s u b t r e e r o o t , p a s s e d i m p l i c i t l y t o e v e r y r u l e , c a l l e d   r o o t . F i g u r e 5 d e m o n -

s t r a t e s h o w a p r e d i c a t e c a n b e u s e d t o d i s t i n g u i s h b e t w e e n t h e u n a r y a n d b i n a r y o p e r a t o r M i n u s

B e c a u s e b o t h a l t e r n a t i v e s b e g i n w i t h a c o m m o n l e f t - p r e x ( i . e . , M i n u s ) , S O R C E R E R c a n n o t d e t e r m i n e

f r o m t h e r o o t o f t h e t r e e w h a t f o l l o w s t h e M i n u s ( h o w m a n y o p e r a n d s t h e o p e r a t o r h a s ) w i t h a s i n g l e

s y m b o l o f l o o k a h e a d . T h e s e m a n t i c p r e d i c a t e e n a b l e s r u l e e x p r   t o d i s t i n g u i s h b e t w e e n t h e p r o d u c t i o n s .

e x p r : < < r o o t - > d o w n ! = N U L L & & r o o t - > d o w n - > r i g h t ! = N U L L > > ?

# ( M i n u s e x p r e x p r ) / / B i n a r y : s u b t r a c t

| # ( M i n u s e x p r ) / / U n a r y : n e g a t e

;

F i g . 5 . S e m a n t i c P r e d i c a t e U s e d t o I s o l a t e U n a r y O p e r a t o r

Page 7: PAPER a Simple Tree Parser

7/27/2019 PAPER a Simple Tree Parser

http://slidepdf.com/reader/full/paper-a-simple-tree-parser 7/10

4 . 4 S y n t a c t i c P r e d i c a t e s

O c c a s i o n a l l y a p r o g r a m m e r i s f a c e d w i t h a g r a m m a t i c a l c o n s t r u c t t h a t c a n n o t b e r e c o g n i z e d u s i n g S O R -

C E R E R ' s d e t e r m i n i s t i c L L  ( 1 ) - b a s e d a p p r o a c h . C o n s e q u e n t l y , S O R C E R E R s u p p o r t s t h e s p e c i c a t i o n  

o f s e m a n t i c a n d   s y n t a c t i c p r e d i c a t e s ( P Q 9 4 ] , P C D 9 3 ] ) t o i n d i c a t e t h e s e m a n t i c a n d s y n t a c t i c v a l i d i t y  

o f a t t e m p t i n g t o m a t c h a p a r t i c u l a r r u l e a l t e r n a t i v e , r e s p e c t i v e l y . F i g u r e 5 u s e d a s e m a n t i c p r e d i c a t e

t o t e s t t h e s t r u c t u r e o f t h e c u r r e n t i n p u t s u b t r e e . W h i l e t h i s i s e e c t i v e , t h e s e m a n t i c p r e d i c a t e i s

n o t u s i n g s e m a n t i c s ( e . g . , s y m b o l t a b l e i n f o r m a t i o n ) t o r e s o l v e t h e p a r s i n g n o n d e t e r m i n i s m . S y n t a c t i c

p r e d i c a t e s p r o v i d e a m o r e c o n v e n i e n t m e a n s o f i n d i c a t i n g t h a t a p a r t i c u l a r t r e e s t r u c t u r e i s n e c e s s a r y  

f o r s u c c e s s f u l r e c o g n i t i o n . A m o r e n a t u r a l w a y t o d e s c r i b e r u l e e x p r   i n F i g u r e 5 w o u l d b e a s d e p i c t e d  

i n F i g u r e 6 . T h e s y n t a c t i c p r e d i c a t e s i n d i c a t e s t h a t t o s u c c e s s f u l l y m a t c h t h e b i n a r y v e r s i o n o f M i n u s

t h e c u r r e n t s u b t r e e m u s t h a v e M i n u s a t t h e r o o t a n d h a v e t w o c h i l d r e n .

e x p r : ( # ( M i n u s . . ) ) ? # ( M i n u s e x p r e x p r )

| # ( M i n u s e x p r )

;

F i g . 6 . S y n t a c t i c P r e d i c a t e U s e d t o I s o l a t e U n a r y O p e r a t o r

4 . 5 E x a m p l e  

I n o r d e r t o i l l u s t r a t e t h e n o t a t i o n p r o v i d e d i n t h e p r e v i o u s s e c t i o n s , a u s e f u l , b u t s m a l l e x a m p l e i s

p r e s e n t e d i n t h i s s e c t i o n . W e h a v e c h o s e n t o d e s c r i b e a n i n t e r p r e t e r s u c h a s o n e m i g h t c o n s t r u c t f o r a  

s m a l l , a p p l i c a t i o n - s p e c i c l a n g u a g e ; w h i l e i t c o u l d j u s t a s e a s i l y h a v e b e e n c o n s t r u c t e d i n C o r P a s c a l , t h e

e x a m p l e i l l u s t r a t e s a c o m p l e t e S O R C E R E R d e s c r i p t i o n . C o n s i d e r a t r i v i a l L I S P - l i k e l a n g u a g e w h i c h  

a l l o w s t h e d e n i t i o n o f n e w f u n c t i o n s , t h e a p p l i c a t i o n o f f u n c t i o n s , a n d t h e s e t t i n g o f s y m b o l s t o  

p a r t i c u l a r v a l u e s ; t h e o n l y p r e d e n e d f u n c t i o n i s \  +  " . F i g u r e 7 a s i m p l e p r o g r a m t h a t c o m p u t e s t h e

v a l u e 4 5  a n d F i g u r e 8 g i v e s a S O R C E R E R p r o g r a m t h a t w i l l i n t e r p r e t t r e e s o f t h e g i v e n f o r m ; f o r

c l a r i t y a n d b r e v i t y , w e h a v e s u b s t i t u t e d a l g o r i t h m i c c o d e i n i t a l i c s f o r t h e a c t u a l C + + a c t i o n s .

T h e n o d e s i n t h e I R t r e e r e p r e s e n t t h e t o k e n t y p e s t o r e d i n e l d   t o k e n   o f A S T  . O t h e r i n f o r m a t i o n  

i s s t o r e d i n a n   A S T  n o d e s u c h a s t h e t e x t o f t h e i d e n t i e r , i d  , b u t S O R C E R E R - g e n e r a t e d t r a n s l a t o r s

u s e o n l y t h e s t r u c t u r e o f t h e t r e e a n d t h e v a l u e i n   t o k e n   t o m a t c h I R p a t t e r n s ; e l d s r i g h t a n d  d o w n  

a r e u s e d t o n a v i g a t e t h e I R .

5 C o n c l u s i o n s  

S O R C E R E R w a s d e v e l o p e d o u t o f f r u s t r a t i o n w h i l e t r y i n g t o s o l v e \ r e a l - w o r l d " t r a n s l a t i o n p r o b l e m s i n  

t h e r e a l m o f p a r a l l e l s u p e r c o m p u t i n g . I t h a s s i n c e p r o v e n v a l u a b l e f o r a w i d e r a n g e o f s m a l l e r p r o b l e m s

a s w e l l . S O R C E R E R ' s s t r e n g t h l i e s p r i m a r i l y i n i t s e x i b i l i t y a n d s i m p l i c i t y ; b e c a u s e o f t h e t r e m e n d o u s

s u c c e s s o f A N T L R i n t h e p r o g r a m m e r c o m m u n i t y ( w e l l o v e r 1 0 0 0 r e g i s t e r e d u s e r s i n 3 7 c o u n t r i e s ) ,

a n u m b e r o f A N T L R f e a t u r e s w e r e c a r r i e d o v e r t o S O R C E R E R . P r o g r a m m e r s m a y v i e w t r a n s l a t i o n  

d e s c r i p t i o n s a s t r e e - p a t t e r n r e c o g n i t i o n e x t e n s i o n s t o C o r C + + . S O R C E R E R - g e n e r a t o r t r a n s l a t o r s

m a y b e u s e d a l o n e o r b y f o l d i n g t h e m i n t o e x i s t i n g a p p l i c a t i o n s . S O R C E R E R m a y b e o b t a i n e d v i a  

a n o n y m o u s f t p  a t m a r v i n . e c n . p u r d u e . e d u   i n  p u b / p c c t s / s o r c e r e r  

6 A c k n o w l e d g e m e n t s  

T h e S O R C E R E R d e s c r i p t i o n l a n g u a g e w a s f o r m e d t h r o u g h n u m e r o u s d i s c u s s i o n s w i t h A a r o n S a w d e y ,

G a r y F u n c k , P e t e r D a h l , S t e v e A n d e r s o n , a n d M a t t O ' K e e f e a t t h e U n i v e r s i t y o f M i n n e s o t a . A d d i t i o n -

a l l y , t h e f o l l o w i n g i n d i v i d u a l s w e r e i n s t r u m e n t a l i n t e s t i n g o r d i s c u s s i n g t h e S O R C E R E R p r o t o t y p e :

D e v i n H o o k e r a t E l l e r y S y s t e m s , K e n n e t h D . W e i n e r t a t I n f o r m a t i o n H a n d l i n g S e r v i c e s , a n d M a r l i n  

Page 8: PAPER a Simple Tree Parser

7/27/2019 PAPER a Simple Tree Parser

http://slidepdf.com/reader/full/paper-a-simple-tree-parser 8/10

S a m p l e P r o g r a m T r e e S t r u c t u r e

( d e f u n f ( x ) ( + 3 ) )

DEFUN

ID ID PLUS

ID

( s e t q y 4 2 )

SETQ

ID INT

( f y )

ID

ID

F i g . 7 . S a m p l e P r o g r a m i n L I S P - L i k e L a n g u a g e W i t h I R S t r u c t u r e

P r o w e l l a t J a n u s C o m p u t i n g , A n t h o n y G r e e n a t V i s i b l e D e c i s i o n s I n c . , a n d J o h n H a l l a t W o r c e s t e r

P o l y t e c h n i c I n s t i t u t e .

G a r y F u n c k a t I n t r e p i d T e c h n o l o g y , I n c . a n d A a r o n S a w d e y d e s e r v e s p e c i a l r e c o g n i t i o n f o r t h e i r

e x t e n s i v e h e l p w i t h 1 . 0 0 B S O R C E R E R d e s i g n a n d t e s t i n g .

Page 9: PAPER a Simple Tree Parser

7/27/2019 PAPER a Simple Tree Parser

http://slidepdf.com/reader/full/paper-a-simple-tree-parser 9/10

# h e a d e r < <

# d e f i n e P A R S E R V A R S c h a r * i d ; i n t i v a l ; S T r e e * a r g s , * c o d e ;

# i n c l u d e " m y t o k e n s . h " / / d e f i n i t i o n o f t o k e n t y p e s ; i . e . I D , P L U S , . . .

> >

< <

m a i n ( )

f

S T r e e P a r s e r p ;

A S T * r e s u l t ;

S T r e e P a r s e r I n i t ( & p ) ;

/ * a s i m p l e A N T L R g r a m m a r e m b o d i e d m a k e - I R - t r e e - f o r ( ) i n a c t u a l t e s t * /

s t a t

1

= m a k e - I R - t r e e - f o r ( " ( d e f u n f ( x ) ( + 3 ) ) " ) ;

s t a t

2

= m a k e - I R - t r e e - f o r ( " ( s e t q y 4 2 ) " ) ;

s t a t

3

= m a k e - I R - t r e e - f o r ( " ( f y ) " ) ;

s e x p r ( & p , & s t a t

1

) ; s e x p r ( & p , & s t a t

2

) ; r e s u l t = s e x p r ( & p , & s t a t

3

) ;

g

> >

s e x p r > A S T * r e s u l t ]

: < < A S T * a r g > >

# ( S E T Q t : I D s e x p r > a r g ] )

< < a d d  t - > i d   t o s y m b o l t a b l e a s I D a n d s e t i t s v a l u e t o   a r g ; r e s u l t = t ; > >

| / * D o n ' t e v a l a r g s o r c o d e b l o c k ; h e n c e , w e u s e a w i l d - c a r d r a t h e r t h a n r e f t o   s e x p r * /

# ( D E F U N t : I D a r g s : . c o d e : . )

< < a d d  t - > i d   t o s y m b o l t a b l e a s D E F U N ; > >

< < a d d  a r g s a n d  c o d e o f f u n c t o s y m e n t r y ; r e s u l t = t ; > >

| < < A S T * o p 1 , * o p 2 ; > >

# ( P L U S s e x p r > o p 1 ] s e x p r > o p 2 ] )

< < r e s u l t = m a k e - n o d e - o u t - o f - t o k e n - a n d - v a l u e ( I N T , o p 1 - > i v a l + o p 2 - > i v a l ) ; > >

| < < A S T * a r g , * f v a l ; > >

< < i s f u n c ( r o o t - > i d ) > > ? / * i s I D a f u n c t i o n ( D E F U N ) ? * /

# ( I D

< < c r e a t e a n e w t e m p o r a r y s c o p e ; > >

< < a d d a r g n a m e s o f f u n c t i o n t o s y m b o l t a b l e ; > >

( s e x p r > a r g ] < < s e t a r g n a m e o f f u n c t i o n t o e v a l u a t e d t r e e : a r g ; > >

) *

< < f v a l = s e x p r ( p t r t o c o d e o f f u n c t i o n   ) ; > >

< < r e m o v e a l l f u n c t i o n a r g n a m e s b y r e m o v i n g t e m p o r a r y s c o p e ; > >

< < s w i t c h t o p r e v i o u s s c o p e ; > >

)

< < r e t u r n   f v a l ; > >

| t : I D < < r e s u l t = i v a l o f s y m b o l t a b l e e n t r y o f t - > i d  ; > >

| t : I N T < < r e s u l t = t ; > >

;

F i g . 8 . S O R C E R E R I n t e r p r e t e r F o r L I S P - L i k e L a n g u a g e

Page 10: PAPER a Simple Tree Parser

7/27/2019 PAPER a Simple Tree Parser

http://slidepdf.com/reader/full/paper-a-simple-tree-parser 10/10

R e f e r e n c e s  

A G T 8 9 ] A l f r e d V . A h o , M a h a d e v a n G a n a p a t h i , a n d S t e v e n W . K . T j i a n g . C o d e G e n e r a t i o n U s i n g T r e e

M a t c h i n g a n d D y n a m i c P r o g r a m m i n g . A C M T r a n s a c t i o n s o n P r o g r a m m i n g L a n g u a g e s a n d S y s t e m s

1 1 ( 4 ) : 4 9 1 { 5 1 6 , 1 9 8 9 .

B i s 9 2 ] K u r t M . B i s c h o . U s e r M a n u a l f o r O x : A n A t t r i b u t e - G r a m m a r C o m p i l i n g S y s t e m b a s e d o n Y a c c , L e x ,

a n d C . T e c h n i c a l R e p o r t T R 9 2 - 3 0 , C o m p u t e r S c i e n c e D e p a r t m e n t , I o w a S t a t e U n i v e r s i t y , D e c e m b e r

1 9 9 2 .

C C 7 8 ] J a m e s R . C o r d y a n d I a n H . C a r m i c h a e l . T h e T X L P r o g r a m m i n g L a n g u a g e S y n t a x a n d I n f o r m a l

S e m a n t i c s : V e r s i o n 7   . S o f t w a r e T e c h n o l o g y L a b o r a t o r y ; Q u e e n ' s U n i v e r s i t y a t K i n g s t o n ; K i n g s t o n ,

C a n a d a , 1 9 7 8 .

E B 9 1 ] R . E i g e n m a n n a n d W . B l u m e . A n E e c t i v e n e s s S t u d y o f P a r a l l e l i z i n g C o m p i l e r T e c h n i q u e s . I n  

P r o c e e d i n g s o f 1 9 9 1 I n t e r n a t i o n a l C o n f e r e n c e o n P a r a l l e l P r o c e s s i n g   , v o l u m e I I , p a g e s 1 7 { 2 5 , A u g u s t

1 9 9 1 .

E S L 8 9 ] H . E m m e l m a n n , F . W . S c h r o e r , a n d R . L a n d w e h r . B E G | a g e n e r a t o r f o r e c i e n t b a c k e n d s . I n  

P r o c e e d i n g s o f t h e S I G P L A N ' 8 9 C o n f e r e n c e o n P r o g r a m m i n g L a n g u a g e D e s i g n a n d I m p l e m e n t a t i o n ;

S I G P L A N N o t i c e s , v o l u m e 2 4 ( 7 ) , p a g e s 2 2 7 { 2 3 7 , J u l y 1 9 8 9 .

F H P 9 2 ] C . W . F r a s e r , D . R . H a n s o n , a n d T . A . P r o e b s t i n g . E n g i n e e r i n g a s i m p l e , e c i e n t c o d e g e n e r a t o r

g e n e r a t o r . A C M L e t t e r s o n P r o g r a m m i n g L a n g u a g e s a n d S y s t e m s , 1 ( 3 ) : 2 1 3 { 2 2 6 , 1 9 9 2 . t h i s w a s

a c t u a l l y p u b l i s h e d i n 1 9 9 3 d u e t o p u b l i c a t i o n s d e l a y s .

G H L  

9 2 ] R . W . G r a y , V . P . H e u r i n g , S . P . L e v i , A . M . S l o a n e , a n d W . M . W a i t e . E l i : A C o m p l e t e , F l e x i b l e

C o m p i l e r C o n s t r u c t i o n S y s t e m . C o m m u n i c a t i o n s o f t h e A C M   , 3 5 : 1 2 1 { 1 3 1 , F e b r u a r y 1 9 9 2 .

G r o 9 1 ] J o s e f G r o s c h . P u m a | A G e n e r a t o r f o r t h e T r a n s f o r m a t i o n o f A t t r i b u t e d T r e e s . T e c h n i c a l R e p o r t 2 6 ,

G e s e l l s c h a f t f u r M a t h e m a t i k u n d D a t e n v e r a r b e i t u n g m b H ; U n i v e r s i t a t K a r l s r u h e , N o v e m b e r 1 9 9 1 .

K n u 6 8 ] D o n a l d E . K n u t h . S e m a n t i c s o f C o n t e x t - F r e e L a n g u a g e s . M a t h e m a t i c a l S y s t e m s T h e o r y  , 2 ( 2 ) : 1 2 7 {

1 4 5 , 1 9 6 8 .

K o s 7 1 ] C . H . A . K o s t e r . A x G r a m m a r s . A L G O L 6 8 I m p l e m e n a t i o n  , 1 9 7 1 .

L R S 7 4 ] P . M . L e w i s , D . J . R o s e n k r a n t z , a n d R . E . S t e a r n s . A t t r i b u t e d T r a n s l a t i o n s . J o u r n a l o f C o m p u t e r

a n d S y s t e m S c i e n c e s , 9 : 2 7 9 { 3 0 7 , 1 9 7 4 .

P a d 8 9 ] D a v i d A . P a d u a . T h e D e l t a P r o g r a m M a n i p u l a t i o n | P r e l i m i n a r y D e s i g n . T e c h n i c a l R e p o r t C S R D  

8 0 8 , U n i v e r s i t y o f I l l i n o i s a t U r b a n a - C h a m p a i g n , 1 9 8 9 .

P C D 9 3 ] T e r e n c e P a r r , W i l l C o h e n , a n d H a n k D i e t z . T h e P u r d u e C o m p i l e r C o n s t r u c t i o n T o o l S e t : V e r s i o n 1 . 1 0

R e l e a s e N o t e s . T e c h n i c a l R e p o r t P r e p r i n t N o . 9 3 - 0 8 8 , A r m y H i g h P e r f o r m a n c e C o m p u t i n g R e s e a r c h  

C e n t e r , A u g u s t 1 9 9 3 .

P D C 9 2 ] T . J . P a r r , H . G . D i e t z , a n d W . E . C o h e n . P C C T S 1 . 0 0 : T h e P u r d u e C o m p i l e r C o n s t r u c t i o n T o o l S e t .

S I G P L A N N o t i c e s , 2 7 ( 2 ) : 8 8 { 1 6 5 , F e b r u a r y 1 9 9 2 .

P Q 9 4 ] T e r e n c e J . P a r r a n d R u s s e l l W . Q u o n g . A d d i n g S e m a n t i c a n d S y n t a c t i c P r e d i c a t e s t o L L  ( k ) |  p r e d   -

L L  ( k ) . I n   T o A p p e a r i n P r o c e e d i n g s o f t h e I n t e r n a t i o n a l C o n f e r e n c e o n C o m p i l e r C o n s t r u c t i o n ;

E d i n b u r g h , S c o t l a n d   , A p r i l 1 9 9 4 .

R M 8 9 ] R e c h e n b e r g a n d M o s s e n b o c k . A C o m p i l e r G e n e r a t o r f o r M i c r o c o m p u t e r s . P r e n t i c e H a l l , 1 9 8 9 .

R T D 8 3 ] T h o m a s R e p s , T i m T e i t e l b a u m , a n d A l a n D e m e r s . I n c r e m e n t a l C o n t e x t - D e p e n d e n t A n a l y s i s f o r

L a n g u a g e - B a s e d E d i t o r s . A C M T r a n s a c t i o n s o n P r o g r a m m i n g L a n g u a g e s a n d S y s t e m s , 5 ( 3 ) : 4 4 9 {

4 7 7 , 1 9 8 3 .

S e u 9 3 ] M . S e u t t e r . I n f o r m a l i n t r o d u c t i o n t o t h e E x t e n d e d A x G r a m m a r f o r m a l i s m a n d i t s c o m p i l e r . T e c h -

n i c a l R e p o r t T R 9 3 - 1 9 , U n i v e r s i t y o f N i j m e g e n , N e t h e r l a n d s , S e p t e m b e r 1 9 9 3 .

S O P 9 3 ] A a r o n S a w d e y , M a t t h e w O ' K e e f e , a n d T e r e n c e P a r r . T h e T r a n s l a t i o n o f F o r t r a n - P t o C M F o r t r a n  

U s i n g S o r c e r e r . T e c h n i c a l R e p o r t P r e p r i n t N o . 9 3 - 1 0 2 , A r m y H i g h P e r f o r m a n c e C o m p u t i n g R e s e a r c h  

C e n t e r , U n i v e r s i t y o f M i n n e s o t a , O c t o b e r 1 9 9 3 .

S t a 8 6 ] R . M . S t a l l m a n . G N U E m a c s M a n u a l , F i f t h E d i t i o n , E m a c s V e r s i o n 1 8 f o r U n i x U s e r s . F r e e S o f t w a r e

F o u n d a t i o n , O c t o b e r 1 9 8 6 .

S t a 9 0 ] R . M . S t a l l m a n . U s i n g a n d P o r t i n g G N U C C f o r v e r s i o n 2 . 0  . F r e e S o f t w a r e F o u n d a t i o n , N o v e m b e r

1 9 9 0 .

T h i s a r t i c l e w a s p r o c e s s e d u s i n g t h e L  

X m a c r o p a c k a g e w i t h L L N C S s t y l e