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