$ od -c -N 50000 [_CD8_]<cedardocs>pe1>EPEReportReprint.dm!1 0000000 377 \0 \0 e p e 0 . b r a v o \0 373 231 0000020 \a 003 \0 \0 376 001 \0 226 374 P a g e N 0000040 u m b e r s : Y e s X : 0000060 5 3 0 Y : 1 0 . 5 " 0000100 R o m a n F i r s t P 0000120 a g e : 0 N o t - o n - 0000140 f i r s t - p a g e \r C o l u m 0000160 n s : 1 E d g e M a r 0000200 g i n : . 6 " B e t w e 0000220 e n C o l u m n s : . 4 " \r 0000240 M a r g i n s : T o p : 0000260 1 . 3 " B o t t o m : 1 0000300 " \r L i n e N u m b e r s : 0000320 N o M o d u l u s : 5 0000340 P a g e - r e l a t i v e \r 0000360 E v e n H e a d i n g : 032 q k 0000400 4 0 ( 6 3 5 ) \ g \r R E Q U I R 0000420 E M E N T S F O R 376 001 \0 362 246 0000440 A N E X P E R I M E N T A L 0000460 P R O G R A M M I N G E N V I 0000500 R O N M E N T 032 y 7 5 6 q c k 4 0000520 0 \ g 1 f 1 1 9 f 0 1 f 1 0000540 1 2 f 0 1 f 1 1 1 f 0 1 f 0000560 1 \r O d d H e a d i n g : N 0000600 o t - o n - f i r s t - p a g e 0000620 032 q k 4 0 \ g \r R E Q U I R E M 0000640 E N T S F O R A N E X P E 0000660 R I M E N T A L P R O G R A M 0000700 M I N G E N V I R O N M E N T 0000720 032 y 7 5 6 q c k 4 0 \ g 1 f 1 0000740 1 9 f 0 1 f 1 1 2 f 0 1 f 0000760 1 1 1 f 0 1 f 1 \r R e q u i 0001000 r e m e n t s f o r a n \r E 0001020 x p e r i m e n t a l P r o 376 0001040 001 \0 M 227 g r a m m i n g E n v 0001060 i r o n m e n t 032 y 6 4 8 x 6 \ 0001100 f 9 b g \r e d i t e d b y L 0001120 . P e t e r D e u t s c h 0001140 a n d E d w a r d A . T a 0001160 f t 032 z 1 8 6 9 7 e 2 4 ( 0 , 5 0001200 1 5 2 ) \ f 6 b g \r C S L - 8 0 0001220 - 1 0 \t J u n e 1 9 8 0 ; r 0001240 e p r i n t e d M a y 1 9 8 0001260 2 032 z 1 8 6 9 7 e 2 4 ( 1 , 9 0 0001300 8 8 ) \ f 7 b g \r c C o p y r 0001320 i g h t X e r o x C o r p o 0001340 r a t i o n 1 9 8 2 . A l 0001360 l r i g h t s r e s e r v e 0001400 d . 032 z 1 8 6 9 7 e 2 4 ( 6 3 5 0001420 ) \ f 3 g 1 f 7 \r A b s t r a c 0001440 t : W 376 001 \0 V 340 e d e f i n 0001460 e e x p e r i m e n t a l p 0001500 r o g r a m m i n g t o m e 0001520 a n t h e p r o d u c t i o 0001540 n o f m o d e r a t e - s i 0001560 z e s o f t w a r e s y s t 0001600 e m s t h a t a r e u s a 0001620 b l e b y m o d e r a t e 0001640 n u m b e r s o f p e o p l 0001660 e i n o r d e r t o t e 0001700 s t i d e a s a b o u t s 0001720 u c h s y s t e m s . A n 0001740 e x p e r i m e n t a l p r 0001760 o g r a m m i n g e n v i r o 0002000 n m e n t e n a b l e s a 0002020 s m a l l n u m b e r o f 0002040 p r o g r a m m e 376 001 \0 \b 362 r s 0002060 t o c o n s t r u c t s u 0002100 c h e x p e r i m e n t a l 0002120 s y s t e m s e f f i c i e n 0002140 t l y a n d c h e a p l y 023 0002160 a n i m p o r t a n t g o a 0002200 l i n v i e w o f t h e 0002220 r i s i n g c o s t o f 0002240 s o f t w a r e . 032 z 1 8 6 9 7 0002260 x 6 e 4 0 j ( 0 , 5 1 5 2 ) ( 1 0002300 , 6 5 5 3 5 ) \ f 6 b g 1 0 B 1 0002320 0 i 2 4 I 1 5 1 i 3 6 I \r I n 0002340 t h i s r e p o r t w e p 0002360 r e s e n t a c a t a l o g 0002400 o f p r o g r a m m i n g 0002420 e n v i r o n m e n t c a p a 0002440 b i l i t i e s a n d a 376 001 0002460 \0 315 346 n e v a l u a t i o n 0002500 o f t h e i r c o s t , v 0002520 a l u e , a n d r e l a t i 0002540 v e p r i o r i t y . F o 0002560 l l o w i n g t h i s w e 0002600 d i s c u s s t h e s e c a 0002620 p a b i l i t i e s i n t h 0002640 e c o n t e x t o f t h r 0002660 e e e x i s t i n g p r o g 0002700 r a m m i n g e n v i r o n m 0002720 e n t s : L i s p , M e s a 0002740 , a n d S m a l l t a l k . 0002760 W e c o n s i d e r t h 0003000 e i m p o r t a n c e o f 0003020 s p e c i f i c c a p a b i l 0003040 i t i e s i n e n v i r o n 0003060 m e n 376 001 \0 B 316 t s t h a t 0003100 a l r e a d y h a v e t h e 0003120 m a n d t h e p o s s i b 0003140 i l i t y o f i n c l u d i 0003160 n g t h e m i n e n v i r 0003200 o n m e n t s t h a t d o 0003220 n o t . 032 z 1 8 6 9 7 x 6 e 1 2 0003240 j ( 6 3 5 ) \ f 6 g \r C R C a 0003260 t e g o r i e s : 4 . 2 0 , 0003300 4 . 3 3 , 4 . 3 4 , 4 . 4 032 0003320 z 1 8 6 9 7 x 6 e 3 0 j ( 0 , 5 0003340 1 5 2 ) \ f 6 b g 1 4 B \r K e y 0003360 w o r d s a n d p h r a s 0003400 e s : p r o g r a m m i n g 0003420 e n v i r o n m e n t , e x p 0003440 e r i m e n t a l p r o g r a 0003460 m m i n g 032 z 1 376 001 \0 313 017 8 6 9 0003500 7 x 6 e 3 0 j \ f 6 b g 2 2 B \r 0003520 X E R O X 032 z 1 8 6 9 7 y 1 5 1 0003540 ( 6 3 5 ) \ f 2 g 5 f 7 b \r X e 0003560 r o x C o r p o r a t i o n \r 0003600 P a l o A l t o R e s e a r 0003620 c h C e n t e r s \r 3 3 3 3 0003640 C o y o t e H i l l R o a d 0003660 \r P a l o A l t o , C a l i 0003700 f o r n i a 9 4 3 0 4 032 l 1 0 0003720 7 9 5 y 1 4 8 ( 2 1 1 6 ) \ f 6 0003740 g \r P r e f a c e 032 x 6 e 3 6 k 0003760 7 9 2 ( 6 3 5 ) \ f 5 b g \r C o 0004000 m p u t e r s o f t w a r e 0004020 c o s t s r i s e s t e a d 0004040 i l y , a s w e e x p a n 0004060 d o u r a m b i t i o 376 001 \0 0004100 324 361 n s t o i n c l u d e 0004120 e v e r m o r e c o m p l e 0004140 x s y s t e m s u s i n g 0004160 e v e r c h e a p e r h a r 0004200 d w a r e . T h e s o f t 0004220 w a r e t h a t w e c a n 0004240 p r o d u c e , a n d t h 0004260 e r a t e a t w h i c h 0004300 w e c a n p r o d u c e i 0004320 t , a r e t o o o f t e n 0004340 l i m i t i n g f a c t o r 0004360 s i n o u r r e s e a r c 0004400 h w i t h i n t h e X e r 0004420 o x P a l o A l t o R e s 0004440 e a r c h C e n t e r ' s C 0004460 o m p u t e r S c i e n c e 0004500 L a 376 001 \0 I 374 b o r a t o r y 0004520 ( C S L ) . W e b e l i e 0004540 v e t h a t i t i s i n 0004560 c r e a s i n g l y d e s i r 0004600 a b l e , f e a s i b l e , 0004620 a n d e c o n o m i c t o 0004640 u s e c o m p u t e r s t o 0004660 d i r e c t l y a s s i s t 0004700 t h e p r o c e s s o f 0004720 e x p e r i m e n t a l p r o 0004740 g r a m m i n g . 032 d 3 7 0 5 x 0004760 6 e 1 2 j k 4 0 \ g \r T h i s 0005000 r e p o r t w a s p r o d u 0005020 c e d t w o y e a r s a g 0005040 o a s t h e r e p o r t 0005060 o f a n a d h o c \a \a P 0005100 r o g r a m m 376 001 \0 9 . i n g 0005120 E n v i r o n m e n t W o r k 0005140 i n g G r o u p ' ' t h a t 0005160 I c h a i r e d . I t 0005200 p r o v i d e d m u c h o f 0005220 t h e i n i t i a l i m p 0005240 e t u s f o r C e d a r , 0005260 a m a j o r p r o j e c t 0005300 n o w u n d e r w a y i n 0005320 C S L . C e d a r i s d 0005340 e v e l o p i n g a n a d v 0005360 a n c e d p r o g r a m m i n 0005400 g e n v i r o n m e n t f o 0005420 r t h e M e s a l a n g u 0005440 a g e a s t h e b a s i s 0005460 f o r m o s t o f o u r 0005500 p r o g r a m m i n g 376 001 \0 R 0005520 344 d u r i n g t h e n e x 0005540 t s e v e r a l y e a r s . 0005560 W e p l a n t o r e p 0005600 o r t i n d u e c o u r s 0005620 e b o t h o n v a r i o u 0005640 s n o v e l a s p e c t s 0005660 o f t h e d e s i g n o f 0005700 C e d a r a n d o n o u 0005720 r e x p e r i e n c e s i n 0005740 c o n s t r u c t i n g a n 0005760 d u s i n g i t . 032 d 3 7 0 0006000 5 x 6 j k 4 0 \ g \r M e a n w h 0006020 i l e , i n t e r e s t i n 0006040 t h e i m p o r t a n t p 0006060 r o p e r t i e s o f p r o 0006100 g r a m m i n g e n v i r o n 0006120 m 376 001 \0 225 250 e n t s h a s b 0006140 e e n g r o w i n g . F o 0006160 r e x a m p l e , t h e U 0006200 . S . D e p a r t m e n t 0006220 o f D e f e n s e r e c e n 0006240 t l y p u b l i s h e d \a \a 0006260 R e q u i r e m e n t s f o r 0006300 A d a P r o g r a m m i n g 0006320 S u p p o r t E n v i r o n 0006340 m e n t s . ' ' [ S t o n e m 0006360 a n , 1 9 8 0 ] O u r s 0006400 i t u a t i o n h a s m u c 0006420 h i n c o m m o n w i t h 0006440 t h a t o f o t h e r g 0006460 r o u p s n e e d i n g p r 0006500 o g r a m m i n g e n v i r o 0006520 n m e n t s 376 001 \0 336 034 ; h e n 0006540 c e w e b e l i e v e t h 0006560 a t o t h e r s m a y b e 0006600 i n t e r e s t e d i n t 0006620 h e r e q u i r e m e n t s 0006640 t h a t w e o r i g i n a l 0006660 l y s e t f o r C e d a r 0006700 . 032 d 3 7 0 5 x 6 j k 4 0 \ g \r 0006720 T h i s r e p o r t w a s 0006740 o r i g i n a l l y e d i t e 0006760 d b y P e t e r D e u t s 0007000 c h f o r c o n s i d e r a 0007020 t i o n w i t h i n C S L . 0007040 E d T a f t h a s e d 0007060 i t e d i t s l i g h t l y 0007100 t o m a k e i t m o r e 0007120 c o m p r e h e n s 376 001 \0 330 221 0007140 i b l e o u t s i d e i t s 0007160 o r i g i n a l c o n t e x 0007200 t , b u t h a s n o t a 0007220 t t e m p t e d t o e i t h 0007240 e r u p d a t e o r g e n 0007260 e r a l i z e i t . C o n 0007300 s i d e r i n g i t s a g e 0007320 , a n d t h e s p e e d 0007340 w i t h w h i c h i t w a 0007360 s p r e p a r e d , I b e 0007400 l i e v e t h a t i t s t 0007420 a n d s u p v e r y w e l 0007440 l . H o w e v e r , t h e 0007460 r e a d e r s h o u l d b 0007500 e a r i n m i n d t h a t 0007520 i t w a s a d d r e s s e 0007540 376 \0 r 034 S d t o t h e p r 0007560 o b l e m s o f C S L a s 0007600 w e s a w t h e m i n 0007620 m i d - 1 9 7 8 . 032 d 3 7 0 5 x 0007640 6 j k 4 0 \ g 1 8 2 i 3 I \r J . 0007660 J . H o r n i n g \r J u n e 0007700 1 9 8 0 032 l 1 0 7 9 5 x 6 e 8 0007720 j k 4 0 \ g \r 377 \0 \0 e p e 1 . b 0007740 r a v o \0 373 231 \0 ( \0 \0 376 001 \0 " 0007760 4 P a g e N u m b e r s : Y 0010000 e s X : 5 5 2 Y : 0010020 1 0 . 5 " F i r s t P 0010040 a g e : 1 \r C o l u m n s : 0010060 2 E d g e M a r g i n : 0010100 6 0 B e t w e e n C o 0010120 l u m n s : 2 5 \r M a r g i n 0010140 s : T o p : 7 5 B 0010160 o t t o m : 6 0 \r L i n e N 0010200 u m b e r s : N o M o d 0010220 u l u s : 5 P a g e - r 0010240 e l a t i v e \r E v e n H e a 0010260 d i n g : 032 z 1 9 4 7 3 l 2 1 1 0010300 7 q k 4 0 ( 6 3 5 ) \ g \r R E Q 0010320 U I R E M E N T S F O R A N 0010340 E X P E R I M E N T A L P R 0010360 O 376 001 \0 222 263 G R A M M I N G E 0010400 N V I R O N M E N T 032 z 1 9 4 7 0010420 3 l 2 1 1 7 y 7 5 6 q c k 4 0 \ 0010440 g 1 f 1 1 9 f 0 1 f 1 1 2 0010460 f 0 1 f 1 1 1 f 0 1 f 1 0010500 1 0 G \r O d d H e a d i n g : 0010520 N o t - o n - f i r s t - p a 0010540 g e 032 z 1 9 4 7 3 l 2 1 1 7 q k 0010560 4 0 \r I N T R O D U C T I O N 032 0010600 z 1 9 4 7 3 l 2 1 1 7 y 7 5 6 q 0010620 c k 4 0 \ g 1 f 1 1 1 G \r 1 . 0010640 I n t r o d u c t i o n 032 z 1 0010660 0 3 3 6 l 2 1 1 7 x 4 e 2 0 k 7 0010700 9 2 \ f 5 b \r C h a r t e r a 0010720 n d h i s t o r y 032 z 1 0 3 3 0010740 6 l 2 1 1 7 x 4 e 1 2 k 8 0 \ i 0010760 \r T h e p 376 001 \0 274 372 u r p o s 0011000 e o f t h i s r e p o r t 0011020 i s t o c o l l e c t a 0011040 n d s e t d o w n o u r 0011060 e x p e r i e n c e a n d i 0011100 n t e n t i o n s i n t h e 0011120 a r e a o f p r o g r a m 0011140 m i n g e n v i r o n m e n t 0011160 s . T h i s m a t e r i a 0011200 l w a s p r e - p a r e d 0011220 b y a w o r k i n g g r o 0011240 u p c o n s i s t i n g o f 0011260 t h e f o l l o w - i n g 0011300 m e m b e r s o f t h e P 0011320 A R C C o m p u t e r S c i 0011340 e n c e L a b o r a t o r y : 0011360 032 z 1 0 3 3 6 l 2 1 1 376 001 \0 x p 0011400 7 d 2 6 4 6 x 4 e 8 j k 3 5 \ 2 0011420 1 8 f 1 3 f 0 \r L . P e t e 0011440 r D e u t s c h \r J a m e s 0011460 J . H o r n i n g \r B u t l e 0011500 r W . L a m p s o n \r J a m 0011520 e s H . M o r r i s \r E d w 0011540 i n H . S a t t e r t h w a 0011560 i t e ( X e r o x S D D ) \r 0011600 W a r r e n T e i t e l m a n 0011620 032 z 1 0 3 3 6 l 2 6 5 6 e 8 k 3 0011640 5 ( 0 , 2 6 5 6 ) \r w i t h t 0011660 h e o c c a s i o n a l p a 0011700 r t i c i p a t i o n o f A 0011720 l a n P e r l i s ( Y a l e 0011740 U n i v e r s i t y ) . 032 z 1 0011760 0 3 3 6 l 2 1 1 7 d 2 1 1 2 x 4 0012000 376 001 \0 M 247 e 8 j k 3 5 ( 6 3 5 ) 0012020 \r W e q u i c k l y d e c i 0012040 d e d t h a t t h e r i g 0012060 h t w a y t o p r o c e e 0012100 d w a s t o a d d r e s s 0012120 w h a t w e f e l t w a 0012140 s t h e r e a l q u e s t 0012160 i o n r e q u i r i n g r e 0012200 s o l u t i o n , n a m e l y 0012220 t o p r o d u c e a c a 0012240 t a l o g o f p r o g r a m 0012260 m i n g e n v i r o n m e n t 0012300 c a p a b i l i t i e s w h 0012320 i c h i n c l u d e d j u s 0012340 t i f i e d v a l u e , c o 0012360 s t , a n d p r i o r i t y 0012400 e v a l 376 001 \0 323 204 u a t i o n 0012420 s . 032 z 1 0 3 3 6 l 2 1 1 7 d 2 0012440 6 4 6 x 4 j k 3 5 \r T h e w o 0012460 r k i n g g r o u p w a s 0012500 g i v e n a o n e - m o n t 0012520 h d e a d l i n e a n d h 0012540 e l d e i g h t t w o - h o 0012560 u r m e e t i n g s . N e 0012600 e d l e s s t o s a y , t 0012620 h e r e w e r e m a n y a 0012640 r e a s w e h a d t o t 0012660 r e a t s u p e r f i c i a l 0012700 l y b e c a u s e o f t h 0012720 e t i m e c o n s t r a i n 0012740 t , a n d s o m e a r e a 0012760 s i n w h i c h w e r e 0013000 a l i z e d w e 376 001 \0 \n 204 s 0013020 i m p l y c o u l d n o t 0013040 r e a c h a g r e e m e n t . 0013060 W e a l s o r e a l i z 0013100 e t h a t w e h a v e u 0013120 n d o u b t e d l y o v e r l 0013140 o o k e d s o m e s i g n i 0013160 f i c a n t i s s u e s a n 0013200 d v i e w p o i n t s . H 0013220 o w e v e r , w e e x p e c 0013240 t e d m u c h m o r e i n 0013260 t h e w a y o f i n t r 0013300 a c t a b l e d i s a g r e e 0013320 m e n t t h a n w e a c t 0013340 u a l l y e x p e r i e n c e 0013360 d . T h i s s u g g e s t 0013400 s t h a t w e w e r e 376 0013420 001 \0 - 266 s u c c e s s f u l a 0013440 t a v o i d i n g r e l i g 0013460 i o u s d e b a t e s , a n 0013500 d i n s t e a d w e c o n 0013520 c e n t r a t e d o n t h e 0013540 t e c h n i c a l i s s u e 0013560 s . 032 z 1 0 3 3 6 l 2 1 1 7 d 2 0013600 6 4 6 x 4 j k 3 5 \r H o w s h 0013620 o u l d w e c o m p a r e 0013640 p r o g r a m m i n g e n v i 0013660 r o n m e n t s ? 032 z 1 0 3 3 6 0013700 l 2 1 1 7 x 4 e 1 2 k 8 0 \ i g 0013720 4 7 I \r B e f o r e c o n s i 0013740 d e r i n g p a r t i c u l a 0013760 r f e a t u r e s t h a t 0014000 w e f e e l c o n t r i b u 0014020 t e t 376 001 \0 362 347 o \a \a g o o 0014040 d ' ' p r o g r a m m i n g 0014060 e n v i r o n - m e n t s , i 0014100 t i s i m p o r t a n t t 0014120 o c o n s i d e r h o w w 0014140 e c a n t e l l t h a t 0014160 o n e p r o g r a m m i n g 0014200 e n v i r o n m e n t i s \a 0014220 \a b e t t e r ' ' t h a n a 0014240 n o t h e r . 032 z 1 0 3 3 6 l 2 0014260 1 1 7 d 2 6 4 6 x 4 e 8 j k 3 5 0014300 \ g 9 4 G 1 g \r 032 z 1 0 3 3 6 l 0014320 2 1 1 7 x 4 e 2 0 k 7 9 2 \ f 5 0014340 b \r A n y e v a l u a t i o n 0014360 m u s t b e i n s o m e 0014400 c o n t e x t . T h e r e 0014420 i s n o r e 376 001 \0 334 341 a s 0014440 o n t o b e l i e v e t h 0014460 a t s o m e o n e p r o g 0014500 r a m m i n g e n v i r o n m 0014520 e n t c o u l d b e o p t 0014540 i m a l f o r a l l k i n 0014560 d s o f p r o g r a m m i n 0014600 g i n a l l p l a c e s 0014620 a t a l l t i m e s . I 0014640 n o u r d i s c u s s i o n 0014660 s , w e h a v e f o c u s 0014700 s e d o u r a t t e n t i o 0014720 n o n t h e f o r e s e e 0014740 a b l e n e e d s w i t h i 0014760 n C S L i n t h e n e x 0015000 t f e w y e a r s , w i t 0015020 h p a r t i c u l a r a 376 001 0015040 \0 ` 235 t t e n t i o n t o e 0015060 x p e r i m e n t a l p r o g 0015100 r a m - m i n g . W e h a 0015120 v e t a k e n e x p e r i m 0015140 e n t a l p r o g r a m m i n 0015160 g t o m e a n t h e p r 0015200 o d u c t i o n o f m o d e 0015220 r a t e - s i z e d s y s t e 0015240 m s t h a t a r e u s a b 0015260 l e b y m o d e r a t e n 0015300 u m b e r s o f p e o p l e 0015320 i n o r d e r t o t e s 0015340 t i d e a s a b o u t s u 0015360 c h s y s t e m s . W e 0015400 b e l i e v e t h a t i t 0015420 w i l l b e i m p o r t a n 0015440 t t 376 001 \0 S u o c o n d u c 0015460 t f u t u r e e x p e r i m 0015500 e n t s m o r e q u i c k l 0015520 y a n d a t l o w e r c 0015540 o s t t h a n i s p o s s 0015560 i b l e a t p r e s e n t . 0015600 032 z 1 0 3 3 6 l 2 1 1 7 d 2 6 4 0015620 6 x 4 e 1 2 j k 3 5 \ g 3 2 3 i 0015640 2 5 I \r I t i s d i f f i c 0015660 u l t t o q u a n t i t a t 0015700 i v e l y c o m p a r e p r 0015720 o g r a m - m i n g e n v i r 0015740 o n m e n t s , e v e n i n 0015760 f i x e d c o n t e x t s . 0016000 A l a r g e n u m b e r 0016020 o f q u a l i t a t i v e 0016040 c o m p a r i s 376 001 \0 246 306 o n s 0016060 a r e p o s s i b l e , b 0016100 u t t h e m o r e c o n v 0016120 i n c i n g o n e s a l l 0016140 s e e m t o f a l l i n t 0016160 o t w o c a t e g o r i e s 0016200 , b o t h b a s e d o n 0016220 t h e p r e m i s e t h a t 0016240 t h e p u r p o s e o f 0016260 a p r o g r a m m i n g e n 0016300 v i r o n m e n t i s , a b 0016320 o v e a l l , t o f a c i 0016340 l i t a t e p r o g r a m m i 0016360 n g . 032 z 1 0 3 3 6 l 2 1 1 7 d 0016400 2 6 4 6 x 4 j k 3 5 \ g \r F i r 0016420 s t , a g o o d p r o g r 0016440 a m m i n g e n v i r o 376 001 \0 0016460 * 345 n m e n t w i l l r e d 0016500 u c e t h e c o s t o f 0016520 s o l v i n g a p r o b l e 0016540 m b y s o f t w a r e . 0016560 T h e c o s t w i l l i n 0016600 c l u d e t h e t i m e o 0016620 f p r o g r a m m e r s a n 0016640 d o t h e r s i n d e s i 0016660 g n , c o d i n g , t e s t 0016700 i n g , d e b u g g i n g , 0016720 s y s t e m i n t e g r a t i 0016740 o n , d o c u m e n t a t i o 0016760 n , e t c . , a s w e l l 0017000 a s o f a n y m e c h a 0017020 n i c a l s u p p o r t ( c 0017040 o m p u t e r t i m e , e t 0017060 c . 376 001 \0 351 035 ) S i n c e 0017100 o u r h u m a n c o s t s 0017120 c o n t i n u e t o b e d 0017140 o m i n a n t , o n e o f 0017160 t h e m o s t c o n v i n c 0017200 i n g a r g u m e n t s i n 0017220 f a v o r o f a p a r t 0017240 i c u l a r p r o g r a m m i 0017260 n g e n v i r o n m e n t f 0017300 e a t u r e i s t h a t i 0017320 t s p e e d s u p s o m e 0017340 t i m e - c o n s u m i n g 0017360 t a s k o r r e d u c e s 0017400 t h e n e e d f o r t h a 0017420 t t a s k ( e . g . , i t 0017440 m i g h t e i t h e r s p 0017460 e e d u p 376 001 \0 032 376 d e b u 0017500 g g i n g o r r e d u c e 0017520 t h e a m o u n t o f d e 0017540 b u g g i n g n e e d e d ) . 0017560 B o t t l e n e c k r e m 0017600 o v a l i s t h e i m p l 0017620 i c i t a r g u - m e n t i 0017640 n m u c h t h a t f o l l 0017660 o w s . 032 z 1 0 3 3 6 l 2 1 1 7 0017700 d 2 6 4 6 x 4 j k 3 5 \ g 5 4 i 0017720 4 I \r S e c o n d , a g o o 0017740 d p r o g r a m m i n g e n 0017760 v i r o n m e n t w i l l a 0020000 l s o i m p r o v e t h e 0020020 q u a l i t y o f s o l u t 0020040 i o n s t o p r o b l e m s 0020060 . M e a s u r e s 376 001 \0 204 0020100 325 o f q u a l i t y i n c l 0020120 u d e t h e t i m e a n d 0020140 s p a c e e f f i c i e n c 0020160 y o f t h e p r o g r a m 0020200 s , a s w e l l a s t h 0020220 e i r u s a b i l i t y , r 0020240 e l i a b i l i t y , m a i n 0020260 t a i n a b i l i t y , a n d 0020300 g e n e r a l i t y . A r 0020320 g u - m e n t s r e l e v a n 0020340 t t o t h i s c a t e g o 0020360 r y t e n d t o b e o f 0020400 t h e f o r m \a \a t h i s 0020420 f e a t u r e r e d u c e s 0020440 t h e s e v e r i t y o f 0020460 a k n o w n s o u r c e 0020500 o 376 001 \0 225 2 f p r o b l e m s 0020520 , ' ' o r \a \a t h i s f e 0020540 a t u r e m a k e s i t e 0020560 a s i e r t o i m p r o v e 0020600 a n i m p o r t a n t a s 0020620 p e c t o f p r o g r a m s 0020640 . ' ' T h u s a f e a t 0020660 u r e m i g h t b e g o o 0020700 d b e c a u s e i t r e d 0020720 u c e s t h e f r e q u e n 0020740 c y o f c r a s h e s i n 0020760 p r o g r a m s o r b e c 0021000 a u s e i t m a k e s i t 0021020 c o n v e n i e n t t o o 0021040 p t i m i z e p r o g r a m s 0021060 ' p e r f o r m a n c e . 032 z 0021100 1 0 3 3 6 l 376 001 \0 037 G 2 1 1 7 d 0021120 2 6 4 6 x 4 j k 3 5 \ g 6 1 i 7 0021140 I \r ( T h e s e t w o c a t 0021160 e g o r i e s c o u l d b e 0021200 r e d u c e d t o o n e 0021220 b y n o t i n g t h a t t 0021240 h e r e i s a t r a d e o 0021260 f f b e t w e e n c o s t 0021300 a n d q u a l i t y . T h 0021320 u s b y f i x i n g c o s 0021340 t , w e c o u l d c o m p 0021360 a r e o n l y q u a l i t y 0021400 ; b y f i x i n g q u a l 0021420 i t y , w e c o u l d c o 0021440 m p a r e o n l y c o s t . 0021460 T h i s s e e m s t o 0021500 c o m p l i c a t e , 376 001 \0 221 \f 0021520 r a t h e r t h a n s i m 0021540 p l i f y , a q u a l i t a 0021560 t i v e e v a l u a t i o n 0021600 o f f e a t u r e s , s o 0021620 w e w i l l n o t s e e k 0021640 t o u n i f y t h e s e 0021660 t w o k i n d s o f a r g 0021700 u m e n t . ) 032 z 1 0 3 3 6 l 2 0021720 1 1 7 d 2 6 4 6 x 4 j k 3 5 \ g 0021740 \r I n t h e d i s c u s s i 0021760 o n t h a t f o l l o w s , 0022000 w e h a v e a t t e m p t 0022020 e d t o r e l a t e o u r 0022040 c a t a l o g o f \a \a i m 0022060 p o r t a n t f e a t u r e s 0022100 ' ' t o t h e s e m o r e 0022120 376 001 \0 302 036 g e n e r a l c o 0022140 n c e p t s o f w h a t m 0022160 a k e s a \a \a g o o d e n 0022200 v i r o n m e n t ' ' w h e n 0022220 e v e r t h e c o n n e c t 0022240 i o n i s n o t o b v i o 0022260 u s . I n s o m e c a s 0022300 e s , w e h a v e n o t 0022320 b e e n e n t i r e l y s u 0022340 c c e s s f u l , b e c a u s 0022360 e o u r e x p e r i e n c e 0022400 t e l l s u s t h a t s 0022420 o m e t h i n g i s e s s e 0022440 n t i a l , b u t w e h a 0022460 v e n ' t b e e n a b l e 0022500 t o a n a l y z e t h a t 0022520 e x p e r 376 001 \0 _ 343 i e n c e 0022540 t o f i n d o u t w h y . 0022560 I n a l l c a s e s , 0022600 o u r a r g u m e n t s a r 0022620 e m o r e i n t u i t i v e 0022640 t h a n l o g i c a l l y 0022660 r i g o r o u s . S t r e n 0022700 g t h e n i n g t h e s e a 0022720 r g u m e n t s w o u l d b 0022740 e a n i n t e r e s t i n g 0022760 r e s e a r c h t o p i c . 0023000 032 z 1 0 3 3 6 l 2 1 1 7 d 2 6 4 0023020 6 x 4 j k 3 5 \ g 2 8 3 i 5 I 9 0023040 7 i 3 I \r W e h a v e b e e 0023060 n l a r g e l y g u i d e d 0023100 b y e x p e r i e n c e w 0023120 i t h t h r e e 376 001 \0 { 036 c 0023140 u r r e n t p r o g r a m m i 0023160 n g e n v i r o n m e n t s 0023200 a v a i l a b l e t o t h e 0023220 P A R C c o m m u n i t y : 0023240 I n t e r l i s p , M e s a 0023260 , a n d S m a l l t a l k 0023300 [ T e i t e l m a n , 1 9 7 8 0023320 ; M i t c h e l l e t a l 0023340 . , 1 9 7 9 ; I n g a l l s 0023360 , 1 9 7 8 ] . B o t h w 0023400 h a t w e k n o w a b o u 0023420 t t h e s t r e n g t h s 0023440 a n d w h a t w e k n o w 0023460 a b o u t t h e l i m i t 0023500 a t i o n s o f t h e s e 0023520 e n v i r o n m e n t s h a 376 0023540 001 \0 \0 035 v e b e e n t a k e 0023560 n i n t o c o n - s i d e r 0023600 a t i o n . I t i s o f 0023620 c o u r s e d a n g e r o u 0023640 s t o g e n e r a l i z e 0023660 t o o b o l d l y f r o m 0023700 t h e i n t u i t i o n s a 0023720 n d p r e f e r e n c e s o 0023740 f u s e r s : i t i s v 0023760 i r t u a l l y i m p o s s i 0024000 b l e t o b e c e r t a i 0024020 n t h a t t h e u s e f u 0024040 l f e a t u r e s h a v e 0024060 b e e n c l e a r l y d i s 0024100 t i n g u i s h e d f r o m 0024120 t h o s e t h a t a r e m 0024140 e r e l 376 \0 5 : 244 y a d d i c 0024160 t i v e . 032 z 1 0 3 3 6 l 2 1 1 0024200 7 d 2 6 4 6 x 4 j k 3 5 \ g 1 0 0024220 4 f 1 3 f 0 7 0 i 6 I \r 377 \0 0024240 \0 e p e 2 a . b r a v o \0 373 231 0024260 004 G \0 \0 376 001 \0 $ 4 P a g e N u 0024300 m b e r s : Y e s X : 0024320 5 5 2 Y : 1 0 . 5 " 0024340 F i r s t P a g e : 3 \r C 0024360 o l u m n s : 2 E d g e 0024400 M a r g i n : 6 0 B e 0024420 t w e e n C o l u m n s : 2 0024440 5 \r M a r g i n s : T o p 0024460 : 7 5 B o t t o m : 6 0024500 0 \r L i n e N u m b e r s : 0024520 N o M o d u l u s : 5 0024540 P a g e - r e l a t i v e \r 0024560 E v e n H e a d i n g : 032 z 1 0024600 9 4 7 3 l 2 1 1 7 q k 4 0 ( 6 3 0024620 5 ) \ g \r R E Q U I R E M E N T 0024640 S F O R A N E X P E R I M 0024660 E N T A L P R O 376 001 \0 315 030 G R 0024700 A M M I N G E N V I R O N M E 0024720 N T 032 z 1 9 4 7 3 l 2 1 1 7 y 7 0024740 5 6 q c k 4 0 \ g 1 f 1 1 9 f 0024760 0 1 f 1 1 2 f 0 1 f 1 1 0025000 1 f 0 1 f 1 \r O d d H e a d 0025020 i n g : N o t - o n - f i r s 0025040 t - p a g e 032 z 1 9 4 7 3 l 2 1 0025060 1 7 q k 4 0 \ g \r C A T A L O G 0025100 O F P R O G R A M M I N G 0025120 E N V I R O N M E N T C A P A 0025140 B I L I T I E S 032 z 1 9 4 7 3 l 0025160 2 1 1 7 y 7 5 6 q c k 4 0 \ g 1 0025200 f 1 \r 2 . C a t a l o g o f 0025220 p r o g r a m m i n g e n v 0025240 i r o n m e n t c a p a b i l 0025260 i t i e s 032 z 1 9 4 7 3 l 2 376 001 0025300 \0 257 8 1 1 7 x 4 e 2 0 k 7 9 2 \ 0025320 f 5 b g 5 0 f 0 B \r W e h a v 0025340 e d i v i d e d t h e c a 0025360 p a b i l i t i e s o f a 0025400 p r o - g r a m m i n g e n v 0025420 i r o n m e n t i n t o f o 0025440 u r c a t e g o r i e s . 0025460 V i r t u a l m a c h i n e 0025500 / p r o g r a m m i n g l a 0025520 n g u a g e r e f e r s t o 0025540 t h o s e c a p a b i l i t 0025560 i e s t h a t a r e p r i 0025600 m i t i v e c o n c e p t s 0025620 i n t h e p r o g r a m m i 0025640 n g l a n g u a g e o r i 0025660 n t h e v i r t u a l m a 0025700 c h i 376 001 \0 ( b n e o n w h 0025720 i c h t h e p r o g r a m m 0025740 i n g l a n g u a g e r u n 0025760 s . T o o l s r e f e r s 0026000 t o c a p a b i l i t i e s 0026020 f o r o p e r a t i n g o 0026040 n p r o g r a m s . P a c 0026060 k a g e s r e f e r s t o 0026100 r e a d i l y a v a i l a b l 0026120 e p r o g r a m s t h a t 0026140 i m p l e m e n t p a r t i c 0026160 u l a r c l e a r l y d e f 0026200 i n e d h i g h e r - l e v e 0026220 l c o n c e p t s . O t h 0026240 e r i n c l u d e s d o c u 0026260 m e n t a t i o n a n d n o 0026300 n - t e c h n i 376 001 \0 221 331 c a l 0026320 c o n s i d e r a t i o n s . 0026340 032 z 1 0 3 3 6 l 2 1 1 7 d 2 6 4 0026360 6 x 4 e 8 j k 3 5 \ g 8 6 i 3 8 0026400 I 1 5 3 i 5 I 3 8 i 2 I 1 2 i 8 0026420 I 1 0 4 i 5 I \r I t i s i m 0026440 p o r t a n t t o n o t e 0026460 t h a t t h e d i v i s i o 0026500 n b e t w e e n t o o l s 0026520 a n d p a c k a g e s i s 0026540 a s o m e w h a t a r b i t 0026560 r a r y o n e : i n a g 0026600 o o d e n v i r o n m e n t , 0026620 t h e r e i s l i t t l e 0026640 d i s t i n c t i o n b e t 0026660 w e e n t h e t w o , i n 0026700 t h a t a l l t h e 376 001 \0 0026720 364 220 c a p a b i l i t y p r 0026740 o v i d e d b y t h e t o 0026760 o l s i s a v a i l a b l e 0027000 t o t h e p r o g r a m m 0027020 e r i n t h e f o r m o 0027040 f p a c k a g e s , a n d 0027060 a l l t h e c a p a b i l i 0027100 t y o f t h e l a n g u a 0027120 g e ( i n c l u d i n g t h 0027140 e p a c k a g e s , o f c 0027160 o u r s e ) i s a v a i l a 0027200 b l e t o t h e h u m a n 0027220 u s e r t o e x t e n d 0027240 t h e f u n c t i o n s o f 0027260 t h e t o o l s . 032 z 1 0 3 0027300 3 6 l 2 1 1 7 d 2 6 4 6 x 4 j k 0027320 3 5 376 001 \0 ; U \ g \r A d d i t i 0027340 o n a l l y , i t s h o u l 0027360 d b e u n d e r s t o o d 0027400 t h a t w e a r e d i s c 0027420 u s s i n g a p r o g r a m 0027440 m i n g e n v i r o n m e n t 0027460 f o r a c o m - p u t a t 0027500 i o n a l l y r i c h e n v 0027520 i r o n m e n t : m a n y o 0027540 f t h e s e c a p a - b i l 0027560 i t i e s a r e f e a s i b 0027600 l e o n l y w h e n e a c 0027620 h p r o g r a m m e r h a s 0027640 s u b s t a n t i a l c o m 0027660 p u t i n g p o w e r a v a 0027700 i l a b l e t o h i m a t 0027720 a l l t i 376 001 \0 254 334 m e s . 0027740 M o r e s p e c i f i c a 0027760 l l y , w e e x p e c t o 0030000 u r c o m p u t i n g f a c 0030020 i l i t i e s t o b e d o 0030040 m i n a t e d b y h i g h - 0030060 p e r f o r m a n c e p e r s 0030100 o n a l c o m p u t e r s s 0030120 u c h a s t h e D o r a d 0030140 o [ L a m p s o n & P i e 0030160 r , 1 9 8 0 ] , w h i c h 0030200 i s a s u c c e s s o r t 0030220 o t h e n o w i n a d e - 0030240 q u a t e A l t o c o m p u 0030260 t e r [ T h a c k e r , e t 0030300 a l . , 1 9 7 9 ] . O u 0030320 r o r i e n t a t i o 376 001 \0 217 0030340 B n t o w a r d s i n g l e 0030360 - u s e r m a c h i n e s i 0030400 n a d i s t r i b u t e d 0030420 e n v i r o n m e n t r e q u 0030440 i r e s u s t o c o n s i 0030460 d e r a n u m b e r o f 0030500 \a \a o p e r a t i n g s y s t 0030520 e m ' ' c a p a b i l i t i e 0030540 s t h a t m i g h t b e 0030560 t a k e n f o r g r a n t e 0030600 d i n a t i m e - s h a r 0030620 i n g e n v i r o n m e n t . 0030640 032 z 1 0 3 3 6 l 2 1 1 7 d 2 6 4 0030660 6 x 4 j k 3 5 \ g 4 7 9 i 6 I \r 0030700 2 . 1 . S u m m a r y 032 z 1 0 0030720 3 3 6 l 2 1 1 7 x 4 e 2 0 k 1 0 0030740 0 376 001 \0 277 \ b g \r H e r e w 0030760 e e n u m e r a t e t h e 0031000 p r o g r a m m i n g e n v i 0031020 r o n - m e n t c a p a b i l 0031040 i t i e s w e h a v e c o 0031060 n s i d e r e d a n d p l a 0031100 c e e a c h i n o n e o 0031120 f t h e f o u r c a t e g 0031140 o r i e s . I n s u b s e 0031160 q u e n t s e c t i o n s w 0031200 e s h a l l d i s c u s s 0031220 e a c h c a p a b i l i t y 0031240 i n v a r y i n g a m o u n 0031260 t s o f d e t a i l . 032 z 1 0031300 0 3 3 6 l 2 1 1 7 d 2 6 4 6 x 4 0031320 e 8 j k 3 5 \ g \r 032 z 1 9 4 7 3 0031340 l 2 1 1 7 x 376 001 \0 374 \a 4 e 2 0 k 0031360 7 9 2 \ f 5 b g \r V i r t u a l 0031400 m a c h i n e / p r o g r 0031420 a m m i n g l a n g u a g e 032 0031440 z 1 0 3 3 6 l 2 1 1 7 e 1 1 k 8 0031460 0 \ i g \r ( L 1 ) \t L a r g e 0031500 v i r t u a l a d d r e s s 0031520 s p a c e ( > 2 4 b i t s ) 0031540 032 z 1 0 3 3 6 l 3 1 7 5 d 2 1 1 0031560 7 e 8 k 4 0 ( 0 , 3 1 7 5 ) \ g 0031600 3 4 f 3 1 f 0 \r ( L 2 ) \t D i 0031620 r e c t a d d r e s s i n g 0031640 f o r f i l e s 032 z 1 0 3 3 6 0031660 l 3 1 7 5 d 2 1 1 7 e 6 k 4 0 \ 0031700 g \r ( L 2 a ) \t S e g m e n t i 0031720 n g 032 z 1 0 3 3 6 l 4 2 3 3 d 3 0031740 1 7 5 e 6 k 4 0 ( 0 , 376 001 \0 [ | 0031760 4 2 3 3 ) \ g \r ( L 2 b ) \t A n 0032000 e n o r m o u s v i r t u a 0032020 l a d d r e s s s p a c e 0032040 ( > 4 8 b i t s ) 032 z 1 0 3 3 0032060 6 l 4 2 3 3 d 3 1 7 5 e 6 k 4 0 0032100 \ g 4 1 f 3 1 f 0 \r ( L 3 ) \t 0032120 W e l l - i n t e g r a t e d 0032140 a c c e s s t o l a r g e , 0032160 r o b u s t d a t a b a s 0032200 e s 032 z 1 0 3 3 6 l 3 1 7 5 d 2 0032220 1 1 7 e 6 k 4 0 ( 0 , 3 1 7 5 ) 0032240 \ g \r ( L 4 ) \t M e m o r y m 0032260 a n a g e m e n t 023 o b j e c t 0032300 / p a g e s w a p p i n g 032 z 0032320 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 e 0032340 6 k 4 0 \ g \r ( L 5 ) \t O b j e 0032360 376 001 \0 370 240 c t m a n a g e m e 0032400 n t 023 g a r b a g e c o l l e 0032420 c t i o n , r e f e r e n c e 0032440 c o u n t i n g 032 z 1 0 3 3 6 0032460 l 3 1 7 5 d 2 1 1 7 e 6 k 4 0 \ 0032500 g \r ( L 6 ) \t S o m e s u p p 0032520 o r t f o r i n t e r r u p 0032540 t s 032 z 1 0 3 3 6 l 3 1 7 5 d 2 0032560 1 1 7 e 6 k 4 0 \ g \r ( L 7 ) \t 0032600 A d e q u a t e e x c e p t i 0032620 o n a l c o n d i t i o n h 0032640 a n d l i n g 032 z 1 0 3 3 6 l 3 0032660 1 7 5 d 2 1 1 7 e 6 k 4 0 \ g \r 0032700 ( L 8 ) \t U s e r a c c e s s 0032720 t o t h e m a c h i n e ' 0032740 s c a p a b i l i t y f o r 0032760 p a c k 376 001 \0 005 364 e d d a t 0033000 a 032 z 1 0 3 3 6 l 3 1 7 5 d 2 1 0033020 1 7 e 6 k 4 0 \ g \r ( L 9 ) \t P 0033040 r o g r a m - m a n i p u l a b 0033060 l e r e p r e s e n t a t i o 0033100 n o f p r o g r a m s 032 z 1 0033120 0 3 3 6 l 3 1 7 5 d 2 1 1 7 e 6 0033140 k 4 0 \ g \r ( L 1 0 ) \t R u n - 0033160 t i m e a v a i l a b i l i t 0033200 y o f a l l i n f o r m a 0033220 t i o n d e r i v a b l e f 0033240 r o m s o u r c e p r o g r 0033260 a m ( e . g . , n a m e s , 0033300 t y p e s , s c o p e s ) 032 0033320 z 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 0033340 e 6 k 4 0 \ g \r ( L 1 1 ) \t S t 0033360 a t i c a l l y c 376 001 \0 | v h 0033400 e c k e d t y p e s y s t e 0033420 m 032 z 1 0 3 3 6 l 3 1 7 5 d 2 1 0033440 1 7 e 6 k 4 0 \ g \r ( L 1 2 ) \t 0033460 S e l f - t y p i n g d a t a 0033500 ( a l a L i s p a n d 0033520 S m a l l t a l k ) , r u n - 0033540 t i m e t y p e s y s t e m 0033560 032 z 1 0 3 3 6 l 3 1 7 5 d 2 1 1 0033600 7 e 6 k 4 0 \ g 2 4 i 4 I \r ( L 0033620 1 3 ) \t E n c a p s u l a t i o 0033640 n / p r o t e c t i o n m e c 0033660 h a n i s m s ( s c o p e s , 0033700 c l a s s e s , i m p o r t 0033720 / e x p o r t r u l e s ) 032 z 0033740 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 e 0033760 6 k 4 0 \ g \r ( L 1 4 ) \t A b 376 0034000 001 \0 362 271 s t r a c t i o n m e 0034020 c h a n i s m s ; e x p l i c 0034040 i t n o t i o n o f \a \a i 0034060 n t e r f a c e ' ' 032 z 1 0 3 3 0034100 6 l 3 1 7 5 d 2 1 1 7 e 6 k 4 0 0034120 \ g \r ( L 1 5 ) \t N o n - h i e 0034140 r a r c h i c a l c o n t r o 0034160 l ( c o r o u t i n e s , b 0034200 a c k t r a c k i n g ) 032 z 1 0 0034220 3 3 6 l 3 1 7 5 d 2 1 1 7 e 6 k 0034240 4 0 \ g \r ( L 1 6 ) \t A d e q u 0034260 a t e r u n - t i m e e f f 0034300 i c i e n c y 032 z 1 0 3 3 6 l 3 0034320 1 7 5 d 2 1 1 7 e 6 k 4 0 \ g 1 0034340 5 G 8 g \r ( L 1 7 ) \t I n t e r 0034360 - l a n g u a g e c o m m u n 0034400 i c a t 376 001 \0 8 024 i o n 032 z 1 0 0034420 3 3 6 l 3 1 7 5 d 2 1 1 7 e 6 k 0034440 4 0 \ g \r ( L 1 8 ) \t U n i f o 0034460 r m s c r e e n m a n a g e 0034500 m e n t 032 z 1 0 3 3 6 l 3 1 7 5 0034520 d 2 1 1 7 e 6 k 4 0 \ g \r ( L 1 0034540 9 ) \t I n h e r i t a n c e / d 0034560 e f a u l t i n g ( e . g . , 0034600 S m a l l t a l k s u b c l 0034620 a s s i n g ; d i f f i c u l 0034640 t y d e p e n d s a l o t 0034660 o n h o w m u c h i t 0034700 h a s t o d o ) 032 z 1 0 3 3 0034720 6 l 3 1 7 5 d 2 1 1 7 e 6 k 4 0 0034740 \ g \r ( L 2 0 ) \t A b i l i t y 0034760 t o e x t e n d l a n g u 0035000 a g e ( e . g . 376 001 \0 360 200 , 0035020 o p e r a t o r o v e r l o a 0035040 d i n g ) 032 z 1 0 3 3 6 l 3 1 7 0035060 5 d 2 1 1 7 e 6 k 4 0 \ g \r ( L 0035100 2 1 ) \t A b i l i t y t o c 0035120 r e a t e f u l l y i n t e 0035140 g r a t e d l o c a l s u b 0035160 l a n g u a g e s 032 z 1 0 3 3 6 0035200 l 3 1 7 5 d 2 1 1 7 e 6 k 4 0 \ 0035220 g \r ( L 2 2 ) \t U s e r a c c 0035240 e s s t o t h e m a c h i 0035260 n e ' s c a p a b i l i t y 0035300 f o r m u l t i - p r e c i s 0035320 i o n a r i t h m e t i c 032 z 0035340 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 e 0035360 6 k 4 0 \ g \r ( L 2 3 ) \t G o o 0035400 d f a c i l i t i e s f 376 001 0035420 \0 376 030 o r p r o c e s s e s , 0035440 m o n i t o r s , i n t e r 0035460 r u p t s 032 z 1 0 3 3 6 l 3 1 7 0035500 5 d 2 1 1 7 e 6 k 4 0 \ g \r ( L 0035520 2 4 ) \t S i m p l e , u n a m 0035540 b i g u o u s s y n t a x ( 0035560 i n c l u d i n g i n f i x 0035600 n o t a t i o n ) 032 z 1 0 3 3 6 0035620 l 3 1 7 5 d 2 1 1 7 e 6 k 4 0 \ 0035640 g \r ( L 2 5 ) \t C o n t r o l 0035660 o v e r i m p o r t a t i o n 0035700 o f n a m e s 032 z 1 0 3 3 6 0035720 l 3 1 7 5 d 2 1 1 7 e 6 k 4 0 \ 0035740 g \r ( L 2 6 ) \t U s e r p a c 0035760 k a g e s a s \a \a f i r s t 0036000 - c l a s s c i t i z e n s ' 0036020 ' 032 z 376 001 \0 \v } 1 0 3 3 6 l 3 1 0036040 7 5 d 2 1 1 7 e 6 k 4 0 \ g \r ( 0036060 L 2 7 ) \t C l o s u r e s 032 z 1 0036100 0 3 3 6 l 3 1 7 5 d 2 1 1 7 e 6 0036120 k 4 0 \ g \r ( L 2 8 ) \t F u l l 0036140 - s c a l e i n t e r - l a n 0036160 g u a g e c o m m u n i c a t 0036200 i o n 032 z 1 0 3 3 6 l 3 1 7 5 d 0036220 2 1 1 7 e 6 k 4 0 \ g \r ( L 2 9 0036240 ) \t U s e r m i c r o p r o g 0036260 r a m m i n g 032 z 1 0 3 3 6 l 3 0036300 1 7 5 d 2 1 1 7 e 6 k 4 0 \ g \r 0036320 ( L 3 0 ) \t C l e a n d a t a 0036340 a n d c o n t r o l t r a 0036360 p p i n g m e c h a n i s m s 0036400 032 z 1 0 3 3 6 l 3 1 7 5 d 2 1 1 0036420 7 e 6 k 4 0 \ g 376 001 \0 316 363 \r ( L 0036440 3 1 ) \t \a \a G o o d ' ' e x c 0036460 e p t i o n a l c o n d i t i 0036500 o n h a n d l i n g 032 z 1 0 3 0036520 3 6 l 3 1 7 5 d 2 1 1 7 e 6 k 4 0036540 0 \ g \r T o o l s 032 z 1 0 3 3 6 0036560 l 2 1 1 7 e 1 6 k 8 0 ( 6 3 5 ) 0036600 \ i g \r ( T 1 ) \t F a s t t u 0036620 r n a r o u n d f o r m i n 0036640 o r p r o g r a m c h a n g 0036660 e s ( l e s s t h a n 5 0036700 s e c o n d s ) 032 z 1 0 3 3 6 l 0036720 3 1 7 5 d 2 1 1 7 e 8 k 4 0 ( 0 0036740 , 3 1 7 5 ) \ g \r ( T 2 ) \t C o 0036760 m p i l e r / i n t e r p r e t 0037000 e r a v a i l a b l e w i t 0037020 h l o w o v e r h e a 376 001 \0 0037040 313 340 d a t r u n t i m e 032 0037060 z 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 0037100 e 6 k 4 0 \ g \r ( T 3 ) \t C r o 0037120 s s - r e f e r e n c e / a n n 0037140 o t a t i o n c a p a b i l i 0037160 t y 032 z 1 0 3 3 6 l 3 1 7 5 d 2 0037200 1 1 7 e 6 k 4 0 \ g \r ( T 4 ) \t 0037220 P r e t t y p r i n t e r 032 z 1 0037240 0 3 3 6 l 3 1 7 5 d 2 1 1 7 e 6 0037260 k 4 0 \ g \r ( T 5 ) \t C o n s i 0037300 s t e n t c o m p i l a t i o 0037320 n 032 z 1 0 3 3 6 l 3 1 7 5 d 2 1 0037340 1 7 e 6 k 4 0 \ g \r ( T 6 ) \t V 0037360 e r s i o n c o n t r o l 032 z 0037400 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 e 0037420 6 k 4 0 \ g \r ( T 7 ) \t L i b r 0037440 a r 376 001 \0 033 275 i a n , p r o g 0037460 r a m - o r i e n t e d f i l 0037500 i n g s y s t e m ( i n c l 0037520 u d i n g B r o w s e r ) 032 z 0037540 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 e 0037560 6 k 4 0 \ g \r ( T 8 ) \t S o u r 0037600 c e - l a n g u a g e d e b u 0037620 g g e r 032 z 1 0 3 3 6 l 3 1 7 5 0037640 d 2 1 1 7 e 6 k 4 0 \ g \r ( T 9 0037660 ) \t D y n a m i c m e a s u r 0037700 e m e n t f a c i l i t i e s 0037720 032 z 1 0 3 3 6 l 3 1 7 5 d 2 1 1 0037740 7 e 6 k 4 0 \ g \r ( T 1 0 ) \t C 0037760 h e c k p o i n t , e s t a b 0040000 l i s h i n g a p r o t e c 0040020 t e d e n v i r o n m e n t 032 0040040 z 1 0 3 3 6 l 376 001 \0 324 240 3 1 7 5 0040060 d 2 1 1 7 e 6 k 4 0 \ g \r ( T 1 0040100 1 ) \t H i s t o r y a n d u 0040120 n d o i n g 032 z 1 0 3 3 6 l 3 1 0040140 7 5 d 2 1 1 7 e 6 k 4 0 \ g \r ( 0040160 T 1 2 ) \t E d i t o r i n t e 0040200 g r a t e d w i t h l a n g 0040220 u a g e s y s t e m 032 z 1 0 3 0040240 3 6 l 3 1 7 5 d 2 1 1 7 e 6 k 4 0040260 0 \ g \r ( T 1 3 ) \t M o r e o 0040300 p t i m i z i n g c o m p i l 0040320 e r i f u s e r w i l l i 0040340 n g t o b i n d m o r e 0040360 t i g h t l y 023 w i t h f u l 0040400 l c o m p a t i b i l i t y 032 0040420 z 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 0040440 e 6 k 4 0 \ g \r ( T 1 4 376 001 \0 037 0040460 031 ) \t A i d s f o r i n c r 0040500 e m e n t a l d e v e l o p m 0040520 e n t ( s t u b s , o u t s 0040540 t a n d i n g t a s k l i s 0040560 t ) 032 z 1 0 3 3 6 l 3 1 7 5 d 2 0040600 1 1 7 e 6 k 4 0 \ g \r ( T 1 5 ) 0040620 \t R e g r e s s i o n t e s t 0040640 i n g s y s t e m 032 z 1 0 3 3 0040660 6 l 3 1 7 5 d 2 1 1 7 e 6 k 4 0 0040700 \ g \r ( T 1 6 ) \t R a n d o m 0040720 t e s t i n g a i d s 032 z 1 0 0040740 3 3 6 l 3 1 7 5 d 2 1 1 7 e 6 k 0040760 4 0 \ g \r ( T 1 7 ) \t ( h i g h 0041000 c a p a b i l i t y ) M a s 0041020 t e r s c o p e 032 z 1 0 3 3 6 l 0041040 3 1 7 5 d 2 1 1 7 e 6 k 4 0 \ g 0041060 \r 376 001 \0 q ! ( T 1 8 ) \t A c c e 0041100 s s t o o n - l i n e d o 0041120 c u m e n t a t i o n ( H e l 0041140 p s y s ) 032 z 1 0 3 3 6 l 3 1 7 0041160 5 d 2 1 1 7 e 6 k 4 0 \ g \r ( T 0041200 1 9 ) \t S t a t i c a n a l y 0041220 z e r s : v e r i f i e r , 0041240 p e r f o r m a n c e p r e d 0041260 i c t o r 032 z 1 0 3 3 6 l 3 1 7 0041300 5 d 2 1 1 7 e 6 k 4 0 \ g \r P a 0041320 c k a g e s 032 z 1 0 3 3 6 l 2 1 0041340 1 7 e 1 6 k 8 0 ( 6 3 5 ) \ i g 0041360 \r ( P 1 ) \t T e x t o b j e c 0041400 t s a n d i m a g e s 032 z 1 0041420 0 3 3 6 l 3 1 7 5 d 2 1 1 7 e 8 0041440 k 4 0 ( 0 , 3 1 7 5 ) \ g \r ( P 0041460 2 ) \t L i n 376 001 \0 L U e o b j 0041500 e c t s a n d i m a g e s 032 0041520 z 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 0041540 e 6 k 4 0 \ g \r ( P 3 ) \t S c a 0041560 n n e d ( b i t m a p ) o b 0041600 j e c t s a n d i m a g e s 0041620 032 z 1 0 3 3 6 l 3 1 7 5 d 2 1 1 0041640 7 e 6 k 4 0 \ g \r ( P 4 ) \t F o 0041660 r m a t t e d d o c u m e n t 0041700 f i l e s 032 z 1 0 3 3 6 l 3 1 0041720 7 5 d 2 1 1 7 e 6 k 4 0 \ g \r ( 0041740 P 5 ) \t M o r e e l a b o r a 0041760 t e s c r e e n m a n a g e 0042000 m e n t 032 z 1 0 3 3 6 l 3 1 7 5 0042020 d 2 1 1 7 e 6 k 4 0 \ g \r ( P 6 0042040 ) \t R e m o t e f i l e s t 0042060 o r a g e 032 z 1 0 3 3 376 001 \0 6 < 0042100 6 l 3 1 7 5 d 2 1 1 7 e 6 k 4 0 0042120 \ g \r ( P 7 ) \t S m a l l d a 0042140 t a b a s e m a n a g e r 032 0042160 z 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 0042200 e 6 k 4 0 \ g \r ( P 8 ) \t M e s 0042220 s a g e t r a n s m i s s i o 0042240 n s y s t e m 032 z 1 0 3 3 6 l 0042260 3 1 7 5 d 2 1 1 7 e 6 k 4 0 \ g 0042300 \r ( P 9 ) \t R e m o t e p r o 0042320 c e d u r e c a l l 032 z 1 0 3 0042340 3 6 l 3 1 7 5 d 2 1 1 7 e 6 k 4 0042360 0 \ g \r ( P 1 0 ) \t E v e n t 0042400 l o g g i n g 032 z 1 0 3 3 6 l 3 0042420 1 7 5 d 2 1 1 7 e 6 k 4 0 \ g \r 0042440 ( P 1 1 ) \t B a c k g r o u n d 0042460 p r o c e s s i n g 032 z 1 0 3 0042500 376 001 \0 h 274 3 6 l 3 1 7 5 d 2 1 1 0042520 7 e 6 k 4 0 \ g \r ( P 1 2 ) \t G 0042540 e n e r a l i z e d c a c h e 0042560 032 z 1 0 3 3 6 l 3 1 7 5 d 2 1 1 0042600 7 e 6 k 4 0 \ g \r ( P 1 3 ) \t D 0042620 o c u m e n t e d i t i n g 032 0042640 z 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 0042660 e 6 k 4 0 \ g \r ( P 1 4 ) \t F o 0042700 r m s 032 z 1 0 3 3 6 l 3 1 7 5 d 0042720 2 1 1 7 e 6 k 4 0 \ g \r ( P 1 5 0042740 ) \t M e n u s a n d o t h e 0042760 r s t a n d a r d u s e r 0043000 i n t e r f a c e s 032 z 1 0 3 3 0043020 6 l 3 1 7 5 d 2 1 1 7 e 6 k 4 0 0043040 \ g \r ( P 1 6 ) \t H i s t o r y 0043060 l i s t s 032 z 1 0 3 3 6 l 3 1 0043100 7 5 d 2 1 376 001 \0 215 353 1 7 e 6 k 4 0043120 0 \ g \r ( P 1 7 ) \t U s e r a 0043140 c c e s s t o f u l l b a 0043160 n d w i d t h o f d i s k 032 0043200 z 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 0043220 e 6 k 4 0 \ g \r ( P 1 8 ) \t ( E 0043240 n g l i s h ) d i c t i o n a 0043260 r y s e r v i c e 032 z 1 0 3 3 0043300 6 l 3 1 7 5 d 2 1 1 7 e 6 k 4 0 0043320 \ g \r ( P 1 9 ) \t T e l e c o n 0043340 f e r e n c i n g 032 z 1 0 3 3 6 0043360 l 3 1 7 5 d 2 1 1 7 e 6 k 4 0 \ 0043400 g \r ( P 2 0 ) \t A u d i o 032 z 1 0043420 0 3 3 6 l 3 1 7 5 d 2 1 1 7 e 6 0043440 k 4 0 \ g \r ( P 2 1 ) \t U s e r 0043460 a c c e s s t o f u l l 0043500 b a n d w i d t h 376 001 \0 | R o 0043520 f n e t w o r k s 032 z 1 0 3 3 0043540 6 l 3 1 7 5 d 2 1 1 7 e 6 k 4 0 0043560 \ g \r O t h e r 032 z 1 0 3 3 6 l 0043600 2 1 1 7 e 1 6 k 8 0 ( 6 3 5 ) \ 0043620 i g \r ( X 1 ) \t A d e q u a t e 0043640 r e f e r e n c e d o c u m 0043660 e n t a t i o n 032 z 1 0 3 3 6 l 0043700 3 1 7 5 d 2 1 1 7 e 8 k 4 0 ( 0 0043720 , 3 1 7 5 ) \ g \r ( X 2 ) \t \a \a 0043740 E f f i c i e n t ' ' i n t e 0043760 r f a c e f o r e x p e r t 0044000 s 032 z 1 0 3 3 6 l 3 1 7 5 d 2 1 0044020 1 7 e 6 k 4 0 \ g \r ( X 3 ) \t U 0044040 n i f o r m i t y i n c o m 0044060 m a n d i n t e r f a c e 032 z 0044100 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 376 0044120 001 \0 366 027 e 6 k 4 0 \ g \r ( X 4 ) 0044140 \t \a \a S e l f - t e a c h i n g 0044160 ' ' i n t e r f a c e f o r 0044200 b e g i n n e r s 032 z 1 0 3 3 0044220 6 l 3 1 7 5 d 2 1 1 7 e 6 k 4 0 0044240 \ g \r ( X 5 ) \t G o o d i n t 0044260 r o d u c t o r y d o c u m e 0044300 n t a t i o n 032 z 1 0 3 3 6 l 3 0044320 1 7 5 d 2 1 1 7 e 6 k 4 0 \ g \r 0044340 2 . 2 . V i r t u a l m a c 0044360 h i n e / p r o g r a m m i 0044400 n g l a n g u a g e 032 z 1 0 3 0044420 3 6 l 2 1 1 7 x 4 e 2 0 k 2 0 0 0044440 ( 6 3 5 ) \ b g \r ( L 1 ) \t L a 0044460 r g e v i r t u a l a d d r 0044500 e s s s p a c e ( > 2 4 b 0044520 i t s ) 376 001 \0 231 ` 032 z 1 0 3 3 6 0044540 l 3 1 7 5 d 2 1 1 7 e 1 6 k 8 0 0044560 ( 0 , 3 1 7 5 ) \ g 5 i 2 9 f 3 0044600 I 1 f 0 i 8 I \r ( L 2 ) \t D i r 0044620 e c t a d d r e s s i n g f 0044640 o r f i l e s 032 z 1 0 3 3 6 l 0044660 3 1 7 5 d 2 1 1 7 e 6 \ g 5 i 2 0044700 7 I \r ( L 2 a ) \t S e g m e n t 0044720 i n g 032 z 1 0 3 3 6 l 4 2 3 3 d 0044740 3 1 7 5 e 6 ( 1 , 4 2 3 3 ) \ g 0044760 6 i 1 0 I \r ( L 2 b ) \t A n e 0045000 n o r m o u s v i r t u a l 0045020 a d d r e s s s p a c e ( > 0045040 4 8 b i t s ) 032 z 1 0 3 3 6 l 0045060 4 2 3 3 d 3 1 7 5 e 6 \ g 6 i 3 0045100 5 f 3 I 1 f 0 i 8 I \r ( L 3 ) \t 0045120 W e l l - i n t e 376 001 \0 323 m g r 0045140 a t e d a c c e s s t o l 0045160 a r g e , r o b u s t d a t 0045200 a b a s e s 032 z 1 0 3 3 6 l 3 0045220 1 7 5 d 2 1 1 7 e 6 ( 1 , 6 5 5 0045240 3 5 ) \ g 5 i 5 0 I \r T h e i 0045260 s s u e h e r e i s t h a 0045300 t t h i n g s s h o u l d 0045320 s c a l e s m o o t h l y a 0045340 s p r o g r a m s g r o w 0045360 t o e n c o m p a s s m o r 0045400 e f u n c t i o n s o r l 0045420 a r g e r d a t a b a s e s 0045440 . A s m a t t e r s s t 0045460 a n d n o w , t h e t i m 0045500 e r e q u i r e d t e n d s 0045520 t o g r o w i n p r 376 001 0045540 \0 W : e d i c t a b l e w a y 0045560 s , b u t w h e n t h e 0045600 s p a c e ( a d d r e s s i n 0045620 g o r m e m o r y ) r e q 0045640 u i r e m e n t s g r o w b 0045660 e y o n d a c e r t a i n 0045700 p o i n t , r a d i c a l r 0045720 e d e s i g n o f t h e p 0045740 r o g r a m i s u s u a l l 0045760 y r e q u i r e d . A s 0046000 e c o n d a r y i s s u e i 0046020 s t h e a b i l i t y t o 0046040 c o m b i n e p r o g r a m 0046060 s w i t h o u t r u n n i n 0046100 g i n t o t h e s a m e 0046120 k i n d o f h a r d c o n 0046140 s t r 376 001 \0 F S a i n t o n 0046160 t h e s p a c e t a k e n 0046200 u p b y t h e c o d e . 032 0046220 z 1 0 3 3 6 l 2 1 1 7 d 2 6 4 6 0046240 x 4 e 8 j k 3 5 ( 6 3 5 ) \ g 1 0046260 4 6 i 4 I 5 8 i 5 I \r A n a d 0046300 d r e s s s p a c e o f , 0046320 s a y , 2 2 4 i t e m s w 0046340 o u l d b e a d e q u a t e 0046360 t o h o l d a l l t h e 0046400 c o d e a c t u a l l y b 0046420 e i n g u s e d , e v e n 0046440 i n a l a r g e s y s t e 0046460 m , b u t n o t a d e q u 0046500 a t e f o r a l l o f i 0046520 t s d a t a ( e . g . , t 0046540 h e A m e r i 376 001 \0 Y < c a n 0046560 H e r i t a g e d i c t i o 0046600 n a r y ) ; w h e r e a s a 0046620 n a d d r e s s s p a c e 0046640 o f , s a y , 2 4 8 i t e 0046660 m s w o u l d b e a d e q 0046700 u a t e f o r a l l t h e 0046720 c o d e a n d d a t a o 0046740 f a v e r y l a r g e , 0046760 e v e n m u l t i - m a c h i 0047000 n e s y s t e m . W e t 0047020 e n d t o f a v o r t h e 0047040 f o r m e r , m o r e c o 0047060 n s e r v a t i v e d e f i n 0047100 i t i o n , s i n c e w e 0047120 d o n o t u n d e r s t a n 0047140 d h o w t o p r o v 376 001 \0 0047160 311 377 i d e a n e f f i c i e 0047200 n t , r o b u s t i m p l e 0047220 m e n t a t i o n o f t h e 0047240 l a t t e r ( m o r e o n 0047260 t h e r o b u s t n e s s 0047300 q u e s t i o n b e l o w ) . 0047320 H o w e v e r , w e f e 0047340 e l t h a t i t i s e s 0047360 s e n t i a l t h a t a t 0047400 r a n s i t i o n a c r o s s 0047420 t h e 2 2 4 - o b j e c t 0047440 b o u n d a r y n o t r e q 0047460 u i r e t h e k i n d o f 0047500 w h o l e s a l e r e o r g 0047520 a n i z a t i o n o f p r o 0047540 g r a m s t h a t s u c h 0047560 a 376 001 \0 r 035 t r a n s i t i o 0047600 n r e q u i r e s i n c u 0047620 r r e n t l a n g u a g e s 0047640 y s t e m s . 032 z 1 0 3 3 6 l 2 0047660 1 1 7 d 2 6 4 6 x 4 j k 3 5 \ g 0047700 2 7 f 1 o 4 2 f 0 o 0 2 0 5 0047720 f 1 o 4 2 f 0 o 0 7 i 5 I 3 0047740 4 5 f 1 o 4 2 f 0 o 0 \r S y s 0047760 t e m f a c i l i t i e s f 0050000 o r a c c e s s i n g l a r 0050020 g e , e x t e r n a l d a t 0050040 a b a s e s a r e r e q u 0050060 i r e d f o r s e v e r a l 0050100 r e a s o n s : 032 z 1 0 3 3 6 0050120 l 2 1 1 7 d 2 6 4 6 x 4 j k 3 5 0050140 \ g \r M a n y q u e s t i o n 0050160 s o f o r 376 001 \0 030 266 g a n i 0050200 z a t i o n a n d e f f i c 0050220 i e n t i m p l e m e n t a t 0050240 i o n c a n b e s o l v e 0050260 d o n c e , r a t h e r t 0050300 h a n o v e r a n d o v e 0050320 r a g a i n b y a p p l i 0050340 c a t i o n s . 032 z 1 0 3 3 6 l 0050360 2 6 5 6 x 4 e 8 j k 3 5 ( 0 , 2 0050400 6 5 6 ) \ g \r T h e s y s t e 0050420 m i t s e l f n e e d s d 0050440 a t a b a s e f a c i l i t 0050460 i e s f o r t o o l s l i 0050500 k e t h e p r o g r a m l 0050520 i b r a r i a n . 032 z 1 0 3 3 6 0050540 l 2 6 5 6 x 4 e 8 j k 3 5 \ g \r 0050560 A c c e s s t o e x 376 001 \0 221 0050600 356 t e r n a l l y s t o r e d 0050620 d a t a o b j e c t s n e 0050640 e d s t o b e s m o o t h 0050660 f o r t h e d e b u g g e 0050700 r a n d o t h e r s y s t 0050720 e m f a c i l i t i e s , n 0050740 o t j u s t t h e a p p l 0050760 i c a t i o n p r o g r a m s 0051000 . 032 z 1 0 3 3 6 l 2 6 5 6 x 4 e 0051020 8 j k 3 5 \ g \r P r o g r a m s 0051040 n o r m a l l y r e f e r 0051060 t o i n t e r n a l o b j e 0051100 c t s w i t h i n d i v i d 0051120 u a l r e f e r e n c e s , 0051140 b u t t o e x t e r n a l 0051160 d a t a b a s e s w i t h 0051200 b 376 001 \0 ( 026 o t h i n d i v i 0051220 d u a l r e f e r e n c e s 0051240 a n d m a s s q u e r i e s 0051260 . T h e r e a r e t h r 0051300 e e b a s i c t e c h n i q 0051320 u e s f o r s p e e d i n g 0051340 u p r e f e r e n c e s t 0051360 o e x t e r n a l d a t a : 0051400 032 z 1 0 3 3 6 l 2 1 1 2 x 4 e 8 0051420 j k 3 5 ( 6 3 5 ) \ g \r C a c h 0051440 e s ( g o o d f o r i n d 0051460 i v i d u a l r e f e r e n c 0051500 e s ) ; 032 z 1 0 3 3 6 l 2 6 5 6 0051520 x 4 e 8 j k 3 5 ( 0 , 2 6 5 6 ) 0051540 \ g \r U s i n g s e q u e n t 0051560 i a l i t y p r o p e r t i e 0051600 s ( g o o 376 001 \0 352 352 d f o r 0051620 s e a r c h i n g ) ; 032 z 1 0 0051640 3 3 6 l 2 6 5 6 x 4 e 8 j k 3 5 0051660 \ g \r I n v e r s i o n ( g o 0051700 o d f o r s e a r c h i n g 0051720 ) . 032 z 1 0 3 3 6 l 2 6 5 6 x 4 0051740 e 8 j k 3 5 \ g \r A l l o f 0051760 t h e s e t e c h n i q u e s 0052000 s h o u l d b e a v a i l 0052020 a b l e i n p a c k a g e 0052040 f o r m . 032 z 1 0 3 3 6 l 2 1 1 0052060 2 x 4 e 8 j k 3 5 ( 6 3 5 ) \ g 0052100 \r I n t e g r i t y . A p 0052120 r o g r a m m i n g e n v i r 0052140 o n m e n t i n w h i c h 0052160 t h e f i l e s y s t e m 0052200 i s v i e w e d a 376 001 \0 \r s 0052220 s a n e x t e n s i o n o 0052240 f t h e a d d r e s s s p 0052260 a c e m u s t b e e x t r 0052300 e m e l y r o b u s t 023 m u c 0052320 h m o r e s o t h a n a 0052340 n y p r o g r a m m i n g s 0052360 y s t e m w e n o w h a v 0052400 e . O u r c u r r e n t 0052420 p r a c t i c e i s t o m 0052440 a k e t h e \a \a t r u t h ' 0052460 ' f o r a d a t a b a s 0052500 e b e a t e x t f i l e 0052520 , a n d n o t t o e x p 0052540 e n d a l o t o f e f f 0052560 o r t o n a r m o r i n g 0052600 t h e b i n a r y v e r s i 0052620 376 001 \0 v 247 o n a g a i n s t 0052640 a l l i m a g i n a b l e e 0052660 r r o r s . N o t a b l e 0052700 e x c e p t i o n s a r e t 0052720 h e b a s i c f i l e f a 0052740 c i l i t i e s ; w e b e l 0052760 i e v e t h a t a s y s t 0053000 e m t h a t p r o v i d e s 0053020 r o b u s t n e s s f a c i 0053040 l i t i e s u s a b l e a t 0053060 h i g h e r l e v e l s w 0053100 o u l d h a v e a l o t 0053120 o f a d v a n t a g e s . 032 z 0053140 1 0 3 3 6 l 2 1 1 0 x 4 e 8 j k 0053160 3 5 \ b g 1 0 B \r L o n g - t e 0053200 r m i n t e g r i t y s e e 0053220 m s t o 376 001 \0 377 ' r e q u i 0053240 r e s o m e k i n d o f 0053260 h i s t o r y o r r e d u n 0053300 d a n c y i n f o r m a t i o 0053320 n . T o p r o t e c t a 0053340 g a i n s t \a \a c o s m i c 0053360 r a y s , ' ' i t i s s u 0053400 f f i c i e n t t o r e c o 0053420 r d t h i s i n f o r m a t 0053440 i o n i n a f o r m t h 0053460 a t o n l y t h e i m p l 0053500 e m e n t i n g p r o g r a m 0053520 u n d e r s t a n d s . T 0053540 o p r o v i d e U n d o c 0053560 a p a b i l i t y , t h e h 0053600 i s t o r y m u s t b e i 0053620 n a f o r m t 376 001 \0 T 347 h 0053640 a t m a k e s s e n s e t 0053660 o c l i e n t s . 032 z 1 0 3 3 0053700 6 l 2 1 1 7 d 2 6 4 6 x 4 j k 3 0053720 5 \ g 5 0 i 7 I \r A n o t h e r 0053740 k i n d o f i n t e g r i 0053760 t y h a s t o d o w i t 0054000 h n o t l o s i n g i n f 0054020 o r m a t i o n . T h e f 0054040 o l l o w i n g k i n d s o 0054060 f i d e a s a r e i m p o 0054100 r t a n t i n t h i s c o 0054120 n n e c t i o n : 032 z 1 0 3 3 6 0054140 l 2 1 1 7 d 2 6 4 6 x 4 j k 3 5 0054160 \ g \r A c o m p u t e d o b 0054200 j e c t ( e . g . , a M e 0054220 s a c o n f i g u r a t i o 376 0054240 001 \0 244 270 n ) s h o u l d k e 0054260 e p t r a c k o f h o w 0054300 i t g o t m a d e , i n 0054320 e n o u g h d e t a i l t o 0054340 m a k e i t a g a i n . 0054360 T h e d e s c r i p t i o n 0054400 o f t h e p u t t i n g - 0054420 t o g e t h e r p r o c e s s 0054440 s h o u l d b e p r o g r 0054460 a m - m a n i p u l a b l e . 032 0054500 z 1 0 3 3 6 l 2 6 5 6 x 4 e 8 j 0054520 k 3 5 ( 0 , 2 6 5 6 ) \ g \r F i 0054540 l e s s h o u l d b e s e 0054560 l f - i d e n t i f y i n g i 0054600 n a w a y t h a t i s 0054620 n o t a l t e r e d b y t 0054640 h e i r 376 001 \0 301 260 t r a n s f 0054660 e r b e t w e e n s t o r a 0054700 g e m e d i a o r l o c a 0054720 t i o n s . 032 z 1 0 3 3 6 l 2 6 0054740 5 6 x 4 e 8 j k 3 5 \ g \r I t 0054760 s h o u l d n o t b e p o 0055000 s s i b l e t o d e s t r o 0055020 y a l l t r a c e s o f 0055040 a f i l e c o n t a i n i n 0055060 g i n p u t ( a s o p p o 0055100 s e d t o p u r e l y c o 0055120 m p u t e d ) i n f o r m a t 0055140 i o n . T h e s p a c e 0055160 r e q u i r e m e n t s c a n 0055200 b e k e p t u n d e r c 0055220 o n t r o l b y s t o r i n 0055240 g d e s c r i p 376 001 \0 L 252 t i 0055260 o n s o f f i l e s ( s u 0055300 c h a s c h a n g e s f r 0055320 o m o t h e r f i l e s ) 0055340 r a t h e r t h a n a l l 0055360 t h e b i t s . 032 z 1 0 3 3 6 0055400 l 2 6 5 6 x 4 e 8 j k 3 5 \ g \r 0055420 E v e n t h e d a n g l i n 0055440 g r e f e r e n c e p r o b 0055460 l e m a n d v a r i o u s 0055500 g a r b a g e c o l l e c t i 0055520 o n a p p r o a c h e s c a 0055540 n b e v i e w e d a s i 0055560 n t e g r i t y q u e s t i o 0055600 n s t o s o m e e x t e n 0055620 t . 032 z 1 0 3 3 6 l 2 1 1 2 x 4 0055640 e 8 j k 3 5 ( 6 3 5 ) \ g \r 376 001 0055660 \0 236 I ( L 4 ) \t M e m o r y m 0055700 a n a g e m e n t 023 o b j e c t 0055720 / p a g e s w a p p i n g 032 z 0055740 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 e 0055760 1 6 k 8 0 ( 0 , 3 1 7 5 ) \ g 5 0056000 i 3 8 I \r ( L 5 ) \t O b j e c t 0056020 m a n a g e m e n t 023 g a r b 0056040 a g e c o l l e c t i o n , 0056060 r e f e r e n c e c o u n t i 0056100 n g 032 z 1 0 3 3 6 l 3 1 7 5 d 2 0056120 1 1 7 e 6 \ g 5 i 5 6 I \r T h e 0056140 s e f a c i l i t i e s a r 0056160 e i m p o r t a n t f o r 0056200 e s s e n t i a l l y t h e 0056220 s a m e r e a s o n s a s 0056240 ( L 1 ) t h r o u g h ( L 3 0056260 ) , 376 001 \0 354 020 n a m e l y , 0056300 t o f r e e p r o g r a m m 0056320 e r s f r o m e x c e s s i 0056340 v e c o n c e r n f o r t 0056360 h e s i z e a n d l o c a 0056400 t i o n o f t h e i r c o 0056420 d e a n d d a t a , f o r 0056440 b o t h e x p l i c i t l y 0056460 n a m e d a n d d y n a m 0056500 i c a l l y c o n s t r u c t 0056520 e d o b j e c t s . 032 z 1 0 3 0056540 3 6 l 2 1 1 7 d 2 6 4 6 x 4 e 8 0056560 j k 3 5 ( 6 3 5 ) \ g \r ( L 6 ) 0056600 \t S o m e s u p p o r t f o 0056620 r i n t e r r u p t s 032 z 1 0 0056640 3 3 6 l 3 1 7 5 d 2 1 1 7 e 1 6 0056660 k 8 0 ( 0 , 3 1 376 001 \0 375 \b 7 5 ) 0056700 \ g 5 i 2 7 I \r T h e a b i l 0056720 i t y t o i n t e r r u p t 0056740 p r o g r a m e x e c u t i 0056760 o n i s e s s e n t i a l , 0057000 a t l e a s t t o g a i 0057020 n c o n t r o l o f r u n 0057040 a w a y p r o g r a m s , t 0057060 o a l l o w i n t e r a c t 0057100 i o n w i t h l o n g c o 0057120 m p u - t a t i o n s , a n d 0057140 t o p r o v i d e l o c a 0057160 l m u l t i p r o c e s s i n 0057200 g ; \a \a g o o d ' ' f a c i 0057220 l i t i e s a r e l e s s 0057240 i m p o r t a n t . W e h 0057260 a v e n o s t r o n g 376 001 \0 0057300 362 020 r e l i g i o u s f e e 0057320 l i n g s a b o u t t h e 0057340 f o r m o f a p r o c e s 0057360 s m e c h a n i s m . 032 z 1 0 0057400 3 3 6 l 2 1 1 7 d 2 6 4 6 x 4 e 0057420 8 j k 3 5 ( 6 3 5 ) \ g \r ( L 7 0057440 ) \t A d e q u a t e e x c e p 0057460 t i o n a l c o n d i t i o n 0057500 h a n d l i n g 032 z 1 0 3 3 6 0057520 l 3 1 7 5 d 2 1 1 7 e 1 6 k 8 0 0057540 ( 0 , 3 1 7 5 ) \ g 5 i 3 9 I \r 0057560 A n i n t e g r a t e d m e 0057600 c h a n i s m f o r h a n d 0057620 l i n g e x c e p - t i o n a 0057640 l c o n d i t i o n s i s 0057660 r e q u i r e d f o r c l e 0057700 a n 376 001 \0 207 340 d e b u g g i n 0057720 g a n d f o r t h e c o 0057740 n s t r u c t i o n o f r o 0057760 b u s t p r o g r a m s ; i 0060000 t h e l p s c l a r i f y 0060020 p r o g r a m s t r u c t u r 0060040 e b y s e p a r a t i n g 0060060 n o r m a l a n d e x c e p 0060100 t i o n a l a l g o r i t h m 0060120 s . C e r t a i n m e c h 0060140 a n i s m s a r e r e - q u 0060160 i r e d i n t h i s a r e 0060200 a : s o m e w a y t o u 0060220 n w i n d t h e s t a c k , 0060240 s o m e w a y o f c a t 0060260 c h i n g a n u n w i n d , 0060300 a n d p r 376 001 \0 ? } o g r a 0060320 m c o n t r o l o f e r r 0060340 o r p r o c e s s i n g . 0060360 W h a t s h o u l d b e p 0060400 r o - v i d e d b e y o n d 0060420 t h i s i s n o t a g r e 0060440 e d 023 t h e c o n t r o v e r 0060460 s i e s r a g i n g a r o u 0060500 n d t h e M e s a \a \a s i 0060520 g n a l ' ' f a c i l i t i e 0060540 s a r e a r e f l e c t i 0060560 o n o f o u r p o o r u 0060600 n d e r s t a n d i n g o f 0060620 t h e p r o b l e m . 032 z 1 0 0060640 3 3 6 l 2 1 1 7 d 2 6 4 6 x 4 e 0060660 8 j k 3 5 ( 6 3 5 ) \ g 1 8 7 i 0060700 6 I 5 i 1 1 I \r ( L 8 ) 376 001 \0 370 0060720 ~ \t U s e r a c c e s s t o 0060740 t h e m a c h i n e ' s c 0060760 a p a b i l i t y f o r p a 0061000 c k e d d a t a 032 z 1 0 3 3 6 0061020 l 3 1 7 5 d 2 1 1 7 e 1 6 k 8 0 0061040 ( 0 , 3 1 7 5 ) \ g 5 i 5 5 I \r 0061060 T h e a b i l i t y t o p 0061100 a c k d a t a i s e s s e 0061120 n t i a l t o o b t a i n 0061140 a c c e p t a b l e s t o r a 0061160 g e e f f i c i e n c y f o 0061200 r l a r g e d a t a s t r 0061220 u c - t u r e s . H o w e v 0061240 e r , i n a s y s t e m 0061260 w i t h o u t s t a t i c ( 0061300 p r e - r u n t i m e ) t y p 0061320 e 376 001 \0 t 355 c h e c k i n g , 0061340 t h e d e s i r e t o a 0061360 c c e s s p a c k e d s t r 0061400 u c t u r e s e f f i c i e n 0061420 t l y ( w i t h o u t c h e 0061440 c k i n g o r i n d i r e c 0061460 t i o n t h r o u g h d e s 0061500 c r i p t o r s ) c o n f l i 0061520 c t s w i t h t h e d e s 0061540 i r e t o p r e v e n t c 0061560 o r r u p t i o n o f t h e 0061600 s t o r a g e m a n a g e m 0061620 e n t s y s t e m . 032 z 1 0 3 0061640 3 6 l 2 1 1 7 d 2 6 4 6 x 4 e 8 0061660 j k 3 5 ( 6 3 5 ) \ g 1 4 8 G 7 0061700 g \r T h e r e w a s a l o 0061720 n g d i s 376 001 \0 7 w c u s s i 0061740 o n o f w h y i t i s 0061760 h a r d t o a d d p a c k 0062000 e d d a t a t o D o r a d 0062020 o L i s p , w h i c h c e 0062040 n t e r e d a r o u n d t h 0062060 i s p r o t e c t i o n q u 0062100 e s t i o n i n t h e f o 0062120 l l o w i n g g u i s e : h 0062140 o w c a r e f u l l y s h o 0062160 u l d t h e s y s t e m p 0062200 r e v e n t t h e u s e r 0062220 f r o m s m a s h i n g i t 0062240 s u n d e r l y i n g d a t 0062260 a s t r u c t u r e s . T 0062300 h e r e w a s n ' t m u c h 0062320 a g r e e m e n t 376 001 \0 E e 0062340 o n t h i s p o i n t , b 0062360 u t i t d o e s s e e m 0062400 t o h a v e c o n s i d e r 0062420 a b l e p r a c t i c a l i 0062440 m p o r t a n c e , s i n c e 0062460 a h i g h l y r e s t r i 0062500 c t i v e a t t i t u d e m 0062520 a k e s i t d i f f i c u l 0062540 t t o c o d e l o w - l e 0062560 v e l p a r t s o f t h e 0062600 s y s t e m i n i t s e l 0062620 f . 032 z 1 0 3 3 6 l 2 1 1 7 d 2 0062640 6 4 6 x 4 j k 3 5 \ g \r ( L 9 ) 0062660 \t P r o g r a m - m a n i p u l 0062700 a b l e r e p r e s e n t a t 0062720 i o n o f p r o g r a m s 032 0062740 376 001 \0 E x z 1 0 3 3 6 l 3 1 7 5 0062760 d 2 1 1 7 e 1 6 k 8 0 ( 0 , 3 1 0063000 7 5 ) \ g 5 i 4 6 I \r ( L 1 0 ) 0063020 \t R u n - t i m e a v a i l a 0063040 b i l i t y o f a l l i n 0063060 f o r m a t i o n d e r i v a 0063100 b l e f r o m s o u r c e 0063120 p r o g r a m ( e . g . , n 0063140 a m e s , t y p e s , s c o 0063160 p e s ) 032 z 1 0 3 3 6 l 3 1 7 5 0063200 d 2 1 1 7 e 6 \ g 6 i 9 9 I \r T 0063220 h e s e t w o i s s u e s 0063240 a r e c l o s e l y r e l a 0063260 t e d : u n d e r l y i n g 0063300 t h e m i s o u r d e s i 0063320 r e t o m a k e i t e a 0063340 s y t o 376 001 \0 Z 334 e x t e n 0063360 d t h e s e t o f t o o 0063400 l s , t o m a k e c o m m 0063420 u n i c a t i o n b e t w e e 0063440 n s u b - l a n g u a g e s 0063460 e a s y , a n d t o b r e 0063500 a k d o w n a s m a n y 0063520 a s p o s s i b l e o f t 0063540 h e a r t i f i c i a l d i 0063560 s t i n c t i o n s b e t w e 0063600 e n p r o g r a m s a n d 0063620 t h e i r c o m p i l e r s , 0063640 o n o n e h a n d , a n 0063660 d d a t a a n d t h e i r 0063700 p r o g r a m s , o n t h 0063720 e o t h e r . 032 z 1 0 3 3 6 l 0063740 2 1 1 7 d 2 6 4 6 x 376 001 \0 340 351 4 0063760 e 8 j k 3 5 ( 6 3 5 ) \ g \r A 0064000 l o n g d i s c u s s i o n 0064020 l e d t o t h e c o n c l 0064040 u s i o n t h a t a l l t 0064060 h i s i n f o r m a t i o n 0064100 i s c u r r e n t l y a v a 0064120 i l a b l e i n M e s a , 0064140 m o d u l o t h e q u e s t 0064160 i o n o f h o w s t a b l 0064200 e t h e c o m p i l e r ' s 0064220 i n t e r n a l r e p r e s 0064240 e n t a t i o n o f t h e 0064260 p r o g r a m a s a t r e 0064300 e s h o u l d b e e x p e 0064320 c t e d t o b e . S t r 0064340 a i g h t f o r w a r d m e 376 0064360 001 \0 322 P t h o d s ( l i k e 0064400 t h e o n e s u s e d i n 0064420 C L i s p ) w i l l a l l 0064440 o w c o m p i l e d c o d e 0064460 t o b e a t t a c h e d 0064500 t o s o u r c e i n a u 0064520 s e r - c r e a t e d d a t a 0064540 s t r u c t u r e , a l t h 0064560 o u g h i t i s c e r t a 0064600 i n l y e a s i e r t o d 0064620 o t h i s i n L i s p , 0064640 w h e r e i n t e r p r e t a 0064660 t i o n i s s i m p l e . 0064700 N o t e x p l o r e d w a 0064720 s t h e u s e f u l n e s s 0064740 o f a n i n t e r p r e t 0064760 e r f 376 001 \0 ] 255 o r a s u 0065000 b s e t o f t h e l a n g 0065020 u a g e , s u c h a s c u 0065040 r r e n t l y e x i s t s i 0065060 n t h e M e s a d e b u g 0065100 g e r . 032 z 1 0 3 3 6 l 2 1 1 7 0065120 d 2 6 4 6 x 4 j k 3 5 \ g \r ( L 0065140 1 1 ) \t S t a t i c a l l y c 0065160 h e c k e d t y p e s y s t 0065200 e m 032 z 1 0 3 3 6 l 3 1 7 5 d 2 0065220 1 1 7 e 1 6 k 8 0 ( 0 , 3 1 7 5 0065240 ) \ g 6 i 3 0 I \r ( L 1 2 ) \t S 0065260 e l f - t y p i n g d a t a 0065300 ( a l a L i s p a n d S 0065320 m a l l t a l k ) , r u n - t 0065340 i m e t y p e s y s t e m 032 0065360 z 1 0 3 3 6 l 3 1 376 001 \0 336 001 7 5 0065400 d 2 1 1 7 e 6 \ g 6 i 1 8 I 4 i 0065420 4 2 I \r T h e p r i m a r y 0065440 v a l u e o f t y p e s y 0065460 s t e m s i s d e s c r i p 0065500 t i v e a n d s t r u c t u 0065520 r a l 023 s p e c i f y i n g t 0065540 h e i n t e n d e d p r o p 0065560 e r t i e s o f o n e ' s 0065600 d a t a , a n d p r o v i d 0065620 i n g a m e c h a n i s m 0065640 f o r e n s u r i n g c o n 0065660 s i s t e n c y b e t w e e n 0065700 t h e s u p p l i e r s a 0065720 n d c l i e n t s o f a n 0065740 i n t e r f a c e . E n a 0065760 b l i n g a c o m p i l 376 001 0066000 \0 \n 353 e r t o g e n e r a t 0066020 e b e t t e r c o d e i s 0066040 s e c o n d a r y . T h e 0066060 r e a r e a t l e a s t 0066100 t w o d i m e n - s i o n s 0066120 o f v a r i a b i l i t y i 0066140 n t y p e s y s t e m s : 032 0066160 z 1 0 3 3 6 l 2 1 1 7 d 2 6 4 6 0066200 x 4 e 8 j k 3 5 ( 6 3 5 ) \ g \r 0066220 023 w h e t h e r t y p e i n 0066240 f o r m a t i o n i s b o u 0066260 n d e a r l y , a s i n 0066300 M e s a , o r l a t e , a 0066320 s i n L i s p a n d S m 0066340 a l l t a l k . T h e r e 0066360 i s a n e e d t o p r o 0066400 v i d 376 001 \0 ) 267 e t h e p r 0066420 o g r a m m e r a s e l e c 0066440 t i o n f r o m a s p e c 0066460 t r u m o f a l t e r n a t 0066500 i v e s 023 M e s a p r o v i d 0066520 e s v a r i a n t r e c o r 0066540 d s , w h i c h a r e a 0066560 l i m i t e d f o r m o f 0066600 r u n - t i m e b i n d i n g 0066620 , a n d L i s p h a s D 0066640 e c l T r a n , w h i c h p 0066660 r o v i d e s s o m e c o m 0066700 p i l e - t i m e b i n d i n 0066720 g . 032 z 1 0 3 3 6 l 2 6 5 6 x 4 0066740 e 8 j k 3 5 ( 0 , 2 6 5 6 ) \ g 0066760 \r 023 w h e t h e r t y p e s 0067000 f o r m a s 376 001 \0 272 376 t r i 0067020 c t p a r t i t i o n o f 0067040 t h e d a t a v a l u e s , 0067060 a c o e r c i o n h i e r 0067100 a r c h y , o r s o m e e 0067120 v e n r i c h e r s t r u c 0067140 t u r e . W e b e l i e v 0067160 e t h a t a r i c h e r 0067200 s t r u c t u r e i s d e s 0067220 i r a b l e . I t m i g h 0067240 t i n c l u d e p r o v i s 0067260 i o n f o r g e n e r i c 0067300 o p e r a t o r s , f o r t 0067320 y p e - p a r a m e t e r i z e 0067340 d p r o g r a m s o r s c 0067360 h e m e s [ M i t c h e l l 0067400 & W e g b r e i t , 1 376 001 \0 0067420 310 265 9 7 7 ] , f o r a m o 0067440 r e g e n e r a l n o t i o 0067460 n o f t y p e a s s i m 0067500 p l y a p a r t i a l s p 0067520 e c i f i c a t i o n o f t 0067540 h e b e h a v i o r o f a 0067560 n o b j e c t ( p e r h a p 0067600 s l i k e t h e A l p h a 0067620 r d \a \a n e e d s ' ' l i s 0067640 t [ S h a w , e t a l . , 0067660 1 9 7 7 ] ) , a n d f o r 0067700 a u t o m a t i c p o i n t 0067720 w i s e e x t e n s i o n o 0067740 f o p e r a t o r s o v e r 0067760 c o l l e c t i o n s . 032 z 1 0070000 0 3 3 6 l 2 6 5 6 x 4 e 8 j k 3 0070020 5 \ 376 001 \0 353 324 g 2 4 8 i 7 I 1 7 0070040 5 i 6 I \r I t a p p e a r s 0070060 f e a s i b l e t o d e d u 0070100 c e m u c h o f t h e t 0070120 y p e i n f o r m a t i o n 0070140 f o r a p r o g r a m a u 0070160 t o m a t i c a l l y , s t a 0070200 r t i n g f r o m t h e a 0070220 s s u m p t i o n t h a t e 0070240 a c h v a r i a b l e o n l 0070260 y t a k e s o n v a l u e 0070300 s o f o n e t y p e [ M 0070320 i l n e r , 1 9 7 8 ; C o u 0070340 s o t & C o u s o t , 1 9 0070360 7 7 ] . T h i s w o u l d 0070400 a l l e v i a t e s o m e 0070420 o f t h e 376 001 \0 214 y n u i s 0070440 a n c e o f h a v i n g t 0070460 o w r i t e t y p e d e c 0070500 l a r a t i o n s . N a m e 0070520 c o n v e n - t i o n s ( e 0070540 . g . , c a p i t a l i z a t 0070560 i o n o r s t a n d a r d 0070600 p r e f i x e s ) , i f i n 0070620 t e r p r e t e d b y t h e 0070640 c o m p i l e r , w o u l d 0070660 a l s o e l i m i n a t e 0070700 m o s t o f t h e n e e d 0070720 f o r s e p a r a t e s p 0070740 e c i f i c a t i o n o f t 0070760 y p e i n f o r m a t i o n . 0071000 032 z 1 0 3 3 6 l 2 1 1 2 x 4 e 8 0071020 j k 3 5 ( 6 3 5 ) \ g \r 376 001 \0 230 0071040 # T h i s i s a n a r e a 0071060 r i p e f o r r e s e a r 0071100 c h . W e b e l i e v e 0071120 t h a t , a t a m i n i m 0071140 u m , b o t h t h e e a r 0071160 l y - b o u n d M e s a t y 0071200 p e s y s t e m a n d t h 0071220 e l a t e - b o u n d L i s 0071240 p / S m a l l t a l k t y p e 0071260 s y s t e m m u s t b e 0071300 s u p p o r t e d ( a s a l 0071320 t e r n a t i v e s ) b y a 0071340 n E P E . 032 z 1 0 3 3 6 l 2 1 0071360 1 7 d 2 6 4 6 x 4 j k 3 5 \ g \r 0071400 ( L 1 3 ) \t E n c a p s u l a t 0071420 i o n / p r o t e c t i o n m 0071440 e 376 001 \0 \ k c h a n i s m s ( 0071460 s c o p e s , c l a s s e s , 0071500 i m p o r t / e x p o r t r 0071520 u l e s ) 032 z 1 0 3 3 6 l 3 1 7 0071540 5 d 2 1 1 7 e 1 6 k 8 0 ( 0 , 3 0071560 1 7 5 ) \ g 6 i 7 4 I \r ( L 1 4 0071600 ) \t A b s t r a c t i o n m e 0071620 c h a n i s m s ; e x p l i c 0071640 i t n o t i o n o f \a \a i 0071660 n t e r f a c e ' ' 032 z 1 0 3 3 0071700 6 l 3 1 7 5 d 2 1 1 7 e 6 \ g 6 0071720 i 5 6 I \r A b s t r a c t i o n 0071740 m e c h a n i s m s a r e 0071760 i m p o r t a n t b e c a u s 0072000 e t h e y m a k e e x p l 0072020 i c i t t h e l o g i c a l 0072040 d e p e n 376 001 \0 375 e d e n c i 0072060 e s o f o n e p a r t o 0072100 f a p r o g r a m o n a 0072120 n o t h e r , w h i l e c o 0072140 n c e a l i n g i m p l e m e 0072160 n t a t i o n c h o i c e s 0072200 i r r e l e v a n t t o t h 0072220 e c o m m u n i - c a t i o n 0072240 b e t w e e n s u c h p a 0072260 r t s . T h u s , t h e s 0072300 e m e c h a n i s m s e n a 0072320 b l e t h e a b i l i t y 0072340 t o f a c t o r t h e d e 0072360 v e l o p m e n t , d e b u g 0072400 g i n g , t e s t i n g , d 0072420 o c u m e n t a t i o n , u n 0072440 d e r s t a n d i n g 376 001 \0 005 223 0072460 , a n d m a i n t e n a n c 0072500 e o f p r o g r a m s i n 0072520 t o m a n a g e a b l e p i 0072540 e c e s , w h i l e l e a v 0072560 i n g i n d i v i d u a l p 0072600 r o g r a m m e r s t h e a 0072620 p p r o p r i a t e f r e e d 0072640 o m t o d e s i g n t h o 0072660 s e p i e c e s . 032 z 1 0 3 3 0072700 6 l 2 1 1 7 d 2 6 4 6 x 4 e 8 j 0072720 k 3 5 ( 6 3 5 ) \ g \r T h e a 0072740 b i l i t y t o s p e c i f 0072760 y i n t e r f a c e s i n 0073000 t h e a b s t r a c t , a n 0073020 d t o c o n c e a l t h e 0073040 i r i m p l e m e n t a t i o 0073060 376 001 \0 347 ; n , i s i m p o r 0073100 t a n t , b u t a d i f f 0073120 i c u l t r e s e a r c h a 0073140 r e a . I t i s p o s s 0073160 i b l e t o d e r i v e t 0073200 h i s i n f o r m a t i o n 0073220 a b o u t i m p l i c i t i 0073240 n t e r f a c e s a f t e r 0073260 t h e f a c t u s i n g t 0073300 o o l s l i k e M a s t e r 0073320 s c o p e . T h e c o d e 0073340 p r o - d u c e d b y a n 0073360 o p t i m i z i n g c o m p 0073400 i l e r n e e d n o t r e 0073420 f l e c t s o u r c e - l e v 0073440 e l m o d u l a r i z a t i o 0073460 n , i f 376 001 \0 ) 250 t i g h t 0073500 e r b i n d i n g i m p r o 0073520 v e s e f f i c i e n c y a 0073540 n d t h e u s e r i s w 0073560 i l l i n g t o p a y t h 0073600 e p r i c e o f m o r e 0073620 c o m p i l a t i o n s a n d 0073640 p o s s i b l y d e c r e a 0073660 s e d d e b u g g i n g i n 0073700 f o r m a t i o n . 032 z 1 0 3 3 0073720 6 l 2 1 1 7 d 2 6 4 6 x 4 j k 3 0073740 5 \ g 1 8 2 i 8 I \r W e b e l 0073760 i e v e o n e f a c i l i t 0074000 y i n t h i s a r e a i 0074020 s a b s o l u t e l y e s s 0074040 e n t i a l : i t m u s t 0074060 b e p o s s i b l 376 001 \0 303 200 e 0074100 f o r a p r o g r a m m e 0074120 r t o c o n t r o l w h i 0074140 c h n a m e s g e t e x p 0074160 o r t e d f r o m a p a c 0074200 k a g e . I n a d d i t i 0074220 o n , i t i s i m p o r t 0074240 a n t f o r t h e s y s t 0074260 e m t o c o n c e a l t h 0074300 e d i s t i n c t i o n b e 0074320 t w e e n u s e r - d e f i n 0074340 e d p a c k a g e s a n d 0074360 s y s t e m - p r o v i d e d 0074400 p r i m i t i v e s ( t y p e 0074420 s , o p e r a t i o n s , e 0074440 t c . ) a t l e a s t a s 0074460 w e l l a s M e s a d 376 0074500 001 \0 330 g o e s . 032 z 1 0 3 3 6 l 0074520 2 1 1 7 d 2 6 4 6 x 4 j k 3 5 \ 0074540 g \r ( L 1 5 ) \t N o n - h i e r 0074560 a r c h i c a l c o n t r o l 0074600 ( c o r o u t i n e s , b a 0074620 c k t r a c k i n g ) 032 z 1 0 3 0074640 3 6 l 3 1 7 5 d 2 1 1 7 e 1 6 k 0074660 8 0 ( 0 , 3 1 7 5 ) \ g 6 i 5 1 0074700 I \r C o r o u t i n e s a n d 0074720 g e n e r a t o r s a r e 0074740 e s s e n t i a l : t h e y 0074760 p r o v i d e a n a t u r a 0075000 l w a y t o w r i t e t 0075020 r a n s d u c e r s ( p r o g 0075040 r a m s t h a t c o n s u m 0075060 e a d a t a s t r e a m 0075100 a n d 376 001 \0 035 373 p r o d u c e 0075120 a n o t h e r ) , w h i c h 0075140 i n t u r n a r e o f t 0075160 e n t h e b e s t w a y 0075200 t o m o d u l a r i z e a 0075220 d a t a t r a n s f o r m a t 0075240 i o n a l g o r i t h m . 0075260 L i s p h a s b a c k - t r 0075300 a c k i n g , a c o n t r o 0075320 l d i s c i p l i n e s o m 0075340 e t i m e s u s e d t o e 0075360 x p l o r e a l t e r n a t i 0075400 v e s i n g o a l - d i r e 0075420 c t e d s e a r c h i n g , 0075440 b u t t h e r e i s c o n 0075460 s i d e r a b l e d i s a g r 0075500 e e m e n t o v 376 001 \0 334 , e r 0075520 t h e m e c h a - n i s m 0075540 u s e d t o p r o v i d e 0075560 i t , a n d i t s u s e s 0075600 c a n p r o b a b l y b e 0075620 c o v e r e d b y m o r e 0075640 r e s t r i c t e d c o r o 0075660 u t i n e a n d U n d o m 0075700 e c h a n i s m s . C l o s 0075720 u r e s a r e a m e t h o 0075740 d o f p r o v i d i n g a 0075760 w i d e v a r i e t y o f 0076000 i n t e r e s t i n g c o n 0076020 t r o l a n d b i n d i n g 0076040 e n v i r o n m e n t s , b 0076060 u t w e a r e n o t s u 0076100 r e w h e t h e r t h e 376 001 0076120 \0 373 Y y c a n b e i m p l 0076140 e m e n t e d e f f i c i e n 0076160 t l y e n o u g h , o r a 0076200 r e s t r u c t u r e d e n 0076220 o u g h , t o r e p l a c e 0076240 t h e m o r e s p e c i a 0076260 l i z e d c o r o u t i n e 0076300 c o n s t r u c t s . 032 z 1 0 3 0076320 3 6 l 2 1 1 7 d 2 6 4 6 x 4 e 8 0076340 j k 3 5 ( 6 3 5 ) \ g \r ( L 1 6 0076360 ) \t A d e q u a t e r u n - t 0076400 i m e e f f i c i e n c y 032 z 0076420 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 e 0076440 1 6 k 8 0 ( 0 , 3 1 7 5 ) \ g 6 0076460 i 9 G 8 g 1 1 I \r T h e u l t 0076500 i m a t e e f f i c i e n c y 0076520 c r 376 001 \0 242 362 i t e r i o n 0076540 i s w h e t h e r a s y s 0076560 t e m c a n m e e t i t s 0076600 e x t e r n a l s p e c i f 0076620 i c a t i o n s a n d c o n 0076640 s t r a i n t s ( r e s p o n 0076660 s i v e n e s s t o h u m a 0076700 n u s e r s o r p r o g r 0076720 a m c l i e n t s ) . C o 0076740 m p u t a t i o n a l e f f i 0076760 c i e n c y e q u i v a - l e 0077000 n t t o A l t o M e s a , 0077020 c o u p l e d w i t h t h 0077040 e l a r g e r r e a l m e 0077060 m o r y a n d f a s t e r 0077100 d i s k o f t h e D o r a 0077120 d o , i s a 376 001 \0 ( 311 d e q 0077140 u a t e f o r m a n y p r 0077160 o j e c t s ; f o r L i s p 0077200 a n d S m a l l t a l k , 0077220 w e t h i n k w e c a n 0077240 a t t a i n t h i s t h r o 0077260 u g h i n t e r n a l r e - 0077300 e n g i n e e r i n g . F o 0077320 r o t h e r , m o r e c o 0077340 m p u t a t i o n - i n t e n s 0077360 i v e s y s t e m s , a t 0077400 l e a s t a n o t h e r f a 0077420 c t o r o f 5 i s a t t 0077440 a i n a b l e ( b a s e d o 0077460 n r a w h a r d w a r e s 0077500 p e e d ) . 032 z 1 0 3 3 6 l 2 1 0077520 1 7 d 2 6 4 6 x 4 e 8 j k 376 001 \0 0077540 206 222 3 5 ( 6 3 5 ) \ g \r ( L 1 7 0077560 ) \t I n t e r - l a n g u a g e 0077600 c o m m u n i c a t i o n 032 z 0077620 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 e 0077640 1 6 k 8 0 ( 0 , 3 1 7 5 ) \ g 6 0077660 i 2 8 I \r W e b e l i e v e 0077700 t h e b e s t w a y t o 0077720 a t t a i n t h e b e n e f 0077740 i t s o f u n i f o r m m 0077760 e t h o d s f o r a c c e s 0100000 s i n g t h e m a c h i n e 0100020 ' s f a c i l i t i e s a t 0100040 t h e l o w e s t l e v e 0100060 l i s f o r a l l l a n 0100100 g u a g e s y s t e m s t o 0100120 r u n u n d e r a s i n 0100140 g l 376 001 \0 374 221 e o p e r a t i 0100160 n g s y s t e m t h a t i 0100200 s c a r e f u l l y c o n s 0100220 t r u c t e d n o t t o i 0100240 m p o s e u n n e c e s s a r 0100260 y s p a c e o r t i m e 0100300 p e n a l t i e s o n i t s 0100320 c l i e n t s . F o r t 0100340 h e D o r a d o , w e b e 0100360 l i e v e t h a t t h e P 0100400 i l o t o p e r a t i n g s 0100420 y s t e m s a t i s f i e s 0100440 t h i s c r i t e r i o n [ 0100460 R e d e l l , e t a l . , 0100500 1 9 7 9 ] . 032 z 1 0 3 3 6 l 2 1 0100520 1 7 d 2 6 4 6 x 4 e 8 j k 3 5 ( 0100540 6 3 5 ) \ g 3 376 001 \0 247 b 8 2 i 6 0100560 I \r I n t e r - l a n g u a g e 0100600 c o m m u n i c a t i o n a 0100620 t a h i g h e r l e v e l 0100640 h e l p s r e d u c e d u 0100660 p l i c a t i o n o f e f f 0100700 o r t a n d a l s o p r o 0100720 v i d e s o n e w a y o f 0100740 a t t a i n i n g e x t r a 0100760 e f f i c i e n c y f o r 0101000 p a r t i c u l a r f u n c t 0101020 i o n s . C a l l i n g M 0101040 e s a s u b r o u t i n e s 0101060 f r o m L i s p o r S m a 0101100 l l t a l k w i l l p r o b 0101120 a b l y b e a d e q u a t e 0101140 . C o m m u n i - c 376 001 \0 271 0101160 316 a t i o n t h r o u g h t 0101200 h e n e t w o r k o r f i 0101220 l e s y s t e m i n t e r f 0101240 a c e r e q u i r e s v e r 0101260 y l i t t l e w o r k , b 0101300 u t i s t o o i n e f f i 0101320 c i e n t . T h e g e n e 0101340 r a l p r o b l e m s e e m 0101360 s d i f f i c u l t a n d 0101400 l e s s i m p o r t a n t . 032 0101420 z 1 0 3 3 6 l 2 1 1 7 d 2 6 4 6 0101440 x 4 j k 3 5 \ g \r ( L 1 8 ) \t U 0101460 n i f o r m s c r e e n m a 0101500 n a g e m e n t 032 z 1 0 3 3 6 l 0101520 3 1 7 5 d 2 1 1 7 e 1 6 k 8 0 ( 0101540 0 , 3 1 7 5 ) \ g 6 i 2 5 I \r U 0101560 s 376 001 \0 336 327 e o f t h e d 0101600 i s p l a y i s p e r v a s 0101620 i v e i n o u r i n t e r 0101640 a c t i v e s y s t e m s . 0101660 L a c k o f u n i f o r m 0101700 i t y l e a d s t o d u p 0101720 l i c a t e d e f f o r t , 0101740 o f t e n o f l o w q u a 0101760 l i t y s i n c e a n i n 0102000 d i v i d u a l b u i l d e r 0102020 c a n n o t e a s i l y d 0102040 r a w o n a l l p a s t 0102060 e x p e r i e n c e o r d e 0102100 v o t e t h e t i m e t o 0102120 t a k i n g a d v a n t a g 0102140 e o f i t . O n t h e 0102160 o t h e r 376 001 \0 E 350 h a n d 0102200 , t o o m u c h c e n t r 0102220 a l c o n t r o l o v e r 0102240 s c r e e n m a n a g e m e n 0102260 t m a y f r u s t r a t e 0102300 t h e d e s i r e t o e x 0102320 p e r i m e n t w i t h n e 0102340 w p a r a d i g m s f o r 0102360 i n t e r a c t i o n . 032 z 1 0 0102400 3 3 6 l 2 1 1 7 d 2 6 4 6 x 4 e 0102420 8 j k 3 5 ( 6 3 5 ) \ g \r W e 0102440 b e l i e v e t h a t i t 0102460 i s p o s s i b l e t o \a 0102500 \a v i r t u a l i z e ' ' t h 0102520 e s c r e e n a n d t h e 0102540 u s e r i n p u t d e v i 0102560 c e s 023 t h a t i s 376 001 \0 ) 204 0102600 , r e q u i r e p e o p l e 0102620 t o w r i t e p r o g r a 0102640 m s o n t h e a s s u m p 0102660 t i o n t h a t t h e y w 0102700 i l l o n l y h a v e a c 0102720 c e s s t o a s u b p a r 0102740 t o f t h e s c r e e n 0102760 a n d t o a s l i g h t l 0103000 y f i l t e r e d s t r e a 0103020 m o f i n p u t e v e n t 0103040 s 023 i n a w a y t h a t 0103060 w i l l n o t m a r k e d l 0103100 y i m p e d e o u r a b i 0103120 l i t y t o e x p e r i m e 0103140 n t , a n d t h a t w i l 0103160 l h a v e a l a r g e p 0103200 376 001 \0 033 021 a y o f f i n t e 0103220 r m s o f t h e u s e r ' 0103240 s a b i l i t y t o c o n 0103260 s t r u c t a s c r e e n 0103300 e n v i r o n m e n t c o n t 0103320 a i n i n g m u l t i p l e 0103340 w i n d o w s o n d i f - f 0103360 e r e n t p r o g r a m s . 0103400 A t a m i n i m u m , t 0103420 h e u s e r m u s t h a v 0103440 e d i r e c t a c c e s s 0103460 t o a l l t h e c a p a b 0103500 i l i t i e s o f R a s t e 0103520 r O p [ N e w m a n & S p 0103540 r o u l l , 1 9 7 9 ] , a p 0103560 p r o p r i a t e l y m a p p 0103600 e d o r 376 001 \0 024 250 c o n f i 0103620 n e d t o w o r k o n a 0103640 v i r t u a l s c r e e n . 0103660 032 z 1 0 3 3 6 l 2 1 1 7 d 2 6 4 0103700 6 x 4 j k 3 5 \ g \r ( L 1 9 ) \t 0103720 I n h e r i t a n c e / d e f a 0103740 u l t i n g ( e . g . , S m 0103760 a l l t a l k s u b c l a s s 0104000 i n g ) 032 z 1 0 3 3 6 l 3 1 7 5 0104020 d 2 1 1 7 e 1 6 k 8 0 ( 0 , 3 1 0104040 7 5 ) \ g 6 i 5 2 I \r L a n g u 0104060 a g e s t h a t p r o v i d 0104100 e f o r p r o g r a m m e r 0104120 - c o n t r o l l e d d e f a 0104140 u l t i n g o r i n h e r i 0104160 t a n c e r e d u c e t h e 0104200 t i m e a n d 376 001 \0 005 233 c 0104220 h a n c e f o r e r r o r 0104240 i n t h e p r o g r a m m i 0104260 n g p r o c e s s b y m a 0104300 k i n g i t u n n e c e s s 0104320 a r y t o w r i t e t h e 0104340 s a m e c o d e o r p a 0104360 r a m e t e r v a l u e s o 0104400 v e r a n d o v e r a g a 0104420 i n . T h e b a s i c i 0104440 d e a i s t h a t o n e 0104460 s h o u l d b e a b l e t 0104500 o w r i t e p r o g r a m s 0104520 i n a w a y t h a t o 0104540 n l y s p e c i f i e s h o 0104560 w t h e y d i f f e r f r 0104600 o m s o m e p r e v i o u 376 0104620 001 \0 262 217 s l y w r i t t e n 0104640 p r o g r a m . E x a m p l 0104660 e s i n c l u d e d e f a u 0104700 l t s t a n d a r d v a l u 0104720 e s f o r p r o c e d u r e 0104740 a r g u m e n t s ( h o w 0104760 d o e s t h i s c a l l d 0105000 i f f e r f r o m a \a \a s 0105020 t a n d a r d ' ' c a l l ? ) 0105040 , v a r i a n t r e c o r d 0105060 s ( h o w d o e s t h i s 0105100 p a r t i c u l a r r e c o 0105120 r d d i s t i n g u i s h i 0105140 t s e l f f r o m t h e i 0105160 n v a r i a n t p a r t ? ) , 0105200 a n d t h e S m a l l t a 0105220 l k s 376 001 \0 D = u b c l a s s 0105240 c o n c e p t ( h o w d o 0105260 e s t h i s c l a s s o f 0105300 o b j e c t s d i f f e r 0105320 f r o m s o m e m o r e g 0105340 e n e r a l c l a s s ? ) 032 z 0105360 1 0 3 3 6 l 2 1 1 7 d 2 6 4 6 x 0105400 4 e 8 j k 3 5 ( 6 3 5 ) \ g \r W 0105420 e d i d n o t d i s c u s 0105440 s t h i s a r e a b e y o 0105460 n d o b s e r v i n g t h a 0105500 t i t i s s o m e w h a t 0105520 r e l a t e d t o t h e 0105540 s c h e m e s q u e s t i o n 0105560 d i s c u s s e d u n d e r 0105600 ( L 1 2 ) , a n d t h a t 0105620 S m a l l t a l 376 001 \0 030 177 k 0105640 s e e m s t o d e r i v e 0105660 c o n s i d e r a b l e b e n 0105700 e f i t f r o m i t . 032 z 1 0105720 0 3 3 6 l 2 1 1 7 d 2 6 4 6 x 4 0105740 j k 3 5 \ g \r ( L 2 0 ) \t A b i 0105760 l i t y t o e x t e n d l 0106000 a n g u a g e ( e . g . , o 0106020 p e r a t o r o v e r l o a d 0106040 i n g ) 032 z 1 0 3 3 6 l 3 1 7 5 0106060 d 2 1 1 7 e 1 6 k 8 0 ( 0 , 3 1 0106100 7 5 ) \ g 6 i 5 5 I \r L a n g u 0106120 a g e s m a y b e e x t e 0106140 n d e d b y u s e r s i n 0106160 a v a r i e t y o f w a 0106200 y s . D a t a s t r u c t 0106220 u r e e x t e n s i o n , 376 001 0106240 \0 a 363 t h r o u g h u s e r 0106260 - d e f i n e d d a t a t y 0106300 p e s a n d a s s o c i a t 0106320 e d o p e r a t i o n s , m 0106340 a k e s i t p o s s i b l e 0106360 t o w r i t e p r o g r a 0106400 m s i n t e r m s o f c 0106420 o n c e p t - o r i e n t e d 0106440 r a t h e r t h a n i m p l 0106460 e m e n t a t i o n - o r i e n 0106500 t e d d a t a o b j e c t s 0106520 . S y n t a x e x t e n s 0106540 i o n , t h r o u g h u s e 0106560 r d e f i n i t i o n o f 0106600 n e w l a n g u a g e c o n 0106620 s t r u c t s , a l l o w s 0106640 t h e 376 001 \0 317 \0 u s e r t o 0106660 d e f i n e s p e c i a l i 0106700 z e d n o t a t i o n s t h 0106720 a t m a y b e v a l u a b 0106740 l e f o r p a r t i c u l a 0106760 r t a s k s : t h i s i s 0107000 d i s c u s s e d i n d e 0107020 t a i l i n ( L 2 1 ) . 0107040 O p e r a t o r e x t e n s i 0107060 o n , t h e a b i l i t y 0107100 t o d e f i n e m e a n i n 0107120 g s f o r b a s i c l a n 0107140 g u a g e c o n s t r u c t s 0107160 s u c h a s a r i t h m e 0107200 t i c o r i t e r a t i o n 0107220 w h e n a p p l i e d t o 0107240 u s e r - d e 376 001 \0 O 317 f i n 0107260 e d o b j e c t s , b r i n 0107300 g s s o m e o f t h e b 0107320 e n e f i t s o f n o t a t 0107340 i o n a l e x t e n s i o n 0107360 w i t h l e s s d r a s t i 0107400 c c o n s e q u e n c e s i 0107420 n p r o g r a m r e a d a b 0107440 i l i t y . 032 z 1 0 3 3 6 l 2 1 0107460 1 7 d 2 6 4 6 x 4 e 8 j k 3 5 ( 0107500 6 3 5 ) \ g \r D a t a s t r u 0107520 c t u r e e x t e n s i o n 0107540 i s a c c e p t e d a s a 0107560 n i m p o r t a n t p a r t 0107600 o f a l l m o d e r n p 0107620 r o g r a m m i n g l a n g u 0107640 a g e s . S y n t a x 376 001 \0 0107660 333 : e x t e n s i o n h a s 0107700 f a l l e n i n t o d i s 0107720 f a v o r b e c a u s e o f 0107740 a l o t o f b a d e x 0107760 p e r i e n c e ; w e b e l 0110000 i e v e t h i s h a p p e n 0110020 e d p a r t l y b e c a u s 0110040 e t h e t o o l s d i d 0110060 n o t s u p p o r t e x t e 0110100 n s i o n s a s w e l l a 0110120 s t h e y d i d t h e b 0110140 a s e l a n g u a g e . O 0110160 p e r a t o r e x t e n s i o 0110200 n i s a l r e a d y p r e 0110220 s e n t i n a n u m b e r 0110240 o f l a n g u a g e s s u 0110260 c h 376 001 \0 260 024 a s A l g o l 0110300 6 8 : w e d i d n o t 0110320 d i s c u s s i t s m e r i 0110340 t s . I t i s i n t e r 0110360 e s t i n g t o n o t e t 0110400 h a t S m a l l t a l k i s 0110420 f o u n d e d o n t h e 0110440 n o t i o n s o f d a t a 0110460 s t r u c t u r e a n d o p 0110500 e r a t o r e x t e n s i o n 0110520 , b u t t h a t t h e s 0110540 y n t a x e x t e n s i o n 0110560 f a c i l i t i e s p r e s e 0110600 n t i n t h e 1 9 7 2 v 0110620 e r s i o n o f t h e l a 0110640 n g u a g e h a v e b e e n 0110660 r e m o v e 376 001 \0 V ` d . 032 z 0110700 1 0 3 3 6 l 2 1 1 7 d 2 6 4 6 x 0110720 4 j k 3 5 \ g \r ( L 2 1 ) \t A b 0110740 i l i t y t o c r e a t e 0110760 f u l l y i n t e g r a t e d 0111000 l o c a l s u b l a n g u a 0111020 g e s 032 z 1 0 3 3 6 l 3 1 7 5 d 0111040 2 1 1 7 e 1 6 k 8 0 ( 0 , 3 1 7 0111060 5 ) \ g 6 i 5 3 I \r A l l l a 0111100 n g u a g e s y s t e m s a 0111120 c t u a l l y h a v e m a n 0111140 y s m a l l s u b l a n g u 0111160 a g e s f o r s p e c i a l 0111200 p u r p o s e s . F o r 0111220 e x a m p l e , M e s a h a 0111240 s n o t o n l y t h e M 0111260 e s a l a n g u a g e 376 001 \0 371 0111300 363 , b u t t h e C / M e s 0111320 a c o n f i g u r a t i o n 0111340 l a n g u a g e , t h e d e 0111360 b u g g e r c o m m a n d l 0111400 a n g u a g e , t h e p r o 0111420 g r a m m i n g l a n g u a g 0111440 e s u b - s e t a c c e p t 0111460 a b l e t o t h e d e b u 0111500 g g e r ' s i n t e r p r e t 0111520 e r , a n d t h e v e r y 0111540 s m a l l l a n g u a g e s 0111560 u s e d t o c o n t r o l 0111600 t h e c o m p i l e r a n 0111620 d b i n d e r f r o m t h 0111640 e E x e c u t i v e c o m m 0111660 a n d l i n e . \a \a F u l 0111700 l 376 001 \0 301 314 y i n t e g r a t 0111720 e d , ' ' a s a n i d e a 0111740 l , m e a n s t h a t c o 0111760 n t r o l a n d d a t a s 0112000 h o u l d b e a b l e t o 0112020 p a s s f r e e l y b e t 0112040 w e e n s u b l a n g u a g e 0112060 s , a n d t h a t t h e 0112100 f a c i l i t i e s ( e d i t 0112120 o r , p r e t t y p r i n t e 0112140 r , I / O s y s t e m , e 0112160 t c . ) a p p l i c a b l e 0112200 t o t h e p r i m a r y p 0112220 r o g r a m m i n g l a n g u 0112240 a g e s h o u l d a l s o 0112260 b e a p p l i c a b l e t o 0112300 t h e o 376 001 \0 d H t h e r 0112320 s u b l a n g u a g e s . 032 z 1 0112340 0 3 3 6 l 2 1 1 7 d 2 6 4 6 x 4 0112360 e 8 j k 3 5 ( 6 3 5 ) \ g \r L i 0112400 s p i s u n i q u e i n 0112420 t h a t i t s d o z e n o 0112440 r s o s u b l a n g u a g e 0112460 s a l l p r o v i d e t h 0112500 e a b i l i t y t o e m b 0112520 e d a r b i t r a r y L i s 0112540 p c o m p u t a t i o n s i 0112560 n t h e m . F o r e x a 0112600 m p l e , i n t h e m i d 0112620 d l e o f t h e e d i t o 0112640 r o n e c a n c o m p u t 0112660 e ( b y c a l l i n g a n 0112700 a r b i t r a r y 376 001 \0 Y 314 0112720 p r o g r a m ) d a t a t o 0112740 b e i n s e r t e d , p o 0112760 s s i b l y a s a f u n c 0113000 t i o n o f t h e t h i n 0113020 g b e i n g e d i t e d , 0113040 o r e v e n a s e q u e n 0113060 c e o f e d i t c o m m a 0113100 n d s t o e x e c u t e . 0113120 T h e f o l l o w i n g f 0113140 e a t u r e s o f L i s p 0113160 s e e m t o h a v e m a d 0113200 e t h e c r e a t i o n o 0113220 f i n t e g r a t e d s u b 0113240 l a n g u a g e s e a s i e r 0113260 : 032 z 1 0 3 3 6 l 2 1 1 7 d 2 6 0113300 4 6 x 4 j k 3 5 \ g \r S - e x p 0113320 376 001 \0 g _ r e s s i o n s a r 0113340 e a s i m p l e , s t a n 0113360 d a r d i n t e r n a l r e 0113400 p r e s e n t a t i o n o f 0113420 p a r s e t r e e s f o r 0113440 a l l s u b l a n g u a g e s 0113460 . 032 z 1 0 3 3 6 l 2 6 5 6 x 4 e 0113500 8 j k 3 5 ( 0 , 2 6 5 6 ) \ g \r 0113520 L i s p p r o v i d e s a 0113540 s t a n d a r d m e t h o d 0113560 o f s h a r i n g n a m e s 0113600 a n d p a s s i n g e n v 0113620 i r o n m e n t s , n a m e l 0113640 y a s i n g l e , v e r y 0113660 s i m p l e n a m e e n v 0113700 i r o n m e n t ( a t o m s ) 0113720 t h a t 376 001 \0 ? 226 a l l s 0113740 u b l a n g u a g e s s h a r 0113760 e . ( T h i s h a s b o 0114000 t h a d v a n t a g e s a n 0114020 d d r a w b a c k s : i t 0114040 l e a d s t o t h e \a \a F 0114060 L G ' ' p h e n o m e n o n , 0114100 f o r e x a m p l e . ) 032 z 0114120 1 0 3 3 6 l 2 6 5 6 x 4 e 8 j k 0114140 3 5 \ g \r M a n y i n t e r n 0114160 a l s y s t e m \a \a h o o k 0114200 s ' ' a r e a v a i l a b l 0114220 e t o t h e s u b l a n g 0114240 u a g e i m p l e m e n t o r 0114260 . ( T h i s t o o h a s 0114300 i t s d r a w b a c k s : 0114320 i t t e n d s t 376 001 \0 313 202 o 0114340 m a k e s u b l a n g u a g 0114360 e s m o r e f r a g i l e . 0114400 ) 032 z 1 0 3 3 6 l 2 6 5 6 x 4 e 0114420 8 j k 3 5 \ g \r T h e s t a n 0114440 d a r d s y s t e m c o n t 0114460 a i n s p a c k a g e s ( p 0114500 r e t t y - p r i n t e r , t 0114520 a b l e - d r i v e n l e x i 0114540 c a l s c a n n e r a n d 0114560 p a r e n - t h e s i s p a r 0114600 s e r ) w h i c h m a k e 0114620 I / O o f p r o g r a m - l 0114640 i k e s t r u c t u r e s e 0114660 a s y . 032 z 1 0 3 3 6 l 2 6 5 6 0114700 x 4 e 8 j k 3 5 \ g \r T h e s 0114720 u b l a n g u a g e s t h a 376 0114740 001 \0 310 210 t d o n ' t t a k e 0114760 a d v a n t a g e o f t h 0115000 e s e c h a r a c t e r i s t 0115020 i c s , s u c h a s C L i 0115040 s p , Q L i s p , a n d K 0115060 R L , f i n d t h e i r l 0115100 i v e s a l o t m o r e 0115120 d i f f i c u l t . I f w 0115140 e w e r e w i l l i n g t 0115160 o l i m i t t h e c o m p 0115200 l e x i t y o f s u b l a n 0115220 g u a g e s t o t h a t o 0115240 f S - e x p r e s s i o n s , 0115260 i . e . , p r o c e d u r e 0115300 s a n d c o n d i t i o n a 0115320 l s , t h e n w e c o u l 0115340 d d e 376 001 \0 \f P v i s e a n 0115360 S - e x p r e s s i o n - l i 0115400 k e r e p r e s e n t a t i o 0115420 n f o r M e s a a l s o . 0115440 ( E x t e n d i n g t h i 0115460 s t o , s a y , a r i t h 0115500 m e t i c e x p r e s s i o n 0115520 s n o t o n l y i n v o l 0115540 v e s a c o m p l e x p a 0115560 r s e r a n d p r e t t y p 0115600 r i n t e r , b u t i n a 0115620 s t a t i c a l l y t y p e 0115640 d l a n g u a g e l i k e 0115660 M e s a a l s o r e q u i r 0115700 e s t a k i n g t y p e d 0115720 e c l a r a t i o n s i n t o 0115740 a c c o u n t 376 001 \0 306 { t o 0115760 d e c i d e w h a t t h e 0116000 o p e r a t o r s i n t h 0116020 e s o u r c e t e x t a c 0116040 t u a l l y m e a n . A d 0116060 m i t t e d l y , t h e S - 0116100 e x p r e s s i o n - l i k e 0116120 a p p r o a c h d o e s n ' t 0116140 a l l o w e m b e d d i n g 0116160 o f a r e a s o n a b l e 0116200 s u b s e t o f M e s a 0116220 i t s e l f i n a s u b l 0116240 a n g u a g e , a n d i t 0116260 d o e s n ' t a d d r e s s 0116300 t h e p o i n t t h a t s 0116320 o m e o f t h e h i g h e 0116340 s t p a y o f f c o m e 376 001 0116360 \0 p 336 s f r o m t h e i n 0116400 t e g r a t i o n o f l a n 0116420 g u a g e s , l i k e K R L 0116440 , t h a t d o n ' t l o o 0116460 k l i k e S - e x p r e s s 0116500 i o n s . ) 032 z 1 0 3 3 6 l 2 1 0116520 1 2 x 4 e 8 j k 3 5 ( 6 3 5 ) \ 0116540 g 8 4 0 i 5 I \r W e a l s o 0116560 n o t e d t h a t n o m a 0116600 t t e r w h a t f e a t u r 0116620 e s t h e l a n g u a g e 0116640 a n d e n v i r o n m e n t 0116660 p r o v i d e d , p r o p e r 0116700 p r o - c e d u r a l i z a t 0116720 i o n o f f a c i l i t i e 0116740 s w a s e s s e n t i a l : 0116760 e v 376 001 \0 h 2 e n L i s p 0117000 h a s s u b l a n g u a g e s 0117020 023 i n p a r t i c u l a r , 0117040 t h e c o m p i l e r c o n 0117060 t r o l s u b l a n g u a g e 0117100 023 t h a t a r e i m p l e m 0117120 e n t e d s o a s t o i 0117140 n t e r a c t w i t h t h e 0117160 u s e r d i r e c t l y , 0117200 a n d t h a t t h e r e f o 0117220 r e c a n n o t b e c o n 0117240 s i d e r e d i n t e g r a t 0117260 e d . 032 z 1 0 3 3 6 l 2 1 1 7 d 0117300 2 6 4 6 x 4 j k 3 5 \ g \r T o 0117320 s h a r p e n o u r i d e a 0117340 s a b o u t w h a t i n t 0117360 e g r a t i o n 376 001 \0 Q 313 m e 0117400 a n s , w e c o n s i d e r 0117420 e d a \a \a s t r a w m a n 0117440 ' ' : a s y s t e m i n 0117460 w h i c h a l l l a n g u a 0117500 g e s ( e d i t o r , i n t 0117520 e r p r e t e r , e t c . ) 0117540 s h a r e d a s c r e e n 0117560 i n t e r f a c e ( w i n d o 0117600 w m a n a g e r ) b u t w 0117620 e r e o t h e r w i s e e n 0117640 t i r e l y s e p a r a t e . 0117660 T h i s l e d u s t o 0117700 t h e f o l l o w i n g o 0117720 b s e r v a t i o n s : 032 z 1 0 0117740 3 3 6 l 2 1 1 7 d 2 6 4 6 x 4 j 0117760 k 3 5 \ g \r T h i s m o 376 001 \0 0120000 311 021 d e l w a s p r o p o s 0120020 e d a s o n e t h a t i 0120040 m p o s e d m i n i m a l r 0120060 e q u i r e m e n t s o n t 0120100 h e i n d i v i d u a l s u 0120120 b - s y s t e m s , a t l e 0120140 a s t i f t h e y o n l y 0120160 d e a l t w i t h t h e 0120200 s c r e e n a s a s e q u 0120220 e n t i a l c h a r a c t e r 0120240 I / O d e v i c e . T h 0120260 i s m a y n o t b e a 0120300 p r o p e r a s s u m p t i o 0120320 n , h o w e v e r : d e s p 0120340 i t e n u m e r o u s a t t 0120360 e m p t s , n o s u c h p 0120400 a c 376 001 \0 343 5 k a g e h a s 0120420 e v e r b e e n d e v e l o 0120440 p e d f o r t h e A l t o 0120460 , a n d t h i s m a y b 0120500 e b e c a u s e n o b o d y 0120520 h a s b e e n a b l e t 0120540 o d e v e l o p a s a t i 0120560 s f a c t o r y m o d e l f 0120600 o r t h e i n t e r f a c e 0120620 . W e a g r e e d t h a 0120640 t t h i n g s b e c o m e 0120660 m o r e c o m p l e x a s 0120700 t h e s u b s y s t e m ' s 0120720 v i e w o f t h e d i s p 0120740 l a y b e c o m e s m o r e 0120760 s o p h i s t i c a t e d ( 0121000 e . g . , a 376 001 \0 ; S n e d 0121020 i t a b l e d o c u m e n t , 0121040 a b i t m a p ) . 032 z 1 0 3 0121060 3 6 l 2 6 5 6 x 4 e 8 j k 3 5 ( 0121100 0 , 2 6 5 6 ) \ g \r W h i l e 0121120 t h i s m o d e l a l l o w 0121140 e d f o r c o n s i d e r a 0121160 b l e c o m m u n i c a t i o 0121200 n ( b y h u m a n t r a n 0121220 s f e r o f c h a r a c t e 0121240 r s f r o m o u t p u t i 0121260 n o n e w i n d o w t o 0121300 i n p u t i n a n o t h e r 0121320 ) , i t h a d t w o s e 0121340 r i o u s d e f i c i e n c i 0121360 e s : i t m a d e n o p 0121400 r o v i s i o n s f o 376 001 \0 260 0121420 307 r c o m m u n i c a t i o n 0121440 u n d e r p r o g r a m , 0121460 r a t h e r t h a n m a n u 0121500 a l , c o n t r o l , a n d 0121520 i t r e q u i r e d t h a 0121540 t a l l t r a n s m i t t e 0121560 d i n f o r m a t i o n b e 0121600 i n t e x t f o r m . 0121620 ( N o t e t h a t e v e n 0121640 t r a n s m i s s i o n o f 0121660 f i l e n a m e s r e q u i 0121700 r e s i n t e g r a t i o n 0121720 i n t h e s e n s e o f 0121740 s h a r i n g a c o m m o n 0121760 f i l e s y s t e m . ) 032 z 0122000 1 0 3 3 6 l 2 6 5 6 x 4 e 8 j k 0122020 3 376 001 \0 ! 252 5 \ g \r W h i l e 0122040 w e d i d n o t r e a c h 0122060 a n y c l e a r c o n c l 0122100 u s i o n s , w e w e r e 0122120 a b l e t o a g r e e o n 0122140 t h e f o l l o w i n g : 032 0122160 z 1 0 3 3 6 l 2 1 1 2 x 4 e 8 j 0122200 k 3 5 ( 6 3 5 ) \ g \r T h i s 0122220 i s a n i m p o r t a n t 0122240 a r e a f o r d i s c u s s 0122260 i o n , b u t i t n e e d 0122300 s m o r e t i m e t h a n 0122320 w e h a d a v a i l a b l 0122340 e t o u s . 032 z 1 0 3 3 6 l 0122360 2 6 5 6 x 4 e 8 j k 3 5 ( 0 , 2 0122400 6 5 6 ) \ g \r I n t e g r a t i 0122420 o n r e a 376 001 \0 ( 372 l l y m 0122440 e a n s a c o m m o n m o 0122460 d e l f o r c o m m u n i c 0122500 a t i o n . 032 z 1 0 3 3 6 l 2 6 0122520 5 6 x 4 e 8 j k 3 5 \ g \r T h e 0122540 o n e c a t a l o g e n t 0122560 r y w e h a v e n o w s 0122600 h o u l d b e b r o k e n 0122620 d o w n i n t o m u l t i p 0122640 l e f e a t u r e s o f d 0122660 i f f e r i n g p r i o r i t 0122700 i e s . 032 z 1 0 3 3 6 l 2 6 5 6 0122720 x 4 e 8 j k 3 5 \ g \r I f a l 0122740 l t h e o t h e r P r i o 0122760 r i t y A f e a t u r e s 0123000 i n t h e c a t a l o g w 0123020 e r e p r o v i d e 376 001 \0 ] H 0123040 d , M e s a c o u l d r e 0123060 a d i l y s u p p o r t s u 0123100 b l a n g u a g e s o f t h 0123120 e c o m p l e x i t y o f 0123140 S - e x p r e s s i o n s . 032 z 0123160 1 0 3 3 6 l 2 6 5 6 x 4 e 8 j k 0123200 3 5 \ g \r A d e q u a t e p r 0123220 o c e d u r a l i z a t i o n 0123240 i s n e c e s s a r y f o r 0123260 a p a c k a g e i m p l e 0123300 m e n t i n g a s u b l a n 0123320 g u a g e t o b e u s a b 0123340 l e . 032 z 1 0 3 3 6 l 2 6 5 6 x 0123360 4 e 8 j k 3 5 \ g \r A m a j o 0123400 r s o u r c e o f d i f f 0123420 i c u l t y i s t h e s h 0123440 376 001 \0 001 377 a r i n g o r p a 0123460 s s i n g o f e n v i r o n 0123500 m e n t i n f o r m a t i o n 0123520 b e t w e e n s u b l a n g 0123540 u a g e s . O n e p a r t 0123560 o f t h i s d i f f i c u 0123600 l t y i s s i m p l y a d 0123620 d r e s s i n g o r n a m i 0123640 n g o b j e c t s t o b e 0123660 s h a r e d . A n o t h e 0123700 r p a r t i s m a k i n g 0123720 s u r e t h a t s h a r e 0123740 d o b j e c t s a r e i n 0123760 t e r p r e t e d t h e s a 0124000 m e w a y ( i n M e s a , 0124020 m a k i n g s u r e t h e 0124040 c o m m 376 001 \0 002 d u n i c a n 0124060 t s s h a r e t h e s a m 0124100 e d e c l a r a t i o n s f 0124120 o r t h e o b j e c t s ) . 0124140 O n e w a y a r o u n d 0124160 t h i s i s t o h a v e 0124200 a l i m i t e d n u m b e 0124220 r o f g l o b a l l y a g 0124240 r e e d - u p o n s t r u c t 0124260 u r e s , s u c h a s s t 0124300 r i n g s o r S - e x p r e 0124320 s s i o n s , a n d t h e n 0124340 e n c o d i n g m o r e s 0124360 p e c i a l i z e d l a n g u 0124400 a g e s w i t h i n t h e m 0124420 a n d i n t e r p r e t i n 0124440 g t h e m b y 376 001 \0 253 { c 0124460 o n v e n t i o n o r a g r 0124500 e e m e n t ( a s L i s p 0124520 d o e s ) . 032 z 1 0 3 3 6 l 2 6 0124540 5 6 x 4 e 8 j k 3 5 \ g \r W e 0124560 a l s o d o n o t a g r e 0124600 e o n t h e i m p o r t a 0124620 n c e o f f u l l y i n t 0124640 e g r a t e d s u b l a n g u 0124660 a g e s : a n u m b e r o 0124700 f L i s p u s e r s f e e 0124720 l t h i s i t e m s h o u 0124740 l d h a v e v e r y h i g 0124760 h p r i o r i t y . 032 z 1 0 3 0125000 3 6 l 2 1 1 2 x 4 e 8 j k 3 5 ( 0125020 6 3 5 ) \ g \r ( L 2 2 ) \t U s e 0125040 r a c c e s s t o t h e 376 0125060 001 \0 317 261 m a c h i n e ' s c 0125100 a p a b i l i t y f o r m u 0125120 l t i - p r e c i s i o n a r 0125140 i t h m e t i c 032 z 1 0 3 3 6 l 0125160 3 1 7 5 d 2 1 1 7 e 1 6 k 8 0 ( 0125200 0 , 3 1 7 5 ) \ g 6 i 7 0 I \r M 0125220 a n y l a n g u a g e s y s 0125240 t e m s , t h o u g h i m p 0125260 l e m e n t e d o n m a c h 0125300 i n e s i n w h i c h m u 0125320 l t i - p r e c i s i o n a r 0125340 i t h m e t i c i n a s s e 0125360 m b l y l a n g u a g e i s 0125400 r e l a t i v e l y s t r a 0125420 i g h t f o r w a r d , m a k 0125440 e i t i m p o s s i b l e 0125460 f o r 376 001 \0 Z 363 t h e u s e 0125500 r t o g e t a t t h e s 0125520 e f a c i l i t i e s ( s u 0125540 c h a s t h e c a r r y 0125560 f r o m s i n g l e - p r e c 0125600 i s i o n a d d i t i o n , 0125620 o r t h e d o u b l e - b y 0125640 - s i n g l e d i v i s i o n 0125660 t h a t m o s t m a c h i 0125700 n e s p r o v i d e i n h 0125720 a r d w a r e ) . T h e r e 0125740 i s n o e x c u s e f o 0125760 r t h i s , e s p e c i a l 0126000 l y o n m a c h i n e s w 0126020 i t h r e l a t i v e l y s 0126040 h o r t ( 1 6 - b i t ) w o 0126060 r d s . 032 z 1 0 3 376 001 \0 323 371 3 6 0126100 l 2 1 1 7 d 2 6 4 6 x 4 e 8 j k 0126120 3 5 ( 6 3 5 ) \ g \r ( L 2 3 ) \t 0126140 G o o d f a c i l i t i e s 0126160 f o r p r o c e s s e s , m 0126200 o n i t o r s , i n t e r r u 0126220 p t s 032 z 1 0 3 3 6 l 3 1 7 5 d 0126240 2 1 1 7 e 1 6 k 8 0 ( 0 , 3 1 7 0126260 5 ) \ g 6 i 5 1 I \r S y n c h r 0126300 o n i z a t i o n b e t w e e 0126320 n l o g i c a l l y a s y n 0126340 c h r o n o u s p r o c e s s 0126360 e s i s n e c e s s a r y 0126400 i n m a n y p r o g r a m s 0126420 , e i t h e r f o r f u n 0126440 c t i o n a l r e a s o n s 0126460 ( a s y s t e m s h o u 376 001 0126500 \0 305 341 l d b e a b l e t o 0126520 l i s t e n f o r i n c o 0126540 m i n g m a i l , s e n d 0126560 a f i l e t o b e p r i 0126600 n t e d , a n d c a r r y 0126620 o u t i n t e r a c t i v e 0126640 e d i t i n g s i m u l t a n 0126660 e o u s l y ) o r f o r e 0126700 f f i c i e n c y ( o v e r l 0126720 a p p i n g c o m p u t a t i 0126740 o n w i t h d i s k t r a 0126760 n s f e r s ) . T h e l a 0127000 n g u a g e s y s t e m , t 0127020 h r o u g h a n u n d e r - 0127040 l y i n g o p e r a t i n g 0127060 s y s t e m i f n e c e s s 0127100 a r y 376 001 \0 L 375 , s h o u l d 0127120 p r o v i d e m e c h a n i 0127140 s m s t h a t h e l p t h 0127160 e p r o g r a m m e r w r i 0127200 t e p r o - g r a m s t h a 0127220 t i n v o l v e m u l t i p 0127240 l e p r o c e s s e s . T 0127260 h e r e a r e a n u m b e 0127300 r o f a d e q u a t e , t 0127320 h o u g h c o n f l i c t i n 0127340 g , m o d e l s o f t h e 0127360 s e m e c h a n i s m s a v 0127400 a i l a b l e , s u c h a s 0127420 t h e M e s a a n d P i 0127440 l o t f a c i l i t i e s a 0127460 n d t h e S m a l l t a l k 0127500 s c h e d u l 376 001 \0 j 206 e r . 0127520 W e d i d n o t d i s 0127540 c u s s t h i s a r e a a 0127560 t a l l . 032 z 1 0 3 3 6 l 2 1 0127600 1 7 d 2 6 4 6 x 4 e 8 j k 3 5 ( 0127620 6 3 5 ) \ g \r ( L 2 4 ) \t S i m 0127640 p l e , u n a m b i g u o u s 0127660 s y n t a x ( i n c l u d i 0127700 n g i n f i x n o t a t i o 0127720 n ) 032 z 1 0 3 3 6 l 3 1 7 5 d 2 0127740 1 1 7 e 1 6 k 8 0 ( 0 , 3 1 7 5 0127760 ) \ g 6 i 5 3 I \r W h i l e C 0130000 L i s p l e a v e s a v e 0130020 r y l a r g e g a p b e t 0130040 w e e n w h a t c a n b e 0130060 p r e c i s e l y d e f i n 0130100 e d a n d w h a t t 376 001 \0 0130120 327 240 h e u s e r c a n r e 0130140 a s o n a b l y d o , a n d 0130160 w h i l e M e s a s y n t 0130200 a x i s r e g r e t t a b l 0130220 y c o m p l e x ( 5 c l o 0130240 s e l y - s p a c e d p a g e 0130260 s ) , w e a r e w i l l i 0130300 n g t o t o l e r a t e p 0130320 r o b l e m s o f t h i s 0130340 s o r t u n d e r t h e a 0130360 s s u m p t i o n t h a t t 0130400 h e p r i m a r y u s e r s 0130420 o f t h e s y s t e m w 0130440 i l l b e e x p e r t s , 0130460 a n d t h a t n o v i c e s 0130500 w i l l b e a b l e t o 0130520 l 376 001 \0 \t 205 e a r n a u s 0130540 e f u l s u b s e t e a s i 0130560 l y . 032 z 1 0 3 3 6 l 2 1 1 7 d 0130600 2 6 4 6 x 4 e 8 j k 3 5 ( 6 3 5 0130620 ) \ g \r ( L 2 5 ) \t C o n t r o 0130640 l o v e r i m p o r t a t i 0130660 o n o f n a m e s 032 z 1 0 3 0130700 3 6 l 3 1 7 5 d 2 1 1 7 e 1 6 k 0130720 8 0 ( 0 , 3 1 7 5 ) \ g 6 i 3 3 0130740 I \r A s d i s c u s s e d u 0130760 n d e r ( L 1 3 ) a n d ( 0131000 L 1 4 ) , i m p o r t c o n 0131020 t r o l s e e m s l e s s 0131040 i m p o r t a n t t h a n e 0131060 x p o r t c o n t r o l . 0131100 T h e r e a s o n i s t h 0131120 a t t h e 376 001 \0 005 A i m p l 0131140 i c i t u s e o f a n i 0131160 n t e r f a c e c a n b e 0131200 d e d u c e d l o c a l l y 0131220 b y n o t h i n g w h a t 0131240 n a m e s a r e u s e d ; 0131260 f o r e x p o r t , t h e 0131300 i s s u e i s g l o b a l 0131320 a n d n o t u n d e r c o 0131340 n t r o l o f t h e p r o 0131360 v i d e r o f t h e p a c 0131400 k a g e w i t h o u t s o m 0131420 e e x p l i c i t s p e c i 0131440 f i c a t i o n . 032 z 1 0 3 3 6 0131460 l 2 1 1 7 d 2 6 4 6 x 4 e 8 j k 0131500 3 5 ( 6 3 5 ) \ g \r ( L 2 6 ) \t 0131520 U s e r p a c k a g e 376 001 \0 213 0131540 002 s a s \a \a f i r s t - c l 0131560 a s s c i t i z e n s ' ' 032 z 0131600 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 e 0131620 1 6 k 8 0 ( 0 , 3 1 7 5 ) \ g 6 0131640 i 4 1 I \r W e w o u l d l i 0131660 k e u s e r - d e f i n e d 0131700 p a c k a g e s t o f u n c 0131720 t i o n a s \a \a f i r s t - 0131740 c l a s s c i t i z e n s ' ' 0131760 o n a p a r w i t h b 0132000 u i l t - i n p r i m i t i v 0132020 e s ( t y p e s , o p e r a 0132040 t i o n s , e t c . ) H o 0132060 w e v e r , t h e E u c l i 0132100 d e x p e r i e n c e s e e 0132120 m s t o i n d i c a t e t 0132140 h 376 001 \0 w 276 a t t h i s i s 0132160 v e r y d i f f i c u l t 0132200 [ P o p e k , e t a l . , 0132220 1 9 7 7 ] . I n S m a l l 0132240 t a l k , t h i s g o a l 0132260 h a s b e e n a c h i e v e 0132300 d e x c e p t f o r s o m 0132320 e I / O i s s u e s , a t 0132340 t h e e x p e n s e o f 0132360 n o t h a v i n g s t a t i 0132400 c t y p e s t r u c t u r e 0132420 i n t h e l a n g u a g e 0132440 a t a l l . 032 z 1 0 3 3 6 l 0132460 2 1 1 7 d 2 6 4 6 x 4 e 8 j k 3 0132500 5 ( 6 3 5 ) \ g 2 2 2 i 6 I \r ( 0132520 L 2 7 ) \t C l o s u r e s 032 z 1 0132540 0 3 3 6 l 3 376 001 \0 337 ; 1 7 5 d 2 0132560 1 1 7 e 1 6 k 8 0 ( 0 , 3 1 7 5 0132600 ) \ g 6 i 8 I \r S e e ( L 1 5 0132620 ) f o r d i s c u s s i o n 0132640 . 032 z 1 0 3 3 6 l 2 1 1 7 d 2 6 0132660 4 6 x 4 e 8 j k 3 5 ( 6 3 5 ) \ 0132700 g \r ( L 2 8 ) \t F u l l - s c a 0132720 l e i n t e r - l a n g u a g 0132740 e c o m m u n i c a t i o n 032 0132760 z 1 0 3 3 6 l 3 1 7 5 d 2 1 1 7 0133000 e 1 6 k 8 0 ( 0 , 3 1 7 5 ) \ g 0133020 6 i 3 9 I \r ( L 2 9 ) \t U s e r 0133040 m i c r o p r o g r a m m i n 0133060 g 032 z 1 0 3 3 6 l 3 1 7 5 d 2 1 0133100 1 7 e 6 \ g 6 i 2 1 I \r T h e 0133120 a b i l i t y t o s h a r e 0133140 d a t a a n d p 376 001 \0 244 F 0133160 a s s c o n t r o l f r e e 0133200 l y b e t w e e n p r o g r 0133220 a m s w r i t t e n i n a 0133240 n y o f t h e m a j o r 0133260 l a n g u a g e s d e p e n d 0133300 s o n c a r e f u l l y c 0133320 o o r d i n a t e d u s e o 0133340 f c e r t a i n b a s i c 0133360 r e s o u r c e s s u c h a 0133400 s t h e p e r i p h e r a l 0133420 d e v i c e s a n d t h e 0133440 m a c h i n e ' s a d d r e 0133460 s s s p a c e . W e t h 0133500 i n k t h i s i s l e s s 0133520 u r g e n t t h a n t h e 0133540 m o r e r e s t r i c t e d 0133560 376 001 \0 277 300 f a c i l i t i e s 0133600 o f ( L 1 7 ) : t h e p 0133620 r i m a r y m o t i v a t i o 0133640 n f o r c h a n g i n g l 0133660 a n g u a g e s i n m i d - 0133700 p r o g r a m i s i n c r e 0133720 a s e d e f f i c i e n c y , 0133740 a n d d r o p p i n g i n 0133760 t o M e s a f r o m L i s 0134000 p o r S m a l l t a l k p 0134020 r o v i d e s t h i s , a l 0134040 t h o u g h i t d o e s n 0134060 o t a d d r e s s t h e s 0134100 e c o n d a r y m o t i v a t 0134120 i o n , w h i c h i s t h 0134140 e a b i l i t y t o t a k 0134160 e a d v 376 001 \0 373 201 a n t a g e 0134200 o f w o r k a l r e a d y 0134220 d o n e ( o r m o r e c 0134240 o n v e n i e n t l y d o n e 0134260 ) i n a n o t h e r l a n 0134300 g u a g e . 032 z 1 0 3 3 6 l 2 1 0134320 1 7 d 2 6 4 6 x 4 e 8 j k 3 5 ( 0134340 6 3 5 ) \ g \r I n c a s e s 0134360 r e q u i r i n g e x t r e m 0134400 e s p e e d , i t m a y 0134420 b e n e c e s s a r y t o 0134440 g i v e t h e p r o g r a m 0134460 m e r a w a y t o w r i 0134500 t e a p p l i c a t i o n - d 0134520 e p e n d e n t m i c r o c o 0134540 d e a n d l i n k i t t 0134560 o t h e s y s t 376 001 \0 037 264 e 0134600 m i n a w a y t h a t 0134620 p r o v i d e s a t l e a s 0134640 t s o m e c h e c k i n g 0134660 t h a t i t w i l l n o t 0134700 d e s t r o y t h e r e s 0134720 t o f t h e s y s t e m . 0134740 W e d i d n o t d i s 0134760 c u s s t h i s . 032 z 1 0 3 3 0135000 6 l 2 1 1 7 d 2 6 4 6 x 4 j k 3 0135020 5 \ g 2 7 0 i \r ( L 3 0 ) \t C l 0135040 e a n d a t a a n d c o n 0135060 t r o l t r a p p i n g m e 0135100 c h a n i s m s 032 z 1 0 3 3 6 l 0135120 3 1 7 5 d 2 1 1 7 e 1 6 k 8 0 ( 0135140 0 , 3 1 7 5 ) \ g 6 i 4 2 I \r T 0135160 h e r e w a s a l o n g 376 0135200 001 \0 376 203 a n d i n c o n c l 0135220 u s i v e d i s c u s s i o n 0135240 . A p p a r e n t l y w e 0135260 d o n ' t r e a l l y k n 0135300 o w w h a t t h i s p o i 0135320 n t i s a b o u t . A t 0135340 o n e e x t r e m e o f 0135360 \a \a d a t a t r a p p i n g ' 0135400 ' t h e r e i s a s i m 0135420 p l e a d d r e s s t r a p 0135440 , a s o n e a r l y m a 0135460 c h i n e s . A t t h e 0135500 o t h e r e x t r e m e i s 0135520 K R L . N o o n e w a 0135540 s w i l l i n g t o e s p 0135560 o u s e e i t h e r e x t r 0135600 e m e . 376 001 \0 200 7 W e n o 0135620 t e d t h a t : 032 z 1 0 3 3 6 0135640 l 2 1 1 7 d 2 6 4 6 x 4 e 8 j k 0135660 3 5 ( 6 3 5 ) \ g \r P r o g r a 0135700 m m i n g w i t h d a t a 0135720 a b s t r a c t i o n s c a n 0135740 h e l p w i t h t h i s 0135760 p r o b l e m , s i n c e t 0136000 h e r e i s t h e n a b 0136020 e t t e r h a n d l e o n 0136040 w h e n d a t a i s b e i 0136060 n g c h a n g e d . 032 z 1 0 3 0136100 3 6 l 2 6 5 6 x 4 e 8 j k 3 5 ( 0136120 0 , 2 6 5 6 ) \ g \r C h e c k i 0136140 n g s o m e p r e d i c a t 0136160 e a t p e r i o d i c i n 0136200 t e r v a l s ( 376 001 \0 322 377 e . 0136220 g . , o n e v e r y c o n 0136240 t r o l t r a n s f e r ) m 0136260 a y b e q u i t e a d e q 0136300 u a t e w h e n d a t a t 0136320 r a p p i n g i s b e i n g 0136340 u s e d t o c a t c h \a 0136360 \a c o r e s m a s h i n g ' ' 0136400 t y p e s o f b u g s . 0136420 M e s a a l r e a d y h a 0136440 s t h i s f a c i l i t y . 0136460 032 z 1 0 3 3 6 l 2 6 5 6 x 4 e 8 0136500 j k 3 5 \ g \r M a n y i n t e 0136520 r e s t i n g c a s e s c a 0136540 n p r o b a b l y b e h a 0136560 n d l e d b y u s i n g t 0136600 h e p r i m i t i v e t 376 001 0136620 \0 d ' r a p p i n g f a c i l 0136640 i t i e s o f t h e m a p 0136660 p i n g h a r d w a r e . 032 z 0136700 1 0 3 3 6 l 2 6 5 6 x 4 e 8 j k 0136720 3 5 \ g \r ( L 3 1 ) \t \a \a G o o 0136740 d ' ' e x c e p t i o n a l 0136760 c o n d i t i o n h a n d l i 0137000 n g 032 z 1 0 3 3 6 l 3 1 7 5 d 2 0137020 1 1 7 e 1 6 k 8 0 ( 0 , 3 1 7 5 0137040 ) \ g 6 i 3 9 I \r A s d i s c 0137060 u s s e d a b o v e , w e 0137100 r e a l l y d o n ' t k n o 0137120 w w h a t t h i s w o u l 0137140 d m e a n . R o y L e v 0137160 i n ' s t h e s i s , a m o 0137200 n g o t h e r p u b l i s h 0137220 e d 376 001 \0 240 e p a p e r s , 0137240 m a y b e r e l e v a n t 0137260 [ L e v i n , 1 9 7 7 ] . 032 z 0137300 1 0 3 3 6 l 2 1 1 7 d 2 6 4 6 x 0137320 4 e 8 j k 3 5 ( 6 3 5 ) \ g \r 2 0137340 . 3 . T o o l s 032 z 1 0 3 3 6 0137360 l 2 1 1 7 x 4 e 2 0 k 1 0 0 \ b 0137400 g \r ( T 1 ) \t F a s t t u r n 0137420 a r o u n d f o r m i n o r 0137440 p r o g r a m c h a n g e s 0137460 ( l e s s t h a n 5 s e 0137500 c o n d s ) 032 z 1 0 3 3 6 l 3 1 0137520 7 5 d 2 1 1 7 e 1 6 k 8 0 ( 0 , 0137540 3 1 7 5 ) \ g 5 i 6 3 I \r O u r 0137560 c o n c e r n w i t h f a 0137600 s t t u r n a r o u n d c o 0137620 m e s f r o m 376 001 \0 231 * t h 0137640 e o b s e r v a t i o n t h 0137660 a t p r o g r a m m i n g s 0137700 h o u l d b e t h i n k b 0137720 o u n d , n o t c o m p u t 0137740 e b o u n d . T h e r e 0137760 a r e s e v e r a l \a \a k n 0140000 e e s ' ' ( p o i n t s o f 0140020 s u b s t a n t i a l n o n 0140040 - l i n e a r i t y ) i n o 0140060 n e ' s p e r c e p t i o n 0140100 o f r e s p o n s e d e l a 0140120 y s . O n e s u c h k n 0140140 e e i s i n t h e v i c 0140160 i n i t y o f 3 t o 5 0140200 s e c o n d s . W e b e l 0140220 i e v e t h a t i t 376 \0 201 0140240 330 a i s e s s e n t i a l t 0140260 o r e d u c e t h e s y s 0140300 t e m t i m e f o r m i n 0140320 o r p r o g r a m c h a n g 0140340 e s t o b e l o w t h i s 0140360 p o i n t . 032 z 1 0 3 3 6 l 2 0140400 1 1 7 d 2 6 4 6 x 4 e 8 j k 3 5 0140420 ( 6 3 5 ) \ g 8 7 i 1 1 I 6 i 1 0140440 3 I \r 377 \0 \0 e p e 2 b . b r a v 0140460 o \0 373 231 \a 376 \0 \0 376 001 \0 207 261 P a 0140500 g e N u m b e r s : Y e s 0140520 X : 5 5 2 Y : 1 0 0140540 . 5 " F i r s t P a g e 0140560 : 1 2 \r C o l u m n s : 2 0140600 E d g e M a r g i n : 6 0140620 0 B e t w e e n C o l u 0140640 m n s : 2 5 \r M a r g i n s : 0140660 T o p : 7 5 B o t 0140700 t o m : 6 0 \r L i n e N u m 0140720 b e r s : N o M o d u l 0140740 u s : 5 P a g e - r e l 0140760 a t i v e \r E v e n H e a d i 0141000 n g : 032 z 1 9 4 7 3 l 2 1 1 7 q 0141020 k 4 0 ( 6 3 5 ) \ g \r R E Q U I 0141040 R E M E N T S F O R A N E 0141060 X P E R I M E N T A L P R 376 001 0141100 \0 ; 275 O G R A M M I N G E N V 0141120 I R O N M E N T 032 z 1 9 4 7 3 l 0141140 2 1 1 7 y 7 5 6 q c k 4 0 \ g 1 0141160 f 1 1 9 f 0 1 f 1 1 2 f 0 0141200 1 f 1 1 1 f 0 1 f 1 \r O d 0141220 d H e a d i n g : 032 z 1 9 4 7 0141240 3 l 2 1 1 7 q k 4 0 \ g \r C A T 0141260 A L O G O F P R O G R A M M 0141300 I N G E N V I R O N M E N T 0141320 C A P A B I L I T I E S 032 z 1 9 0141340 4 7 3 l 2 1 1 7 y 7 5 6 q c k 4 0141360 0 \ g 1 f 1 \r ( T 2 ) \t C o m p 0141400 i l e r / i n t e r p r e t e r 0141420 a v a i l a b l e w i t h 0141440 l o w o v e r h e a d a t 0141460 r u n t i m e 032 z 1 0 3 3 6 l 0141500 3 1 7 376 001 \0 - 300 5 d 2 1 1 7 e 1 0141520