$ od -c -N 50000 [eris]<Lisp>KOTO>LISPUSERS>GLISP.TEdit!2 0000000 X E R O X \t G L I S P \r 2 \r \r 4 0000020 \r \r 1 \r \r G L I S P \r 1 \r \r 4 \r 0000040 \r B y : G o r d o n S . 0000060 N o v a k , J r . ( A I . N 0000100 O V A K @ U T E X A S - 2 0 . A 0000120 R P A ) \r \r U s e s f i l e s 0000140 G L I S P A , G L I S P B , 0000160 G L I S P D W I N D O W , G 0000200 L I S P G E V , G L I S P G E 0000220 V A U X , G L I E P G E V T Y 0000240 P E , G L I S P R , G L I S 0000260 P T E S T . L S P , G L I S P 0000300 V E C T O R . L S P \r S U M M 0000320 A R Y \r G L I S P i s a L 0000340 i s p - b a s e d l a n g u a 0000360 g e t h a t p r o v i d e s 0000400 h i g h - l e v e l l a n g 0000420 u a g e f e a t u r e s n o 0000440 t f o u n d i n o r d i n 0000460 a r y L i s p . T h e G L 0000500 I S P l a n g u a g e i s 0000520 i m p l e m e n t e d b y m 0000540 e a n s o f a c o m p i l 0000560 e r t h a t a c c e p t s 0000600 G L I S P a s i n p u t a 0000620 n d p r o d u c e s o r d i 0000640 n a r y L i s p a s o u t 0000660 p u t ; t h i s o u t p u t 0000700 c a n b e f u r t h e r 0000720 c o m p i l e d t o m a c h 0000740 i n e c o d e b y t h e 0000760 L i s p c o m p i l e r . \r G 0001000 L I S P a n d i t s e n v 0001020 i r o n m e n t e d i t o r 0001040 G E V i s d o c u m e n t e 0001060 d i n m e m o s a v a i l 0001100 a b l e f r o m t h e S t 0001120 a n f o r d U n i v e r s i t 0001140 y C o m p u t e r S c i e n 0001160 c e d e p a r t m e n t : \r 0001200 G L i s p U s e r ' S M a n 0001220 u a l , b y G o r d o n S 0001240 . N o v a k J r . S T A 0001260 N - C S - 8 2 - 8 9 5 , r e v 0001300 i s e d . H P P - 8 2 - 1 . \r 0001320 T h e G E V D i s p l a y 0001340 I n s p e c t o r / E d i t o r 0001360 , T e c h n i c a l R e p 0001400 o r t H P P - 8 2 - 3 2 . \r T 0001420 h e f i l e G L I S P . T T 0001440 Y , i n c l u d e d w i t h 0001460 t h e L i s p U s e r s r 0001500 e l e a s e , i n c l u d e s 0001520 t h e G L I S P U s e r ' 0001540 s M a n u a l i n t e x 0001560 t f o r m . T h e f o l 0001600 l o w i n g i s t a k e n 0001620 f r o m t h e G L i s p U 0001640 s e r ' s M a n u a l . \r I N 0001660 T R O D U C T I O N \r T h e 0001700 g o a l o f G L I S P i s 0001720 t o m a k e p r o g r a m 0001740 m i n g e a s i e r b y a 0001760 l l o w i n g d e s i g n d 0002000 e c i s i o n s t o b e e 0002020 x p r e s s e d i n a s i 0002040 n g l e p l a c e a n d l 0002060 e t t i n g t h e c o m p i 0002100 l e r g e n e r a t e c o d 0002120 e a c c o r d i n g t o t 0002140 h o s e d e s i g n d e c i 0002160 s i o n s . T h i s p h i l 0002200 o s o p h y a l l o w s s o 0002220 u r c e p r o g r a m c o d 0002240 e t o b e s h o r t e r 0002260 a n d m o r e r e a d a b l 0002300 e a n d a l l o w s d e s 0002320 i g n d e c i s i o n s t o 0002340 b e c h a n g e d w i t h 0002360 o u t r e q u i r i n g t h 0002400 a t p r o g r a m c o d e 0002420 b e r e w r i t t e n . \r G L 0002440 I S P p r o v i d e s b o t 0002460 h P a s c a l - l i k e a n 0002500 d E n g l i s h - l i k e s 0002520 y n t a x e s ; m u c h o f 0002540 t h e p o w e r a n d b 0002560 r e v i t y o f G L I S P 0002600 d e r i v e s f r o m t h e 0002620 c o m p i l e r f e a t u r 0002640 e s n e c e s s a r y t o 0002660 s u p p o r t t h e r e l a 0002700 t i v e l y i n f o r m a l , 0002720 E n g l i s h - l i k e l a 0002740 n g u a g e c o n s t r u c t 0002760 s . T h e f o l l o w i n g 0003000 e x a m p l e o f a G L 0003020 I S P f u n c t i o n i l l 0003040 u s t r a t e s t h e u s e 0003060 o f d e f i n i t e r e f 0003100 e r e n c e t o s t r u c t 0003120 u r e d o b j e c t s . \r 0003140 ( H o u r l y S a l a r i e s 0003160 ( G L A M B D A ( D : D E P A 0003200 R T M E N T ) \r ( f o r 0003220 e a c h E M P L O Y E E w 0003240 h o i s H O U R L Y \r 0003260 ( P R I N 1 N A M E ) ( 0003300 S P A C E S 3 ) ( P R I N T 0003320 S A L A R Y ) ) ) ) \r T h 0003340 e f e a t u r e s p r o v i 0003360 d e d b y G L I S P i n c 0003400 l u d e t h e f o l l o w i 0003420 n g : \r 1 . G L I S P m a 0003440 i n t a i n s k n o w l e d g 0003460 e o f o b j e c t t y p e 0003500 s a n d o f t h e " c o 0003520 n t e x t " o f t h e c o 0003540 m p u t a t i o n a s t h e 0003560 p r o g r a m i s c o m p 0003600 i l e d . F e a t u r e s o 0003620 f o b j e c t s t h a t a 0003640 r e i n c o n t e x t m a 0003660 y b e r e f e r e n c e d 0003700 d i r e c t l y ; t h e c o 0003720 m p i l e r w i l l d e t e 0003740 r m i n e h o w t o r e f 0003760 e r e n c e t h e o b j e c 0004000 t s g i v e n t h e c u r 0004020 r e n t c o n t e x t a n d 0004040 w i l l a d d t h e n e 0004060 w l y r e f e r e n c e d o 0004100 b j e c t s t o t h e c o 0004120 n t e x t . I n t h e e x 0004140 a m p l e a b o v e , t h e 0004160 f u n c t i o n ' s a r g u 0004200 m e n t , a n o b j e c t 0004220 w h o s e c l a s s i s D 0004240 E P A R T M E N T , e s t a b 0004260 l i s h e s a n i n i t i a 0004300 l c o n t e x t r e l a t i 0004320 v e t o w h i c h E M P L 0004340 O Y E E s c a n b e f o u 0004360 n d . I n t h e c o n t e 0004400 x t o f a n E M P L O Y E 0004420 E , N A M E a n d S A L A 0004440 R Y c a n b e f o u n d . 0004460 \r 2 . G L I S P s u p p 0004500 o r t s f l e x i b l e o b 0004520 j e c t d e f i n i t i o n 0004540 a n d r e f e r e n c e w i 0004560 t h a p o w e r f u l a b 0004600 s t r a c t d a t a t y p e 0004620 f a c i l i t y . O b j e c 0004640 t c l a s s e s a r e e a 0004660 s i l y d e c l a r e d t o 0004700 t h e s y s t e m . A n 0004720 o b j e c t d e c l a r a t i 0004740 o n i n c l u d e s a d e 0004760 f i n i t i o n o f t h e 0005000 s t o r a g e s t r u c t u r 0005020 e o f t h e o b j e c t 0005040 a n d d e c l a r a t i o n s 0005060 o f p r o p e r t i e s o 0005100 f t h e o b j e c t ; t h 0005120 e s e m a y b e d e c l a 0005140 r e d i n s u c h a w a 0005160 y t h a t t h e y c o m p 0005200 i l e o p e n , r e s u l t 0005220 i n g i n e f f i c i e n t 0005240 o b j e c t c o d e . \r 0005260 3 . G L I S P s u p p o r t 0005300 s o b j e c t - c e n t e r e 0005320 d p r o g r a m m i n g , i 0005340 n w h i c h p r o c e s s e 0005360 s a r e i n v o k e d b y 0005400 m e a n s o f " m e s s a 0005420 g e s " s e n t t o o b j 0005440 e c t s . O b j e c t s t r 0005460 u c t u r e s m a y b e L 0005500 i s p s t r u c t u r e s ( 0005520 f o r w h i c h c o d e i 0005540 s a u t o m a t i c a l l y 0005560 c o m p i l e d ) o r u n i 0005600 t s i n t h e u s e r ' s 0005620 f a v o r i t e r e p r e s 0005640 e n t a t i o n l a n g u a g 0005660 e ( f o r w h i c h t h e 0005700 u s e r c a n s u p p l y 0005720 c o m p i l a t i o n f u n 0005740 c t i o n s ) . \r 4 . P a 0005760 s c a l - l i k e c o n t r o 0006000 l s t a t e m e n t s a n d 0006020 l o o p c o n s t r u c t s 0006040 , s u c h a s ( F O R E 0006060 A C H < i t e m > W I T H 0006100 < p r o p e r t y > D O . 0006120 . . ) , a r e c o m p i 0006140 l e d i n t o L i s p c o 0006160 d e o f t h e a p p r o p 0006200 r i a t e f o r m . \r 5 . 0006220 C o m p i l a t i o n o f 0006240 i n f i x e x p r e s s i o n 0006260 s i s p r o v i d e d f o 0006300 r t h e a r i t h m e t i c 0006320 o p e r a t o r s a n d f 0006340 o r a d d i t i o n a l o p 0006360 e r a t o r s t h a t f a c 0006400 i l i t a t e l i s t m a n 0006420 i p u l a t i o n . O p e r a 0006440 t o r s a r e i n t e r p r 0006460 e t e d a p p r o p r i a t e 0006500 l y f o r L i s p d a t a 0006520 t y p e s a s w e l l a 0006540 s f o r n u m b e r s ; o 0006560 p e r a t o r o v e r l o a d 0006600 i n g f o r u s e r - d e f 0006620 i n e d o b j e c t s i s 0006640 p r o v i d e d b y t h e 0006660 m e s s a g e f a c i l i t y 0006700 . \r 6 . T h e G L I S P 0006720 c o m p i l e r i n f e r s 0006740 t h e t y p e s o f o b 0006760 j e c t s w h e n p o s s i 0007000 b l e a n d u s e s t h i 0007020 s k n o w l e d g e t o g 0007040 e n e r a t e e f f i c i e n 0007060 t o b j e c t c o d e . B 0007100 y p e r f o r m i n g c o m 0007120 p i l a t i o n r e l a t i v 0007140 e t o a k n o w l e d g e 0007160 b a s e , G L I S P i s 0007200 a b l e t o p e r f o r m 0007220 c e r t a i n c o m p u t a t 0007240 i o n s ( e . g . , i n h e 0007260 r i t a n c e o f a n a t 0007300 t a c h e d p r o c e d u r e 0007320 f r o m a p a r e n t c 0007340 l a s s o f a n o b j e c 0007360 t i n a k n o w l e d g e 0007400 b a s e ) a t c o m p i l 0007420 e t i m e r a t h e r t h 0007440 a n a t r u n t i m e , 0007460 r e s u l t i n g i n m u c 0007500 h f a s t e r e x e c u t i 0007520 o n . \r 7 . B y s e p 0007540 a r a t i n g o b j e c t d 0007560 e f i n i t i o n s f r o m 0007600 t h e c o d e t h a t r e 0007620 f e r e n c e s o b j e c t s 0007640 , G L I S P p e r m i t s 0007660 r a d i c a l c h a n g e s 0007700 t o o b j e c t s t r u c t 0007720 u r e s w i t h n o c h a 0007740 n g e s t o c o d e . \r \0 0007760 \0 \0 \0 \0 003 ( L I S T ( ( P A G 0010000 E N I L ( F O L I O I N F O 0010020 ( A R A B I C ) S T A R T I 0010040 N G P A G E # 1 ) ( 0 0 0010060 6 1 2 7 9 2 ) ( ( F O L I O 0010100 N I L ( P A R A L O O K S 0010120 ( Q U A D C E N T E R E D ) 0010140 C H A R L O O K S ( S U P E R 0010160 S C R I P T 0 S I Z E 1 0 0010200 F A M I L Y M O D E R N O 0010220 V E R L I N E O F F S T R I 0010240 K E O U T O F F U N D E R L 0010260 I N E O F F S L O P E R E 0010300 G U L A R W E I G H T M E D 0010320 I U M ) F O R M A T I N F O 0010340 ( A R A B I C ) ) ( 1 7 4 3 0010360 6 2 8 8 3 6 ) N I L ) ( 0010400 H E A D I N G N I L ( H E A 0010420 D I N G T Y P E R U N N I N G 0010440 H E A D ) ( 8 4 7 4 4 4 4 0010460 4 3 6 ) N I L ) ( T E X T 0010500 N I L N I L ( 8 4 9 6 0010520 4 5 6 6 0 0 ) N I L ) ) ) 0010540 ( P A G E N I L N I L ( 0 0010560 0 6 1 2 7 9 2 ) ( ( F O 0010600 L I O N I L ( P A R A L O O 0010620 K S ( Q U A D C E N T E R E 0010640 D ) C H A R L O O K S ( S U 0010660 P E R S C R I P T 0 S I Z E 0010700 1 0 F A M I L Y M O D E R 0010720 N O V E R L I N E O F F S 0010740 T R I K E O U T O F F U N D 0010760 E R L I N E O F F S L O P E 0011000 R E G U L A R W E I G H T 0011020 M E D I U M ) ) ( 2 8 2 4 2 0011040 7 2 3 6 ) N I L ) ( H E 0011060 A D I N G N I L ( H E A D I 0011100 N G T Y P E R U N N I N G H E 0011120 A D ) ( 8 4 7 4 4 4 4 4 0011140 3 6 ) N I L ) ( T E X T N 0011160 I L N I L ( 8 4 9 6 4 5 0011200 6 6 0 0 ) N I L ) ) ) ( P 0011220 A G E N I L N I L ( 0 0 0011240 6 1 2 7 9 2 ) ( ( F O L I 0011260 O N I L ( P A R A L O O K S 0011300 ( Q U A D C E N T E R E D ) 0011320 C H A R L O O K S ( S U P E 0011340 R S C R I P T 0 S I Z E 1 0011360 0 F A M I L Y M O D E R N 0011400 O V E R L I N E O F F S T R 0011420 I K E O U T O F F U N D E R 0011440 L I N E O F F S L O P E R 0011460 E G U L A R W E I G H T M E 0011500 D I U M ) ) ( 2 8 2 4 2 7 0011520 2 3 6 ) N I L ) ( H E A D 0011540 I N G N I L ( H E A D I N G 0011560 T Y P E R U N N I N G H E A D 0011600 ) ( 8 4 7 4 4 4 4 4 3 6 0011620 ) N I L ) ( T E X T N I L 0011640 N I L ( 8 4 9 6 4 5 6 0011660 6 0 0 ) N I L ) ) ) ) ) \0 \0 \0 0011700 \0 \0 005 \0 005 \0 ( \0 \0 \0 \0 001 310 \0 021 \0 0011720 \0 \0 004 002 003 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0011740 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 0011760 212 \0 212 001 8 \0 006 \0 \0 \0 004 002 003 \0 \0 \0 0012000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0012020 \0 \0 \0 \0 \0 \0 ( \0 \0 \0 \0 001 310 \0 \v \0 0012040 \0 \0 004 002 004 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0012060 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 0012100 212 \0 212 001 8 \0 \0 \0 \0 \0 004 002 004 \0 \0 \0 0012120 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0012140 \0 \0 \0 \0 \0 \0 D \0 \0 \0 \0 001 310 \0 \0 \0 0012160 \0 \0 \0 003 004 \0 \0 001 001 310 001 \0 \0 \0 \0 \0 0012200 \0 \0 \v P A G E H E A D I N G \0 \v 0012220 R U N N I N G H E A D \0 \0 \0 \0 \0 0012240 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 004 \0 0012260 006 \0 026 \0 \b T E R M I N A L \0 \n \0 0012300 \0 \0 \0 \0 \0 \0 \0 \0 024 \0 006 M O D E R 0012320 N \0 \n \0 \0 \0 \0 \0 \0 002 \0 \0 024 \0 006 M 0012340 O D E R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 0012360 024 \0 006 M O D E R N \0 \f \0 \0 \0 \0 \0 0012400 \0 002 \0 \0 024 \0 006 M O D E R N \0 006 \0 0012420 \0 \0 \0 \0 \0 \0 \0 \0 022 \0 004 L O G O \0 0012440 030 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 0012460 005 \0 \0 \0 005 \0 \0 \0 \0 006 \0 \0 \0 001 \0 \0 0012500 \0 \0 005 \0 \0 \0 006 \0 \0 \0 \0 003 \0 \0 \0 \0 0012520 \0 002 \0 005 \0 \0 \0 002 \0 001 \0 \v H R U L 0012540 E . G E T F N 001 \0 024 \0 006 M O D E 0012560 R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 0012600 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 004 \0 \0 \0 0012620 002 \0 001 \0 \v H R U L E . G E T F N 0012640 001 \0 024 \0 006 M O D E R N \0 \n \0 \0 \0 0012660 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 0012700 \0 \0 \0 002 \0 004 \0 \0 \0 002 \0 001 \0 \v H R 0012720 U L E . G E T F N 001 \0 024 \0 006 M O 0012740 D E R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0012760 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 002 \0 0013000 \0 \0 006 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 002 0013020 \0 \0 \0 002 \0 001 \0 \v H R U L E . G E 0013040 T F N 001 \0 024 \0 006 M O D E R N \0 \f 0013060 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 001 \0 \0 \0 \0 0013100 004 \0 \0 \0 \0 \0 002 \0 004 \0 \0 \0 002 \0 001 \0 0013120 \v H R U L E . G E T F N 001 \0 024 \0 0013140 006 M O D E R N \0 \f \0 \0 \0 \0 \0 \0 002 0013160 \0 \0 \0 \0 001 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 0013200 \0 001 \0 \0 \0 4 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0013220 002 \0 001 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 0013240 \0 002 \0 001 \0 \0 \0 v \0 \0 \0 \0 003 \0 \0 \0 0013260 \0 \0 002 \0 003 \0 \0 \0 \a \0 \0 \0 \0 002 \0 \0 0013300 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 003 \0 0013320 \0 001 + \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 003 0013340 \0 \0 \0 201 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 0013360 003 \0 \0 \0 P \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0013400 \0 003 \0 \0 \0 ? \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0013420 002 \0 003 \0 \0 \0 237 \0 \0 \0 \0 003 \0 \0 \0 \0 0013440 \0 002 \0 003 \0 \0 \0 \f \0 \0 \0 \0 002 \0 \0 \0 0013460 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 003 \0 \0 0013500 001 c \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 003 \0 0013520 \0 001 @ \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 003 0013540 \0 \0 \0 * \0 \0 \0 \0 001 \0 \0 \0 \0 \0 002 \0 0013560 003 \0 \0 \0 % \0 \0 \0 \0 001 \0 \0 \0 \0 \0 002 0013600 \0 003 \0 \0 \0 1 \0 \0 \0 \0 001 \0 \0 \0 \0 \0 0013620 002 \0 003 \0 \0 \0 6 \0 \0 \0 \0 003 \0 \0 \0 \0 0013640 \0 002 \0 003 \0 \0 002 036 \0 \0 \0 \0 003 \0 \0 \0 0013660 \0 \0 002 \0 003 \0 \0 001 } \0 \0 \0 \0 003 \0 \0 0013700 \0 \0 \0 002 \0 003 \0 \0 001 ; \0 \0 \0 \0 003 \0 0013720 \0 \0 \0 \0 002 \0 003 \0 \0 \0 @ \0 \0 \0 \0 003 0013740 \0 \0 \0 * \0 \0 \0 \0 001 \0 \0 \0 9 \0 \0 \0 0013760 \0 003 \0 \0 \0 \0 \0 002 \0 003 \0 \0 001 6 \0 \0 0014000 \0 \0 003 \0 \0 \0 \0 \0 002 \0 003 \0 \0 001 222 \0 0014020 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 003 \0 \0 \0 231 0014040 \0 \0 \0 \0 003 \0 \0 \0 001 \0 \0 \0 \0 002 \0 \0 0014060 \0 \0 \0 002 \0 003 \0 \0 017 357 \0 J z 272 0014076