+ All Categories

lmath

Date post: 31-May-2018
Category:
Upload: postscript
View: 218 times
Download: 0 times
Share this document with a friend

of 3

Transcript
  • 8/14/2019 lmath

    1/3

    A L i s p - L a n g u a g e

    M a t h e m a t i c a - t o - L i s p T r a n s l a t o r

    R i c h a r d J . F a t e m a n

    U n i v e r s i t y o f C a l i f o r n i a , B e r k e l e y

    A b s t r a c t

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

    M a t h e m a t i c a

    1

    h a s e n c o u r a g e d n u m e r o u s p r o g r a m m e r s ,

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

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

    \ p a c k a g e s " i n t o M a t h e m a t i c a s y s t e m s . A l t h o u g h s o m e

    f e a t u r e s o f t h e l a n g u a g e a r e q u i t e i n t e r e s t i n g , s o m e a u -

    t h o r s h a v e f o u n d t h a t f o r t h e i r p u r p o s e s t h e M a t h e m a t -

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

    a n d d i c u l t - t o - a l t e r s e m a n t i c s . T h e r e f o r e c e r t a i n k i n d s

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

    v e n i e n t . A n i n i t i a l s t e p i n o p e n i n g u p s u c h u s e r - w r i t t e n

    l i b r a r i e s t o r e - u s e i s a n i n d e p e n d e n t r e - i m p l e m e n t a t i o n

    o f t h e l a n g u a g e v i a a n o n - p r o p r i e t a r y p a r s e r . I n p r i n -

    c i p l e , t h i s a l l o w s o t h e r i m p l e m e n t a t i o n s o f s e m a n t i c s ,

    a s w e l l a s e x p e r i m e n t s i n d a t a r e p r e s e n t a t i o n , w h i l e

    s t i l l u s i n g t h e l a n g u a g e b a s i c a l l y a s d e s c r i b e d i n t h e

    M a t h e m a t i c a r e f e r e n c e s . W e d e s c r i b e a p a r s e r w r i t -

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

    f o r t h r e e r e a s o n s : ( 1 ) I t i s a s t a n d a r d a n d h a s w i d e

    d i s t r i b u t i o n ; ( 2 ) I t s u p p o r t s n u m e r o u s u s e f u l f e a t u r e s

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

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

    c a l s c a n n i n g o f l a n g u a g e s ; a n d ( 3 ) L i s p i s t h e h o s t l a n -

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

    s u b r o u t i n e s m a y b e o f s o m e i n t e r e s t f o r p r o g r a m m e r s

    i m p l e m e n t i n g a l t e r n a t i v e s e m a n t i c s .

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

    T h e M a t h e m a t i c a 2 ] c o m p u t e r a l g e b r a s y s t e m h a s s i g -

    n i c a n t l y r a i s e d t h e l e v e l o f a t t e n t i o n d e v o t e d t o t h e

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

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

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

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

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

    i n M a t h e m a t i c a ' s s p e c i a l l a n g u a g e , t h e y c a n b e i n t e r -

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

    e t a r y c o m p u t e r p r o g r a m . C o n t r a r y t o t h e s i t u a t i o n i n

    s o m e e x p e r i m e n t a l l a n g u a g e s , t h e s y s t e m i s a \ b l a c k

    1

    M a t h e m a t i c a i s a t r a d e m a r k o f W o l f r a m R e s e a r c h I n c .

    b o x " a n d i t i s d i c u l t t o a l t e r t h e s e m a n t i c s i n f u n d a -

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

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

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

    B y b r e a k i n g t h e l a n g u a g e a w a y f r o m t h e s y s t e m

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

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

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

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

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

    f o r M a t h e m a t i c a , w r i t t e n e n t i r e l y i n C o m m o n L i s p .

    T h e P r o g r a m : i n B r i e f

    W e w r o t e a C o m m o n L i s p p r o g r a m t h a t c a n r e a d ( f r o m

    a l e o r a k e y b o a r d ) v i r t u a l l y a n y M a t h e m a t i c a p r o -

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

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

    e m a t i c a . P e r s o n s f a m i l i a r w i t h L i s p w h o h a v e e x a m -

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

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

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

    r a l i n L i s p . T h e m o d i c a t i o n i s e a s i l y s t a t e d : T h e

    M a t h e m a t i c a e x p r e s s i o n x y ] i n F u l l F o r m i s , i n L i s p ,

    ( x y ) . F o r e x a m p l e , t h e i n p u t s y n t a x a & & b w h i c h h a s

    a F u l l F o r m o f A n d a , b ] b e c o m e s t h e L i s p s y m b o l i c

    e x p r e s s i o n ( A n d a b )

    L e x i c a l A n a l y s i s a n d P a r s i n g

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

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

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

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

    f e a t u r e a n e x t e n s i b l e s y n t a x : t h i s s u g g e s t e d t h a t t h e

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

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

    \ p r o g r a m - w r i t i n g p r o g r a m s " ( m a c r o s ) t o d e v e l o p t h e

    b a s i c l e x i c a l a n a l y z e r a s a d i s p a t c h t a b l e f r o m a C o m -

    m o n L i s p \ r e a d - t a b l e . " W e u s e d a m a c r o - e x p a n d e d v e r -

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

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

    1

  • 8/14/2019 lmath

    2/3

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

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

    t h e r \ m a c r o - o l o g y " .

    I n a d d i t i o n t o t h e v e p a g e s o f l e x i c a l a n a l y z e r , t h e r e

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

    6 u t i l i t y p r o g r a m s a n d a b o u t 4 5 o t h e r p r o c e d u r e s . F o r

    e a c h s y n t a c t i c c o n s t r u c t i o n o n e o r t w o p r o c e d u r e s s u f -

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

    a n d p a r s e - a n d c o r r e s p o n d t o t h e s y n t a c t i c s t r u c t u r e s

    b e i n g p a r s e d . M o s t o f t h e f u n c t i o n s a r e q u i t e r e g u -

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

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

    t h e p r e c e d e n c e h i e r a r c h y . S t a r t i n g w i t h a f e w t e m -

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

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

    u p w i t h a h a n d - p r o g r a m m e d r e c u r s i v e - d e s c e n t 1 - t o k e n

    l o o k - a h e a d p a r s e r .

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

    t i o n o f t h e g r a m m a r ( 2 ] A p p e n d i x B ) , w e f o u n d i t t i m e -

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

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

    t r e a t m e n t o f \ w h i t e - s p a c e " a n d o n e m u s t d e t e r m i n e ,

    a t e v e r y # \ n e w l i n e ( i n t h e L i s p n o t a t i o n ) w h e t h e r t h e

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

    D i a g n o s t i c s a r e f a i r l y c r u d e : i n c a s e o f a n e r r o r , t h e

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

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

    s e n t e n c e ; t h e r e m a i n d e r o f t h e c h a r a c t e r s b e y o n d t h i s

    t o k e n a r e s t i l l u n r e a d .

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

    t h e r n o t a c c e p t e d b y M a t h e m a t i c a s y n t a c t i c a l l y , o r a r e

    r e j e c t e d b y M a t h e m a t i c a s e m a n t i c a l l y , t h e s e d o n o t

    s e e m t o r e p r e s e n t p r o b l e m s .

    C o m m e n t s o n t h e L a n g u a g e

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

    o f w h i c h a r e r a t h e r c o n f u s i n g w h e n j u x t a p o s e d .

    S o m e t o k e n s a p p e a r w i t h i n o r a s p r e x e s o r s u f -

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

    a s a p r e x n o t a t i o n f o r N o t b ] , a n d a ! i s u s e d

    a s a p o s t x n o t a t i o n f o r F a c t o r i a l a ] . T h e c o n -

    s t r u c t i o n a ! ! i s \ d o u b l e - f a c t o r i a l " o r F a c t o r i a l 2 a ]

    T h e n o t a t i o n a b i s ( T i m e s a b ) . C o n s i d e r i n g

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

    m e a n ? M a t h e m a t i c a ( a s w e l l a s o u r p a r s e r ) i n t e r -

    p r e t e s i t a s ( T i m e s ( F a c t o r i a l ( F a c t o r i a l a ) ) b )

    a l t h o u g h o n e m i g h t p r e f e r a n o t h e r i n t e r p r e t a t i o n :

    ( T i m e s ( F a c t o r i a l a ) ( N o t b ) ) . A d d i n g t o t h e

    c o n f u s i o n , i f o n e o m i t s a s p a c e , a ! ! b i s p a r s e d a s

    ( T i m e s ( F a c t o r i a l 2 a ) b ) . I t i s r a t h e r n o n - o b v i o u s

    w h a t h a p p e n s w h e n o n e i n s e r t s s p a c e s i n t h e c o n s t r u c -

    t i o n a + + b

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

    i s t o m a k e t h e n o t a t i o n f o r s i m p l e a n d c o m m o n e x -

    p r e s s i o n s e a s y t o u s e , y e t t o a l l o w f o r n a t u r a l e x t e n -

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

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

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

    a s i n g l e u n d e r l y i n g d a t a - t y p e ( a t r e e ) , a n d a s s o c i a t -

    i n g p r o g r a m m i n g l a n g u a g e \ h a c k s " w i t h m a t h e m a t i c a l

    o p e r a t i o n s ( L i s t a b l e F l a t ) m a y l e a d t o s u b t l e m a t h -

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

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

    i n i s c e n t o f p u z z l e r s i n L i s p a n d ( e s p e c i a l l y ) o n e - l i n e r s

    i n A P L .

    O p e n - e n d e d f e a t u r e s

    P r e s u m a b l y a u s e r o f t h i s p r o g r a m w i l l w i s h t o w r i t e

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

    d u c e d b y t h e p a r s e r . T w o \ o p e n - e n d e d " a r e a s a r e

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

    ( I n t e g e r 5 ) a n d t h e r e a l n u m b e r s , w h i c h a r e p a r s e d

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

    g e r s . F o r e x a m p l e , 1 . 2 0 i s ( R e a l 1 2 0 ) . T h i s b y n o

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

    a l l o w e d .

    O t h e r M o d i c a t i o n s

    W e f o u n d s o m e p u z z l i n g p a r s e s i n M a t h e m a t i c a . F o r

    e x a m p l e a < b > c p a r s e s a s I n e q u a l i t y a , L e s s , b ,

    G r e a t e r , c ] y e t a < b = = c p a r s e s a s E q u a l L e s s a ,

    b ] , c ] . E v e n t h o u g h I n e q u a l i t y a p p e a r s t o b e

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

    ( I n e q u a l i t y a L e s s b E q u a l c ) . T h i s c h a n g e s t h e

    s y n t a x o n l y w i t h r e s p e c t t o m o r e - t h a n - 2 - a r g u m e n t

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

    l a n g u a g e s e n t i r e l y .

    W e p a r s e 1 . 2 . 3 a s ( D o t ( R e a l 1 2 ) 3 ) w h e r e a s

    M a t h e m a t i c a v e r s i o n 1 . 2 g i v e s a n e r r o r .

    T h e u s e o f M a t h e m a t i c a P a c k a g e s a n d C o n t e x t s i s

    n o t s u p p o r t e d ( n o r i s i t i n h i b i t e d ) { i t n e e d n o t b e

    t r e a t e d a s a s y n t a c t i c i s s u e : w e b e l i e v e i t c a n b e h a n -

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

    A l t h o u g h m a p p i n g i n t o L i s p p a c k a g e s i s a n o b v i o u s a p -

    p r o a c h , i t w o u l d r e q u i r e f u r t h e r s t u d y . M e r e l y r e c r e -

    a t i n g t h e i m p l e m e n t a t i o n o f h i d i n g o f i n f o r m a t i o n i n

    M a t h e m a t i c a m a y b e l e s s t h a n i d e a l .

    T e s t s

    W e h a v e p a r s e d v a r i o u s l i b r a r y l e s i n a s t a n d a r d v e r -

    s i o n 1 . 2 M a t h e m a t i c a d i s t r i b u t i o n , w i t h o u t e n c o u n -

    t e r i n g a n y s y n t a x e r r o r s . E x a m i n a t i o n o f t h e o u t p u t

    ( b y e y e ) s u g g e s t s t h e t r a n s l a t i o n i s a c c u r a t e . D e t a i l e d

    c h e c k s o n e a c h c o n s t r u c t i o n ( s o m e o f w h i c h a r e a c t u a l l y

    2

  • 8/14/2019 lmath

    3/3

    q u i t e u n l i k e l y t o h a v e m u c h m e a n i n g ) w e r e a l s o p e r -

    f o r m e d , c o m p a r i n g t h e M a t h e m a t i c a f o r m t o t h e L i s p

    f o r m .

    W e t i m e d o u r p r o g r a m t o p a r s e ( a n d g e n e r a t e i n t e r -

    n a l s t r u c t u r e f o r ) a l i b r a r y l e f o r p i e c e w i s e i n t e g r a t i o n

    o f 9 5 0 l i n e s a n d 3 2 , 0 0 0 c h a r a c t e r s o f M a t h e m a t i c a c o d e .

    I t t o o k a b o u t 5 . 7 C P U s e c o n d s o n a M I P S M / 1 2 0 m a -

    c h i n e a n d a b o u t 2 6 s e c o n d s o n a V A X - 1 1 / 7 8 5 , e a c h r u n -

    n i n g A l l e g r o C o m m o n L i s p . I t t o o k a b o u t 1 5 . 5 C P U

    s e c o n d s o n a n I B M R T ( A P ) r u n n i n g L u c i d C o m m o n

    L i s p . D e f a u l t \ o p t i m i z a t i o n " s e t t i n g s w e r e u s e d . I n

    e a c h c a s e , a b o u t h a l f t h e C P U t i m e i s s p e n d i n t h e

    c o l l e c t i o n o f c h a r a c t e r f o r t o k e n s .

    W e e s t i m a t e t h a t a b o u t 3 0 % o f t h e t i m e o f t h e p a r s -

    i n g t i m e i s t a k e n u p i n c h e c k i n g f o r t h e t e r m i n a t i o n o f a

    \ s e n t e n c e " a t e a c h \ n e w l i n e " { i n o u r i m p l e m e n t a t i o n ,

    a c o s t l y \ c o n v e n i e n c e " o f t h e M a t h e m a t i c a l a n g u a g e .

    W h a t N e x t

    C l e a r l y a r u d i m e n t a r y e v a l u a t i o n / s i m p l i c a t i o n / p a t -

    t e r n m a t c h i n g s y s t e m a l o n g t h e l i n e s o f M a t h e m a t i c a ' s

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

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

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

    t a r y c o r r e s p o n d e n c e s t o t h e M a t h e m a t i c a s y n t a x , t h e r e

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

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

    m a y h a v e a s y m p t o t i c a l l y s u p e r i o r c o m p l e x i t y t o M a t h -

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

    C o m m o n L i s p i s u s e d t o g o o d e e c t i n t h e s e a d d i t i o n a l

    t a s k s .

    W h y L i s p

    T h e l e x i c a l a n a l y z e r a n d p a r s e r u s e s o m e L i s p f e a t u r e s :

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

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

    c i s i o n i n t e g e r s . T h e b u i l t - i n s t o r a g e a l l o c a t i o n f e a t u r e s

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

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

    g i n g , w e r e p o s i t i v e a s p e c t s o f c h o o s i n g L i s p .

    I n p r i n c i p l e , a m a j o r d i s a d v a n t a g e i n u s i n g C o m m o n

    L i s p a s a b a s e i s t h a t m o s t i m p l e m e n t a t i o n s r e q u i r e

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

    t h i s a p p l i c a t i o n . S i n c e i t i s n o t p a r t i c u l a r l y i m p o r t a n t

    t o u s t o m a k e t h i s e x p e r i m e n t a l s y s t e m r u n o n s m a l l

    c o m p u t e r s , t h i s i s n o t a n i s s u e .

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

    s a m e b a s e s y s t e m , s u b r o u t i n e s f r o m M a c s y m a , R e d u c e ,

    o r S c r a t c h p a d , a l l w r i t t e n i n L i s p .

    T h e s o l e n o n - s t a n d a r d C o m m o n L i s p f e a t u r e w e e x -

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

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

    o t h e r w i s e o u r p r o g r a m p r o d u c e s ( P L U S X Y ) i n s t e a d o f

    ( P l u s x y ) f o r t h e i n p u t x + y

    A v a i l a b i l i t y o f t h e P r o g r a m

    A c o p y o f t h e p r o g r a m ( a s w e l l a s t h i s p a p e r i n

    L

    a

    T

    E

    X f o r m ) i s a v a i l a b l e v i a f t p f r o m a n a r p a n e t s i t e .

    T h e p r o g r a m i s a b o u t 9 4 4 l i n e s , 2 8 , 0 0 0 c h a r a c t e r s .

    S i n c e a n a n n o u n c e m e n t o n a n e l e c t r o n i c b u l l e t i n b o a r d

    ( s c i . m a t h . s y m b o l i c ) i n J a n u a r y , 1 9 9 0 , f r e e c o p i e s h a v e

    b e e n d i s t r i b u t e d t o s i t e s i n N o r w a y , F r a n c e , S w e d e n ,

    t h e N e t h e r l a n d s , a n d 7 s i t e s i n t h e U S A . C o n t a c t t h e

    a u t h o r ( f a t e m a n @ b e r k e l e y . e d u ) f o r d e t a i l s o n f u r t h e r

    d i s t r i b u t i o n .

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

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

    g r a n t s : N a t i o n a l S c i e n c e F o u n d a t i o n u n d e r g r a n t n u m -

    b e r C C R - 8 8 1 2 8 4 3 t h r o u g h t h e C e n t e r f o r P u r e a n d A p -

    p l i e d M a t h e m a t i c s , U n i v e r s i t y o f C a l i f o r n i a a t B e r k e -

    l e y ; t h e D e f e n s e A d v a n c e d R e s e a r c h P r o j e c t s A g e n c y

    ( D o D ) A R P A o r d e r # 4 8 7 1 u n d e r c o n t r a c t N 0 0 0 3 9 - 8 4 -

    C - 0 0 8 9 , t h r o u g h t h e E l e c t r o n i c s R e s e a r c h L a b o r a t o r y ,

    U n i v e r s i t y o f C a l i f o r n i a a t B e r k e l e y ; N S F g r a n t C S D -

    8 7 2 2 7 8 8 ( E R L ) ; t h e I B M C o r p o r a t i o n a n d a m a t c h i n g

    g r a n t f r o m t h e S t a t e o f C a l i f o r n i a M I C R O p r o g r a m .

    S t u d e n t s M . D e s J a r d i n s a n d P . K l i e r c o n t r i b u t e d e a r -

    l i e r p a r t i a l v e r s i o n s o f a M a t h e m a t i c a p a r s e r .

    R e f e r e n c e s

    1 ] R o m a n M a e d e r , P r o g r a m m i n g i n M a t h e m a t i c a

    A d d i s o n - W e s l e y P u b l . C o . , R e d w o o d C i t y , C A . ,

    1 9 8 9 .

    2 ] S t e p h e n W o l f r a m , M a t h e m a t i c a { A S y s t e m f o r

    D o i n g M a t h e m a t i c s b y C o m p u t e r , A d d i s o n - W e s l e y

    P u b l . C o . , R e d w o o d C i t y , C A . , 1 9 8 8 .

    3