%!PS-Adobe-2.0 %%Creator: dvips 5.47 Copyright 1986-91 Radical Eye Software %%Title: BLISS.DVI %%Pages: 12 1 %%BoundingBox: 0 0 612 792 %%EndComments %%BeginProcSet: tex.pro /TeXDict 200 dict def TeXDict begin /N /def load def /B{bind def}N /S /exch load def /X{S N}B /TR /translate load N /isls false N /vsize 10 N /@rigin{ isls{[0 1 -1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale Resolution VResolution vsize neg mul TR matrix currentmatrix dup dup 4 get round 4 exch put dup dup 5 get round 5 exch put setmatrix}N /@letter{/vsize 10 N}B /@landscape{/isls true N /vsize -1 N}B /@a4{/vsize 10.6929133858 N}B /@a3{ /vsize 15.5531 N}B /@ledger{/vsize 16 N}B /@legal{/vsize 13 N}B /@manualfeed{ statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail} B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128 ch-data dup length 3 sub get sub}B /ch-yoff{ ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{ch-image} imagemask restore}B /D{/cc X dup type /stringtype ne{]}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto}N /eop{clear SI restore showpage userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook known{start-hook}if /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for}N /p /show load N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V statusdict begin /product where{pop product dup length 7 ge{0 7 getinterval(Display)eq}{pop false}ifelse}{false}ifelse end{{gsave TR -.1 -.1 TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 -.1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /a{ moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{ S p tail}B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w }B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{clear SS restore}B end %%EndProcSet TeXDict begin 1000 300 300 @start /Fa 1 81 df80 D E /Fb 7 121 df<40E06020202040408003097D820A>59 D<07800C401020304060407F8060004000C0004020604021801E000B0D7E8C10>101 D<06070600000000384C4C8C98181830326262643808147F930C>105 D<006000700060000000 0000000000038004C0046008C008C000C000C0018001800180018003000300030003006600E600 CC0078000C1A81930E>I<3E0006000C000C000C000C001800187018B819383230340038003E00 6300631063106310C320C1C00D147E9312>I<30F8590C4E0C9C0C980C180C180C301830193031 30316032601C100D7F8C15>110 D<0E3C13CE238E430C43000300030006000608C608E610CA20 71C00F0D7F8C13>120 D E /Fc 1 1 df0 D E /Fd 1 111 df<71F09A189C18981818183030303030323062606460380F0B7E8A13>110 D E /Fe 8 55 df<00C00000C00000C00000C00000C00000C00000C00000C00000C000FFFF80FF FF8000C00000C00000C00000C00000C00000C00000C00000C00000C00011147E8F17>43 D<1F00318060C04040C060C060C060C060C060C060C060C060404060C031801F000B107F8F0F> 48 D<0C003C00CC000C000C000C000C000C000C000C000C000C000C000C000C00FF8009107E8F 0F>I<1F00618040C08060C0600060006000C00180030006000C00102020207FC0FFC00B107F8F 0F>I<1F00218060C060C000C0008001800F00008000400060C060C060804060801F000B107F8F 0F>I<0300030007000F000B001300330023004300C300FFE003000300030003001FE00B107F8F 0F>I<20803F002C002000200020002F0030802040006000600060C06080C061801F000B107F8F 0F>I<0780184030C060C06000C000CF00F080E040C060C060C060406060C030801F000B107F8F 0F>I E /Ff 11 62 df<0060000060000060000060000060000060000060000060000060000060 00FFFFF0FFFFF00060000060000060000060000060000060000060000060000060000060001416 7E9119>43 D<0F0030C0606060604020C030C030C030C030C030C030C030C030C0304020606060 6030C00F000C137E9211>48 D<0C001C00EC000C000C000C000C000C000C000C000C000C000C00 0C000C000C000C000C00FFC00A137D9211>I<1F0060C06060F070F030603000700070006000C0 01C00180020004000810101020207FE0FFE00C137E9211>I<0FC0307070387038703800380030 00E00FC0007000380018001C601CF01CF018E03860701FC00E137F9211>I<006000E000E00160 026006600C600860106020606060C060FFFC0060006000600060006003FC0E137F9211>I<6060 7FC07F8044004000400040004F0070C040E0006000700070E070E070E06040E021C01F000C137E 9211>I<07C00C201070207060006000C000CF00D0C0E060C020C030C030C03040306020206010 C00F000C137E9211>I<0FC0107020186018601870183C303F600F800FE031F06078C01CC00CC0 0CC00C601830300FC00E137F9211>56 D<0F00308060404060C020C030C030C0304030607030B0 0F30003000200060E040E08041003E000C137E9211>I<7FFFE0FFFFF000000000000000000000 0000000000000000FFFFF07FFFE0140A7E8B19>61 D E /Fg 25 121 df<78FCFCFCFC7806067D 850D>46 D<78FCFCFCFC7800000000000070F8FCFCFC7C0404080808102040061A7D910D>59 D<0FF8001C1E003E0F803E07803E07C01C07C00007C0007FC007E7C01F07C03C07C07C07C0F807 C0F807C0F807C0780BC03E13F80FE1F815127F9117>97 D I<03FC000E0E001C1F003C1F00781F00780E00F80000F80000F80000F80000F80000F800007800 007801803C01801C03000E0E0003F80011127E9115>I<000FF0000FF00001F00001F00001F000 01F00001F00001F00001F00001F00001F001F9F00F07F01C03F03C01F07801F07801F0F801F0F8 01F0F801F0F801F0F801F0F801F07801F07801F03C01F01C03F00F0FFE03F9FE171D7E9C1B>I< 01FC000F07001C03803C01C07801C07801E0F801E0F801E0FFFFE0F80000F80000F80000780000 7C00603C00601E00C00F038001FC0013127F9116>I<007F0001E38003C7C00787C00F87C00F83 800F80000F80000F80000F80000F8000FFF800FFF8000F80000F80000F80000F80000F80000F80 000F80000F80000F80000F80000F80000F80000F80000F80007FF8007FF800121D809C0F>I<03 F8F00E0F381E0F381C07303C07803C07803C07803C07801C07001E0F000E0E001BF80010000018 00001800001FFF001FFFC00FFFE01FFFF07801F8F00078F00078F000787000707800F01E03C007 FF00151B7F9118>II<1E003F003F003F003F001E000000 00000000000000000000FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F 001F00FFE0FFE00B1E7F9D0E>I<007800FC00FC00FC00FC007800000000000000000000000003 FC03FC007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C 707CF87CF878F8F070E01F800E26839D0F>IIIII<01FC000F07801C01C03C01E07800F0 7800F0F800F8F800F8F800F8F800F8F800F8F800F87800F07800F03C01E01E03C00F078001FC00 15127F9118>II114 D<1FD830786018E018E018F000FF807FE07FF01FF807FC007CC01CC01CE01CE018F830CFC00E12 7E9113>I<0300030003000300070007000F000F003FFCFFFC1F001F001F001F001F001F001F00 1F001F001F0C1F0C1F0C1F0C0F08079803F00E1A7F9913>IIIII E /Fh 27 123 df<00F000030C000E06041C07043807083007 08700790700790E003A0E003A0E003C0E00380E00380E00380600780601B883061900F80E01612 7E911B>11 D<01F807000C0018003800300070007FC0E000E000E000E000E00060006000300018 600F800D127E9111>15 D<60F0F06004047C830C>58 D<60F0F0701010101020204080040C7C83 0C>I<01FFFF00003C03C0003800E0003800F00038007000380070007000F0007000F0007000F0 007000E000E001E000E003C000E0078000E01E0001FFF00001C0000001C0000001C00000038000 00038000000380000003800000070000000700000007000000070000000F000000FFE000001C1C 7E9B1B>80 D<01FFC0FF80001E003C00001E003000000E002000000F0040000007008000000701 0000000782000000038400000003C800000001D000000001F000000000E000000000E000000000 F00000000170000000027000000004380000000838000000103C000000201C000000401E000000 800E000001800E000003000F000006000700001E000F8000FF803FF000211C7F9B22>88 D<01E3000717000C0F00180F00380E00300E00700E00700E00E01C00E01C00E01C00E01C00E038 80E03880E038806078803199001E0E0011127E9116>97 D<3F00070007000E000E000E000E001C 001C001C001C0039E03A303C1838187018701C701C701CE038E038E038E030E070E060E0C061C0 23001E000E1D7E9C12>I<01F0030C0E0C1C1E383C301870007000E000E000E000E000E000E004 6008601030601F800F127E9112>I<0007E00000E00000E00001C00001C00001C00001C0000380 00038000038000038001E7000717000C0F00180F00380E00300E00700E00700E00E01C00E01C00 E01C00E01C00E03880E03880E038806078803199001E0E00131D7E9C16>I<01F007080C081804 3808300870307FC0E000E000E000E000E000E0046008601030600F800E127E9113>I<0001E000 0630000E78000CF0001C60001C00001C00001C00003C0000380000380003FFC000380000380000 700000700000700000700000700000E00000E00000E00000E00000E00001C00001C00001C00001 C00001C000018000038000038000630000F30000F60000E4000078000015257E9C14>I<007180 018B800307800607800E07000C07001C07001C0700380E00380E00380E00380E00381C00381C00 381C00183C0008F800073800003800003800007000607000F06000F0E000E180007E0000111A7F 9114>I<0FC00001C00001C0000380000380000380000380000700000700000700000700000E3E 000EC3000F03800E03801E03801C03801C03801C0380380700380700380700380E00700E20700E 20701C20701C40E00C80600700131D7E9C18>I<01C003C003C001800000000000000000000000 001C00270047004700870087000E000E001C001C001C003800388038807080710032001C000A1C 7E9B0E>I<1F800380038007000700070007000E000E000E000E001C001C001C001C0038003800 380038007000700070007000E400E400E400E40064003800091D7E9C0C>108 D<381F81F04E20C6184640E81C4680F01C8F00F01C8E00E01C0E00E01C0E00E01C1C01C0381C01 C0381C01C0381C01C0703803807138038071380380E1380380E2700700643003003820127E9124 >I<381F004E61804681C04701C08F01C08E01C00E01C00E01C01C03801C03801C03801C070038 0710380710380E10380E2070064030038014127E9119>I<00F800030C000E06001C0300180300 300300700380700380E00700E00700E00700E00E00E00E00E01C0060180060300030E0000F8000 11127E9114>I<07078009C86008D03008E03011C03011C03801C03801C0380380700380700380 700380600700E00700C00701800783000E86000E78000E00000E00001C00001C00001C00001C00 003C0000FF8000151A819115>I<383C4E424687470F8E1E8E0C0E000E001C001C001C001C0038 003800380038007000300010127E9113>114 D<01F0060C04040C0E180C1C001F000FE00FF003 F80038201C7018F018F010803060601F800F127E9113>I<00C001C001C001C003800380038003 80FFF00700070007000E000E000E000E001C001C001C001C00382038203840384018800F000C1A 80990F>I<1C00C0802701C1C04701C1C04701C0C087038040870380400E0380400E0380401C07 00801C0700801C0700801C07010018060100180602001C0E02001C0F04000E13080003E1F0001A 127E911E>119 D<07878008C84010F0C020F1E020E3C040E18000E00000E00001C00001C00001 C00001C000638080F38080F38100E5810084C60078780013127E9118>I<1C00C02701C04701C0 4701C08703808703800E03800E03801C07001C07001C07001C0700180E00180E00180E001C1E00 0C3C0007DC00001C00001800603800F03000F06000E0C0004180003E0000121A7E9114>I<0381 07C10FE6081C10080010002000400080010002000400080410042C1877F843F081C010127E9113 >I E /Fi 10 106 df0 D<0300030003000300E31C73381FE00780 07801FE07338E31C03000300030003000E107E9013>3 D<00000600001E0000780001E0000780 001E0000780001E0000780001E0000780000E000007800001E000007800001E000007800001E00 0007800001E000007800001E0000060000000000000000000000000000000000007FFFFCFFFFFE 171F7D971E>20 D<0400000004000000080000001000000020000000FFFFFFFFFFFFFFFF200000 0010000000080000000400000004000000200C7D8E26>32 D<01000300078007800B403330C30C 030003000300030003000300030003000300030003000300030003000300030003000300030003 000300030003000300030003000E217E9913>34 D<0000600000600000C00000C0000180000180 000300000300000600000C00000C0000180000180000300000300000600000600000C00000C000 0180000180000300000300000600000600000C0000180000180000300000300000600000600000 C0000040000013227B9900>54 D<007001C0038007000700070007000700070007000700070007 000700070007000E001C00F0001C000E0007000700070007000700070007000700070007000700 07000700038001C000700C257D9B13>102 DI<00800180030003000300060006000C000C 000C0018001800180030003000600060006000C000C00060006000600030003000180018001800 0C000C000C00060006000300030003000180008009267D9B0F>II E /Fj 28 119 df<00800100020004000C00080018003000300030006000600060006000E000E0 00E000E000E000E000E000E000E000E0006000600060006000300030003000180008000C000400 02000100008009267D9B0F>40 D<8000400020001000180008000C000600060006000300030003 000300038003800380038003800380038003800380038003000300030003000600060006000C00 08001800100020004000800009267E9B0F>I<000C0000000C0000000C0000000C0000000C0000 000C0000000C0000000C0000000C0000000C0000000C0000000C0000FFFFFF80FFFFFF80000C00 00000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C 0000000C0000191A7E951E>43 D<60F0F07010101020204080040B7D830B>I<07801860303030 3060186018E01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01C60186018703830301860 07800E187E9713>48 D<03000700FF000700070007000700070007000700070007000700070007 0007000700070007000700070007000700FFF00C187D9713>I<0F80106020304038803CC01CE0 1C401C003C003800380070006000C001800100020004040804100430083FF87FF8FFF80E187E97 13>I<0F8010E02070607870382038007800700070006000C00F8000E000700038003C003CE03C E03CC03C4038407030E00F800E187E9713>I<30183FF03FE03FC02000200020002000200027C0 3860203000380018001C001C401CE01CE01C80184038403030E00F800E187E9713>53 D<07801860303070306018E018E018E01CE01CE01C601C603C303C185C0F9C001C001800180038 70307060604021801F000E187E9713>57 D<60F0F060000000000000000060F0F06004107D8F0B >I61 D91 D93 D<3F8070C070E020700070007007F01C70 30707070E070E071E071E0F171FB1E3C10107E8F13>97 DI<07C01C3030187018 600CE00CFFFCE000E000E000E0006000300438080C1807E00E107F8F11>101 D<01F0031807380E100E000E000E000E000E000E00FFC00E000E000E000E000E000E000E000E00 0E000E000E000E000E000E007FE00D1A80990C>I<18003C003C00180000000000000000000000 0000FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091A80990A >105 D108 DII<07E01C38 300C700E6006E007E007E007E007E007E0076006700E381C1C3807E010107F8F13>II114 D<1F2060E04020C020C020F0007F003FC01FE000F080708030C030C020F0408F800C107F8F0F> I<0400040004000C000C001C003C00FFC01C001C001C001C001C001C001C001C001C201C201C20 1C201C200E4003800B177F960F>I118 D E /Fk 40 123 df<03F00E001800380070007000FF80E000E000E000E000E000600060003040 0F800C107E8F10>15 D<60F0F06004047D830B>58 D<60F0F07010101020204080040B7D830B> I<00000E00003C0000F00003C0000F00003C0000F00003C0000F00003C0000F00000F000003C00 000F000003C00000F000003C00000F000003C00000F000003C00000E17167D931E>I<0004000C 00180018001800300030003000600060006000C000C000C0018001800180030003000300060006 0006000C000C000C00180018001800300030003000600060006000C000C0000E257E9B13>II<000010000000 300000007000000070000000F8000000B800000138000002380000023800000438000004380000 0838000010380000103C0000201C0000201C00007FFC0000801C0000801C0001001C0003001C00 02001C0004001E0004000E001C001E00FF00FFC01A1A7F991D>65 D<0007E040003C18C000E005 C001C003C003800180070001800E0001801C0001803C000100380001007800000078000000F000 0000F0000000F0000000F0000000F0000400F0000400F0000400F0000800700010003000100038 0060001C0080000703000001FC00001A1A7E991B>67 D<01FFFFC0003801C0003800C000380040 0070004000700040007000400070004000E0400000E0400000E0400000E0C00001FF800001C080 0001C0800001C0800003810000038001000380010003800200070002000700040007000C000700 18000E007800FFFFF0001A1A7E991C>69 D<01FF80FF0038003800380060003800400070010000 700200007004000070080000E0200000E0400000E0800000E1C00001C5C00001C9C00001D0E000 01C0E000038070000380700003807000038038000700380007001C0007001C0007001C000E001E 00FFE0FF80201A7E9921>75 D<01FFC000380000380000380000700000700000700000700000E0 0000E00000E00000E00001C00001C00001C00001C0000380000380080380080380100700100700 300700200700600E01C0FFFFC0151A7E991A>I<01FFFC0000380F000038038000380380007003 C0007003C0007003C0007003C000E0078000E0078000E00F0000E01E0001C0380001FFE00001C0 000001C0000003800000038000000380000003800000070000000700000007000000070000000E 000000FFE000001A1A7E9919>80 D<000FE0000038380000E00E0001C00700078007000F000780 0E0003801C0003803C0003C0380003C0780003C0780003C0F0000780F0000780F0000780F00007 00F0000F00F0000E00F0001E00F0001C0070703800708070003904E0001D07C0000F0F000003FE 04000006040000060C00000718000007F8000007F0000007E0000003C0001A217E991E>I<01FF F80000381E0000380700003807800070078000700780007007800070078000E00F0000E00E0000 E01C0000E0700001FFC00001C0C00001C0600001C0700003807000038070000380700003807000 0700F0000700F0000700F0400700F0800E007980FFE01E001A1A7E991D>I<001F080060D80080 3801003803001006001006001006001006000007000007C00003FC0001FF00007F800007C00001 C00001C00000C02000C02000C0600180600180600300700600CC0C0083F000151A7E9917>I<3F FFFF80380E0180200E0080400E0080401C0080801C0080801C0080801C00800038000000380000 00380000003800000070000000700000007000000070000000E0000000E0000000E0000000E000 0001C0000001C0000001C0000001C0000003C000007FFE0000191A7F9916>I<03980C5C183838 3830387038E070E070E070E070C0E2C0E2C0E2E1E262643C380F107E8F14>97 D<7E000E000E000E001C001C001C001C00380038003BC03C607870703070307030E070E070E070 E070C0E0C0C0C1C0E18063003C000C1A7E9910>I<03E006181C183838301070006000E000E000 E000E000C008E010602030C01F000D107E8F11>I<003F000700070007000E000E000E000E001C 001C039C0C5C1838383830387038E070E070E070E070C0E2C0E2C0E2E1E262643C38101A7E9914 >I<03E00E101810381070107020FFC0E000E000E000E000E008E010602030C01F000D107E8F12> I<0007C0000C600018E00018C000380000380000380000380000700000700007FF000070000070 0000E00000E00000E00000E00000E00000E00001C00001C00001C00001C00001C0000380000380 00038000030000030000670000E60000CC000078000013217E9913>I<00E60317060E0E0E0C0E 1C0E381C381C381C381C303830383038387818F00F700070007000E060E0E1C0C3807E0010177F 8F12>I<1F80000380000380000380000700000700000700000700000E00000E00000E78000F8C 001E0E001C0E001C0E001C0E00381C00381C00381C00383800703880703880707080707100E032 00601C00111A7E9916>I<03000380030000000000000000000000000000003C004E004E008E00 8E009C001C001C0038003800390071007100720072003C00091A7E990D>I<0004000E000C0000 00000000000000000000000000E001300238043804380438007000700070007000E000E000E000 E001C001C001C001C003806380E700C60078000F21809910>I<1F800380038003800700070007 0007000E000E000E0E0E331C471C831D001E003C003F8039C038E070E270E270E270E4E0646038 101A7E9914>I<3F0707070E0E0E0E1C1C1C1C3838383870707070E4E4E4E46838081A7E990B>I< 383E0F804CC330C08F03C0E08F03C0E08E0380E08E0380E01C0701C01C0701C01C0701C01C0703 80380E0388380E0388380E0708380E0710701C0320300C01C01D107E8F22>I<383C004CC6008F 07008E07008E07008E07001C0E001C0E001C0E001C1C00381C40381C4038384038388070190030 0E0012107E8F17>I<03E006101C18381C300C701C601CE01CE01CE018E038C030E07060E02180 1F000E107E8F13>I<070F0009918011E1C011C0C011C0C011C0C00381C00381C00381C00381C0 0703800703000707000706000E8C000E70000E00000E00001C00001C00001C00001C0000FF0000 1217818F13>I<38704D988F388E188E008E001C001C001C001C00380038003800380070003000 0D107E8F11>114 D<03E006180818183818301C001FC00FE007F000700030E030E030806040C0 3F000D107E8F12>I<0180038003800380038007000700FFE007000E000E000E000E001C001C00 1C001C00384038403840388019000E000B177F960E>I<1C0600260700470E00870E008E0E008E 0E000E1C001C1C001C1C001C1C003838803838803838801838801C59000F8E0011107E8F16>I< 1C030626038F4707078707038E07038E07030E0E021C0E021C0E021C0E04381C04381C04181C08 1C1C100C262007C3C018107E8F1C>119 D<0F1E11A321E741C341C041C0038003800380038007 020702C702EB04CB0870F010107E8F16>I<1C062607470E870E8E0E8E0E0E1C1C1C1C1C1C1C38 383838383818381C700FF00070006060E0E0C0C18043003C0010177E8F13>I<03020F840FFC10 081010002000400180030004000808100820187FF043E081C00F107E8F12>I E /Fl 33 123 df<0F80003018C00070387001F0706C07E0F033FBC0F0300380F0300700F0300F 00F0301E00F0301C00F0303800706078003860F00018C1E0000F81C000000380F80007818C000F 0386000E0706001C0F03003C0F0300780F0300F00F0300E00F0301C00F0303C00F030780070607 0003860E00018C060000F8201E7E9B25>37 D<004000800300020006000C001C00180038003800 7000700070007000F000F000F000F000F000F000F000F000F00070007000700070003800380018 001C000C00060002000300008000400A257C9B11>40 D<800040003000100018000C000E000600 07000700038003800380038003C003C003C003C003C003C003C003C003C0038003800380038007 00070006000E000C00180010003000400080000A257E9B11>I<70F8FCFCFC7C04040808102040 060D7D850C>44 D<78FCFCFCFC7806067D850C>46 D<78FCFCFCFC78000000000078FCFCFCFC78 06117D900C>58 D<78FCFCFCFC78000000000070F8FCFCFC7C0404080810204006187D900C>I< 7FFFFFF0FFFFFFF8FFFFFFF8000000000000000000000000000000000000000000000000000000 00FFFFFFF8FFFFFFF87FFFFFF01D0D7E8F22>61 D91 D93 D<0FF0001C3C003E1E003E0E003E0F001C0F00000F0000FF000FCF003E0F007C0F00F80F00F80F 00F80F00F817007C27E01FC3E013117F9015>97 DI<03FC000F0E001C1F003C1F 00781F00780E00F80000F80000F80000F80000F800007800007800003C01801C03000F060003FC 0011117F9014>I<000FE0000FE00001E00001E00001E00001E00001E00001E00001E003F9E00F 07E01C03E03C01E07801E07801E0F801E0F801E0F801E0F801E0F801E07801E07801E03C01E01C 03E00F0DFC03F9FC161A7F9919>I<03F0000E1C001C0E003C0700780700780780F80780F80780 FFFF80F80000F800007800007800003C01801C03000E060003FC0011117F9014>I<00FE0003C7 00078F800F0F800F0F800F07000F00000F00000F0000FFF000FFF0000F00000F00000F00000F00 000F00000F00000F00000F00000F00000F00000F00000F00000F00007FE0007FE000111A80990E >I<07E3C01C3CE0381CE0781EC0781E00781E00781E00781E00381C001C380027E00020000020 00003000003FFE001FFF801FFFC07003C0E000E0E000E0E000E0E000E07001C03C078007FC0013 197F9016>II<1C003E003E003E003E001C0000000000000000007E007E001E00 1E001E001E001E001E001E001E001E001E001E001E001E00FF80FF80091B7F9A0D>I<00F001F8 01F801F801F800F0000000000000000003F803F800780078007800780078007800780078007800 780078007800780078007800787078F878F878F8F071E03F800D22839A0E>I108 DII<03F8000E0E003C07803803807803C07803C0F803E0F803E0F803E0F803E0 F803E0F803E07803C07C07C03C07800E0E0003F80013117F9016>II114 D<1FB020704030C030C030F000FF807FE03FF807F8003CC00CC00CE00CE008F830CFE00E117F90 11>I<06000600060006000E000E001E003FF0FFF01E001E001E001E001E001E001E001E001E18 1E181E181E181E180F3003E00D187F9711>II119 DII<7FFF781E703E603C607860F001F001E003C0 07800F830F031E033C067C06781EFFFE10117F9014>I E /Fm 11 106 df0 D<400020C000606000C03001801803000C0600060C0003180001B00000E00000 E00001B000031800060C000C06001803003001806000C0C0006040002013147A9320>2 D<01800180018001804182F18F399C0FF003C003C00FF0399CF18F418201800180018001801012 7E9215>I<03C00FF01FF83FFC7FFE7FFEFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF80FF003C01010 7E9115>15 D17 D<000001800000078000001E00000078000001E000000780 00001E00000078000001E00000078000001E00000078000000E0000000780000001E0000000780 000001E0000000780000001E0000000780000001E0000000780000001E00000007800000018000 0000000000000000000000000000000000000000000000000000007FFFFF00FFFFFF8019227D99 20>20 D<020000000004000000000400000000080000000010000000002000000000FFFFFFFFF0 FFFFFFFFF0200000000010000000000800000000040000000004000000000200000000240E7D90 2A>32 D<003C00E001C00180038003800380038003800380038003800380038003800380038003 0007001C00F0001C00070003000380038003800380038003800380038003800380038003800380 018001C000E0003C0E297D9E15>102 DI<0080018003000300030006 00060006000C000C000C00180018001800300030003000600060006000C000C000600060006000 3000300030001800180018000C000C000C0006000600060003000300030001800080092A7C9E10 >II E /Fn 16 118 df45 D<000100000300000700000780000B80000B800013800013800023C00021C00041C00041C00081 C00081C00100E001FFE00200E00200E00400E00400700800701C0070FE03FE17177F961A>65 D<003F0401C08C0300580600380C0018180018380018700018700010E00000E00000E00000E000 00E00000E00020E00020E000206000407000403000801803000E0C0003F00016177C9619>67 D<1FC0003F8003E0005C0002E000780002E000B80002E000B80002700138000270013800027002 380004700470000438047000043808700004380870000438107000041C107000081C20E000081C 40E000081C40E000080E80E000080E80E000080F00E000180E01C000380601C000FE040FF80021 177F9620>77 D<0FE01C301C18081C001C03F81E3838386038E039E079E072E1BA3E3C100E7E8D 12>97 D<03F80E1C181C300870007000E000E000E000E0006008701038600F800E0E7E8D10>99 D<03E00C3018183018701C7FF8E000E000E000E0006008701038600F800E0E7E8D10>101 D<007801CC039C030C07000700070007000E007FC00E000E000E000E001C001C001C001C001C00 1C0038003800FF000E177F960B>I<1F8000078000070000070000070000070000070000070000 0E00000E3E000EC3000F03800E03800E03801C07001C07001C07001C07001C07001C0700380E00 380E00FF3FC012177F9614>104 D<0307070600000000003E0E0E0E0E1C1C1C1C1C1C3838FE08 177F960A>I<3E3E0F800EC330C00F03C0E00E0380E00E0380E01C0701C01C0701C01C0701C01C 0701C01C0701C01C0701C0380E0380380E0380FF3FCFF01C0E7F8D1E>109 D<3E3E000EC3000F03800E03800E03801C07001C07001C07001C07001C07001C0700380E00380E 00FF3FC0120E7F8D14>I<03F00C18180C300E700E600EE00EE00EE00EE00C601C703838600F80 0F0E7E8D12>I<07D018303010301038003F801FC00FE000F040704020C060E0C09F000C0E7F8D 0E>115 D<0400040004000C001C003800FF803800380038003800700070007000708070807080 710071001E0009147D930E>II E /Fo 1 14 df<003F800000FFE00003C0780007001C000C000600180003 003000018030000180600000C0600000C0C0000060C0000060C0000060C0000060C0000060C000 0060600000C0600000C03000018030000180180003000C00060007001C0003C0780000FFE00000 3F80001B1A7E9321>13 D E /Fp 1 68 df<03F10C0F300360016001C000C000C000C000600160 0130020C0C03F0100E7E8D14>67 D E /Fq 37 122 df<0102040C1818303070606060E0E0E0E0 E0E0E0E0E0E060606070303018180C04020108227D980E>40 D<8040203018180C0C0E06060607 0707070707070707070606060E0C0C18183020408008227E980E>I<60F0F07010102020404004 0A7D830A>44 D<60F0F06004047D830A>46 D<03000700FF000700070007000700070007000700 07000700070007000700070007000700070007007FF00C157E9412>49 D<0F8030E040708030C0 38E0384038003800700070006000C00180030006000C08080810183FF07FF0FFF00D157E9412> I<00300030007000F001F001700270047008701870107020704070C070FFFE0070007000700070 007003FE0F157F9412>52 D<40007FFE7FFC7FF8C0088010802000400080008001000100030002 00060006000E000E000E000E000E0004000F167E9512>55 D<07C0183030186018E00CE00CE00E E00EE00E601E301E186E0F8E000E000C001C70187018603020C01F800F157F9412>57 D<001000003800003800003800005C00005C00005C00008E00008E00008E000107000107000307 8002038002038007FFC00401C00401C00800E00800E01800E03800F0FE03FE17177F961A>65 D<00FC100383300E00B01C0070380030300030700010600010E00010E00000E00000E00000E000 00E00000E000106000107000103000203800201C00400E008003830000FC0014177E9619>67 DI73 D77 DI80 D82 D86 D<1FC0386038301038003803F81E3830387038E039E039E07970FF1F1E100E7F8D12>97 DI<07 F01838303870106000E000E000E000E000600070083008183007C00D0E7F8D10>I<007E00000E 00000E00000E00000E00000E00000E00000E00000E0007CE001C3E00300E00700E00600E00E00E 00E00E00E00E00E00E00600E00700E00301E00182E0007CFC012177F9614>I<0FC01860303070 38E018FFF8E000E000E000600070083010183007C00D0E7F8D10>I<03E006700E701C201C001C 001C001C001C00FF801C001C001C001C001C001C001C001C001C001C001C001C00FF800C178096 0B>I<0F9E18E33060707070707070306018C02F80200060003FE03FF83FFC600EC006C006C006 600C38380FE010157F8D12>II<183C3C1800000000007C1C1C1C1C1C1C1C1C1C1C1C1CFF081780960A> I108 DII<07C018303018600C600CE00EE00EE00EE00EE00E701C3018183007 C00F0E7F8D12>II114 D<1F4060C0C040C040E000FF007F801FC001E080608060C060E0C09F000B0E7F8D0E>I<080008 000800180018003800FF80380038003800380038003800380038403840384038401C800F000A14 7F930E>II121 D E /Fr 38 122 df<3078F06005047C830D>46 D<00020006000C001C007C039C00380038003800380070007000 70007000E000E000E000E001C001C001C001C003800380038003800780FFF00F1C7C9B15>49 D<003E0000C1800101800200C00400C00440C00841C00841C00841C0088380070380000700000E 0001F800003800000C00000C00000E00000E00000E00000E00700E00E01C00801C008038008030 0040600021C0001F0000121D7C9B15>51 D<00C06000FFC001FF8001FE00010000010000020000 020000020000020000047800058C00060600040600080600000700000700000600000E00000E00 700E00700C00E01C0080180080380040300040600021C0001F0000131D7C9B15>53 D<0000180000001800000038000000380000007800000078000000B8000001B800000138000002 380000023C0000041C0000041C0000081C0000181C0000101C0000201C0000201C00007FFC0000 401C0000801C0001801C0001001C0002001C0002001C0004000E000C000E001C001E00FF00FFC0 1A1D7E9C1F>65 D<0003F020001E0C60003002E000E003C001C001C0038001C0070000C00E0000 801E0000801C0000803C0000803C000000780000007800000078000000F0000000F0000000F000 0000F0000000F0000400F0000400F0000400F0000800700008007000100038002000180040000C 0180000706000001F800001B1E7A9C1E>67 D<01FFFE00003C0780003801C0003801C0003800E0 003800E0007000F00070007000700070007000F000E000F000E000F000E000F000E000F001C001 E001C001E001C001E001C001C0038003C003800380038007800380070007000E0007001C000700 3800070070000E01C000FFFF00001C1C7D9B1F>I<0003F020001E0C60003002E000E003C001C0 01C0038001C0070000C00E0000801E0000801C0000803C0000803C000000780000007800000078 000000F0000000F0000000F001FFC0F0001E00F0001C00F0001C00F0001C00F0001C0070003800 7000380038003800180078000C0090000707100001F800001B1E7A9C20>71 D<007FF0000780000700000700000700000700000E00000E00000E00000E00001C00001C00001C 00001C0000380000380000380000380000700000700000700000700060E000E0E000C0C00081C0 008380004700003C0000141D7B9B16>74 D<01FFE0003C00003800003800003800003800007000 00700000700000700000E00000E00000E00000E00001C00001C00001C00001C000038008038008 0380080380100700100700300700600700E00E03C0FFFFC0151C7D9B1A>76 D<01FE0007F8003E000780002E000F00002E001700002E001700002E002700004E002E00004E00 4E00004E004E00004E008E00008E011C00008E011C00008E021C00008E021C0001070438000107 043800010708380001071038000207107000020720700002072070000207407000040740E00004 0780E000040700E0000C0700E0001C0601E000FF861FFC00251C7D9B25>I<0007F000001C1C00 00700E0000E0070001C0038003800380070003800E0003C01E0003C01C0003C03C0003C03C0003 C0780003C0780003C0780003C0F0000780F0000780F0000780F0000F00F0000F00F0000E00F000 1E00F0003C0070003800700070007800E0003801C0001C0380000E0E000003F800001A1E7A9C20 >79 D<01FFFC00003C070000380380003801C0003801C0003801C0007003C0007003C0007003C0 0070038000E0078000E0070000E00E0000E0380001FFE00001C0000001C0000001C00000038000 00038000000380000003800000070000000700000007000000070000000F000000FFE000001A1C 7D9B1C>I<01FFF800003C0E000038070000380380003803800038038000700780007007800070 078000700F0000E00E0000E01C0000E0700000FFC00001C0C00001C0600001C0700001C0700003 8070000380700003807000038070000700F0000700F0400700F0400700F0800F007880FFE07900 00001E001A1D7D9B1E>82 D<000F8400304C00403C008018010018030018030018060010060010 06000007000007000003E00003FC0001FF00007F800007C00001C00001C00000C00000C02000C0 2000C0600180600180600300600200F00400CC180083E000161E7D9C17>I<03CC063C0C3C181C 3838303870387038E070E070E070E070E0E2C0E2C0E261E462643C380F127B9115>97 D<01F007080C08181C3838300070007000E000E000E000E000E000E008E010602030C01F000E12 7B9113>99 D<001F80000380000380000700000700000700000700000E00000E00000E00000E00 03DC00063C000C3C00181C00383800303800703800703800E07000E07000E07000E07000E0E200 C0E200C0E20061E4006264003C3800111D7B9C15>I<01E007100C1018083810701070607F80E0 00E000E000E000E000E0086010602030C01F000D127B9113>I<0003C0000670000C70001C6000 1C00001C0000380000380000380000380000380003FF8000700000700000700000700000700000 E00000E00000E00000E00000E00001C00001C00001C00001C00001C00003800003800003800003 0000030000070000C60000E60000CC00007800001425819C0D>I<00F3018F030F06070E0E0C0E 1C0E1C0E381C381C381C381C383830383038187818F00F700070007000E000E0C0C0E1C0C3007E 00101A7D9113>I<0FC00001C00001C00003800003800003800003800007000007000007000007 00000E78000E8C000F0E000E0E001C0E001C0E001C0E001C0E00381C00381C00381C0038380070 3880703880707080707100E03200601C00111D7D9C15>I<018003800100000000000000000000 00000000001C002600470047008E008E000E001C001C001C003800380071007100710072007200 3C00091C7C9B0D>I<0FC00001C00001C000038000038000038000038000070000070000070000 0700000E0F000E11000E23800E43801C83001C80001D00001E00003F800039C00038E00038E000 70E20070E20070E20070E400E06400603800111D7D9C13>107 D<1F8003800380070007000700 07000E000E000E000E001C001C001C001C0038003800380038007000700070007000E400E400E4 00E40068003800091D7C9C0B>I<3C1E0780266318C04683A0E04703C0E08E0380E08E0380E00E 0380E00E0380E01C0701C01C0701C01C0701C01C070380380E0388380E0388380E0708380E0710 701C0320300C01C01D127C9122>I<3C3C002646004687004707008E07008E07000E07000E0700 1C0E001C0E001C0E001C1C00381C40381C40383840383880701900300E0012127C9117>I<01E0 07180C0C180C380C300E700E700EE01CE01CE01CE018E038E030E06060C031801E000F127B9115 >I<07870004D98008E0C008E0C011C0E011C0E001C0E001C0E00381C00381C00381C003818007 03800703000707000706000E8C000E70000E00000E00001C00001C00001C00001C00003C0000FF 8000131A7F9115>I<03C4062C0C3C181C3838303870387038E070E070E070E070E0E0C0E0C0E0 61E063C03DC001C001C0038003800380038007803FF00E1A7B9113>I<3C3C26C2468747078E06 8E000E000E001C001C001C001C0038003800380038007000300010127C9112>I<01F006080C08 0C1C18181C001F001FC00FF007F0007800386030E030C030806060C01F000E127D9111>I<00C0 01C001C001C00380038003800380FFE00700070007000E000E000E000E001C001C001C001C0038 4038403840388019000E000B1A7D990E>I<1E0300270700470700470700870E00870E000E0E00 0E0E001C1C001C1C001C1C001C1C003838803838801838801839001C5900078E0011127C9116> I<1E06270E470E4706870287020E020E021C041C041C041C0818083808181018200C4007800F12 7C9113>I<1E01832703874703874703838707018707010E07010E07011C0E021C0E021C0E021C 0E04180C04181C04181C081C1C100C263007C3C018127C911C>I<070E0019910010E38020E380 41C30041C00001C00001C000038000038000038000038000070200670200E70400CB04008B0800 70F00011127D9113>I<1E03270747074707870E870E0E0E0E0E1C1C1C1C1C1C1C1C3838383818 3818381C7007F00070007000E0E0C0E1C0818047003C00101A7C9114>I E /Fs 22 120 df45 D<03E0000C1800180C0030060030060070070060 0300600300E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E0 0380E00380600300600300700700300600300600180C000E380003E000111D7D9B17>48 D<018003801F80E380038003800380038003800380038003800380038003800380038003800380 038003800380038003800380038007C07FFC0E1C7C9B17>I<00200000700000700000700000B8 0000B80000B800011C00011C00011C00020E00020E0004070004070007FF000803800803800803 801801C03803C0FE0FF815157F9419>97 DI<00FC200782600E01E01C00E0380060780020700020F00020F00000F000 00F00000F00000F00000F000207000207800203800401C00400E008007830000FC0013157E9419 >IIII<00FC200782600E01E01C00E0380060780020700020F0 0020F00000F00000F00000F00FF8F000E0F000E07000E07800E03800E01C00E00E00E007836000 FC2015157E941B>I105 D<0FF800E000E000E000E000E000E000E000E0 00E000E000E000E000E000E000E0F0E0F0E0F0C041803F000D157F9412>I108 DII<01F800070E000C0300 1C03803801C07801E07000E0F000F0F000F0F000F0F000F0F000F0F000F0F000F07000E07801E0 3801C01C03801E0780070E0001F80014157E941A>II114 D<1F1030F06030C030C010C010C000E0007E003FC01FE003F000780038001880 1880188010C030F0608FC00D157E9413>I<7FFFF0607030407010407010807008807008807008 007000007000007000007000007000007000007000007000007000007000007000007000007000 07FF0015157F9419>II119 D E /Ft 80 125 df<007E1F0001C1B1800303E3C00703 C3C00E03C1800E01C0000E01C0000E01C0000E01C0000E01C0000E01C000FFFFFC000E01C0000E 01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C000 0E01C0000E01C0000E01C0000E01C0000E01C0007F87FC001A1D809C18>11 D<007E0001C1800301800703C00E03C00E01800E00000E00000E00000E00000E0000FFFFC00E01 C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 C00E01C00E01C07F87F8151D809C17>I<007FC001C1C00303C00703C00E01C00E01C00E01C00E 01C00E01C00E01C00E01C0FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E 01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07FCFF8151D809C17>I<003F07E00001 C09C18000380F018000701F03C000E01E03C000E00E018000E00E000000E00E000000E00E00000 0E00E000000E00E00000FFFFFFFC000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C 000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E0 1C000E00E01C000E00E01C000E00E01C007FC7FCFF80211D809C23>I<6060F0F0F8F868680808 08080808101010102020404080800D0C7F9C15>34 D<60F0F8680808081010204080050C7C9C0C >39 D<004000800100020006000C000C0018001800300030007000600060006000E000E000E000 E000E000E000E000E000E000E000E000E000600060006000700030003000180018000C000C0006 0002000100008000400A2A7D9E10>I<800040002000100018000C000C00060006000300030003 8001800180018001C001C001C001C001C001C001C001C001C001C001C001C00180018001800380 03000300060006000C000C00180010002000400080000A2A7E9E10>I<00060000000600000006 000000060000000600000006000000060000000600000006000000060000000600000006000000 060000FFFFFFE0FFFFFFE000060000000600000006000000060000000600000006000000060000 0006000000060000000600000006000000060000000600001B1C7E9720>43 D<60F0F0701010101020204080040C7C830C>II<60F0F06004047C830C >I<00010003000600060006000C000C000C0018001800180030003000300060006000C000C000 C0018001800180030003000300060006000C000C000C0018001800180030003000300060006000 6000C000C00010297E9E15>I<03C00C301818300C300C700E60066006E007E007E007E007E007 E007E007E007E007E007E007E007E00760066006700E300C300C18180C3007E0101D7E9B15>I< 030007003F00C70007000700070007000700070007000700070007000700070007000700070007 000700070007000700070007000F80FFF80D1C7C9B15>I<07C01830201C400C400EF00FF80FF8 07F8077007000F000E000E001C001C00380070006000C00180030006010C01180110023FFE7FFE FFFE101C7E9B15>I<07E01830201C201C781E780E781E381E001C001C00180030006007E00030 001C001C000E000F000F700FF80FF80FF80FF00E401C201C183007E0101D7E9B15>I<000C0000 0C00001C00003C00003C00005C0000DC00009C00011C00031C00021C00041C000C1C00081C0010 1C00301C00201C00401C00C01C00FFFFC0001C00001C00001C00001C00001C00001C00001C0001 FFC0121C7F9B15>I<300C3FF83FF03FC020002000200020002000200023E024302818301C200E 000E000F000F000F600FF00FF00FF00F800E401E401C2038187007C0101D7E9B15>I<00F0030C 06040C0E181E301E300C700070006000E3E0E430E818F00CF00EE006E007E007E007E007E00760 0760077006300E300C18180C3003E0101D7E9B15>I<4000007FFF807FFF007FFF004002008004 0080040080080000100000100000200000600000400000C00000C00001C0000180000180000380 00038000038000038000078000078000078000078000078000078000030000111D7E9B15>I<03 E00C301008200C20066006600660067006780C3E083FB01FE007F007F818FC307E601E600FC007 C003C003C003C00360026004300C1C1007E0101D7E9B15>I<03C00C301818300C700C600EE006 E006E007E007E007E007E0076007700F300F18170C2707C700060006000E300C780C7818701020 3030C00F80101D7E9B15>I<60F0F0600000000000000000000060F0F06004127C910C>I<60F0F0 600000000000000000000060F0F0701010101020204080041A7C910C>I<7FFFFFC0FFFFFFE000 00000000000000000000000000000000000000000000000000000000000000FFFFFFE07FFFFFC0 1B0C7E8F20>61 D<0FE03038401CE00EF00EF00EF00E000C001C0030006000C000800180010001 0001000100010001000000000000000000000003000780078003000F1D7E9C14>63 D<003F800000C0600003001800040004000800020010000100201F00802070808040E0404040C0 384041C038408180382083803820838038208380382083803820838038208180382041C0382040 C0384040E0784020709880201F0F00100000000800000004000000030001E000C01F80003FF000 1B1D7E9C20>I<000600000006000000060000000F0000000F0000000F00000017800000178000 001780000023C0000023C0000023C0000041E0000041E0000041E0000080F0000080F0000180F8 000100780001FFF80003007C0002003C0002003C0006003E0004001E0004001E000C001F001E00 1F00FF80FFF01C1D7F9C1F>II<001F808000E061800180198007 0007800E0003801C0003801C00018038000180780000807800008070000080F0000000F0000000 F0000000F0000000F0000000F0000000F0000000F0000000700000807800008078000080380000 801C0001001C0001000E000200070004000180080000E03000001FC000191E7E9C1E>IIII<001F808000E06180018019800700 07800E0003801C0003801C00018038000180780000807800008070000080F0000000F0000000F0 000000F0000000F0000000F0000000F000FFF0F0000F8070000780780007807800078038000780 1C0007801C0007800E00078007000B800180118000E06080001F80001C1E7E9C21>III<1FFF00F800780078007800780078007800 780078007800780078007800780078007800780078007800787078F878F878F878F0F040E021C0 1F00101D7F9B15>I76 DII<003F800000E0E0000380380007001C000E000E001C0007 003C00078038000380780003C0780003C0700001C0F00001E0F00001E0F00001E0F00001E0F000 01E0F00001E0F00001E0F00001E0700001C0780003C0780003C0380003803C0007801C0007000E 000E0007001C000380380000E0E000003F80001B1E7E9C20>II< FFFF00000F01E0000F0078000F003C000F001C000F001E000F001E000F001E000F001E000F001C 000F003C000F0078000F01E0000FFF00000F03C0000F00E0000F00F0000F0078000F0078000F00 78000F0078000F0078000F0078000F0078100F0078100F0038100F003C20FFF01C20000007C01C 1D7E9B1F>82 D<07E0801C1980300580700380600180E00180E00080E00080E00080F00000F800 007C00007FC0003FF8001FFE0007FF0000FF80000F800007C00003C00001C08001C08001C08001 C0C00180C00180E00300D00200CC0C0083F800121E7E9C17>I<7FFFFFC0700F01C0600F00C040 0F0040400F0040C00F0020800F0020800F0020800F0020000F0000000F0000000F0000000F0000 000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00 00000F0000000F0000000F0000001F800003FFFC001B1C7F9B1E>II II91 D<08081010202040404040808080808080B0B0F8F8787830300D0C7A9C15>II<1FC000307000783800781C00301C00001C00001C0001FC000F1C00381C0070 1C00601C00E01C40E01C40E01C40603C40304E801F870012127E9115>97 DI<07E00C301878307870306000E000E000E000E000E000 E00060007004300418080C3007C00E127E9112>I<003F00000700000700000700000700000700 00070000070000070000070000070003E7000C1700180F00300700700700600700E00700E00700 E00700E00700E00700E00700600700700700300700180F000C370007C7E0131D7E9C17>I<03E0 0C301818300C700E6006E006FFFEE000E000E000E00060007002300218040C1803E00F127F9112 >I<00F8018C071E061E0E0C0E000E000E000E000E000E00FFE00E000E000E000E000E000E000E 000E000E000E000E000E000E000E000E000E007FE00F1D809C0D>I<00038003C4C00C38C01C38 80181800381C00381C00381C00381C001818001C38000C300013C0001000003000001800001FF8 001FFF001FFF803003806001C0C000C0C000C0C000C06001803003001C0E0007F800121C7F9215 >II<18003C003C00180000000000000000000000000000 00FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091D 7F9C0C>I<00C001E001E000C000000000000000000000000000000FE000E000E000E000E000E0 00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E060E0F0C0F1C061803E 000B25839C0D>IIIII<03F0000E1C00180600300300700380600180E001C0E001C0E001 C0E001C0E001C0E001C06001807003803003001806000E1C0003F00012127F9115>II<03C1000C3300180B00300F00700700700700E00700E00700E00700E00700E00700E00700 600700700700300F00180F000C370007C700000700000700000700000700000700000700000700 003FE0131A7E9116>II<1F9030704030C010C010E010F8007F803FE00FF000F8803880 18C018C018E010D0608FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C001C 001C001C001C001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F9910>IIII<7F8FF00F03800F030007020003840001C80001D80000F00000700000780000F80000 9C00010E00020E000607000403801E07C0FF0FF81512809116>II<7FFC703860 38407040F040E041C003C0038007000F040E041C043C0C380870087038FFF80E127F9112>III E /Fu 28 118 df46 D<00700000F80003F8007FF800FFF800FFF800FFF80043F80003F80003F80003F80003 F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003 F80003F80003F80003F80003F80003F80003F80003F8003FFF807FFFC07FFFC03FFF8012247CA3 1B>49 D<01FC0007FF001FFF803FFFC07FFFE07E0FE0FC07F0F807F07803F83803F83003F81003 F80003F80003F80003F80007F00007F0000FE0000FC0001FC0001F80003F00007E0000FC0000F8 0001F00003E00007C0000F80000F80001F00003FFFF07FFFF87FFFF87FFFF83FFFF015247EA31B >I<01FE0007FF800FFFC01FFFE03F0FE07C07F03807F03007F01007F00007F00007F00007E000 0FE0000FC0001FC001FF8001FF0001FFC001FFE00007F00003F80001F80001FC0001FC0001FC00 01FC0001FC0001FC4001FC6001FC7803F8FE07F8FFFFF07FFFE03FFFC00FFF8001FE0016257EA3 1B>I<003F80003FC0007FC0007FC000FFC000EFC001EFC001EFC003EFC003CFC007CFC007CFC0 0F8FC00F8FC01F8FC01F0FC01F0FC03E0FC03E0FC07C0FC07C0FC0FC0FC0FFFFF8FFFFFCFFFFFC FFFFFC7FFFF8000FC0000FC0000FC0000FC0000FC0000FC0000FC000078016237EA21B>I<7FFF F000FFFFFC00FFFFFF00FFFFFF80FE007FC0FE001FC0FE000FE0FE000FE0FE0007E0FE0007E0FE 000FE0FE000FE0FE001FC0FE003FC0FE00FF80FFFFFF00FFFFFC00FFFFFF00FFFFFFC0FE003FE0 FE000FF0FE0007F0FE0003F8FE0003F8FE0003F8FE0003F8FE0003F8FE0003F8FE0007F0FE000F F0FE003FF0FFFFFFE0FFFFFFC0FFFFFF007FFFF8001D237CA225>66 D<0007FE00007FFFC001FF FFF003FFFFF007FFFFF00FFC07E01FF000E03FC000603F8000207F8000007F0000007F0000007F 000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000 FE000000FE0000007F0000007F0000007F0000007F8000003F8000103FC000301FF000700FFC03 F007FFFFF003FFFFF001FFFFE0007FFF800007FE001C257DA323>I<7FFFF000FFFFFF00FFFFFF 80FFFFFFE0FE003FF0FE000FF8FE0003F8FE0001FCFE0001FCFE0000FEFE0000FEFE00007EFE00 007FFE00007FFE00007FFE00007FFE00007FFE00007FFE00007FFE00007FFE00007FFE00007FFE 00007FFE00007EFE0000FEFE0000FEFE0000FEFE0001FCFE0003FCFE0007F8FE003FF0FFFFFFE0 FFFFFFC0FFFFFF007FFFF00020237CA228>I<7CFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFE7C07237CA210>73 D<7C0000FE0000FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FFFFF8FF FFFCFFFFFCFFFFFC7FFFF816237CA21D>76 D<7F000001FEFF800003FFFF800003FFFF800003FF FFC00007FFFFC00007FFFDE0000FBFFDE0000FBFFDF0001FBFFCF0001F3FFCF0001F3FFCF8003F 3FFC78003E3FFC7C007E3FFC7C007E3FFC3C007C3FFC3E00FC3FFC3E00FC3FFC1F01F83FFC1F01 F83FFC0F01F03FFC0F83F03FFC0F83F03FFC07C7E03FFC07C7E03FFC03EFC03FFC03EFC03FFC03 EFC03FFC01FF803FFC01FF803FFC00FF003FFC00FF003FFC00FF003FFC007E003F780000001E28 237CA231>I<7FFFE000FFFFFC00FFFFFF00FFFFFF80FE007FC0FE001FC0FE000FE0FE000FE0FE 000FE0FE000FE0FE000FE0FE000FE0FE000FE0FE001FC0FE007FC0FFFFFF80FFFFFF00FFFFFC00 FFFFE000FE07F000FE07F000FE03F800FE01F800FE01FC00FE00FC00FE00FE00FE007E00FE007F 00FE003F80FE003F80FE001FC0FE001FC0FE000FE0FE000FE07C0007E01B237CA223>82 D<00FF8003FFF00FFFFC1FFFFC3FFFFC3F80F83F00387E00187E00087E00007E00007E00007F00 003FC0003FF8001FFF801FFFE00FFFF007FFF801FFFC007FFE0003FE0000FE00007F00003F0000 3F40003F60003F70003F78003FFC007EFF80FEFFFFFC7FFFFC1FFFF807FFE000FF8018257EA31E >I<03FE001FFF803FFFC03FFFE03C0FF03007F02007F00007F00007F000FFF007FFF01FE7F07F 07F07F07F0FE07F0FE07F0FE07F0FE0FF0FF1FF07FF7F07FF7F03FC7F00F03E014177E961A>97 D<01FE0007FFC01FFFE03FFFE03F81E07F00C07E0040FE0000FE0000FE0000FE0000FE0000FE00 00FE0000FE0000FE00007F00207F00603F83E03FFFE01FFFE007FFC001FE0013177E9618>99 D<0000F80001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC03F1 FC0FFDFC1FFFFC3FFFFC7F83FC7F01FC7E01FCFE01FCFE01FCFE01FCFE01FCFE01FCFE01FCFE01 FCFE01FCFE01FC7E01FC7F01FC7F87FC3FFFFC1FFDFC0FF9FC03E0F816237EA21C>I<01FC0007 FF000FFF801FFFC03F87E07F07E07E03F0FE03F0FE03F0FE03F0FFFFF0FFFFF0FFFFE0FE0000FE 0000FE00007E00107F00703F81F01FFFF00FFFF007FFC001FF0014177E9619>I<00FF8003FF80 07FF800FFF800FE1801FC0001FC0001FC0001FC0001FC0001FC0001FC0007FF800FFFC00FFFC00 7FF8001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC000 1FC0001FC0001FC0001FC0001FC0001FC0000F800011237FA211>I<03FE0E0FFFBF1FFFFF3FFF E33F8FE07F07F07F07F07F07F07F07F07F07F07F07F03F8FE03FFFE01FFFC01FFF801BFE003800 003C00003FFFC03FFFF81FFFFC1FFFFE3FFFFE7FFFFFFC007FF8001FF8001FF8001FFC003F7F00 FE7FFFFE3FFFFC0FFFF003FFC018227F961B>I<7CFEFEFEFEFEFC0000000000007CFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE7C07247EA30C>105 D<7CFEFEFEFEFEFEFEFEFEFEFEFE FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE7C07237EA20C>108 D<7C1FC0FE3FE0FE7FF0FEFFF8FF87F8FF03F8FF03F8FE03F8FE03F8FE03F8FE03F8FE03F8FE03 F8FE03F8FE03F8FE03F8FE03F8FE03F8FE03F8FE03F8FE03F8FE03F87C01F015177D961C>110 D<01FE0007FF801FFFE03FFFF03F87F07F03F87E01F8FE01FCFE01FCFE01FCFE01FCFE01FCFE01 FCFE01FCFE01FCFE01FC7E01F87F03F87F87F83FFFF01FFFE00FFFC001FE0016177E961B>I<7C 1F80FE7FE0FFFFF0FFFFF0FF07F8FE03F8FE03FCFE01FCFE01FCFE01FCFE01FCFE01FCFE01FCFE 01FCFE01FCFE01FCFE03F8FE03F8FF0FF8FFFFF0FFFFE0FEFFC0FE3F00FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE00007C000016217D961C>I<7C1CFE3CFE7CFEFCFFFCFFE0 FF80FF00FF00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE007C000E177D9613 >114 D<0FF0001FFE007FFF007FFF00F81F00F80600F80200FC0000FFC0007FF8007FFC003FFE 001FFF0007FF80007F80400F80600F80700F80FC1F80FFFF00FFFE003FFC000FF00011177E9615 >I<0F80001FC0001FC0001FC0001FC0001FC0007FFE00FFFF00FFFF007FFE001FC0001FC0001F C0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC1001FE3000F FF800FFF8007FE0003F000111D7F9C14>I<7C01F0FE03F8FE03F8FE03F8FE03F8FE03F8FE03F8 FE03F8FE03F8FE03F8FE03F8FE03F8FE03F8FE03F8FE03F8FE03F8FE03F8FE07F8FE07F8FE0FF8 7FFBF83FF3F80FC1F015177D961C>I E /Fv 41 123 df<0000F000F8F001F8F003F8F0078000 0700000F00000F00000F00000F00000F00000F00000F0000FFF8F0FFF8F0FFF8F00F00F00F00F0 0F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F0 0F00F00F00F0142180A018>12 D<0000000780007E07C78001FE0FC78003FE1FC78007803C0000 07003800000F007800000F007800000F007800000F007800000F007800000F007800000F007800 00FFF87FC780FFF87FC780FFF87FC7800F007807800F007807800F007807800F007807800F0078 07800F007807800F007807800F007807800F007807800F007807800F007807800F007807800F00 7807800F007807800F007807800F007807800F00780780212180A025>14 D<007000E001C00380078007000E001E001E003C003C003C0078007800780078007000F000F000 F000F000F000F000F000F000F000F000F000F000700078007800780078003C003C003C001E001E 000E0007000780038001C000E000700C2E7EA112>40 DI<787878781830306060E0050A7D830D>44 DII<03F00007F8001FFE001E1E003C0F00380700780780780780700380F003C0F003 C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C07807 807807807807803807003C0F001E1E001FFE000FFC0003F00012207E9E17>48 D<00C001C00FC0FFC0FFC0F3C003C003C003C003C003C003C003C003C003C003C003C003C003C0 03C003C003C003C003C003C003C003C003C0FFFEFFFEFFFE0F1F7C9E17>I58 D<001F0000001F0000003F8000003B8000003B80 00007BC0000073C0000071C00000F1E00000E1E00000E0E00001E0F00001E0F00001C0F00003C0 780003C078000380780007803C0007803C0007003C000FFFFE000FFFFE000FFFFE001E000F001E 000F003C000F803C0007803C000780780007C0780003C0780003C0F00003E01B207F9F1E>65 DI68 D73 D76 D80 D<01FC0007FF800FFFC01F03C0 3C00C03C00007800007800007800007800007800007C00003C00003F00001FE0000FFC0007FE00 01FF00003F800007C00003C00003E00001E00001E00001E00001E00001E00001C0C003C0F007C0 FC0F807FFF001FFE0003F80013227EA019>83 DI<07 E03FF87FFC701E401F000F000F000F003F07FF1FFF7E0FF80FF00FF00FF00FF83F7FFF3FEF1F8F 10147E9316>97 DI<03F00FFC1FFE 3E0E3C0278007800F000F000F000F000F000F000780078003C013E0F1FFF0FFE03F010147E9314 >I<00078000078000078000078000078000078000078000078000078000078000078000078007 C7800FF7801FFF803E1F807C0780780780F80780F00780F00780F00780F00780F00780F00780F0 0780780780780F803E1F801FFF800FF78007C78011207E9F17>I<03F0000FFC001FFE003E1F00 3C0700780700700380FFFF80FFFF80FFFF80F00000F00000F000007000007800003C01003E0700 1FFF0007FE0001F80011147F9314>I<007E01FE03FE078007000F000F000F000F000F000F000F 00FFF0FFF0FFF00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00 0F000F20809F0E>I<03E0F00FFFF01FFFF03E3E003C1E00780F00780F00780F00780F00780F00 3C1E003E3E001FFC003FF80033E0003000003800003FFE003FFF801FFFC03FFFE07803F0F000F0 F000F0F000F0F801F07E07E03FFFC00FFF0003FC00141E7F9317>III<01E001E001E001E000000000000000000000 00000000000001E001E001E001E001E001E001E001E001E001E001E001E001E001E001E001E001 E001E001E001E001E001E001E001E001E0C3C0FFC0FF803F000B29839F0C>I108 DII<01F80007FE001FFF803F0FC03C03C07801E07801E0 F000F0F000F0F000F0F000F0F000F0F000F07801E07801E03C03C03F0FC01FFF8007FE0001F800 14147F9317>II114 D<07F01FFC3FFC780C7800780078007C003FC01FF00FF803F8007C003C003CC03CF07CFFF87FF0 0FC00E147F9311>I<1E001E001E001E001E001E00FFF0FFF0FFF01E001E001E001E001E001E00 1E001E001E001E001E001E001E001E201FF00FF007C00C1A7F9910>IIII121 D<7FFF7FFF7FFF003E003C007800F800F001E003E007C007800F 001F001E003C007C00FFFFFFFFFFFF10147F9314>I E /Fw 29 122 df<3C007E00FF00FF00FF 80FF807F803D800180018003000300070006000C001C003800200009127C8710>44 DI<3C7EFFFFFFFF7E3C08087C8710>I<00003000000000 78000000007800000000FC00000000FC00000000FC00000001FE00000001FE00000003FF000000 037F000000037F000000063F800000063F8000000E3FC000000C1FC000000C1FC00000180FE000 00180FE00000300FF000003007F000007007F800006003F800006003F80000FFFFFC0000FFFFFC 0001C001FE00018000FE00018000FE000300007F000300007F000700007F800700003F80FFF007 FFFCFFF007FFFC26227EA12B>65 DI<0001FF 0040001FFFC1C0007F80F3C001FC001FC003F0000FC007E00007C00FC00003C01FC00003C03F80 0001C03F800001C07F800000C07F000000C07F000000C0FF00000000FF00000000FF00000000FF 00000000FF00000000FF00000000FF00000000FF000000007F000000007F000000C07F800000C0 3F800000C03F800001C01FC00001800FC000018007E000030003F000060001FC001C00007F8078 00001FFFE0000001FF000022227DA129>II< FFFF81FFFFFFFF81FFFF07F0000FE007F0000FE007F0000FE007F0000FE007F0000FE007F0000F E007F0000FE007F0000FE007F0000FE007F0000FE007F0000FE007F0000FE007F0000FE007FFFF FFE007FFFFFFE007F0000FE007F0000FE007F0000FE007F0000FE007F0000FE007F0000FE007F0 000FE007F0000FE007F0000FE007F0000FE007F0000FE007F0000FE007F0000FE007F0000FE007 F0000FE0FFFF81FFFFFFFF81FFFF28227EA12D>72 D77 DI82 D85 D87 D<07FE00001FFF80003F07E0003F03F0003F01F0003F01F8001E01F8000001F8000001F800003F F80003FDF8001F81F8003E01F8007C01F800F801F800F801F800F801F800F801F8007C02F8007E 0CF8001FF87F8007E03F8019167E951C>97 DI<00FE0007FF800F83C01F01E03E00F07E00F07C00F87C0078FC0078FFFF F8FFFFF8FC0000FC0000FC00007C00007C00003E00183E00181F00300F80E003FFC000FF001516 7E951A>101 D<001F8000FFE001F1F003E3F007E3F00FC3F00FC1E00FC0000FC0000FC0000FC0 000FC0000FC000FFFE00FFFE000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0 000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0007FFC007FFC0014237EA212 >I<00FE0F8003FF9FC00F83E3C01F01F3C01E00F0003E00F8003E00F8003E00F8003E00F8003E 00F8001E00F0001F01F0000F83E0000BFF800008FE000018000000180000001C0000001FFFE000 1FFFFC000FFFFF0007FFFF001FFFFF807C001FC078000FC0F80007C0F80007C0F80007C07C000F 803E001F001F807E000FFFFC0001FFE0001A217F951D>I<0E001F003F807F807F803F801F000E 00000000000000000000000000FF80FF801F801F801F801F801F801F801F801F801F801F801F80 1F801F801F801F801F801F801F80FFF0FFF00C247EA30F>105 D108 DII<00FF0007FFE00F81F01F00 F83E007C7C003E7C003E7C003EFC003FFC003FFC003FFC003FFC003FFC003FFC003F7C003E7E00 7E3E007C1F00F80F81F007FFE000FF0018167E951D>I114 D<07F9801FFF80380780700380F00180F00180F8 0000FF0000FFF8007FFE003FFF001FFF8007FF80003FC0C007C0C003C0E003C0E003C0F00380FC 0F00EFFE00C3F80012167E9517>I<00C00000C00000C00000C00001C00001C00003C00007C000 0FC0001FC000FFFF00FFFF000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC000 0FC0000FC0000FC1800FC1800FC1800FC1800FC18007C18007E30003FE0000FC0011207F9F16> III121 D E /Fx 20 122 df<7FE0FFE0FFE0FFE0FFE0FFE0FFE0FF E0FFE0FFE0FFE00000000000000000000000000000000000000000000000000000000000000000 0000FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE07FE00B2779A61A>58 D<00000FFFC0000000001FFFE0000000003FFFF0000000003FFFF0000000007FFFF8000000007F FFF8000000007FFFF800000000FFFFFC00000000FFFFFC00000000FFFFFC00000001FFFFFE0000 0001FFDFFE00000001FF9FFE00000003FF9FFF00000003FF9FFF00000003FF8FFF00000007FF8F FF80000007FF0FFF80000007FF0FFF8000000FFF07FFC000000FFE07FFC000000FFE07FFC00000 1FFE03FFE000001FFE03FFE000001FFC03FFE000003FFC01FFF000003FFC01FFF000003FF801FF F000007FF801FFF800007FF800FFF800007FF000FFF80000FFF000FFFC0000FFF0007FFC0000FF E0007FFC0001FFE0007FFE0001FFE0003FFE0001FFC0003FFE0003FFC0003FFF0003FFC0001FFF 0003FFFFFFFFFF0007FFFFFFFFFF8007FFFFFFFFFF8007FFFFFFFFFF800FFFFFFFFFFFC00FFFFF FFFFFFC00FFFFFFFFFFFC01FFE000007FFE01FFE000003FFE01FFC000003FFE03FFC000003FFF0 3FFC000001FFF03FF8000001FFF07FF8000001FFF87FF8000000FFF8FFF0000000FFFCFFF00000 00FFFCFFF00000007FFCFFE00000007FFCFFE00000003FFCFF800000001FFC363C7CBB3F>65 D<3FFFFFFE0000007FFFFFFFF00000FFFFFFFFFC0000FFFFFFFFFF0000FFFFFFFFFF8000FFFFFF FFFFC000FFFFFFFFFFE000FFF8001FFFF000FFF80003FFF000FFF80001FFF800FFF80000FFF800 FFF800007FF800FFF800007FFC00FFF800003FFC00FFF800003FFC00FFF800003FFC00FFF80000 3FFC00FFF800003FFC00FFF800003FFC00FFF800007FF800FFF800007FF800FFF80000FFF800FF F80000FFF000FFF80003FFE000FFF80007FFE000FFF8007FFFC000FFFFFFFFFF0000FFFFFFFFFC 0000FFFFFFFFF00000FFFFFFFFFE0000FFFFFFFFFFC000FFFFFFFFFFE000FFF80007FFF800FFF8 0001FFFC00FFF800007FFC00FFF800003FFE00FFF800001FFF00FFF800001FFF00FFF800000FFF 00FFF800000FFF80FFF800000FFF80FFF8000007FF80FFF8000007FF80FFF8000007FF80FFF800 0007FF80FFF800000FFF80FFF800000FFF80FFF800000FFF80FFF800001FFF00FFF800001FFF00 FFF800007FFE00FFF80000FFFE00FFF80007FFFC00FFFFFFFFFFFC00FFFFFFFFFFF800FFFFFFFF FFF000FFFFFFFFFFC000FFFFFFFFFF00007FFFFFFFFC00003FFFFFFFC00000313C78BB3F>I<3F F07FF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8 FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FF F8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF87FF8 3FF00D3C79BB1C>73 D<3FF00000007FF8000000FFF8000000FFF8000000FFF8000000FFF80000 00FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF800 0000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8 000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FF F8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000 FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF80000 00FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFFFFFFFF0FFFFFF FFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF87FFFFFFFF83FFFFFFFF0253C 78BB32>76 D<3FFFFFFF00007FFFFFFFF000FFFFFFFFFC00FFFFFFFFFF00FFFFFFFFFF80FFFFFF FFFFC0FFFFFFFFFFE0FFF8000FFFF0FFF80003FFF8FFF80000FFF8FFF800007FFCFFF800007FFC FFF800003FFCFFF800003FFCFFF800003FFEFFF800001FFEFFF800001FFEFFF800001FFEFFF800 001FFEFFF800001FFEFFF800001FFEFFF800001FFEFFF800003FFEFFF800003FFCFFF800003FFC FFF800007FFCFFF800007FF8FFF80000FFF8FFF80003FFF0FFF8001FFFF0FFFFFFFFFFE0FFFFFF FFFFC0FFFFFFFFFF80FFFFFFFFFE00FFFFFFFFF800FFFFFFFFC000FFF800000000FFF800000000 FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF800 000000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000 FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF800 0000007FF8000000003FF0000000002F3C78BB3D>80 D<0001FFF80000000FFFFF8000003FFFFF F00000FFFFFFFC0001FFFFFFFF0003FFFFFFFF0007FFFFFFFF000FFFFFFFFF001FFFFFFFFE001F FFFFFFFE003FFF801FFE003FFC0001FE003FF800007E007FF800003E007FF000000C007FF00000 04007FF0000000007FF0000000007FF0000000007FF8000000007FFC000000007FFE000000003F FFC00000003FFFFC0000001FFFFFE000001FFFFFFC00000FFFFFFF000007FFFFFFC00003FFFFFF E00001FFFFFFF00000FFFFFFF800007FFFFFFC00003FFFFFFE00000FFFFFFF000001FFFFFF8000 001FFFFF80000001FFFFC00000001FFFC000000007FFC000000003FFE000000001FFE000000001 FFE000000000FFE000000000FFE020000000FFE030000000FFE078000000FFE07E000000FFE07F 800001FFC07FE00003FFC07FF80007FFC07FFF801FFF80FFFFFFFFFF80FFFFFFFFFF00FFFFFFFF FF00FFFFFFFFFE003FFFFFFFFC000FFFFFFFF80003FFFFFFF00000FFFFFFC000001FFFFF000000 00FFF000002B3E7CBC35>83 D<0007FF8000007FFFF00001FFFFFC0007FFFFFE000FFFFFFF001F FFFFFF801FF803FFC01FE001FFE00F8001FFE00F0000FFE00E0000FFF00C0000FFF0000000FFF0 000000FFF0000000FFF0000000FFF0000000FFF00000FFFFF0000FFFFFF000FFFFFFF003FFFCFF F007FFC0FFF00FFF00FFF01FFC00FFF03FF800FFF07FF800FFF07FF800FFF0FFF000FFF0FFF000 FFF0FFF000FFF0FFF000FFF0FFF000FFF0FFF001FFF07FF803FFF07FF807FFF03FFC1FFFF03FFF FEFFF01FFFFCFFF00FFFF8FFF007FFF0FFF003FFC07FE000FE000000242A7DA82D>97 D<0003FF8000001FFFF000007FFFFC0001FFFFFE0003FFFFFF0007FFFFFF800FFF81FFC01FFE00 FFE01FFC007FE03FF8003FF03FF8003FF07FF8003FF07FF0001FF07FF0001FF87FF0001FF8FFF0 001FF8FFE0001FF8FFE0001FF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF0FFE0000000FF E0000000FFE0000000FFF0000000FFF00000007FF00000007FF00000007FF00000003FF8000010 3FF80000701FFC0000F01FFC0001F00FFF0007F807FFC07FF803FFFFFFF801FFFFFFF800FFFFFF E0003FFFFF80000FFFFC000001FFE000252A7DA82C>101 D<0000FFE00007FFFC001FFFFC003F FFFC007FFFFC00FFFFFC01FFE07C01FFC01C03FF800C03FF800007FF800007FF800007FF800007 FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF80003FFFFE00 7FFFFF00FFFFFF00FFFFFF00FFFFFF007FFFFE0007FF800007FF800007FF800007FF800007FF80 0007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF 800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007 FF800007FF800007FF800007FF800007FF800007FF800007FF800003FF800001FF00001E3D7EBC 1D>I<0007FF0007C0003FFFE03FC000FFFFF9FFE001FFFFFFFFE003FFFFFFFFE007FFFFFF00E0 0FFE03FF80001FFC01FFC0001FFC01FFC0001FF800FFC0003FF800FFE0003FF800FFE0003FF800 FFE0003FF800FFE0003FF800FFE0003FF800FFE0003FF800FFE0003FF800FFE0001FF800FFC000 1FFC01FFC0001FFC01FFC0000FFE03FF800007FFFFFF000003FFFFFE000003FFFFFC000003FFFF F80000073FFFE000000707FF0000000F00000000000F80000000000F80000000000FC000000000 0FFFFFFC00000FFFFFFFC00007FFFFFFF00007FFFFFFF80003FFFFFFFC0003FFFFFFFE0007FFFF FFFF001FFFFFFFFF803FFFFFFFFF807FE0000FFF807FC00001FFC0FF800000FFC0FF8000007FC0 FF8000007FC0FF8000007FC0FF8000007FC0FF8000007FC07FC00000FF807FC00000FF807FF000 03FF803FFE001FFF001FFFFFFFFE000FFFFFFFFC0007FFFFFFF80001FFFFFFE000007FFFFF8000 0007FFF800002B3B7EA72F>I<3FF07FF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF8FFF87FF0 0000000000000000000000000000000000001FF03FF87FF87FF87FF87FF87FF87FF87FF87FF87F F87FF87FF87FF87FF87FF87FF87FF87FF87FF87FF87FF87FF87FF87FF87FF87FF87FF87FF87FF8 7FF87FF87FF87FF87FF87FF87FF83FF81FF00D3D7CBC17>105 D<000007FC0001FF003FE01FFF 8007FFE07FF07FFFC01FFFF0FFF0FFFFE03FFFF8FFF1FFFFF07FFFFCFFF3FFFFF8FFFFFEFFF7C0 FFF9F03FFEFFF7007FFDC01FFFFFFE003FFF800FFFFFFC003FFF000FFFFFF8003FFE000FFFFFF8 003FFE000FFFFFF8003FFE000FFFFFF0003FFC000FFFFFF0003FFC000FFFFFF0003FFC000FFFFF F0003FFC000FFFFFF0003FFC000FFFFFF0003FFC000FFFFFF0003FFC000FFFFFF0003FFC000FFF FFF0003FFC000FFFFFF0003FFC000FFFFFF0003FFC000FFFFFF0003FFC000FFFFFF0003FFC000F FFFFF0003FFC000FFFFFF0003FFC000FFFFFF0003FFC000FFFFFF0003FFC000FFFFFF0003FFC00 0FFFFFF0003FFC000FFFFFF0003FFC000FFFFFF0003FFC000FFFFFF0003FFC000FFFFFF0003FFC 000FFFFFF0003FFC000FFFFFF0003FFC000FFF7FF0001FFC0007FF3FE0000FF80003FE40287BA7 4B>109 D<000007FC003FE01FFF007FF07FFF80FFF0FFFFC0FFF1FFFFE0FFF3FFFFF0FFF7C0FF F0FFFF00FFF8FFFE007FF8FFFC007FF8FFF8007FF8FFF8007FF8FFF8007FF8FFF0007FF8FFF000 7FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0 007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FF F0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8 7FF0007FF83FE0003FF025287BA730>I<0001FF8000001FFFF800007FFFFE0001FFFFFF8003FF FFFFC007FFFFFFE00FFF81FFF01FFE007FF81FFC003FF83FF8001FFC3FF8001FFC3FF8001FFC7F F0000FFE7FF0000FFE7FF0000FFEFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFF FFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000F FF7FF0000FFE7FF8001FFE7FF8001FFE3FF8001FFC3FFC003FFC3FFC003FFC1FFE007FF80FFF81 FFF007FFFFFFE003FFFFFFC001FFFFFF8000FFFFFF00001FFFF8000003FFC000282A7DA82F>I< 000007803FC01F807FE07F80FFE0FF80FFE1FF80FFE3FF80FFE3FF80FFE7FF80FFEFFF80FFEFF0 00FFEFC000FFFF0000FFFE0000FFFC0000FFF80000FFF80000FFF00000FFF00000FFF00000FFF0 0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FF F00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF000007FF00000 3FE0000019287BA720>114 D<007FF00003FFFF0007FFFFC00FFFFFF01FFFFFF03FFFFFF07FFF FFF07FE01FE07F8003E0FF8001E0FF800060FF800000FF800000FFC00000FFF00000FFFF00007F FFF8007FFFFE003FFFFF003FFFFF801FFFFFC00FFFFFE003FFFFF001FFFFF8007FFFF80007FFFC 00003FFC00000FFC200007FC700007FC700007FC780007FC7E0007FC7F000FF8FFE01FF8FFFFFF F8FFFFFFF0FFFFFFE03FFFFFC00FFFFF8003FFFE00003FF8001E2A7DA824>I<01FF000003FF80 0007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF 80003FFFFFE07FFFFFF0FFFFFFF0FFFFFFF0FFFFFFF07FFFFFE007FF800007FF800007FF800007 FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF8000 07FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF80 0007FF800007FF800007FFC01807FFC03803FFC0F803FFFFFC03FFFFFC01FFFFF800FFFFE0007F FF80001FF0001E347EB223>I<3FE0003FF07FF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FF F0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8 FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007F F8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF8FFF000 FFF8FFF000FFF8FFF000FFF8FFF001FFF8FFF001FFF87FF003FFF87FF80F7FF83FFFFE7FF81FFF FC7FF80FFFF87FF807FFF03FF000FFC0000025287BA630>I121 D E end %%EndProlog %%BeginSetup %%Feature: *Resolution 300 TeXDict begin @letter %%EndSetup %%Page: 1 1 bop 0 251 a Fx(BLISS:)32 b(A)f(Language)j(fo)m(r)e(Systems)f(Programming)0 382 y Fw(W.A.)19 b(W)-5 b(ulf,)20 b(D.B.)f(Russell,)h(A.N.)f(Hab)r(ermann)0 462 y(Carnegie-Mellon)j(Univ)n(ersit)n(y)p 0 539 1950 7 v 0 610 a Fv(A)c(language,)h(BLISS,)f(is)g(describ)q(ed.)31 b(This)19 b(language)f(is)h(designed)h(so)e(as)g(to)g(b)q(e)h(esp)q(ecially)h(suitable) f(fo)o(r)e(use)j(in)0 660 y(writing)13 b(p)o(ro)q(duction)h(soft)o(w)o(a)o (re)e(systems)i(fo)o(r)e(a)h(sp)q(eci\014c)i(machine)e(\(the)h(PDP-10\):)k (compilers,)12 b(op)q(erating)h(systems,)0 710 y(etc.)28 b(Prime)16 b(design)j(goals)e(of)h(the)g(design)h(a)o(re)e(the)i(abilit)o(y)e(to)h(p)o (ro)q(duce)h(highly)f(e\016cient)h(object)f(co)q(de,)h(to)f(allo)o(w)0 760 y(access)e(to)g(all)e(relevant)i(ha)o(rdw)o(a)o(re)e(features)i(of)f(the) h(host)g(machine,)f(and)h(to)f(p)o(rovide)g(a)g(rational)g(means)g(b)o(y)g (which)0 809 y(to)j(cop)q(e)g(with)h(the)f(evolutiona)o(ry)g(nature)g(of)g (systems)g(p)o(rograms.)26 b(A)18 b(majo)o(r)d(feature)k(which)f(contributes) i(to)e(the)0 859 y(realization)i(of)g(these)i(goals)e(is)g(a)h(mechanism)f(p) q(ermitting)g(the)i(de\014nition)g(of)e(the)i(rep)o(resentation)g(of)d(all)h (data)0 909 y(structures)d(in)f(terms)f(of)f(the)j(access)f(algo)o(rithm)e (fo)o(r)g(elements)i(of)e(the)j(structure.)p 0 961 V 0 1089 a Fu(Intro)r(duction)0 1188 y Ft(In)28 b(the)g(fall)f(of)g(1969,)j (Carnegie-Mellon)d(Univ)o(ersit)o(y)0 1238 y(acquired)22 b(a)g Fs(pdp-10)g Ft(to)f(supp)q(ort)i(a)f(researc)o(h)h(pro)r(ject)0 1288 y(on)28 b(computer)h(net)o(w)o(orks.)62 b(This)29 b(researc)o(h)h(in)o (v)o(olv)o(es)0 1338 y(the)25 b(pro)q(duction)f(of)f(a)h(substan)o(tial)g(n)o (um)o(b)q(er)f(of)h(large)0 1387 y(systems)c(programs)f(of)g(the)h(t)o(yp)q (e)h(whic)o(h)f(ha)o(v)o(e)f(usually)0 1437 y(b)q(een)k(written)f(in)f(assem) o(bly)g(language.)40 b(A)o(t)22 b(an)g(early)0 1487 y(stage)h(of)f(this)h (design)g(e\013ort)h(it)e(w)o(as)h(decided)h(not)f(to)0 1537 y(use)13 b(assem)o(bly)e(language,)g(but)h(rather)h(some)e(higher-lev)o(el)0 1587 y(language.)17 b(This)d(decision)g(immedia)o(tely)d(led)j(to)g(another)0 1637 y(question|whic)o(h)20 b(language?)38 b(In)21 b(turn)g(this)g(led)f(to)h (a)0 1686 y(consideration)11 b(of)f(the)h(c)o(haracteristics,)i(if)d(an)o(y)m (,)f(whic)o(h)i(are)0 1736 y(unique)g(to,)g(or)g(at)g(least)h(exaggerated)g (in,)e(the)i(pro)q(duction)0 1786 y(and)e(main)o(tenance)g(of)g(systems)h (programs.)k(One)d(pro)q(duct)0 1836 y(of)f(these)i(delib)q(erations)f(w)o (as)g(a)f(new)i(language,)e(whic)o(h)g(w)o(e)0 1886 y(call)k Fs(bliss)p Ft(.)24 b(Clearly)m(,)15 b(a)h(language)f(is)h(not)f(the)i(only)e (to)q(ol)0 1935 y(needed;)f(ho)o(w)o(ev)o(er,)e(it)g(is)h(the)f(one)h(with)f (whic)o(h)g(w)o(e)h(deal)f(in)0 1985 y(this)i(pap)q(er.)50 2035 y(W)m(e)22 b(refer)i(to)e Fs(bliss)h Ft(as)f(an)h(\\implem)o(en)o (tation)c(lan-)0 2085 y(guage,")d(although)g(w)o(e)h(admit)e(that)i(the)g (term)f(is)g(some-)0 2135 y(what)23 b(am)o(biguous)e(since,)k(presumably)m(,) f(all)e(computer)0 2184 y(languages)g(are)g(used)h(to)f(implemen)o(t)e Fr(something)p Ft(.)43 b(T)m(o)0 2234 y(us)19 b(the)g(phrase)h(connotes)f(a)f (general)h(purp)q(ose,)i(higher-)0 2284 y(lev)o(el)d(language)f(in)h(whic)o (h)g(the)h(primary)e(emphasis)g(has)0 2334 y(b)q(een)d(placed)g(up)q(on)f(a)g (sp)q(eci\014c)h(application,)d(namely)h(the)0 2384 y(writing)k(of)h(large,)g Fr(pr)n(o)n(duction)j Ft(soft)o(w)o(are)d(systems)g(for)g(a)p 0 2443 300 2 v 0 2479 a Fq(Cop)o(yrigh)o(t)171 2475 y Fp(C)-25 b Fo(\015)203 2479 y Fq(1971,)23 b(Asso)q(ciation)c(for)j(Computing)d(Mac)o (hinery)m(,)0 2520 y(Inc.)h(Reprin)o(ted)11 b(from)h(the)h(Decem)o(b)q(er)e (1971)h(issue)h(of)g Fn(Comm)o(uni-)0 2562 y(cations)c(of)i(the)f(A)o(CM)16 b Fq(\(V)m(olume)10 b(14,)g(Num)o(b)q(er)g(12\).)k(P)o(ermission)9 b(to)0 2603 y(reprin)o(t)e(gran)o(ted)g(b)o(y)i(the)f(Asso)q(ciation)f(for)i (Computing)e(Mac)o(hinery)m(.)1017 1089 y Ft(sp)q(eci\014c)19 b(mac)o(hine.)30 b(Sp)q(ecial)18 b(purp)q(ose)i(languages,)e(suc)o(h)1017 1138 y(as)12 b(compiler-compil)o(ers,)e(do)j(not)f(fall)e(in)o(to)i(this)g (category)m(,)1017 1188 y(nor)k(do)g(w)o(e)h(necessarily)h(assume)e(that)h (these)h(languages)1017 1238 y(need)f(b)q(e)g(mac)o(hine-indep)q(enden)o(t.) 26 b(W)m(e)16 b(stress)i(the)f(w)o(ord)1017 1288 y(\\implem)o(en)o(tation")i (in)j(our)h(de\014nition)f(and)h(ha)o(v)o(e)f(not)1017 1338 y(used)15 b(w)o(ords)f(suc)o(h)h(as)g(\\design")f(and)g(\\do)q(cumen)o (tation.")1017 1387 y(W)m(e)21 b(do)g(not)h(necessarily)h(exp)q(ect)g(that)f (an)g(implemen-)1017 1437 y(tation)c(language)g(will)g(b)q(e)h(an)g (appropriate)g(v)o(ehicle)g(for)1017 1487 y(expressing)g(the)f(initial)f (design)h(of)f(a)h(large)g(system)g(nor)1017 1537 y(for)24 b(the)i(exclusiv)o(e)g(do)q(cumen)o(tation)e(of)g(that)i(system.)1017 1587 y(Concepts)13 b(suc)o(h)g(as)f(mac)o(hine)f(indep)q(endence,)j (expressing)1017 1637 y(the)c(design)g(and)f(implemen)o(tatio)o(n)e(in)i(the) i(same)d(notation,)1017 1686 y(self-do)q(cumen)o(tation,)h(and)i(others,)h (are)g(clearly)f(desirable)1017 1736 y(goals)g(and)g(are)i(criteria)f(b)o(y)g (whic)o(h)g(w)o(e)g(ev)n(aluated)g(v)n(arious)1017 1786 y(languages.)1066 1836 y(Ho)o(w)o(ev)o(er,)k(they)g(are)g(not)f(implicit)e(in)i(our)h (de\014nition.)1017 1886 y(There)d(are)f(a)g(few)g(extan)o(t)g(examples)f(of) h(languages)f(whic)o(h)1017 1935 y(\014t)22 b(our)h(de\014nition:)35 b Fs(epl)23 b Ft(\(a)f(PL/1)g(deriv)n(ativ)o(e)g(whic)o(h)1017 1985 y(w)o(as)g(initially)d(used)k(on)f Fs(mul)m(tics)g Ft([1])f(but)h(whic)o (h)g(has)1017 2035 y(b)q(een)10 b(replaced)h(b)o(y)e(full)f(PL/1\),)i(B5500)f (Extended)i Fs(algol)1017 2085 y Ft(\(Burroughs)18 b(Corp)q(oration)e([2]\),) h(PL360)g([3],)f(and)h Fs(bcpl)1017 2135 y Ft([4].)1066 2184 y(The)j(v)n(arious)e(argumen)o(ts)h(for)g(and)g(against)f(the)i(use)1017 2234 y(of)15 b(higher-lev)o(el)h(languages)g(to)h(write)f(systems)h(soft)o(w) o(are)1017 2284 y(ha)o(v)o(e)c(b)q(een)i(discussed)g(at)e(length.)18 b(W)m(e)c(do)f(not)g(in)o(tend)h(to)1017 2334 y(repro)q(duce)d(them)d(here)j (in)e(detail)g(except)i(to)e(note)h(that)f(the)1017 2384 y(sk)o(eptics)15 b(argue)f(primarily)e(on)i(t)o(w)o(o)f(grounds:)19 b(e\016ciency)m(,)1017 2434 y(and)11 b(an)g(assertion)g(that)h(the)g(systems)f(programmer)e(m)o(ust) 1017 2483 y(not)16 b(allo)o(w)e(an)o(ything)i(to)g(get)g(b)q(et)o(w)o(een)i (himself)c(and)i(the)1017 2533 y(mac)o(hine.)32 b(The)19 b(adv)o(o)q(cates)h (argue)f(on)g(the)g(grounds)h(of)1017 2583 y(pro)q(duction)j(sp)q(eed)i (\(and)e(cost\),)j(main)o(tainabil)o(it)o(y)l(,)c(re-)1017 2633 y(design)13 b(and)f(mo)q(di\014cation,)f(and)i(understandabilit)o(y)f (and)965 2770 y(1)p eop %%Page: 2 2 bop 0 42 a Ft(correctness.)36 b(The)19 b(rep)q(ort)h(of)f(the)g(NA)m(TO)g (Conference)0 91 y(on)j(Soft)o(w)o(are)h(Engineering)f(held)h(in)f(Garmish)f (\(Octo-)0 141 y(b)q(er)e(1968\))e([5])g(con)o(tains)h(sev)o(eral)h (discussions)g(on)f(these)0 191 y(p)q(oin)o(ts.)50 241 y(It)e(is)g(our)g (opinion)f(that)h(program)e(e\016ciency)m(,)j(except)0 291 y(p)q(ossibly)c(for)g(a)g(v)o(ery)h(small)d(n)o(um)o(b)q(er)i(of)g(v)o(ery)g (small)f(co)q(de)0 340 y(segmen)o(ts,)17 b(is)f(determined)h(b)o(y)f(o)o(v)o (erall)f(program)g(design)0 390 y(and)d(not)g(b)o(y)g(lo)q(cally)f(tric)o(ky) m(,)h(\\bit-pic)o(king")e(co)q(ding)i(prac-)0 440 y(tices.)52 b(Moreo)o(v)o(er,)28 b(the)d(critical)f(co)q(de)i(segmen)o(ts)f(are)0 490 y(frequen)o(tly)20 b(lo)q(cated)f(only)g(after)h(the)g(system)f(is)g(op)q (era-)0 540 y(tional.)i(This)15 b(opinion)f(is)h(b)q(orne)i(out)e(b)o(y)g (man)o(y)e(systems)0 589 y(whic)o(h)e(ha)o(v)o(e)f(exp)q(erienced)j(substan)o (tial)d(p)q(erformance)h(im-)0 639 y(pro)o(v)o(emen)o(ts)21 b(from)f(redesign)i(or)g(restructuring)h(result-)0 689 y(ing)15 b(from)f(understanding)j(or)f(insigh)o(t)f(after)h(the)h(system)0 739 y(has)g(b)q(een)h(running)f(for)g(some)f(time)g(\(see,)j(for)d(example,)0 789 y(E.E.)d(Da)o(vid's)g(commen)o(ts,)f([5,)h(pp.)g(55{57]\).)k(One)d(of)g (the)0 839 y(paramoun)o(t)g(design)i(ob)r(jectiv)o(es)h(of)f Fs(bliss)f Ft(w)o(as)h(to)g(facili-)0 888 y(tate)10 b(redesign)g(and)g(reco)q (ding.)17 b(Since)10 b(this)f(redesign)i(is)e(fre-)0 938 y(quen)o(tly)14 b(done)h(b)o(y)f(someone)g(other)i(than)e(the)h(program's)0 988 y(original)22 b(author,)k(there)g(is)e(a)f(corollary)g(ob)r(jectiv)o(e)i (of)0 1038 y(readabilit)o(y)m(.)d(This)15 b(argues)i(for)e(go)q(o)q(d)g(do)q (cumen)o(tation|)0 1088 y(but)23 b(also)g(for)g(understandabilit)o(y)g(of)f (the)i(co)q(de)g(itself.)0 1137 y(Understandabilit)o(y)13 b(is)h(a)f (function)g(of)g(man)o(y)f(things,)h(not)0 1187 y(all)j(of)h(whic)o(h)g(are)h (inheren)o(t)g(in)f(the)h(language)f(in)g(whic)o(h)0 1237 y(a)k(program)f(is) i(written|a)f(programmer's)e(individual)0 1287 y(st)o(yle,)j(for)f(example.) 37 b(Nev)o(ertheless,)24 b(the)e(length)f(of)f(a)0 1337 y(program)13 b(text)j(and)e(the)i(structure)h(imp)q(osed)d(up)q(on)g(that)0 1386 y(text)d(are)f(imp)q(ortan)o(t)f(factors)i(and)f(argue)g(strongly)g(for) g(the)0 1436 y(use)15 b(of)e(a)h(higher-lev)o(el)f(language.)50 1486 y(Presuming)20 b(the)i(decision)g(to)f(use)h(an)f(implem)o(en)o(ta-)0 1536 y(tion)e(language,)g(whic)o(h)g(one)h(should)f(one)h(c)o(ho)q(ose?)35 b(An)0 1586 y(argumen)o(t)19 b(migh)o(t)f(b)q(e)i(made)f(for)h(c)o(ho)q (osing)f(one)h(of)g(the)0 1636 y(existing)i(languages,)i(sa)o(y)e Fs(f)o(or)m(tran)p Ft(,)k(PL/1,)e(or)e Fs(apl)p Ft(,)0 1685 y(and)e(p)q(ossibly)f(extending)h(it)g(in)f(some)g(w)o(a)o(y)m(.)34 b(W)m(e)20 b(ha)o(v)o(e)0 1735 y(c)o(hosen)e(to)f(add)g(to)g(the)g(tongues)h (of)e(Bab)q(el)i(b)o(y)f(de\014ning)0 1785 y(y)o(et)d(another)h(new)g (language,)e(and)h(some)f(justi\014cation)h(is)0 1835 y(required.)k(The)11 b(only)f(v)n(alid)f(rationale)h(for)g(creating)h(a)f(new)0 1885 y(language)j(is)g(that)g(the)i(existing)e(ones)h(are)g(inappropriate)0 1934 y(to)h(the)h(task.)23 b(It)16 b(w)o(as)f(our)h(judgemen)o(t)e(that)i(no) f(existing)0 1984 y(languages)20 b(dealt)h(with)f(all)f(of)h(the)h(prop)q(er) h(issues)g(and)0 2034 y(hence)13 b(a)e(new)h(language)f(w)o(as)g(necessary)m (.)19 b(What)11 b(then)h(are)0 2084 y(the)18 b(sp)q(ecial)g(c)o (haracteristics)h(of)e(systems)h(programs)e(for)0 2134 y(whic)o(h)f(existing) f(languages)g(are)h(inappropriate?)21 b(\(Later)0 2183 y(w)o(e)e(shall)f (discuss)i(ho)o(w)e(these)i(manifest)d(themselv)o(es)i(in)0 2233 y Fs(bliss)p Ft(.\))40 b(The)21 b(t)o(w)o(o)g(sp)q(ecial)g(c)o (haracteristics)i(most)d(fre-)0 2283 y(quen)o(tly)f(men)o(tioned)f(are)i (e\016ciency)g(and)f(access)i(to)e(all)0 2333 y(hardw)o(are)e(features)h(of)e (the)h(mac)o(hine.)24 b(W)m(e)17 b(add)f(sev)o(eral)0 2383 y(things)h(to)g(these;)j(the)e(resulting)g(list)e(forms)g(the)i(design)0 2433 y(ob)r(jectiv)o(es)d(of)e Fs(bliss)p Ft(.)0 2532 y Fr(R)n(e)n(quir)n (ements)i(of)g(Systems)g(Pr)n(o)n(gr)n(ams)21 2582 y Fm(\017)20 b Ft(space/time)14 b(econom)o(y)21 2632 y Fm(\017)20 b Ft(access)c(to)e(all)e (relev)n(an)o(t)i(hardw)o(are)h(features)1037 42 y Fm(\017)21 b Ft(ob)r(ject)j(co)q(de)g(m)o(ust)e(not)i(dep)q(end)g(up)q(on)g(elab)q (orate)1079 91 y(run-time)13 b(supp)q(ort)1017 191 y Fr(Char)n(acteristics)g (of)i(Systems)g(Pr)n(o)n(gr)n(amming)f(Pr)n(actic)n(e)1037 241 y Fm(\017)21 b Ft(con)o(trol)10 b(o)o(v)o(er)g(the)g(represen)o(tation)i (of)e(data)f(structures)1037 291 y Fm(\017)21 b Ft(\015exible)c(range)g(of)g (con)o(trol)g(structures)i(\(notably)e(in-)1079 340 y(cluding)d(recursion,)h (coroutines,)g(and)f(async)o(hronous)1079 390 y(pro)q(cesses\))1037 440 y Fm(\017)21 b Ft(mo)q(dularization)10 b(of)j(a)f(system)h(in)o(to)g (separately)g(com-)1079 490 y(pilable)g(submo)q(dules)1037 540 y Fm(\017)21 b Ft(parameterization,)d(esp)q(ecially)h(conditional)e (compi-)1079 589 y(lation)1017 689 y Fr(Over)n(al)r(l)c(Go)n(o)n(d)j(L)n (anguage)g(Design)1037 739 y Fm(\017)21 b Ft(encourages)15 b(program)d(structuring)j(for)e(understand-)1079 789 y(abilit)o(y)1037 839 y Fm(\017)21 b Ft(encourages)i(program)d(structuring)j(for)f(debugging) 1079 888 y(and)13 b(measuremen)o(t)1037 938 y Fm(\017)21 b Ft(econom)o(y)27 b(of)g(concepts)j(\(in)o(v)o(olution\),)f(generalit)o(y)m(,) 1079 988 y(\015exibilit)o(y)m(,)11 b(etc.)1037 1038 y Fm(\017)21 b Ft(utilit)o(y)12 b(as)i(a)g(design)g(to)q(ol)1037 1088 y Fm(\017)21 b Ft(mac)o(hine)12 b(indep)q(endence)1017 1187 y(The)i(order)g(in) f(the)h(ab)q(o)o(v)o(e)f(list)h(is)f(not)g(acciden)o(tal.)18 b(Those)1017 1237 y(items)23 b(found)i(early)f(in)h(the)g(list)f(w)o(e)h (consider)h(to)e(b)q(e)1017 1287 y(absolute)10 b(requiremen)o(ts,)h(while)e (those)i(o)q(ccurring)g(later)f(in)1017 1337 y(the)i(list)f(ma)o(y)e(b)q(e)j (though)o(t)f(of)g(as)h(criteria)f(b)o(y)h(whic)o(h)f(alter-)1017 1386 y(nativ)o(e)h(designs)h(are)h(judged)f(once)g(the)h(more)e(demanding) 1017 1436 y(requiremen)o(ts)i(are)g(satis\014ed.)1066 1486 y(Not)20 b(all)e(of)h(the)h(goals)f(men)o(tioned)f(ab)q(o)o(v)o(e)h(are)h (com-)1017 1536 y(patible)c(in)h(practice.)30 b(F)m(or)17 b(example,)f (e\016ciency)m(,)i(access)1017 1586 y(to)13 b(mac)o(hine)f(features,)i(and)f (mac)o(hine)f(indep)q(endence)k(are)1017 1636 y(con\015icting)21 b(goals.)42 b(In)22 b(fact,)i(the)e(design)h(of)e Fs(bliss)h Ft(is)1017 1685 y(not)16 b(mac)o(hine)f(indep)q(enden)o(t,)j(although)d(the)i (underlying)1017 1735 y(philosoph)o(y)11 b(and)h(m)o(uc)o(h)e(of)i(the)h(sp)q (eci\014c)g(design)g(are.)18 b(The)1017 1785 y(mac)o(hine)10 b(for)i(whic)o(h)f(the)i(language)e(w)o(as)h(b)q(eing)g(designed,)1017 1835 y(the)j Fs(pdp-10)p Ft(,)f(w)o(as)g(constan)o(tly)g(in)g(the)i(minds)d (of)h(the)h(de-)1017 1885 y(signers.)j(The)12 b(co)q(de)g(to)f(b)q(e)i (generated)g(for)e(eac)o(h)h(prop)q(osed)1017 1934 y(construct,)22 b(or)e(form)e(of)h(a)h(construct,)j(w)o(as)d(considered)1017 1984 y(b)q(efore)d(that)g(construct)i(w)o(as)d(included)h(in,)g(or)g (excluded)1017 2034 y(from,)c(the)i(language.)20 b(Th)o(us)c(the)f(c)o (haracteristics)i(of)d(the)1017 2084 y(target)i(mac)o(hine)e(p)q(erv)n(ade)i (the)g(language)f(in)g(b)q(oth)h(o)o(v)o(ert)1017 2134 y(and)c(subtle)g(w)o (a)o(ys.)17 b(This)c(is)f(not)g(to)g(sa)o(y)g(that)g Fs(bliss)g Ft(could)1017 2183 y(not)k(b)q(e)h(implem)o(en)o(ted)e(for)g(another)i(mac)o (hine;)f(it)g(could.)1017 2233 y(It)f(do)q(es)h(sa)o(y)f(that)h Fs(bliss)f Ft(is)g(particularly)g(w)o(ell)f(suited)i(to)1017 2283 y(implem)o(en)o(tation)i(on)j(the)h Fs(pdp-10)f Ft(and)g(that)g(it)g (could)1017 2333 y(probably)13 b(not)h(b)q(e)g(as)g(e\016cien)o(tly)g (implemen)o(ted)d(on)j(most)1017 2383 y(other)20 b(mac)o(hines.)35 b(W)m(e)20 b(think)g(of)f Fs(bliss)h Ft(as)g(a)g(mem)o(b)q(er)1017 2433 y(\(the)h(only)g(one)g(at)g(presen)o(t\))i(of)e(a)f(class)i(of)f (languages)1017 2482 y(that)g(are)h(similar)d(in)i(philosoph)o(y)f(and)i (that)f(mirror)f(a)1017 2532 y(similar)8 b(concern)13 b(for)e(the)h(imp)q (ortan)o(t)d(asp)q(ects)k(of)e(systems)1017 2582 y(programmi)o(ng,)f(but)k (where)g(eac)o(h)g(is)g(tailored)f(to)g(its)h(host)1017 2632 y(mac)o(hine.)965 2770 y(2)p eop %%Page: 3 3 bop 50 42 a Ft(As)25 b(another)h(example)e(of)g(the)i(incompatibili)o(t)o(y)c (of)0 91 y(these)f(goals,)f(consider)h(the)f(requiremen)o(t)g(for)f(minim)o (al)0 141 y(run-time)10 b(supp)q(ort)j(and)e(the)h(use)h(of)e(the)h(implemen) o(tatio)o(n)0 191 y(language)k(as)i(a)f(design)g(to)q(ol.)28 b(In)17 b(some)f(sense)j(a)e(design)0 241 y(to)q(ol)k(should)h(b)q(e)h(at)f (a)g(higher)g(lev)o(el)g(than)g(the)h(ob)r(ject)0 291 y(b)q(eing)15 b(designed|that)g(is,)g(the)g(to)q(ol)g(should)f(reliev)o(e)i(the)0 340 y(designer)23 b(from)e(concern)i(o)o(v)o(er)g(whic)o(hev)o(er)g(details)f (the)0 390 y(designer)16 b(deems)g(appropriate)f(only)g(for)g(later)h (consider-)0 440 y(ation.)24 b(An)o(y)17 b(language)e(reliev)o(es)i(its)f (user)h(from)e(concern)0 490 y(o)o(v)o(er)20 b(certain)g(details;)i(ev)o(en)e (assem)o(bly)f(language)f(frees)0 540 y(the)i(co)q(der)h(from)d(the)i(need)h (to)e(mak)o(e)f(sp)q(eci\014c)j(address)0 589 y(assignmen)o(ts.)51 b(Assem)o(bly)25 b(language)f(is)h(not)g(a)g(go)q(o)q(d)0 639 y(design)16 b(to)q(ol,)f(ho)o(w)o(ev)o(er,)h(precisely)h(b)q(ecause)g(the)g (class)f(of)0 689 y(suc)o(h)22 b(facilities)f(is)g(small;)i(a)f(higher-lev)o (el)f(language)g(is)0 739 y(b)q(etter)16 b(b)q(ecause)h(the)e(class)g(is)g (larger.)20 b(There)c(is)f(a)f(p)q(oin)o(t,)0 789 y(ho)o(w)o(ev)o(er,)i(b)q (ey)o(ond)g(whic)o(h)g(broadening)f(the)i(class)f(of)f(de-)0 839 y(tails)23 b(whic)o(h)h(are)g(handled)g(automatically)c(in)o(tro)q(duces) 0 888 y(substan)o(tial)11 b(costs)i(in)f(run-time)e(e\016ciency)j(and)f (requisite)0 938 y(run-time)h(supp)q(ort.)18 b(The)c(design)g(of)f Fs(bliss)h Ft(w)o(alks)f(a)g(v)o(ery)0 988 y(\014ne)i(line)e(b)q(et)o(w)o (een)j(generalit)o(y)m(,)d(e\016ciency)m(,)h(and)g(minim)o(al)0 1038 y(run-time)i(supp)q(ort.)30 b(In)17 b(fact,)h Fs(bliss)f Ft(programs)g(require)0 1088 y Fr(no)g Ft(run-time)c(supp)q(ort)h(routines.)0 1187 y Fu(Description)20 b(of)e(BLISS)0 1287 y Fs(bliss)j Ft(ma)o(y)e(b)q(e)j (c)o(haracterized)h(as)e(an)g(\\)p Fs(algol)p Ft(-PL/1")0 1337 y(deriv)n(ativ)o(e)i(in)g(the)h(sense)h(that)f(it)f(has)g(a)g(similar)e(ex-)0 1386 y(pression)26 b(format)d(and)j(op)q(erator)f(hierarc)o(h)o(y)m(,)j(a)d (blo)q(c)o(k)0 1436 y(structure)17 b(with)e(lexically)e(and)i(dynamically)d (lo)q(cal)i(v)n(ari-)0 1486 y(ables,)24 b(similar)c(conditional)g(and)i(lo)q (oping)f(constructs,)0 1536 y(and)16 b(\(p)q(oten)o(tially\))f(recursiv)o(e)j (pro)q(cedures.)28 b(As)16 b(ma)o(y)f(b)q(e)0 1586 y(seen)22 b(from)c(the)j(t)o(w)o(o)f(simple)f(examples)h(sho)o(wn)g(b)q(elo)o(w,)0 1636 y(the)h(general)f(format)e(of)i Fs(bliss)g Ft(co)q(de)h(is)e(quite)i Fs(algol)p Ft(-)0 1685 y(lik)o(e;)h(ho)o(w)o(ev)o(er,)g(the)e(similarit)o(y)d (stops)k(shortly)f(b)q(ey)o(ond)0 1735 y(this)14 b(glib)f(comparison.)50 1814 y Fl(function)f Fk(f)t(actor)q(ial)q Fj(\()p Fk(n)p Fj(\))f(=)94 1860 y Fl(if)j(.)p Fk(n)d Fi(\024)f Fj(1)15 b Fl(then)f Fj(1)h Fl(else)g(.)p Fk(n)9 b Fi(\003)g Fk(f)t(actor)q(ial)q Fj(\()p Fk(:n)f Fi(\000)h Fj(1\))p Fl(;)50 1905 y(function)j Fk(QQ)j(sear)q(ch)g Fj(\()p Fk(K)s Fj(\))f Fl(=)94 1951 y(b)q(egin)g(register)i Fk(R)p Fl(,)p Fk(Q)p Fl(,)p Fk(A)p Fl(,)p Fk(E)r Fl(;)94 1997 y Fk(E)d Fi( )e Fk(R)g Fi( )g Fk(:K)q(=:n)p Fl(;)j Fk(Q)d Fi( )g Fk(:K)17 b(mod)d(:n)p Fl(;)94 2042 y Fk(A)c Fi( )i Fk(:const)p Fl(;)94 2088 y(do)i(if)g Fk(:S)r(T)5 b Fj([)p Fk(:R)p Fj(])11 b(=)f Fk(:K)153 2134 y Fl(then)k(return)h Fk(:R)153 2179 y Fl(else)g(\()p Fk(R)c Fi( )g Fk(:R)e Fj(+)f Fk(:A)p Fl(;)15 b Fk(A)10 b Fi( )h Fk(:A)f Fi( )h Fk(:Q)p Fl(\))94 2225 y(un)o(til)h Fk(:R)f Fj(=)g Fk(:E)94 2271 y Fl(end;)0 2354 y Ft(The)16 b(\014rst)h(of)e (these)i(examples)e(is)h(the)g(familar)d(recursiv)o(e)0 2403 y(de\014nition)28 b(of)f(factorial.)59 b(The)29 b(second)g(example)e(is)0 2453 y(the)18 b(\\quadratic)f(quotien)o(t")g(hash)g(searc)o(h)i(describ)q(ed) g(b)o(y)0 2503 y(J.)14 b(Bell)f([9].)50 2553 y(W)m(e)e(no)o(w)h(describ)q(e)i (the)e(features)h(of)f Fs(bliss)g Ft(in)f(terms)h(of)0 2603 y(its)19 b(ma)r(jor)d(asp)q(ects|\(1\))k(the)g(underlying)e(storage,)h(\(2\)) 1017 42 y(con)o(trol,)12 b(and)g(\(3\))h(data)g(structures;)i(\014nally)m(,)c (w)o(e)i(men)o(tion)1017 91 y(some)g(other)h(miscellaneous)f(features.)1017 191 y Fu(1.)24 b(Sto)n(rage)1017 241 y Ft(A)19 b Fs(bliss)g Ft(program)e(op)q(erates)k(with)e(and)g(on)g(a)g(n)o(um)o(b)q(er)1017 291 y(of)c(storage)i(\\segmen)o(ts.")25 b(A)17 b(storage)g(segmen)o(t)f (consists)1017 340 y(of)k(a)h(\014xed)g(and)g(\014nite)h(n)o(um)o(b)q(er)e (of)h(\\w)o(ords,")h(eac)o(h)g(of)1017 390 y(whic)o(h)16 b(is)h(comp)q(osed)g (of)g(a)f(\014xed)i(and)f(\014nite)g(n)o(um)o(b)q(er)g(of)1017 440 y(\\bits")22 b(\(36)g(for)g(the)h Fs(pdp-10)p Ft(\).)44 b(An)o(y)23 b(con)o(tiguous)f(set)1017 490 y(of)d(bits)h(within)g(a)g(w)o (ord)g(is)g(called)g(a)g(\\\014eld.")37 b(A)20 b(\014eld)1017 540 y(ma)o(y)g(b)q(e)k(\\named";)g(the)g(v)n(alue)e(of)g(a)g(name)g(is)g (called)1017 589 y(a)c(\\p)q(oin)o(ter")h(to)g(that)g(\014eld.)33 b(In)19 b(particular,)h(an)e(en)o(tire)1017 639 y(w)o(ord)g(is)h(a)f(\014eld) h(and)f(ma)o(y)f(b)q(e)i(named.)32 b(In)18 b(practice)i(a)1017 689 y(segmen)o(t)14 b(generally)h(con)o(tains)g(either)g(program)f(or)h (data,)1017 739 y(and)20 b(if)g(the)h(latter,)h(it)f(is)f(generally)h(in)o (teger)g(n)o(um)o(b)q(ers,)1017 789 y(\015oating-p)q(oin)o(t)e(n)o(um)o(b)q (ers,)j(c)o(haracters,)i(or)d(p)q(oin)o(ters)h(to)1017 839 y(other)29 b(data.)61 b(T)m(o)28 b(a)h Fs(bliss)f Ft(program,)i(ho)o(w)o(ev)o (er,)i(a)1017 888 y(\014eld)23 b(merely)f(con)o(tains)h(a)g(pattern)h(of)e (bits.)46 b(V)m(arious)1017 938 y(op)q(erations)11 b(ma)o(y)d(b)q(e)k (applied)e(to)h(\014elds)g(and)g(bit)f(patterns,)1017 988 y(suc)o(h)17 b(as)g(fetc)o(hing)f(a)h(bit)f(pattern)i(\(v)n(alue\))e(from)f(a)h(\014eld,) 1017 1038 y(storing)c(a)h(bit)f(pattern)i(in)o(to)e(a)h(\014eld,)f(in)o (teger)i(arithmetic,)1017 1088 y(comparison,)19 b(Bo)q(olean)h(op)q (erations,)h(and)f(so)g(on.)37 b(The)1017 1137 y(in)o(terpretation)16 b(placed)f(up)q(on)h(a)f(particular)h(bit)f(pattern)1017 1187 y(and)c(the)h(consequen)o(t)h(transformation)d(p)q(erformed)h(b)o(y)g(an)1017 1237 y(op)q(erator)f(is)f(an)g(in)o(trinsic)g(prop)q(ert)o(y)i(of)e(that)g (op)q(erator)h(and)1017 1287 y(not)f(of)g(its)h(op)q(erands.)18 b(That)10 b(is)f(to)h(sa)o(y)m(,)f(there)j(is)d(no)h(\\t)o(yp)q(e")1017 1337 y(di\013eren)o(tiation)j(as)h(in)g Fs(algol)p Ft(.)1066 1386 y(Segmen)o(ts)21 b(are)g(in)o(tro)q(duced)h(in)o(to)e(a)h Fs(bliss)g Ft(program)1017 1436 y(b)o(y)11 b(declarations,)h(called)g(\\allo) q(cation)e(declarations,")i(for)1017 1486 y(example:)1066 1565 y Fl(global)i Fk(g)q Fl(;)1066 1611 y(o)o(wn)g Fk(x)p Fl(,)h Fk(y)q Fj([5])p Fl(,)g Fk(z)r Fl(;)1066 1656 y(lo)q(cal)f Fk(p)p Fj([100])p Fl(;)1066 1702 y(register)i Fk(r)q Fj(1)p Fl(,)g Fk(r)q Fj(2[3])p Fl(;)1066 1748 y(function)c Fk(f)t Fj(\()p Fk(a;)7 b(b)p Fj(\))k(=)f Fk(:a)h Fi(")g Fk(:b)p Fl(;)1017 1831 y Ft(Eac)o(h)18 b(of)f(these)i(declarations)f(in)o(tro)q(duces)h(one)f (or)g(more)1017 1880 y(segmen)o(ts)9 b(and)g(binds)g(the)h(iden)o(ti\014ers)h (men)o(tioned)d(\(e.g.)16 b Fh(g)q Ft(,)1017 1930 y Fh(x)p Ft(,)c Fh(y)q Ft(\))i(to)f(the)g(name)f(of)g(the)i(\014rst)f(w)o(ord)g(of)g (the)g(asso)q(ciated)1017 1980 y(segmen)o(t.)18 b(\(The)d Fg(function)c Ft(declaration)j(also)f(initializes)1017 2030 y(the)19 b(segmen)o(t)f(named)g Fh(f)23 b Ft(to)c(the)g(appropriate)g(mac)o(hine)1017 2080 y(co)q(de.\))1066 2130 y(The)i(segmen)o(ts)g(in)o(tro)q(duced)g(b)o(y)f (these)i(declarations)1017 2179 y(con)o(tain)h(one)g(or)h(more)e(w)o(ords,)k (where)f(the)f(size)g(ma)o(y)1017 2229 y(b)q(e)19 b(sp)q(eci\014ed)h(\(as)f (in)f Fg(lo)q(cal)j Fh(p)p Ft([100]\),)c(defaulted)i(to)g(one)1017 2279 y(\(as)e(in)g Fg(global)h Fh(g)q Fg(;)p Ft(\),)g(or)f(defaulted)h(to)f (whatev)o(er)h(length)1017 2329 y(is)i(necessary)i(for)e(initialization)d (\(as)j(in)g(the)h Fg(function)1017 2379 y Ft(declaration\).)e(The)c(iden)o (ti\014ers)g(in)o(tro)q(duced)g(b)o(y)g(a)f(decla-)1017 2428 y(ration)i(are)h(lexically)e(lo)q(cal)h(to)h(the)g(blo)q(c)o(k)f(in)h(whic)o (h)f(the)1017 2478 y(declaration)j(is)h(made)e(\(that)i(is,)h(they)f(ob)q(ey) g(the)g(usual)1017 2528 y Fs(algol)h Ft(scop)q(e)i(rules\),)g(with)d(one)h (exception|namely)m(,)1017 2578 y Fg(global)13 b Ft(iden)o(ti\014ers)j(are)g (made)f(a)o(v)n(ailable)e(to)i(other,)h(sep-)1017 2628 y(arately)23 b(compiled)f(mo)q(dules.)45 b(Segmen)o(ts)23 b(created)i(b)o(y)965 2770 y(3)p eop %%Page: 4 4 bop 0 42 a Fg(o)o(wn)p Ft(,)10 b Fg(global)p Ft(,)e(and)i Fg(function)d Ft(declarations)j(are)g(created)0 91 y(only)k(once)h(and)f(are)h(preserv)o (ed)h(for)e(the)h(duration)f(of)g(the)0 141 y(execution)h(of)e(a)h(program.)i (Segmen)o(ts)e(created)i(b)o(y)d Fg(lo)q(cal)0 191 y Ft(and)f Fg(register)e Ft(declarations)i(are)g(created)i(at)e(the)g(time)f(of)0 241 y(blo)q(c)o(k)j(en)o(try)g(and)g(are)g(preserv)o(ed)i(only)d(for)g(the)i (duration)0 291 y(of)i(the)i(execution)f(of)g(that)g(blo)q(c)o(k.)29 b(The)19 b Fg(register)c Ft(seg-)0 340 y(men)o(ts)g(di\013er)g(from)f Fg(lo)q(cal)g Ft(segmen)o(ts)h(only)g(in)g(that)g(they)0 390 y(are)e(allo)q(cated)f(from)e(the)j(mac)o(hine's)e(arra)o(y)h(of)f(16)h (general)0 440 y(purp)q(ose)18 b(\(fast\))f(registers.)28 b(Reen)o(try)17 b(of)f(a)g(blo)q(c)o(k)h(b)q(efore)0 490 y(it)12 b(is)f(exited)i(\(b)o(y)f (recursiv)o(e)h(function)f(calls,)f(for)h(example\))0 540 y(b)q(eha)o(v)o(es) 20 b(as)e(in)h Fs(algol)p Ft(,)h(that)f(is,)g Fg(lo)q(cal)f Ft(and)h Fg(register)0 589 y Ft(segmen)o(ts)c(are)g(dynamically)e(lo)q(cal)h (to)h(eac)o(h)g(incarnation)0 639 y(of)e(the)i(blo)q(c)o(k.)50 689 y(It)25 b(is)g(imp)q(ortan)o(t)e(to)i(notice)g(from)e(the)j(discussion)0 739 y(ab)q(o)o(v)o(e)15 b(that)g(iden)o(ti\014ers)h(are)g(b)q(ound)f(to)g (names)f(b)o(y)h(these)0 789 y(declarations,)25 b(and)e(that)h(the)f(v)n (alue)g(of)g(a)g(name)f(is)h(a)0 839 y(p)q(oin)o(ter.)58 b(Th)o(us)27 b(the)h(v)n(alue)f(of)f(an)h(instance)h(of)f(an)0 888 y(iden)o(ti\014er,)32 b(sa)o(y)c Fh(x)p Ft(,)i(is)e Fr(not)33 b Ft(the)c(v)n(alue)e(of)h(the)g (\014eld)0 938 y(named)20 b(b)o(y)h Fh(x)p Ft(,)h(but)f(rather)h(is)f(a)f(p)q (oin)o(ter)i(to)e Fh(x)p Ft(.)40 b(This)0 988 y(in)o(terpretation)16 b(requires)g(a)f(\\con)o(ten)o(ts)h(of")f(op)q(erator)h(for)0 1038 y(whic)o(h)27 b(the)h(sym)o(b)q(ol)d(\\.")h(has)h(b)q(een)h(c)o(hosen.) 58 b(T)m(o)27 b(a)0 1088 y(programmer)14 b(who)j(is)g(used)g(to)g(the)g(con)o (text-dep)q(enden)o(t)0 1137 y(in)o(terpretation)j(of)e(iden)o(ti\014ers,)j (it)e(ma)o(y)e(seem)j(that)f(the)0 1187 y(notations)13 b Fh(x)g Ft(and)g Fh(:x)f Ft(for)h(a)g(p)q(oin)o(ter)h(to)f(a)g(\014eld)g(and)g(v)n (alue)0 1237 y(of)i(that)g(\014eld,)h(resp)q(ectiv)o(ely)m(,)g(migh)o(t)d(b)q (etter)k(b)q(e)f(replaced)0 1287 y(b)o(y)11 b(@)p Fh(x)g Ft(and)g Fh(x)p Ft(.)17 b(Ho)o(w)o(ev)o(er,)12 b(a)f(little)g(comparison)f(will)f(so)q (on)0 1337 y(sho)o(w)14 b(that)g(the)g(dot)g(notation)f(is)h(to)g(b)q(e)g (preferred.)50 1386 y(First,)g(\\.")g(has)h(a)f(unique)h(in)o(terpretation)g (as)f(a)g(unary)0 1436 y(op)q(erator)20 b(meaning:)27 b(\\tak)o(e)19 b(the)h(con)o(ten)o(ts)g(of)f(the)g(\014eld)0 1486 y(p)q(oin)o(ted)c(at)h(b)o (y)f Fh(x)p Ft(.")22 b(@)p Fh(x)15 b Ft(cannot)g(b)q(e)h(in)o(terpreted)h(as) f(the)0 1536 y(in)o(v)o(erse)d(of)f(\\.)p Fh(x)p Ft(",)f(since)i(the)g(dot)g (function)f(do)q(es)h(not)g(ha)o(v)o(e)0 1586 y(a)f(unique)h(in)o(v)o(erse)g (\(there)h(ma)o(y)d(b)q(e)i(man)o(y)e(lo)q(cations)h(with)0 1636 y(the)18 b(same)e(v)n(alue)h(as)g(that)g(of)g Fh(x)p Ft(\).)28 b(If)16 b(the)i(o)q(ccurrence)i(of)0 1685 y Fh(x)g Ft(is)g(in)o(terpreted)i (as)f(\\compute)f(the)h(\014eld)f(p)q(oin)o(ted)h(at)0 1735 y(b)o(y)f Fh(x)h Ft(and)f(tak)o(e)h(its)f(con)o(ten)o(ts,")j(one)e(could)f (attac)o(h)h(to)0 1785 y(@)p Fh(x)15 b Ft(the)g(meaning:)i(\\p)q(erform)d (the)h(op)q(eration)g(describ)q(ed)0 1835 y(ab)q(o)o(v)o(e,)d(but)h(suppress) i(the)e(extraction)g(of)f(the)h(con)o(ten)o(ts.")0 1885 y(But)j(\\@")f(could) g(still)f(not)h(b)q(e)h(used)g(as)f(unary)g(op)q(erator,)0 1934 y(since)g(@\()p Fh(x)10 b Ft(+)g Fh(y)q Ft(\))16 b(or)e(ev)o(en)h(@@)p Fh(x)g Ft(w)o(ould)f(b)q(e)h(meaningless,)0 1984 y(whereas)g Fh(:)p Ft(\()p Fh(x)9 b Ft(+)g Fh(y)q Ft(\))15 b(and)f Fh(::x)e Ft(b)q(oth)i(mak)o(e)f(sense.)50 2034 y(Second,)20 b(one)e(of)g(the)h(ma)r (jor)e(ob)r(jectiv)o(es)i(of)f Fs(bliss)h Ft(is)0 2084 y(to)e(p)q(ermit)f (the)i(programmer)c(to)j(de\014ne)h(arbitrary)f(rep-)0 2134 y(resen)o(tations)e(of)e(data)g(structures)j(\(as)e(will)e(b)q(e)j(discussed) 0 2183 y(later\).)32 b(In)19 b(order)g(to)f(accomplish)f(this)i(it)f(is)g (necessary)0 2233 y(to)g(not)g(only)f(allo)o(w)g(op)q(erations)h(on)g(p)q (oin)o(ters,)h(but)f(also)0 2283 y(to)e(allo)o(w)f(the)i(v)n(alue)e(of)h(an)g (arbitrary)g(expression)i(to)e(b)q(e)0 2333 y(in)o(terpreted)23 b(as)e(a)f(p)q(oin)o(ter,)j(i.e.,)e(a)f(name.)38 b(Since)22 b(the)0 2383 y(seman)o(tic)12 b(in)o(terpretation)i(of)e(iden)o(ti\014ers)i (is)f(indep)q(enden)o(t)0 2433 y(of)f(con)o(text,)g(and)g(consequen)o(tly)h (so)g(is)f(that)g(of)f(all)g(expres-)0 2482 y(sions,)g(it)f(is)g(p)q(ossible) h(to)g(do)f(this)h(in)f(a)g(consisten)o(t)i(manner.)0 2532 y(A)g(consisten)o(t)i(in)o(terpretation)e(is)g(m)o(uc)o(h)f(more)g (di\016cult)h(in)0 2582 y(the)h(case)h(of)e(con)o(text-dep)q(enden)o(t)j(in)o (terpretations)e(\(since)0 2632 y(static)20 b(con)o(text)g(is)f(inadequate)g (in)g(expressions)i(in)o(v)o(olv-)1017 42 y(ing)c(function)h(calls,)h(for)f (example\).)31 b(The)19 b(authors)g(feel)1017 91 y(strongly)h(that)g(this)h (con)o(text-indep)q(enden)o(t)h(in)o(terpreta-)1017 141 y(tion)17 b(of)h(iden)o(ti\014ers)h(simpli\014es)e(systems)h(programming)o(.)1017 191 y(Exp)q(erience)c(in)f(using)f(the)i(language)d(for)i(non)o(trivial)e (pro-)1017 241 y(gramm)o(ing)g(tasks)j(supp)q(orts)h(this)f(p)q(oin)o(t)f(of) h(view.)1066 291 y(There)19 b(are)f(t)o(w)o(o)f(additional)e(declarations)j (whose)g(ef-)1017 340 y(fect)h(is)g(to)g(bind)g(iden)o(ti\014ers)h(to)f (names,)g(but)g(whic)o(h)g(do)1017 390 y(not)13 b(create)j(segmen)o(ts;)d (examples)g(are:)1066 469 y Fl(external)j Fk(s)p Fl(;)1066 515 y(bind)d Fk(y)q Fj(2)e(=)g Fk(y)e Fj(+)g(2)p Fl(,)15 b Fk(pa)c Fj(=)g Fk(p)e Fj(+)f Fk(:a)p Fl(;)1017 598 y Ft(An)h Fr(external)14 b Ft(declaration)9 b(binds)h(one)g(or)g(more)e(iden)o (ti\014ers)1017 648 y(to)23 b(the)i(names)e(represen)o(ted)j(b)o(y)e(the)h (same)e(iden)o(ti\014er)1017 697 y(declared)j Fg(global)d Ft(in)i(another,)k (separately)d(compiled)1017 747 y(mo)q(dule.)i(The)19 b Fg(bind)c Ft(declaration)j(binds)g(one)g(or)g(more)1017 797 y(iden)o(ti\014ers)k(to)f (the)i(v)n(alue)e(of)g(an)g(expression)i(at)e(blo)q(c)o(k)1017 847 y(en)o(try)f(time.)33 b(A)o(t)19 b(least)h(p)q(oten)o(tially)e(the)i(v)n (alue)f(of)g(this)1017 897 y(expression)13 b(ma)o(y)d(not)i(b)q(e)h (calculable)f(un)o(til)f(run)i(time|as)1017 946 y(in)e(\\)p Fh(pa)g Ft(=)h Fh(p)5 b Ft(+)g Fh(:a)p Ft(")k(ab)q(o)o(v)o(e.)17 b(Examples)11 b(of)g(the)h(use)g(of)f Fg(bind)1017 996 y Ft(will)h(b)q(e)i (found)g(in)f(subsequen)o(t)j(sections.)1017 1096 y Fu(2.)24 b(Control)1017 1146 y Fs(bliss)d Ft(is)h(an)f(\\expression)i(language,")f (that)g(is,)h(ev)o(ery)1017 1196 y(executable)c(construct,)i(including)d (those)h(whic)o(h)f(mani-)1017 1245 y(fest)c(con)o(trol,)f(is)h(an)g (expression)h(and)f(computes)f(a)h(v)n(alue.)1017 1295 y(There)25 b(are)f(no)g(statemen)o(ts)h(in)f(the)g(sense)i(of)e Fs(algol)1017 1345 y Ft(or)c(PL/1.)37 b(Expressions)22 b(ma)o(y)c(b)q(e)j(concatenated)h (with)1017 1395 y(semicolons)e(to)i(form)f(comp)q(ound)g(expressions,)k (where)1017 1445 y(the)11 b(v)n(alue)f(of)g(a)h(comp)q(ound)f(expression)i (is)e(that)h(of)f(its)h(last)1017 1494 y(comp)q(onen)o(t)18 b(expression.)35 b(Th)o(us)19 b(\\;")i(ma)o(y)c(b)q(e)j(though)o(t)1017 1544 y(of)15 b(as)i(a)e(dy)o(adic)h(op)q(erator)h(whose)g(v)n(alue)f(is)g (simply)e(that)1017 1594 y(of)j(its)i(righ)o(t-hand)e(op)q(erand.)33 b(Comp)q(ound)16 b(expressions)1017 1644 y(ha)o(v)o(e)f(a)h(similar)d(app)q (earance)k(and)e(function)h(as)g(a)f(list)h(of)1017 1694 y(statemen)o(ts)i (in)f Fs(algol)p Ft(.)31 b(The)18 b(pair)f(of)g(sym)o(b)q(ols)g Fg(b)q(egin)1017 1743 y Ft(and)9 b Fg(end)g Ft(or)g(left)h(and)f(righ)o(t)h (paren)o(theses)h(ma)o(y)d(b)q(e)j(used)f(to)1017 1793 y(em)o(brace)h(suc)o (h)i(a)e(comp)q(ound)g(expression)i(and)f(con)o(v)o(ert)g(it)1017 1843 y(in)o(to)f(a)g(simple)f(expression.)19 b(A)11 b(blo)q(c)o(k)h(is)f (merely)g(a)h(sp)q(ecial)1017 1893 y(case)k(of)g(this)g(construction)h(whic)o (h)f(happ)q(ens)h(to)e(con)o(tain)1017 1943 y(declarations;)f(th)o(us)h(the)h (v)n(alue)e(of)g(a)g(blo)q(c)o(k)h(is)f(de\014ned)i(to)1017 1993 y(b)q(e)11 b(the)g(v)n(alue)f(of)g(its)h(constituen)o(t)h(comp)q(ound)d (expression.)1066 2042 y(The)22 b(op)q(erator)g(\\)p Fm( )p Ft(")f(is)g(a)h(dy)o(adic)f(op)q(erator)h(whic)o(h)1017 2092 y(should)15 b(b)q(e)h(read)g(as)f(\\store)h(in)o(to.")22 b(More)16 b(precisely)m(,)f(the)1017 2142 y(expression)21 b(\\)p Fh(\017)1261 2148 y Ff(1)1300 2142 y Fm( )g Fh(\017)1380 2148 y Ff(2)1399 2142 y Ft(")e(means:)29 b(the)21 b(\(unin)o(terpreted\))1017 2192 y(bit)j(pattern)i(resulting)e(from)f(the)j(ev)n(aluation)d(of)h(the)1017 2242 y(expression)13 b Fh(\017)1232 2248 y Ff(2)1263 2242 y Ft(is)g(to)f(b)q(e)h(stored)h(in)o(to)e(the)h(\014eld)g(named)e(b)o(y)1017 2291 y(the)17 b(p)q(oin)o(ter)g(resulting)g(from)d(the)k(ev)n(aluation)d(of)h Fh(\017)1855 2297 y Ff(1)1874 2291 y Ft(.)26 b(In)1017 2341 y Fs(algol)14 b Ft(the)g(statemen)o(t)f Fh(x)f Ft(:=)f Fh(x)d Ft(+)h(1)k(causes)i(the)f(v)n(alue)f(of)1017 2391 y Fh(x)e Ft(to)h(b)q(e)g(incremen)o(ted)g(b)o(y)g(one.)17 b(Coupling)11 b(the)h(de\014nition)1017 2441 y(of)27 b(\\)p Fm( )p Ft(")g(giv)o(en)h(ab)q (o)o(v)o(e)g(with)f(the)i(in)o(terpretation)g(of)1017 2491 y(iden)o(ti\014ers)10 b(and)g(the)h(dot)e(op)q(erator,)i(the)g(equiv)n(alen)o (t)e Fs(bliss)1017 2540 y Ft(w)o(ould)14 b(b)q(e)i Fh(x)e Fm( )f Fh(:x)c Ft(+)i(1.)22 b(The)16 b(v)n(alue)e(of)h(the)h(assignmen)o(t)1017 2590 y(op)q(erator)10 b(is)g(de\014ned)h(to)f(b)q(e)g(iden)o(tical)f(to)h (that)g(of)g(its)g(righ)o(t-)1017 2640 y(hand)21 b(op)q(erand;)k(th)o(us,)e (the)f(v)n(alue)e(of)h Fh(x)j Fm( )f Fh(:x)14 b Ft(+)g(1)21 b(is)965 2770 y(4)p eop %%Page: 5 5 bop 0 42 a Ft(the)16 b(incremen)o(ted)f(v)n(alue)f(of)g(the)i(cell)f(named)e (b)o(y)i Fh(x)p Ft(.)21 b(The)0 91 y(comp)q(ound)12 b(expression)i(\\\()p Fh(y)f Fm( )e Fh(x)p Ft(;)i Fh(z)g Fm( )f Fh(::y)c Ft(+)f(1\)")13 b(causes)0 141 y(a)e(p)q(oin)o(ter)g(to)f Fh(x)h Ft(to)f(b)q(e)i(stored)g(in) o(to)e Fh(y)q Ft(,)i(then)f(computes)g(the)0 191 y(v)n(alue)18 b(of)g(the)h(\014eld)f(named)f(b)o(y)i Fh(x)f Ft(\(accessed)j(indirectly)0 241 y(through)d Fh(y)q Ft(\))h(plus)f(one)h(and)e(stores)j(this)e(v)n(alue)f (in)h Fh(z)r Ft(;)i(in)0 291 y(this)g(case)h(this)f(v)n(alue)f(is)h(also)g (that)g(of)f(the)i(comp)q(ound)0 340 y(expression.)d(The)10 b(imp)q(ortan)o(t)e(thing)h(to)h(remem)o(b)q(er)f(ab)q(out)0 390 y(the)20 b(assignmen)o(t)d(op)q(eration,)j(e.g.)e Fh(\017)597 396 y Ff(1)635 390 y Fm( )i Fh(\017)714 396 y Ff(2)732 390 y Ft(,)g(is)f(that)g(it)0 440 y(assigns)11 b(a)f(v)n(alue)g(to)h(the)g (\014eld)g Fr(name)n(d)16 b Ft(b)o(y)10 b Fh(\017)677 446 y Ff(1)696 440 y Ft(,)g(not)h Fh(\017)806 446 y Ff(1)835 440 y Ft(itself.)50 490 y(There)26 b(is)e(the)h(usual)g(complemen)o(t)d(of)i (arithmetic,)0 540 y(logical,)14 b(and)i(relational)e(op)q(erators.)25 b(Logical)15 b(op)q(erators)0 589 y(op)q(erate)21 b(on)e(all)g(bits)h(of)f(a) h(\014eld;)i(relational)d(op)q(erators)0 639 y(yield)i(a)h(v)n(alue)f(1)g(if) g(the)h(relation)g(is)f(satis\014ed,)j(and)e(0)0 689 y(otherwise.)50 739 y(W)m(e)14 b(will)g(describ)q(e)i(six)f(forms)e(of)h(explicit)h(con)o (trol)f(ex-)0 789 y(pressions:)19 b(conditional,)10 b(lo)q(oping,)h (case-select,)k(function)0 839 y(call,)9 b(coroutine)h(call,)g(and)f(escap)q (e.)19 b(F)m(or)9 b(this)h(discussion)g(it)0 888 y(will)f(b)q(e)j(con)o(v)o (enien)o(t)f(to)f(use)i(the)f(sym)o(b)q(ols)e Fh(\017)i Ft(or)g Fh(e)p Ft(,)g(p)q(ossibly)0 938 y(subscripted,)k(to)f(represen)o(t)i (arbitrary)e(expressions.)50 988 y(The)k(conditional)d(expression)k(is)e(of)g (the)h(form)d(\\)p Fg(if)h Fh(\017)915 994 y Ff(1)0 1038 y Fg(then)9 b Fh(\017)121 1044 y Ff(2)149 1038 y Fg(else)g Fh(\017)252 1044 y Ff(3)271 1038 y Ft(")h(and)g(is)g(de\014ned)h(to)f(ev)n(aluate,)h(and) f(ha)o(v)o(e)0 1088 y(the)j(v)n(alue)e(of,)h Fh(\017)250 1094 y Ff(2)280 1088 y Ft(just)h(in)e(case)i(the)g(righ)o(tmost)e(bit)g(of)h Fh(\017)875 1094 y Ff(1)906 1088 y Ft(is)0 1137 y(a)e(1)h(and)f(ev)n (aluates,)h(and)g(has)f(the)i(v)n(alue)e(of,)g Fh(\017)722 1143 y Ff(3)751 1137 y Ft(otherwise.)0 1187 y(The)15 b(abbreviated)f(form)f (\\)p Fg(if)f Fh(\017)491 1193 y Ff(1)524 1187 y Fg(then)h Fh(\017)649 1193 y Ff(2)667 1187 y Ft(")h(is)g(considered)0 1237 y(to)g(b)q(e)g(iden)o(tical)f(to)h(\\)p Fg(if)f Fh(\017)405 1243 y Ff(1)437 1237 y Fg(then)f Fh(\017)561 1243 y Ff(2)594 1237 y Fg(else)g Ft(0".)50 1287 y(There)j(are)f(six)g(basic)g(forms)e(of)i (lo)q(oping)e(expressions:)50 1366 y Fl(while)h Fk(\017)182 1370 y Fe(1)213 1366 y Fl(do)i Fk(\017)50 1411 y Fl(do)f Fk(\017)h Fl(while)e Fk(\017)274 1415 y Fe(1)50 1457 y Fl(un)o(til)f Fk(\017)170 1461 y Fe(1)202 1457 y Fl(do)i Fk(\017)50 1503 y Fl(do)g Fk(\017)h Fl(un)o(til)d Fk(\017)262 1507 y Fe(1)50 1548 y Fl(incr)h Fi(h)p Fk(name)p Fi(i)i Fl(from)f Fk(\017)400 1552 y Fe(1)432 1548 y Fl(to)h Fk(\017)502 1552 y Fe(2)534 1548 y Fl(b)o(y)f Fk(\017)611 1552 y Fe(3)643 1548 y Fl(do)g Fk(\017)50 1594 y Fl(decr)g Fi(h)p Fk(name)p Fi(i)h Fl(from)f Fk(\017)408 1598 y Fe(1)440 1594 y Fl(to)h Fk(\017)510 1598 y Fe(2)542 1594 y Fl(b)o(y)f Fk(\017)619 1598 y Fe(3)651 1594 y Fl(do)g Fk(\017)0 1677 y Ft(Eac)o(h)21 b(form)e(of)h(lo)q(oping)g (expression)i(implies)d(rep)q(eated)0 1727 y(execution)k(\(p)q(ossibly)g (zero)g(times\))f(of)g(the)h(expression)0 1777 y(denoted)k Fh(\017)g Ft(un)o(til)e(a)h(sp)q(eci\014c)i(condition)e(is)g(satis\014ed.)0 1826 y(In)20 b(the)h(\014rst)g(form)d(\()p Fg(while...do)p Ft(\))h(the)i(expression)h Fh(\017)e Ft(is)0 1876 y(rep)q(eated)d(so)e(long)f (as)h(the)h(righ)o(tmost)d(bit)i(of)f Fh(\017)759 1882 y Ff(1)792 1876 y Ft(remains)0 1926 y(1.)35 b(The)20 b(second)h(form)c(is)j(similar)d (to)i(the)i(\014rst)f(except)0 1976 y(that)d Fh(\017)g Ft(is)g(ev)n(aluated)g (b)q(efore)g Fh(\017)505 1982 y Ff(1)524 1976 y Ft(,)g(th)o(us)h(guaran)o (teeing)f(at)0 2026 y(least)11 b(one)h(execution)g(of)f Fh(\017)p Ft(.)17 b(The)11 b Fg(un)o(til)d Ft(forms)i(are)i(similar)0 2076 y(to)23 b(the)g Fg(while)e Ft(forms)h(except)i(that)f(the)g(condition)g (is)0 2125 y(negated.)46 b(The)24 b(last)f(t)o(w)o(o)f(forms)g(are)h(similar) e(to)i(the)0 2175 y(familia)o(r)11 b(\\)p Fg(step...un)o(til)o Ft(")f(construct)16 b(of)c Fs(algol)p Ft(,)i(except:)0 2225 y(\(l\))23 b(the)h(con)o(trol)f(v)n(ariable)f(is)i(lo)q(cal)e(to)h Fh(\017)p Ft(;)28 b(\(2\))23 b Fh(\017)831 2231 y Ff(1)849 2225 y Ft(,)i Fh(\017)903 2231 y Ff(2)922 2225 y Ft(,)0 2275 y(and)14 b Fh(\017)98 2281 y Ff(3)130 2275 y Ft(are)g(computed)f(only)h(once) g(\(b)q(efore)h(en)o(try)f(to)g(the)0 2325 y(lo)q(op\);)g(and)h(\(3\))f(the)i (direction)f(of)f(the)h(step)h(is)e(explicitly)0 2374 y(indicated)21 b(\()p Fg(incr)p Ft(emen)o(t)e(or)h Fg(decr)p Ft(emen)o(t\).)38 b(Except)22 b(for)0 2424 y(the)14 b(p)q(ossibilit)o(y)f(of)g(an)h(escap)q(e)h (expression)g(within)e Fh(\017)h Ft(\(see)0 2474 y(b)q(elo)o(w\),)i(the)h(v)n (alue)f(of)f(a)h(lo)q(op)g(expression)h(is)f(uniformly)0 2524 y(tak)o(en)e(to)g(b)q(e)g Fm(\000)p Ft(1.)50 2574 y(W)m(e)9 b(shall)g(treat)h(somewhat)f(simpli\014ed)f(v)o(ersions)i(of)f(the)0 2623 y Fg(case)14 b Ft(and)g Fg(select)e Ft(expressions)k(here;)e(these)h (forms)e(are:)1066 42 y Fl(case)j Fk(e)f Fl(of)f(set)i Fk(\017)1329 46 y Fe(0)1345 42 y Fl(;)f Fk(\017)1388 46 y Fe(1)1420 42 y Fl(;)g Fk(:)6 b(:)g(:)15 b Fl(;)g Fk(\017)1550 46 y Fd(n)p Fc(\000)p Fe(1)1624 42 y Fl(;)g Fk(\017)1667 46 y Fd(n)1703 42 y Fl(tes)1066 87 y(select)g Fk(e)g Fl(of)1140 133 y(nset)g Fk(\017)1250 137 y Fe(0)1282 133 y Fl(:)20 b Fk(\017)1330 137 y Fe(1)1347 133 y Fl(;)15 b Fk(\017)1390 137 y Fe(2)1421 133 y Fl(:)20 b Fk(\017)1469 137 y Fe(3)1501 133 y Fl(;)15 b Fk(:)6 b(:)g(:)14 b Fl(;)h Fk(\017)1630 137 y Fe(2)p Fd(n)1681 133 y Fl(:)20 b Fk(\017)1729 137 y Fe(2)p Fd(n)p Fe(+1)1818 133 y Fl(tesn)1017 216 y Ft(The)e(v)n(alue)e(of)h(a)h Fg(case)f Ft(expression)i(is)f Fh(\017)1675 222 y Fb(e)1710 216 y Ft(;)h(that)e(is,)h (the)1017 266 y(expression)23 b Fh(e)g Ft(is)f(ev)n(aluated,)i(and)e(this)g (v)n(alue)g(is)g(used)1017 315 y(to)e(select)h(one)f(of)g(the)h(expressions,) i Fh(\017)1660 321 y Fb(i)1694 315 y Ft(\(0)e Fm(\024)i Fh(i)f Fm(\024)g Fh(n)p Ft(\),)1017 365 y(to)17 b(ev)n(aluate.)29 b(The)19 b(v)n(alue)e(of)g Fh(\017)1530 371 y Fb(i)1561 365 y Ft(b)q(ecomes)h(the)g(v)n(alue)g(of)1017 415 y(the)j(en)o(tire)h Fg(case)f Ft(expression.)40 b(The)22 b(v)n(alue)e(of)g(a)h Fg(case)1017 465 y Ft(expression)k(is)g(unde\014ned)h(if)d Fh(e)i Ft(is)g(not)f(in)g(the)i(range)1017 515 y(0)c Fm(\024)h Fh(e)g Fm(\024)g Fh(n)p Ft(.)38 b(The)21 b Fg(select)e Ft(expression)i(is)g (somewhat)1017 565 y(similar)12 b(to)i(the)i Fg(case)f Ft(expression,)g(with) g(the)g(distinction)1017 614 y(that)20 b(the)g(v)n(alue)g(of)f Fh(e)i Ft(is)f(not)g(restricted)i(to)e(the)h(range)1017 664 y(0)f Fm(\024)g Fh(e)h Fm(\024)f Fh(n)p Ft(.)34 b(Execution)20 b(of)e(the)i Fg(select)e Ft(pro)q(ceeds)j(as)1017 714 y(follo)o(ws:)14 b(\(l\))d(the)g(v)n(alue)f(of)h Fh(e)g Ft(is)f(computed;)h(\(2\))g(the)g(v)n (alues)1017 764 y(of)i(the)h(expressions)i Fh(\017)1369 770 y Ff(2)p Fb(i)1413 764 y Ft(\(0)c Fm(\024)f Fh(i)h Fm(\024)g Fh(n)p Ft(\))i(are)h(ev)n(aluated;)e(\(3\))1017 814 y(for)i(eac)o(h)i Fh(i)f Ft(suc)o(h)h(that)f Fh(e)f Ft(=)h Fh(\017)1495 820 y Ff(2)1513 814 y Ft(,)g(the)h(expression)g Fh(\017)1834 820 y Ff(2)p Fb(i)p Ff(+1)1922 814 y Ft(is)1017 863 y(ev)n(aluated.)31 b(If)18 b(there)i(is)f(no)f Fh(i)h Ft(suc)o(h)g(that)g Fh(e)g Ft(=)h Fh(\017)1831 869 y Ff(2)p Fb(i)1861 863 y Ft(,)f(the)1017 913 y(v)n(alue)c(of)h(the)h Fg(select)e Ft(expression)i(is)f(de\014ned)h(to)g (b)q(e)f Fm(\000)p Ft(1.)1017 963 y(In)e(the)g(ev)o(en)o(t)h(that)f(one)h(or) f(more)f(v)n(alues)h(of)f Fh(i)i Ft(exist)f(suc)o(h)1017 1013 y(that)h Fh(e)g Ft(=)g Fh(\017)1206 1019 y Ff(2)p Fb(i)1236 1013 y Ft(,)h(eac)o(h)g(of)f(these)i(expressions)h(is)d(ev)n(aluated)1017 1063 y(in)c(ascending)i(order)g(of)f(the)h(v)n(alues)f(of)f Fh(i)p Ft(;)i(in)f(this)g(case)h(the)1017 1112 y(\014nal)k(v)n(alue)g(of)h (the)g Fg(select)f Ft(expression)i(is)f(tak)o(en)g(to)g(b)q(e)1017 1162 y(that)12 b(of)g(the)g(last)g(of)g(these)i(expressions)g(to)e(b)q(e)h (ev)n(aluated.)1066 1212 y(The)28 b(particular)f(c)o(hoice)g(of)g Fm(\000)p Ft(1)g(as)g(the)h(v)n(alue)f(of)1017 1262 y(lo)q(op)22 b(expressions)i(and)f(select)h(expressions)g(is)f(almost)1017 1312 y(but)i(not)g(en)o(tirely)g(arbitrary)m(.)51 b(It)25 b(migh)o(t)e(ha)o (v)o(e)i(b)q(een)1017 1362 y(preferable)11 b(to)f(ha)o(v)o(e)g(them)f(return) j(a)e(unique)g(\\unde\014ned")1017 1411 y(or)24 b(\\nil")g(v)n(alue,)j(but)e (no)f(suc)o(h)i(v)n(alue)e(w)o(as)h(a)o(v)n(ailable)1017 1461 y(for)g(the)i(particular)f(mac)o(hine)f(for)h(whic)o(h)g Fs(bliss)g Ft(w)o(as)1017 1511 y(implem)o(en)o(ted.)19 b(The)c(v)n(alue)f Fm(\000)p Ft(1)h(w)o(as)g(c)o(hosen)g(principally)1017 1561 y(b)q(ecause)f(it)f(is)g(marginally)c(c)o(heap)q(er)15 b(\(in)e(co)q(de)h (pro)q(duced\))1017 1611 y(to)j(generate)h(this)g(v)n(alue)e(and)i(test)g (the)g(sign)f(of)g(a)g(v)n(alue)1017 1660 y(in)27 b(the)h Fs(pdp-10)p Ft(.)59 b(Also,)31 b(zero-relativ)o(e)d(indexing)f(is)1017 1710 y(common,)16 b(and)j(a)f(negativ)o(e)h(v)n(alue)f(is)h(clearly)g (illegal)d(in)1017 1760 y(suc)o(h)22 b(con)o(texts.)42 b(Bey)o(ond)22 b(these)h(minor)d(justi\014cations)1017 1810 y(the)i(only)g(imp)q(ortan)o(t)f (prop)q(ert)o(y)i(of)f(this)g(c)o(hoice)h(is)f(its)1017 1860 y(uniformit)o(y)l(.)1066 1910 y(It)g(should)f(b)q(e)h(noted)g(that)f(the)h (set)h(of)e(con)o(trol)g(ex-)1017 1959 y(pressions)c(presen)o(ted)h(th)o(us)e (far)g(is)g(not)g(minim)o(al.)21 b(All)16 b(of)1017 2009 y(the)f(lo)q(op)f (expressions)j(could)d(b)q(e)i(constructed)h(from)c(the)1017 2059 y(\\)p Fg(while...do)p Ft(")7 b(form,)i(and)g Fg(case)h Ft(and)g Fg(select)e Ft(expressions)1017 2109 y(could)16 b(b)q(e)i (constructed)h(from)c(conditional)h(expressions,)1017 2159 y(for)h(example.)30 b(The)19 b(decision)f(to)h(include)f(a)g(fairly)f(ric)o (h)1017 2208 y(collection)11 b(of)h(con)o(trol)g(structures)i(in)e(part)g (resulted)i(from)1017 2258 y(another)22 b(decision,)j(to)d(b)q(e)h(discussed) h(shortly)m(,)f Fr(not)k Ft(to)1017 2308 y(include)11 b(the)h(familar)d Fg(go)k(to)e Ft(statemen)o(t)h(form)e(of)h(con)o(trol.)1017 2358 y(This)k(decision)h(suggests)h(that)f(the)g(designers)h(m)o(ust)d(pa)o (y)1017 2408 y(far)21 b(more)g(atten)o(tion)h(to)g(the)g(range)g(of)g(con)o (trol)f(forms)1017 2457 y(included,)10 b(since)g(there)h(is)f(no)f(w)o(a)o(y) g(for)h(the)g(user)h(to)e(syn)o(the-)1017 2507 y(size)i(his)g(o)o(wn)g(con)o (trol)g(from)e(the)j(more)e(primitiv)o(e)f(\()p Fg(go)j(to)p Ft(\))1017 2557 y(con)o(trol)i(form.)k(In)d(the)g(case)h(of)e Fs(bliss)g Ft(t)o(w)o(o)g(criteria)h(w)o(ere)965 2770 y(5)p eop %%Page: 6 6 bop 0 42 a Ft(applied)21 b(to)h(determine)f(whether)j(a)d(prop)q(osed)i(con)o (trol)0 91 y(form)12 b(should)i(b)q(e)g(included:)9 191 y(1.)20 b(W)m(as)i(there)j(a)d(reasonable)i(application)d(for)i(whic)o(h)62 241 y(the)g(mo)q(de)f(of)g(expression)h(without)f(the)i(prop)q(osed)62 291 y(construct)16 b(w)o(as)e(a)o(wkw)o(ard)f(and/or)g(obscure?)9 340 y(2.)20 b(W)m(as)15 b(it)h(p)q(ossible)g(to)g(compile)e(b)q(etter)j(co)q (de)g(utilizing)62 390 y(the)f(additional)d(information)f(pro)o(vided)j(b)o (y)g(the)h(new)62 440 y(construct)i(than)e(w)o(ould)f(ha)o(v)o(e)h(b)q(een)h (p)q(ossible)f(other-)62 490 y(wise?)0 589 y(All)10 b(of)g(the)h(con)o(trol)f (expressions)i(discussed)g(ab)q(o)o(v)o(e)f(satisfy)0 639 y(at)26 b(least)f(one)h(and)g(usually)f(b)q(oth)g(of)g(these)j(criteria.)0 689 y(The)16 b Fg(select)e Ft(expression,)j(for)e(example,)f(b)q(oth)i(pro)q (duces)0 739 y(more)g(e\016cien)o(t)i(co)q(de)g(and)e(is)h(a)g(more)f (natural,)h(ob)o(vious)0 789 y(mo)q(de)23 b(of)h(expression)h(than)g(the)g (equiv)n(alen)o(t)e Fg(case)h Ft(or)0 839 y Fg(if)18 b Ft(form)o(ulation)f (when)j(the)g(selection)h(criteria)e(in)o(v)o(olv)o(es)0 888 y(noncon)o(tiguous)14 b(v)n(alues.)50 938 y(A)19 b(function)g(call)f (expression)i(has)g(the)f(form)f(\\)p Fh(\017)g Ft(\()p Fh(\017)903 944 y Ff(1)922 938 y Ft(,)0 988 y Fh(\017)17 994 y Ff(2)35 988 y Ft(,)24 b Fh(:)7 b(:)g(:)21 b Ft(,)i Fh(\017)194 994 y Fb(n)217 988 y Ft(\)".)42 b(This)22 b(expression)h(causes)h(activ)n(ation)0 1038 y(of)17 b(the)i(segmen)o(t)f(named)f(b)o(y)g Fh(\017)h Ft(as)g(a)g(subprogram)f(with)0 1088 y(an)d(initialization)d(of)j(the)g (formal)e(parameters)i(named)f(in)0 1137 y(the)j(declaration)f(of)g(the)i (function)e(to)g(the)i(v)n(alues)e(of)g(the)0 1187 y(actual)9 b(parameters)h Fh(\017)348 1193 y Ff(1)367 1187 y Ft(,)g Fh(:)d(:)g(:)h Ft(,)i Fh(\017)486 1193 y Fb(n)519 1187 y Ft(.)16 b(Only)10 b(call-b)o(y-v)n(alue)e(\(in)0 1237 y(the)15 b Fs(algol)h Ft(sense\))g (parameters)f(are)f(allo)o(w)o(ed;)g(ho)o(w)o(ev)o(er,)0 1287 y(call-b)o(y-reference)h(is)f(implicitly)d(a)o(v)n(ailable)h(since)j(names,)0 1337 y(p)q(oin)o(ter)24 b(v)n(alues,)h(ma)o(y)d(b)q(e)i(passed.)49 b(The)24 b(v)n(alue)f(of)g(a)0 1386 y(function)14 b(call)g(is)g(that)g (resulting)h(from)d(execution)j(of)f(the)0 1436 y(b)q(o)q(dy)h(of)f(the)i (function.)21 b(Th)o(us,)15 b(for)g(example,)e(the)j(v)n(alue)0 1486 y(of)d(the)i(follo)o(wing)c(blo)q(c)o(k)j(is)f(120.)50 1565 y Fl(b)q(egin)50 1611 y(function)f Fk(f)t(actor)q(ial)q Fj(\()p Fk(n)p Fj(\))f(=)94 1656 y Fl(if)j Fk(:n)c Fi(\024)h Fj(1)k Fl(then)f Fj(1)h Fl(else)g Fk(:n)8 b Fi(\003)h Fk(f)t(actor)q(ial)q Fj(\()p Fk(:n)f Fi(\000)h Fj(1\))p Fl(;)50 1702 y Fk(f)t(actor)q(ial)q Fj(\(5\))50 1748 y Fl(end)0 1831 y Ft(Note)17 b(that)g(a)f(function)h(call)f (need)h(not)g(explicitly)f(name)0 1880 y(a)21 b(function)g(b)o(y)g(its)g (asso)q(ciated)h(iden)o(ti\014er;)i(all)c(that)i(is)0 1930 y(required)12 b(is)f(that)g Fh(\017)g Ft(ev)n(aluate)g(to)g(the)h(name)e(of)g (a)h(segmen)o(t.)0 1980 y(Th)o(us)h(expressions)i(suc)o(h)e(as)g(the)h(follo) o(wing)c(are)j(v)n(alid)f(and)0 2030 y(useful:)50 2109 y Fl(\(case)16 b Fk(:x)e Fl(of)g(set)i Fk(P)5 b Fj(1)p Fl(;)15 b Fk(P)5 b Fj(2)p Fl(;)15 b Fk(P)5 b Fj(3)15 b Fl(tes\)\(.z\))0 2192 y Ft(Note)10 b(in)f(this)h(example)e(that)i(the)g(o)q(ccurrence)j(of)c(a)g (param-)0 2242 y(eter)k(list)f(enclosed)h(in)e(brac)o(k)o(ets)i(triggers)f(a) g(function)g(call.)0 2291 y(An)e(iden)o(ti\014er)g(b)o(y)f(itself)g(merely)g (denotes)i(a)e(p)q(oin)o(ter)h(to)g(the)0 2341 y(named)g(segmen)o(t;)h(th)o (us)h Fh(P)6 b Ft(1,)k Fh(P)c Ft(2,)11 b(and)g Fh(P)6 b Ft(3)k(are)h(the)h (names)0 2391 y(of)i(functions)h(\(not)g(the)h(result)f(of)g(executing)g (them\))g(and)0 2441 y(the)d(v)n(alue)e(of)g(the)i(case)g(expression)g(is)e (the)i(name)e(of)g(one)h(of)0 2491 y(these)17 b(functions.)24 b(The)17 b(v)n(alue)e(of)g(the)i(en)o(tire)f(expression)0 2540 y(ab)q(o)o(v)o(e)d(is)g(the)h(result)g(of)e(executing)i(one)g(of)f(the)g (functions)0 2590 y Fh(P)6 b Ft(1,)15 b Fh(P)6 b Ft(2,)14 b(or)i Fh(P)6 b Ft(3)15 b(with)g(actual)h(parameter)f Fh(:z)r Ft(.)23 b(F)m(unction)0 2640 y(calls)13 b(with)h(no)g(parameters)g(are)g(written)g (\\)p Fh(\017)g Ft(\(\)".)1066 42 y(The)20 b(b)q(o)q(dy)f(of)g(an)o(y)g (function)g(ma)o(y)e(b)q(e)j(activ)n(ated)f(as)1017 91 y(a)f(coroutine)i (and/or)f(async)o(hronous)g(pro)q(cess.)36 b(An)19 b(ar-)1017 141 y(bitrary)e(n)o(um)o(b)q(er)g(of)g(distinct)h(incarnations)f(of)g(a)g (single)1017 191 y(b)q(o)q(dy)i(are)i(allo)o(w)o(ed;)g(indeed,)g(arbitrarily) e(man)o(y)f(incar-)1017 241 y(nations)e(of)g(a)h(function)g(b)q(o)q(dy)f(as)h (b)q(oth)g(coroutines)h(and)1017 291 y(subroutines)g(ma)o(y)e(exist)i(sim)o (ultaneously)m(.)28 b(In)18 b(order)g(to)1017 340 y(p)q(ermit)8 b(an)o(y)i(of)f(sev)o(eral)h(useful)g(st)o(yles)g(of)g(coroutine)g(mec)o(h-) 1017 390 y(anism,)16 b(only)i(t)o(w)o(o)f(primitiv)o(e)f(op)q(erations)j(are) f(pro)o(vided)1017 440 y(directly)c(in)f(the)i(language:)1066 519 y Fl(create)h Fk(\017)e Fl(\()p Fk(\017)1261 503 y Fe(1)1279 519 y Fl(,)h Fk(\017)1322 503 y Fe(2)1338 519 y Fl(,)g Fk(:)6 b(:)h(:)14 b Fl(,)h Fk(\017)1468 503 y Fd(n)1489 519 y Fl(\))g(at)g Fk(\017)1590 523 y Fe(2)1622 519 y Fl(length)e Fk(\017)1773 523 y Fe(3)1805 519 y Fl(then)h Fk(\017)1922 523 y Fe(4)1066 565 y Fl(exc)o(hj)g(\()p Fk(\017)1214 569 y Fe(5)1231 565 y Fl(,)h Fk(\017)1274 569 y Fe(6)1291 565 y Fl(\))1017 648 y Ft(More)g(complex)e(coroutine)i(call)f(con)o(v)o(en)o(tions)h(can)f(easily) 1017 697 y(b)q(e)20 b(constructed)h(from)d(these)j(primitiv)o(es.)34 b(\(Note)20 b(that)1017 747 y(an)o(y)12 b(of)g(the)h(expressions)h(represen)o (ted)h(b)o(y)d Fh(\017)p Ft('s)h(ab)q(o)o(v)o(e)f(ma)o(y)1017 797 y(ev)n(aluate)h(at)h(execution)g(time.\))1066 847 y(The)e(e\013ect)h(of)e (the)h Fg(create)f Ft(expression)h(is)f(to)h(establish)1017 897 y(a)21 b(new,)j(indep)q(enden)o(t)f(con)o(text)f(\(that)g(is)g(a)f(stac)o (k\))h(for)1017 946 y(the)j(function)f(named)f(b)o(y)h Fh(\017)g Ft(with)g(actual)g(parameter)1017 996 y(v)n(alues)18 b Fh(\017)1162 981 y Ff(1)1180 996 y Ft(,)h Fh(:)7 b(:)g(:)17 b Ft(,)i Fh(\017)1326 981 y Fb(n)1349 996 y Ft(.)31 b(The)19 b(stac)o(k)g(is)g(set)g(up)g(b)q (eginning)1017 1046 y(at)g(the)i(w)o(ord)e(named)g(b)o(y)g Fh(\017)1479 1052 y Ff(2)1518 1046 y Ft(and)g(is)h(of)f(size)i Fh(\017)1807 1052 y Ff(3)1845 1046 y Ft(w)o(ords)1017 1096 y(\(to)h(pro)o(vide)h(o)o(v)o(er\015o)o(w)f(protection\).)46 b(The)23 b(activ)n(ation)1017 1146 y(p)q(oin)o(t)16 b(for)h(the)g(newly)g (created)i(coroutine)f(is)e(set)i(to)f(the)1017 1196 y(head)e(of)g(the)h (function)f(named)f(b)o(y)h Fh(\017)p Ft(.)22 b(The)16 b(v)n(alue)f(of)f(the) 1017 1245 y Fg(create)g Ft(expression)j(is)f(a)f(\\pro)q(cess)i(name")d(for)h (the)i(new)1017 1295 y(coroutine.)h(Con)o(trol)13 b(then)h(passes)h(on)e(to)h (the)g(expression)1017 1345 y(follo)o(wing)f(the)j Fg(create)p Ft(|in)e(particular,)h(the)i(expression)1017 1395 y Fh(\017)1034 1401 y Ff(4)1066 1395 y Ft(is)e(not)f(executed)j(at)d(this)h(time)e(and)h (the)h(b)q(o)q(dy)g(of)f Fh(\017)g Ft(is)1017 1445 y(not)9 b(activ)n(ated.)17 b(When)10 b(t)o(w)o(o)g(or)f(more)g(suc)o(h)i(con)o(texts) g(ha)o(v)o(e)1017 1494 y(b)q(een)20 b(established,)g(con)o(trol)f(ma)o(y)e(b) q(e)j(passed)g(from)d(the)1017 1544 y(curren)o(tly)10 b(executing)h(one)g(to) e(an)o(y)h(other)h(b)o(y)e(executing)i(an)1017 1594 y(\\exc)o(hange)h(jump,") e Fg(exc)o(hj)p Ft(,)g(expression.)19 b(An)12 b(expression)1017 1644 y(\\)p Fg(exc)o(hj)p Ft(\()p Fh(\017)1180 1650 y Ff(5)1197 1644 y Ft(,)23 b Fh(\017)1249 1650 y Ff(6)1267 1644 y Ft(\)")f(will)e(cause)i (con)o(trol)g(to)f(pass)h(to)f(the)1017 1694 y(coroutine)26 b(named)f(b)o(y)h Fh(\017)1444 1700 y Ff(5)1488 1694 y Ft(\(the)h(v)n(alue)e (of)h(an)g(earlier)1017 1743 y Fg(create)11 b Ft(expression\).)19 b(The)12 b(v)n(alue)g Fh(\017)1593 1749 y Ff(6)1623 1743 y Ft(b)q(ecomes)h(the)g(v)n(alue)1017 1793 y(of)20 b(the)i Fg(exc)o(hj)e Ft(op)q(eration)g(whic)o(h)h(last)g(caused)h(con)o(trol)1017 1843 y(to)c(pass)i(out)f(of)g(the)g(coroutine)h(named)e(b)o(y)h Fh(\017)1783 1849 y Ff(5)1801 1843 y Ft(.)34 b(Th)o(us,)1017 1893 y(e\013ectiv)o(ely)m(,)15 b Fh(\017)1237 1899 y Ff(6)1270 1893 y Ft(ma)o(y)f(b)q(e)h(passed)i(as)e(a)g(parameter)f(to)h(the)1017 1943 y(coroutine)f(b)q(eing)g(reactiv)n(ated.)1066 1993 y(The)h(expression)h Fh(\017)1370 1999 y Ff(4)1389 1993 y Ft(,)e(one)g(will)g(note,)g(is)h(not)f (executed)1017 2042 y(at)f(the)g(time)f(at)h(whic)o(h)g(a)g(coroutine)h(is)f (created.)19 b(Instead)1017 2092 y(this)13 b(expression)h(is)f(executed)j (only)c(when)i(and)f(if)f(con)o(trol)1017 2142 y(passes)i(out)f(of)f(the)h(b) q(o)q(dy)g(of)g(the)g(coroutine)h(b)o(y)e(a)h(normal)1017 2192 y(subroutine-t)o(yp)q(e)d(return)h(\(e.g.)f(\\falling)d(through)j(the)g(end) 1017 2242 y(of)19 b(its)i(b)q(o)q(dy"\).)37 b(The)21 b(normal)d(minim)o(al)f (action)j(to)g(b)q(e)1017 2291 y(exp)q(ected)d(of)e Fh(\017)1257 2297 y Ff(4)1291 2291 y Ft(is)h(to)f(return)i(the)f(stac)o(k)g(space)h(used)f (b)o(y)1017 2341 y(the)i(coroutine)h(and)e(to)h Fg(exc)o(hj)f Ft(to)h(some)f(other,)i(activ)o(e,)1017 2391 y(coroutine.)i(In)15 b(suc)o(h)g(a)g(case,)g(a)g(subroutine-t)o(yp)q(e)h(return)1017 2441 y(from)8 b(a)i(coroutine)g(corresp)q(onds)j(to)d(the)h(coroutine)f (killing)1017 2491 y(its)j(o)o(wn)h(existence.)1066 2540 y(The)k(coroutine)g (mec)o(hanism)e(describ)q(ed)j(ab)q(o)o(v)o(e)f(is)f(il-)1017 2590 y(lustrated)i(b)o(y)g(the)g(follo)o(wing)d(sk)o(eletal)j(example.)31 b(\(The)965 2770 y(6)p eop %%Page: 7 7 bop 0 42 a Fg(exit)14 b Ft(op)q(erations)h(in)f(this)h(example)f(are)h (instances)h(of)f(an)0 91 y(\\escap)q(e)h(expression")f(\(whic)o(h)f(is)g (explained)g(in)g(the)h(sub-)0 141 y(sequen)o(t)i(material\).)22 b(In)16 b(this)g(case,)h(if)e(\(when\))i(executed)0 191 y(they)k(will)e (cause)i(con)o(trol)f(to)g(pass)h(to)f(the)h(end)g(of)f(the)0 241 y(blo)q(c)o(k.\))50 320 y Fl(b)q(egin)79 365 y(o)o(wn)14 b Fk(pa)p Fl(,)i Fk(pb)p Fl(,)g Fk(s)p Fj(1[100])p Fl(,)f Fk(s)p Fj(2[100])p Fl(;)79 411 y(function)d Fk(a)f Fj(=)123 457 y Fl(b)q(egin)j(lo)q(cal)g Fk(l)q(a)p Fl(,)h Fk(x)p Fl(;)123 499 y(.)123 515 y(.)123 532 y(.)123 578 y Fk(x)c Fi( )k Fl(exc)o(hj\()p Fk(:pb)p Fl(,)g Fk(l)q(a)p Fl(\);)123 622 y(.)123 639 y(.)123 655 y(.)123 701 y(end;)79 747 y(function)d Fk(b)p Fj(\()p Fk(z)r Fj(\))f(=)123 792 y Fl(b)q(egin)j(lo)q(cal)g Fk(l)q(b)p Fl(,)i Fk(y)q Fl(;)123 834 y(.)123 851 y(.)123 868 y(.)123 913 y Fk(y)c Fi( )k Fl(exc)o(hj\()p Fk(:z)r Fl(,)d(lb\);)123 958 y(.)123 974 y(.)123 991 y(.)123 1036 y(end;)79 1082 y Fk(pa)f Fi( )j Fl(create)h Fk(a)p Fj(\(\))f Fl(at)g Fk(s)p Fj(1)g Fl(length)e Fj(100)j Fl(then)e(exit;)79 1128 y Fk(pb)e Fi( )j Fl(create)h Fk(b)p Fj(\()p Fk(:pa)p Fj(\))f Fl(at)g Fk(s)p Fj(2)g Fl(length)f Fj(100)h Fl(then)g(exit;)79 1173 y(exc)o(hj\()p Fk(:pa)p Fl(,)g Fj(0)p Fl(\);)50 1219 y(end)0 1302 y Ft(Execution)c(of)f(the)h(main)d(b)q(o)q (dy)j(of)f(this)g(blo)q(c)o(k)h(creates)h(t)o(w)o(o)0 1352 y(coroutine)i(con)o(texts,)h(one)f(for)g(the)h Fg(function)c Fh(a)i Ft(and)h(one)0 1402 y(for)h Fh(b)p Ft(,)g(and)g(stores)i(pro)q(cess)g (names)d(for)h(these)i(in)e Fh(pa)g Ft(and)0 1452 y Fh(pb)p Ft(,)21 b(resp)q(ectiv)o(ely)m(.)39 b(The)22 b Fg(function)17 b Fh(b)j Ft(has)h(one)g(formal)0 1501 y(parameter)d(whose)h(v)n(alue)f(is)g (initialized)f(to)i Fh(:pa)p Ft(,)f(i.e.)g(to)0 1551 y(the)d(pro)q(cess)i (name)c(of)h(an)g(incarnation)g(of)g Fh(a)p Ft(.)20 b(The)c(main)0 1601 y(b)q(o)q(dy)e(then)h(causes)h(con)o(trol)e(to)h(pass,)f(via)g(the)h Fg(exc)o(hj)p Ft(,)e(to)0 1651 y(the)f(coroutine)h(named)d(b)o(y)i Fh(:pa)p Ft(|that)f(is,)h(an)f(incarnation)0 1701 y(of)21 b Fh(a)p Ft(,)i(in)e(this)h(case.)43 b(The)22 b(activ)n(ation)e(p)q(oin)o(t)h (of)g(b)q(oth)0 1750 y(coroutines)12 b(at)f(this)g(time)f(is)h(at)f(the)i (head)f(of)g(their)g(b)q(o)q(dies.)0 1800 y(A)o(t)h(some)f(p)q(oin)o(t)h(in)g (the)g(execution)h(of)f Fh(a)g Ft(the)g(execution)h(of)0 1850 y(\\)p Fh(x)j Fm( )g Fg(exc)o(hj)p Ft(\()p Fh(:pb)p Ft(,)g Fh(l)q(a)p Ft(\)")h(will)e(cause)j(con)o(trol)f(to)f(pass)i(to)0 1900 y(the)f(coroutine)h(named)e(b)o(y)g Fh(:pb)p Ft(,)h(lea)o(ving)e(the)j (activ)n(ation)0 1950 y(p)q(oin)o(t)12 b(of)g Fh(a)h Ft(at)g(the)g(store)h (op)q(eration.)j(Similarly)l(,)10 b(at)i(some)0 1999 y(later)i(time)e(the)j (execution)f(of)g(\\)p Fh(y)f Fm( )g Fg(exc)o(hj)p Ft(\()p Fh(:z)r Ft(,)f Fh(l)q(b)p Ft(\)")i(will)0 2049 y(cause)21 b(con)o(trol)f(to)g (return)h(to)f Fh(a)g Ft(\(since)h Fh(:z)i Fm(\021)f Fh(:pa)f Fm(\021)g Ft(a)0 2099 y(pro)q(cess)16 b(name)c(of)i Fh(a)p Ft(\))g(at)f(its)h(activ)n(ation)f(p)q(oin)o(t)g(and)h(lea)o(v)o(e)0 2149 y(the)g(activ)n(ation)f(p)q(oin)o(t)g(of)g Fh(b)g Ft(at)h(its)f (store-op)q(eration.)19 b(The)0 2199 y(v)n(alue)e(of)g(the)h Fg(exc)o(hj)f Ft(op)q(eration)g(in)h Fh(a)f Ft(is)h(de\014ned)g(to)g(b)q(e)0 2249 y(that)13 b(of)g(the)g(parameter)g(in)g(the)g Fg(exc)o(hj)g Ft(op)q(eration)g(whic)o(h)0 2298 y(caused)18 b(con)o(trol)e(to)h(return)h (to)f Fh(a)p Ft(;)g(hence)i(in)d(this)h(case)h(a)0 2348 y(p)q(oin)o(ter)c(to) g(the)g(lo)q(cal)f(v)n(ariable)g Fh(l)q(b)h Ft(will)e(b)q(e)j(stored)g(in)e Fh(x)p Ft(.)50 2398 y(The)k(famili)o(ar)d(\\)p Fg(go)k(to)p Ft(...)p Fh(l)q(abel)q Ft(")d(form)f(of)i(con)o(trol)g(has)0 2448 y(not)g(b)q(een)h(included)f(in)g Fs(bliss)p Ft(.)24 b(There)17 b(are)g(t)o(w)o(o)e(reasons)0 2498 y(for)i(this:)24 b(\(1\))17 b(unrestricted)i Fg(go)h(to)p Ft('s)c(require)i(consider-)0 2547 y(able)f(run-time)f(supp)q(ort)i(\(principally)e(due)i(to)f(the)g(p)q (os-)0 2597 y(sibilit)o(y)d(of)g(jumping)f(out)i(of)g(functions)g(and/or)g (blo)q(c)o(ks\),)1017 42 y(and)j(\(2\))h(the)g(authors)g(feel)f(strongly)h (that)g(the)g(general)1017 91 y Fg(go)e(to)p Ft(,)d(b)q(ecause)j(of)d(the)i (implied)d(violation)g(of)i(program)1017 141 y(structure,)i(is)f(a)f(ma)r (jor)g(villain)e(in)i(programs)g(whic)o(h)h(are)1017 191 y(di\016cult)g(to)h (understand,)i(mo)q(dify)m(,)c(and)i(debug.)29 b(There)1017 241 y(are)10 b(\\go)q(o)q(d")f(and)g(\\bad")h(w)o(a)o(ys)f(to)h(use)h(a)e Fg(go)i(to)p Ft(,)f(and)g(there)1017 291 y(are)j(restrictions)h(whic)o(h)e (could)h(b)q(e)g(imp)q(osed)f(whic)o(h)g(elim-)1017 340 y(inate)i(the)h(need) h(for)e(run-time)f(supp)q(ort.)21 b(Consideration)1017 390 y(of)11 b(the)h(nature)g(of)f(\\go)q(o)q(d")g(w)o(a)o(ys,)g(and)g(of)g(the)i (restrictions)1017 440 y(necessary)j(to)f(eliminate)d(run-time)i(o)o(v)o (erhead,)g(led)h(us)g(to)1017 490 y(eliminate)10 b(the)k Fg(go)g(to)f Ft(altogether,)g(and)f(to)h(the)h(inclusion)1017 540 y(of)d(a)h(ric)o(h)g (collection)f(of)g(conditional,)g(lo)q(oping,)f(and)i(case-)1017 589 y(select)20 b(expressions.)37 b(These)20 b(alone,)g(ho)o(w)o(ev)o(er,)h (are)f(not)1017 639 y(su\016cien)o(tly)11 b(general,)h(or)g(con)o(v)o(enien)o (t,)g(and)g(consequen)o(tly)1017 689 y(the)e(\\escap)q(e")h(expressions)g(w)o (ere)g(in)o(tro)q(duced.)18 b(There)11 b(are)1017 739 y(eigh)o(t)16 b(forms)f(of)h(the)h(escap)q(e)i(mec)o(hanism,)14 b(one)j(for)f(eac)o(h)1017 789 y(form)c(of)h(con)o(trol)h(en)o(vironmen)o(t:)1017 888 y Fg(exitblo)q(c)o(k)f Fh(\017)189 b Fg(exitcase)15 b Fh(\017)1017 938 y Fg(exitcomp)q(ound)d Fh(\017)83 b Fg(exitselect)14 b Fh(\017)1017 988 y Fg(exitlo)q(op)f Fh(\017)210 b Fg(exit)15 b Fh(\017)1017 1038 y Fg(exitset)f Fh(\017)239 b Fg(return)14 b Fh(\017)1017 1121 y Ft(Eac)o(h)i(escap)q(e)i(expression)f(causes)h(con)o (trol)e(to)g(exit)g(from)1017 1171 y(a)e(sp)q(eci\014ed)i(con)o(trol)f(en)o (vironmen)o(t)e(\(a)i(blo)q(c)o(k,)f(a)g(lo)q(op,)g(or)1017 1220 y(a)j(conditional)f(expression,)k(for)d(example\))g Fr(and)23 b Ft(de\014nes)1017 1270 y(a)18 b(v)n(alue)h(\()p Fh(\017)p Ft(\))g(for)g(that)g(con)o(trol)g(expression)h(\()p Fg(exit)f Ft(exits)1017 1320 y(from)d(an)o(y)h(form)f(of)i(con)o(trol)f(expression,)j Fg(return)c Ft(exits)1017 1370 y(from)11 b(a)i(function\).)k(Essen)o(tially)c (the)h(escap)q(e)g(mec)o(hanism)1017 1420 y(pro)o(vides)e(a)f(highly)g (structured)j(form)d(of)g(forw)o(ard)h(branc)o(h)1017 1469 y(whic)o(h)k(is)g(a)o(wkw)o(ard)f(to)h(obtain)g(with)g(the)g(other)h(con)o (trol)1017 1519 y(expressions.)1066 1569 y(Consider)f(a)f(link)o(ed)f(list)g (of)h(t)o(w)o(o)f(w)o(ord)h(cells,)h(the)f(\014rst)1017 1619 y(of)i(whic)o(h)h(con)o(tains)g(a)f(link)g(\(p)q(oin)o(ter\))i(to)f(the)h (next)f(cell)1017 1669 y(\(the)d(last)f(cell)g(has)g(link)f(=)g(0\))h(and)g (the)h(second)g(of)f(whic)o(h)1017 1719 y(con)o(tains)i(data.)27 b(The)17 b(follo)o(wing)e(expression)j(illustrates)1017 1768 y(one)10 b(use)i(of)e(an)g(escap)q(e)j(expression;)f(the)g(expression)f(has)g (a)1017 1818 y(v)n(alue)i(whic)o(h)g(is)h(the)g(p)q(oin)o(ter)g(to)g(the)g (\014rst)h(negativ)o(e)e(data)1017 1868 y(item,)e(or)i(a)g(v)n(alue)f(of)h Fm(\000)p Ft(1)g(if)f(no)h(suc)o(h)h(item)d(is)i(found.)18 b(The)1017 1918 y(address)c(of)e(the)i(head)f(of)g(the)g(list)g(is)g(con)o (tained)g(in)f(a)h(\014eld)1017 1968 y(called)g Fh(head)p Ft(.)1066 2046 y Fl(\(register)j Fk(t)p Fl(;)f Fk(t)c Fi( )g Fk(head)p Fl(;)k(while)e Fj(\()p Fk(t)e Fi( )g Fk(::t)p Fj(\))e Fi(6)p Fj(=)i(0)k Fl(do)1140 2092 y(if)f Fk(:)p Fj(\()p Fk(:t)7 b Fj(+)i Fk(l)q Fj(\))h Fk(<)h Fj(0)k Fl(then)f(exitlo)q(op)g Fk(:t)p Fl(\);)1017 2175 y Ft(Note)j(that)g(the)g(initialization)d(of)j(\()p Fh(t)f Fm( )g Fh(head)p Ft(\))h(sets)h(the)1017 2225 y(v)n(alue)c(of)h Fh(t)g Ft(to)g(a)g(p)q(oin)o(ter)h(to)f Fh(head)p Ft(,)g(not)g(the)h(con)o (ten)o(ts)h(of)1017 2275 y Fh(head)p Ft(.)1066 2325 y(It)26 b(is)g(in)o(teresting)g(to)f(note)h(that)g(the)g(decision)g(to)1017 2374 y(remo)o(v)o(e)e(the)j Fg(go)i(to)c Ft(from)f Fs(bliss)i Ft(and)f(the)i(decision)1017 2424 y(to)20 b(mak)o(e)f Fs(bliss)h Ft(an)g(expression)i(language)d(are)i(closely)1017 2474 y(related.)29 b(The)18 b(presence)i(of)d(the)h Fg(go)i(to)d Ft(presen)o(ts)j(some)1017 2524 y(a)o(wkw)o(ard)j(situations)h(in)g(the)h(implemen)o(tati)o(on)d(of)h (an)1017 2574 y(expression)15 b(language|for)d(example,)965 2770 y(7)p eop %%Page: 8 8 bop 50 42 a Fl(go)15 b(to)g Fk(L)p Fl(;)g Fk(:)6 b(:)g(:)14 b Fl(;)h Fk(x)c Fi( )g Fk(a)e Fj(+)f Fk(b)h Fi(\003)g Fj(\()p Fk(L)i Fj(:)f Fk(C)i Fi(\000)c Fk(d)p Fj(\))p Fl(;)15 b Fk(:)6 b(:)g(:)0 125 y Ft(or)50 203 y Fk(x)k Fi( )h Fk(a)p Fi(\003)p Fl(\(if)k Fk(b)g Fl(then)f Fk(c)g Fl(else)h(go)g(to)g Fk(L)p Fl(\);)h Fk(:)6 b(:)g(:)0 286 y Ft(With)28 b(the)h Fg(go)j(to)c Ft(eliminated)e(from)g(the)j(language)0 336 y(it)23 b(b)q(ecomes)g(desirable) g(to)g(implemen)o(t)d(an)j(expression)0 386 y(rather)f(than)e(a)h(statemen)o (t)f(orien)o(ted)i(language.)37 b(P)o(art)0 436 y(of)15 b(the)g(burden)h (carried)g(b)o(y)f(the)h Fg(go)h(to)e Ft(in)f(con)o(v)o(en)o(tional)0 486 y(languages)23 b(shifts)g(to)h(n)o(umeric)e(v)n(alues)h(whic)o(h)h(con)o (trol)0 535 y(conditional,)12 b(lo)q(op,)h(case,)h(or)g(select)h (expressions.)0 635 y Fu(3.)25 b(Data)18 b(Structures)0 685 y Ft(One)j(of)f(the)h(outstanding)f(c)o(haracteristics)i(of)e(systems)0 735 y(programs)c(is)g(their)i(concern)g(with)e(the)i(wide)f(v)n(ariet)o(y)f (of)0 785 y(data)g(structures)j(and)d(sc)o(hemes)h(for)f(represen)o(ting)i (these)0 834 y(structures.)29 b(Observ)n(ation)17 b(of)f(what)g(systems)h (program-)0 884 y(mers)c Fr(do)k Ft(rev)o(eals)e(that)e(a)h(large)f(fraction) h(of)f(their)h(design)0 934 y(e\013ort)23 b(is)e(sp)q(en)o(t)i(in)e (constructing)i(represen)o(tations)h(for)0 984 y(e\016cien)o(tly)11 b(enco)q(ding)h(the)g(information)c(to)k(b)q(e)g(pro)q(cessed.)0 1034 y(It)i(is)g(frequen)o(tly)g(the)h(case)g(that)f(the)g(most)f(di\016cult) g(task)0 1083 y(in)21 b(making)d(a)j(mo)q(di\014cation)e(to)i(an)g(existing)g (program)0 1133 y(is)g(that)f(of)h(represen)o(ting)h(the)f(additional)e (information)0 1183 y(required)14 b(\(e.g.)e(the)h(infamous)e(\\\014nd)h (another)h(bit")g(prob-)0 1233 y(lem\).)20 b(Consequen)o(tly)c(the)g(issue)f (of)g(represen)o(tation)i(w)o(as)0 1283 y(one)d(of)f(the)i(cen)o(tral)f (design)g(considerations)h(in)e Fs(bliss)p Ft(.)50 1333 y(Tw)o(o)g (principles)g(w)o(ere)h(follo)o(w)o(ed)e(in)h(the)h(design)f(of)g(the)0 1382 y(data)h(structure)i(facilit)o(y)c(of)h Fs(bliss)p Ft(:)21 1482 y Fm(\017)20 b Ft(the)g(user)g(m)o(ust)e(b)q(e)i(able)f(to)g(sp)q(ecify) g(the)h Fr(ac)n(c)n(essing)62 1532 y(algorithm)d Ft(for)c(elemen)o(ts)h(of)f (a)h(structure,)21 1582 y Fm(\017)20 b Ft(the)11 b(structure)g(de\014nition)f (and)f(the)h(algorithms)e(whic)o(h)62 1631 y(op)q(erate)26 b(on)e(the)h(elemen)o(ts)g(of)f(a)g(structure)i(m)o(ust)62 1681 y(b)q(e)19 b(separated)h(in)e(suc)o(h)h(a)f(w)o(a)o(y)g(that)g(either)h (can)g(b)q(e)62 1731 y(mo)q(di\014ed)13 b(without)g(a\013ecting)h(the)h (other.)0 1831 y(The)e(\014rst)g(principle)f(is)h(in)f(accordance)h(with)g (the)g(\015exibil-)0 1880 y(it)o(y)j(and)h(e\016ciency)h(the)f Fs(bliss)g Ft(programmer)d(should)j(b)q(e)0 1930 y(pro)o(vided)f(with)g(in)g (utilizing)e(the)j(mac)o(hine)e(features.)26 b(It)0 1980 y(expresses)21 b(our)d(strong)g(feelings)g(that)g(w)o(e)g(cannot|and)0 2030 y(should)c(not)g(try)g(to|predict)g(whic)o(h)g(kind)g(of)f(structures)0 2080 y(a)h(system)g(programmer)e(will)h(need,)i(so)f(that)h(a)f(giv)o(en)g (set)0 2130 y(of)i(primitiv)o(e)f(structures)k(and)d(other)i(statically)d (de\014ned)0 2179 y(structures)h(is)e(inadequate.)k(The)c(feature)h(of)e(a)g (structure)0 2229 y(declaration,)19 b(on)g(the)g(other)h(hand,)f(in)f(whic)o (h)h(the)g(user)0 2279 y(himself)24 b(sp)q(eci\014es)j(the)g(w)o(a)o(y)e(in)g (whic)o(h)g(elemen)o(ts)h(are)0 2329 y(accessed,)20 b(pro)o(vides)e(the)g (user)h(with)e(the)h(full)e(\015exibilit)o(y)0 2379 y(and)k(e\016ciency)i(he) f(needs.)39 b(This)20 b(p)q(oin)o(t)g(is)h(illustrated)0 2428 y(b)q(elo)o(w)16 b(b)o(y)h(taking)e(as)i(an)f(example)f(the)i(w)o(ell-kno)o (wn)f(ar-)0 2478 y(ra)o(y)g(structure.)28 b(The)17 b(di\013erence)h(with)e (the)h(static)g(arra)o(y)0 2528 y(structure)k(of)e Fs(algol)h Ft(is)g(demonstrated)f(b)o(y)g(discussing)0 2578 y(sev)o(eral)14 b(v)n(arieties)g(of)g(accessing)h(an)e(arra)o(y)m(.)50 2628 y(In)d(order)h(to)f(ac)o(hiev)o(e)g(a)g(language)g(in)f(terms)h(of)g(whic)o (h)g(it)1017 42 y(is)i(p)q(ossible)g(to)g(write)h(large)f(systems)h(that)f (ma)o(y)e(b)q(e)j(easily)1017 91 y(mo)q(di\014ed,)h(it)i(is)f(imp)q(erativ)o (e)g(that)h(the)h(sp)q(eci\014cations)g(of)1017 141 y(the)e(represen)o (tation)h(of)e(a)h(data)f(structure)j(b)q(e)f(separated)1017 191 y(from)d(the)i(sp)q(eci\014cation)h(of)e(algorithms)e(whic)o(h)j(manipu-) 1017 241 y(late)10 b(data)g(in)g(that)h(structure.)19 b(This)11 b(principle)f(is)h(sev)o(erely)1017 291 y(violated)h(in)g(assem)o(bly)g (languages)h(where,)g(t)o(ypically)m(,)e(the)1017 340 y(co)q(de)k(to)g (access)i(an)d(elemen)o(t)g(of)h(a)f(structure,)j(for)d(exam-)1017 390 y(ple,)f(simply)e(a)j(con)o(tiguous)f(\014eld)h(of)f(bits)h(within)f(a)h (w)o(ord,)1017 440 y(is)f(co)q(ded)i(\\in)f(line")f(at)h(the)g(p)q(oin)o(t)g (where)h(the)g(elemen)o(t)e(is)1017 490 y(needed.)18 b(A)12 b(comparativ)o(ely)d(trivial)h(c)o(hange)h(whic)o(h)g(alters)1017 540 y(the)i(size)h(or)f(p)q(osition)f(of)g(the)i(\014eld)f(ma)o(y)e(require)j (lo)q(cating)1017 589 y(and)9 b(mo)q(difying)e(all)i(references)k(to)c(the)i (\014eld.)17 b(This)9 b(simple)1017 639 y(problem)16 b(could)h(b)q(e)i(solv)o (ed)e(b)o(y)h(follo)o(wing)d(go)q(o)q(d)i(co)q(ding)1017 689 y(practice)d(and,)f(p)q(erhaps,)i(b)o(y)e(the)i(use)f(of)f(macros;)g(not)g (all)1017 739 y(c)o(hanges)h(are)g(of)g(suc)o(h)g(a)g(trivial)e(nature,)i(ho) o(w)o(ev)o(er.)1066 789 y(The)23 b(concept)g(of)f(a)g(\\p)q(oin)o(ter")f(to)h (a)g(\014eld)g(\(of)g(bits)1017 839 y(within)f(a)g(w)o(ord\))h(w)o(as)g(men)o (tioned)e(earlier.)42 b(Actually)m(,)1017 888 y(in)17 b Fs(bliss)h Ft(a)g(p)q(oin)o(ter)g(is)g(a)g(5-tuple)g(consisting)g(of:)26 b(\(l\))18 b(a)1017 938 y(w)o(ord)g(address,)i(\(2\))e(a)g(\014eld)h(p)q (osition,)f(\(3\))g(a)g(\014eld)h(size,)1017 988 y(\(4\))e(an)g(\(index\))h (register)h(name,)e(and)g(\(5\))g(an)h(\\indirect)1017 1038 y(address")24 b(bit.)48 b(These)25 b(\014v)o(e)g(quan)o(tities)e(are)i(enco)q (ded)1017 1088 y(in)18 b(a)g(single)h(w)o(ord)g(and)f(as)h(suc)o(h)h(are)f(a) g(manipulatable)1017 1137 y(item)c(in)g(the)i(language)f(\(a)g(prerequisite)i (of)e(algorithmic)1017 1187 y(represen)o(tational)21 b(sp)q(eci\014cation\).) 39 b(F)m(or)20 b(simplicit)o(y)m(,)f(w)o(e)1017 1237 y(discuss)f(only)e(the)h (\014rst)h(three)g(of)e(these)j(quan)o(tities;)e(the)1017 1287 y(reader)f(is)g(referred)h(to)f(the)g Fs(bliss)g Ft(reference)i(man)o(ual)13 b([6])1017 1337 y(for)k(more)h(detail.)30 b(The)19 b(w)o(ord)f(address,)j Fh(w)q(a)p Ft(,)d(\014eld)h(of)e(a)1017 1386 y(p)q(oin)o(ter)f(designates)i (the)f(ph)o(ysical)f(mac)o(hine)g(address)i(of)1017 1436 y(the)g(w)o(ord;)h (the)g(p)q(osition,)e Fh(p)p Ft(,)h(and)g(size,)h Fh(s)p Ft(,)g(designate)f (a)1017 1486 y(\014eld)11 b(within)h(a)f(w)o(ord)h(in)f(terms)h(of)f(the)i(n) o(um)o(b)q(er)e(of)g(bits)h(to)1017 1536 y(the)h(righ)o(t)g(of)g(and)g (within)f(the)i(\014eld.)k(The)c(notation)e(used)1017 1586 y(in)g Fs(bliss)g Ft(to)g(sp)q(ecify)h(a)f(p)q(oin)o(ter)h(\(taking)f(only)f (the)i(simple)1017 1636 y Fh(w)q(a)p Ft(,)g Fh(p)p Ft(,)g Fh(s)h Ft(case\))h(is)f(\\)p Fh(w)q(a)p Fm(h)p Fh(p;)7 b(s)p Fm(i)p Ft(".)1066 1685 y(Assume)19 b(that)h(the)g(declaration)e(\\)p Fg(o)o(wn)h Fh(x)p Ft([100]")e(has)1017 1735 y(b)q(een)26 b(made.)52 b(The)26 b(iden)o(ti\014er)g Fh(x)f Ft(is)h(b)q(ound)g(b)o(y)f(this)1017 1785 y(particular)11 b(declaration)g(to)g(a)g(p)q(oin)o(ter)h(to)f(the)h (36-bit)f(\014eld)1017 1835 y(whic)o(h)19 b(is)h(the)g(\014rst)h(w)o(ord)f (of)f(this)h(100-w)o(ord)f(segmen)o(t.)1017 1885 y(That)e(is,)h(the)g(w)o (ord)f(address)i(of)e(the)h(p)q(oin)o(ter)f Fh(x)h Ft(is)f(that)1017 1934 y(of)i(the)h(lo)q(cation)f(allo)q(cated)g(to)g(the)i(segmen)o(t,)f(and)f (the)1017 1984 y(p)q(osition)i(and)h(size)h(\014elds)g(ha)o(v)o(e)f(v)n (alues)f(of)h(0)g(and)g(36,)1017 2034 y(resp)q(ectiv)o(ely)m(.)17 b(If)10 b(w)o(e)h(denote)g(the)f(address)i(of)e(the)g(segmen)o(t)1017 2084 y(b)o(y)15 b Fh(\013)1103 2090 y Fb(x)1123 2084 y Ft(,)g(then)h(an)f(o)q (ccurrence)j(of)d Fh(x)g Ft(in)f(a)h Fs(bliss)h Ft(program)1017 2134 y(is)h(iden)o(tical)h(to)g(an)g(o)q(ccurrence)i(of)e(\\)p Fh(\013)1661 2140 y Fb(x)1681 2134 y Fm(h)p Ft(0)p Fh(;)7 b Ft(36)p Fm(i)p Ft(".)29 b(If)18 b Fh(\017)1920 2140 y Ff(0)1938 2134 y Ft(,)1017 2183 y Fh(\017)1034 2189 y Ff(1)1052 2183 y Ft(,)e(and)g Fh(\017)1180 2189 y Ff(2)1215 2183 y Ft(are)g(expressions,)i (then)f(the)g(syn)o(tactic)g(form)1017 2233 y(\\)p Fh(\017)1055 2239 y Ff(0)1090 2233 y Ft(\()p Fh(\017)1123 2239 y Ff(1)1141 2233 y Ft(,)g Fh(\017)1187 2239 y Ff(2)1206 2233 y Ft(\)")f(is)h(b)o(y)g (de\014nition)f(a)h(p)q(oin)o(ter)g(whose)g(w)o(ord)1017 2283 y(address)h(is)f(the)g(v)n(alue)g(of)f Fh(\017)1465 2289 y Ff(0)1500 2283 y Ft(\(mo)q(dulo)g(2)1690 2268 y Ff(18)1724 2283 y Ft(\))i(and)e(whose)1017 2333 y(p)q(osition)f(and)g(size)i(sp)q (eci\014cations)g(are)f(the)h(v)n(alues)e(of)h Fh(\017)1932 2339 y Ff(1)1017 2383 y Ft(and)f Fh(\017)1116 2389 y Ff(2)1149 2383 y Ft(\(mo)q(dulo)e(2)1336 2368 y Ff(6)1355 2383 y Ft(\))i(resp)q(ectiv)o (ely)m(.)23 b(Th)o(us)16 b(\\)p Fh(X)s Fm(h)p Ft(3)p Fh(;)7 b Ft(4)p Fm(i)p Ft(")14 b(is)1017 2433 y(a)e(p)q(oin)o(ter)g(to)h(a)f (four-bit)g(\014eld)g(three)i(bits)f(from)d(the)j(righ)o(t)1017 2482 y(end)d(of)f(a)g(w)o(ord)h(named)e Fh(X)s Ft(.)17 b(The)10 b(w)o(ord)g(address,)h(p)q(osition,)1017 2532 y(and)f(size)i(information)d (are)i(enco)q(ded)i(within)d(a)h(p)q(oin)o(ter)g(in)1017 2582 y(suc)o(h)16 b(a)g(w)o(a)o(y)f(that)h(adding)f(small)f(in)o(tegers)i(to)g(a)g (p)q(oin)o(ter)1017 2632 y(incremen)o(ts)j(the)g(w)o(ord)g(address.)35 b(Th)o(us)20 b(\\)p Fh(X)c Ft(+)d(1")18 b(is)h(a)965 2770 y(8)p eop %%Page: 9 9 bop 0 42 a Ft(p)q(oin)o(ter)13 b(to)g(the)h(w)o(ord)f(follo)o(wing)e Fh(X)16 b Ft(\(unless)e(the)g(address)0 91 y(\014eld)g(o)o(v)o(er\015o)o (ws\).)50 141 y(In)k(order)h(to)g(satisfy)f(the)h(ob)r(jectiv)o(es)g(set)g (out)g(ab)q(o)o(v)o(e)0 191 y(for)j(data)g(structures,)k(it)c(is)h(desirable) f(to)g(extend)i(the)0 241 y(allo)q(cation)18 b(declarations)j(\()p Fg(global)p Ft(,)e Fg(o)o(wn)p Ft(,)i Fg(lo)q(cal)p Ft(,)f(etc.\))0 291 y(describ)q(ed)f(ab)q(o)o(v)o(e.)29 b(Ho)o(w)o(ev)o(er,)19 b(for)e(exp)q(osition)g(w)o(e)h(shall)0 340 y(\014rst)g(describ)q(e)i(the)e (structure)i(mec)o(hanism)15 b(in)j(terms)f(of)0 390 y(the)j(allo)q(cation)f (declarations)h(already)f(a)o(v)n(ailable,)g(then)0 440 y(describ)q(e)24 b(the)g(extensions)f(when)g(more)f(motiv)n(ation)e(is)0 490 y(p)q(ossible.)50 540 y(The)g(de\014nition)g(of)g(a)g(class)g(of)g (structures,)k(that)c(is,)0 589 y(of)k(an)h(accessing)g(algorithm)d(to)j(b)q (e)g(asso)q(ciated)h(with)0 639 y(certain)16 b(sp)q(eci\014c)h(data)f (structures,)i(ma)o(y)c(b)q(e)i(made)e(b)o(y)i(a)0 689 y(declaration)e(of)f (the)h(form:)50 768 y Fl(structure)h Fi(h)p Fj(name)p Fi(i)p Fl([)p Fi(h)p Fj(formal)f(parameter)g(list)p Fi(i)p Fl(])i Fj(=)11 b Fk(\017)0 851 y Ft(P)o(articular)22 b(names)f(ma)o(y)f(then)j(b)q (e)f(asso)q(ciated)h(with)f(a)0 901 y(structure)16 b(class,)d(that)h(is)f (with)h(an)f(accessing)i(algorithm,)0 951 y(b)o(y)f(another)g(declaration)50 1029 y Fl(map)g Fi(h)p Fj(name)p Fi(i)i(h)p Fj(name)d(list)p Fi(i)p Fj(,)0 1112 y Ft(where)f(a)e Fm(h)p Ft(name)g(list)p Fm(i)g Ft(is)g(a)h(sequence)h(of)e(names)g(separated)0 1162 y(b)o(y)k(colons.)50 1212 y(Consider)g(the)h(follo)o(wing)c(example:)50 1291 y Fl(b)q(egin)94 1337 y(structure)k Fk(ar)q(y)q Fj(2[)p Fk(i;)7 b(j)r Fj(])j(=)h(\()p Fk(:ar)q(y)q Fj(2)e(+)g Fk(:i)f Fi(\003)h Fj(10)g Fi(\003)f Fk(:j)r Fj(\))p Fl(;)94 1382 y(o)o(wn)14 b Fk(x)p Fj([100])p Fl(,)h Fk(y)q Fj([100])p Fl(,)g Fk(z)r Fj([100])p Fl(;)94 1428 y(map)g Fk(ar)q(y)q Fj(2)h Fk(x)p Fl(:)p Fk(y)q Fl(:)p Fk(z)r Fl(;)94 1470 y(.)94 1487 y(.)94 1503 y(.)94 1549 y Fk(x)p Fj([)p Fk(:a;)6 b(:b)p Fj(])k Fi( )h Fk(:y)q Fj([)p Fk(:b;)6 b(:a)p Fj(])p Fl(;)94 1593 y(.)94 1610 y(.)94 1627 y(.)50 1672 y(end;)0 1755 y Ft(In)18 b(this)g(example)f(w)o(e)h(in)o (tro)q(duce)h(a)f(v)o(ery)g(simple)e(struc-)0 1805 y(ture,)24 b Fh(ar)q(y)q Ft(2,)f(for)e(t)o(w)o(o-dimensional)d(\(10)c Fm(\002)h Ft(10\))21 b(arra)o(ys,)0 1855 y(declare)k(three)h(segmen)o(ts)f (with)f(names)f Fh(x)p Ft(,)k Fh(y)q Ft(,)g(and)d Fh(z)0 1905 y Ft(b)q(ound)d(to)f(them,)h(and)g(asso)q(ciate)g(the)g(structure)i(class)0 1954 y Fh(ar)q(y)q Ft(2)11 b(with)f(these)i(names.)17 b(The)11 b(syn)o(tactic)g(forms)e Fh(x)p Ft([)p Fh(\017)850 1960 y Ff(1)868 1954 y Fh(;)e(\017)904 1960 y Ff(2)922 1954 y Ft(])0 2004 y(and)16 b Fh(y)q Ft([)p Fh(\017)133 2010 y Ff(3)151 2004 y Fh(;)7 b(\017)187 2010 y Ff(4)205 2004 y Ft(])16 b(are)g(v)n(alid)e(within)h(this)h(blo)q(c)o (k)f(and)h(denote)0 2054 y(ev)n(aluation)11 b(of)h(the)h(accessing)g (algorithm)d(de\014ned)k(b)o(y)e(the)0 2104 y Fh(ar)q(y)q Ft(2-)p Fg(structure)21 b Ft(declaration)i(\(with)g(an)f(appropriate)0 2154 y(substitution)14 b(of)f(actual)h(for)f(formal)f(parameters\).)50 2204 y(Although)j(they)h(are)f(not)h(implem)o(en)o(ted)e(in)h(this)g(w)o(a)o (y)m(,)0 2253 y(for)22 b(purp)q(oses)j(of)d(exp)q(osition)g(one)h(ma)o(y)e (think)i(of)f(the)0 2303 y(structure)13 b(declaration)e(as)g(de\014ning)f(a)h (function)g(with)f(one)0 2353 y(more)g(formal)f(parameter)h(than)h(is)g (explicitly)f(men)o(tioned.)0 2403 y(F)m(or)j(example,)e(the)j(structure)i (declaration)d(in)g(the)g(previ-)0 2453 y(ous)h(example,)50 2531 y Fl(structure)h Fk(ar)q(y)q Fj(2[)p Fk(i)p Fl(,)h Fk(j)r Fj(])10 b(=)h(\()p Fk(:ar)q(y)q Fj(2)e(+)f Fk(:i)h Fi(\003)f Fj(10)h(+)g Fk(:j)r Fj(\))p Fl(;)0 2615 y Ft(conceptually)14 b(is)g(iden)o(tical)f(to)h(a)f(function)h(declaration)1066 42 y Fl(function)e Fk(ar)q(y)q Fj(2\()p Fk(f)t Fj(0)p Fl(,)17 b Fk(f)t Fj(1)p Fl(,)d Fk(f)t Fj(2\))d(=)f(\()p Fk(:f)t Fj(0)e(+)h Fk(:f)t Fj(1)f Fi(\003)h Fj(10)g(+)f Fk(:f)t Fj(2\))p Fl(;)1017 125 y Ft(The)17 b(expressions)i Fh(x)p Ft([)p Fh(:a;)7 b(:b)p Ft(])15 b(and)i Fh(y)q Ft([)p Fh(:b;)7 b(:a)p Ft(])15 b(corresp)q(ond)k(to) 1017 174 y(calls)i(on)g(this)h(function,)h(i.e.)d(to)i Fh(ar)q(y)q Ft(2\()p Fh(x)p Ft(,)h Fh(:a)p Ft(,)g Fh(:b)p Ft(\))e(and)1017 224 y Fh(ar)q(y)q Ft(2\()p Fh(y)q Ft(,)14 b Fh(:b)p Ft(,)f Fh(:a)p Ft(\).)1066 274 y(A)e Fg(function)c Ft(declaration)j(suc)o(h)h(as)g (that)f(sho)o(wn)g(ab)q(o)o(v)o(e)1017 324 y(implicitl)o(y)15 b(declares)k(iden)o(ti\014ers)g(and)f(allo)q(cates)g(storage)1017 374 y(for)h(its)h(formal)d(parameters.)35 b(These)21 b(are)g(functionally) 1017 423 y(equiv)n(alen)o(t)g(to)h(those)i(declared)f Fg(lo)q(cal)e Ft(\(in)i(scop)q(e)g(and)1017 473 y(exten)o(t\),)12 b(and)f(are)g (initialized)f(to)h(the)g(p)q(ositionally)e(equiv-)1017 523 y(alen)o(t)h(actual)f(parameter)h(when)h(the)g(function)f(is)g(in)o(v)o(ok)o (ed.)1017 573 y(Consisten)o(t)j(with)f(the)h(in)o(terpretation)g(of)e(iden)o (ti\014ers,)i(the)1017 623 y(v)n(alue)i(of)h(a)g(formal)e(parameter)i(iden)o (ti\014er,)h(sa)o(y)g Fh(f)t Ft(0,)g(is)f(a)1017 672 y(p)q(oin)o(ter)f(to)f (the)i(lo)q(cation)e(allo)q(cated)g(for)h(the)h(formal)c(\(on)1017 722 y(this,)e(p)q(ossibly)g(recursiv)o(e,)i(in)o(v)o(o)q(cation\),)d(and)h Fh(:f)t Ft(0)h(denotes)1017 772 y(its)i(v)n(alue.)1066 822 y(Since,)28 b(in)d(a)g(structure)i(declaration,)h(there)e(is)f(an)1017 872 y(implicit,)17 b(unnamed)h(formal)e(parameter,)k(the)g(name)e(of)1017 922 y(the)26 b(structure)j(class)d(itself)g(is)g(used)h(to)f(denote)h(this) 1017 971 y(\\zero-th")11 b(parameter.)16 b(This)11 b(con)o(v)o(en)o(tion)f (main)o(tains)e(the)1017 1021 y(p)q(ositional)20 b(corresp)q(ondence)25 b(of)c(actuals)h(and)g(formals.)1017 1071 y(Th)o(us,)11 b(in)g(the)h(example) e(ab)q(o)o(v)o(e,)h Fh(:ar)q(y)q Ft(2)g(denotes)i(the)f(v)n(alue)1017 1121 y(of)18 b(the)h(zero-th)h(parameter,)f(that)g(is)f(the)i(name)d(of)h (the)1017 1171 y(particular)c(segmen)o(t)f(b)q(eing)i(referenced,)h(and)e Fh(x)p Ft([)p Fh(:a)p Ft(,)f Fh(:b)p Ft(])g(is)1017 1220 y(equiv)n(alen)o(t)k (to)g(\()p Fh(x)12 b Ft(+)g Fh(:a)g Fm(\003)f Ft(10)h(+)g Fh(:b)p Ft(\).)29 b(The)18 b(v)n(alue)g(of)f(this)1017 1270 y(expression)e(is)e(a)h (p)q(oin)o(ter)g(to)f(the)i(designated)f(elemen)o(t)g(of)1017 1320 y(the)g(segmen)o(t)g(named)e(b)o(y)i Fh(x)p Ft(.)1066 1370 y(In)c(the)g(follo)o(wing)d(example)h(the)i(structure)h(facilit)o(y)d (and)1017 1420 y(bind)h(declaration)h(ha)o(v)o(e)h(b)q(een)g(used)g(to)f (e\016cien)o(tly)h(enco)q(de)1017 1469 y(a)g(matrix)g(pro)q(duct)i(\()p Fh(z)1372 1475 y Fb(i;j)1423 1469 y Ft(=)1467 1438 y Fa(P)1511 1449 y Ff(9)1511 1482 y Fb(k)q Ff(=0)1580 1469 y Fh(x)1604 1475 y Fb(ik)1636 1469 y Fh(y)1656 1475 y Fb(k)q(j)1692 1469 y Ft(\).)18 b(In)12 b(the)h(inner)1017 1519 y(blo)q(c)o(k)k(the)i(names)f Fh(xr)h Ft(and)f Fh(y)q(c)h Ft(are)g(b)q(ound)f(to)g(p)q(oin)o(ters)1017 1569 y(to)f(the)i(base)g(of)e(a)h(sp)q(eci\014ed)h(ro)o(w)f(of)g Fh(x)f Ft(and)h(column)f(of)1017 1619 y Fh(y)e Ft(resp)q(ectiv)o(ely)m(.)k (These)d(iden)o(ti\014ers)e(are)h(then)f(asso)q(ciated)1017 1669 y(with)h(structure)k(classes)e(whic)o(h)g(allo)o(w)d(one-dimensional) 1017 1719 y(access.)1066 1797 y Fl(b)q(egin)1096 1843 y(structure)h Fk(ar)q(y)q Fj(2[)p Fk(i;)7 b(j)r Fj(])j(=)h(\()p Fk(:ar)q(y)q Fj(2)e(+)f Fk(:i)h Fi(\003)f Fj(10)h(+)g Fk(:j)r Fj(\))p Fl(;)1169 1889 y Fk(r)q(ow)q Fj([)p Fk(i)p Fj(])h(=)h(\()p Fk(:r)q(ow)d Fj(+)h Fk(:i)p Fj(\))p Fl(;)1169 1934 y Fk(col)q Fj([)p Fk(j)r Fj(])h(=)g(\()p Fk(:col)f Fj(+)f Fk(:j)i Fi(\003)f Fj(10\))p Fl(;)1096 1980 y(o)o(wn)58 b Fk(x)p Fj([100])p Fl(,)15 b Fk(y)q Fj([100])p Fl(,)g Fk(z)r Fj([100])p Fl(;)1096 2026 y(map)59 b Fk(ar)q(y)q Fj(2)16 b Fk(x)p Fl(:)p Fk(y)q Fl(:)p Fk(z)r Fl(;)1096 2068 y(.)1096 2085 y(.)1096 2101 y(.)1096 2147 y(incr)d Fk(i)i Fl(from)g Fj(0)f Fl(to)i Fj(9)e Fl(do)1140 2192 y(b)q(egin)g(bind)e Fk(xr)g Fj(=)f Fk(x)p Fj([)p Fk(:i;)5 b Fj(0])p Fl(,)15 b Fk(z)r(r)d Fj(=)e Fk(z)r Fj([)p Fk(:)p Fj(1)p Fk(;)5 b Fj(0])p Fl(;)1169 2238 y(map)15 b Fk(r)q(ow)g(xr)q Fl(:)p Fk(z)r(r)q Fl(;)1169 2284 y(incr)f Fk(j)j Fl(from)d Fj(0)h Fl(to)g Fj(9)g Fl(do)1199 2329 y(b)q(egin)1221 2375 y(register)g Fk(t)p Fl(;)g(bind)d Fk(y)q(c)e Fj(=)h Fk(y)q Fj([0)p Fk(;)6 b(:j)r Fj(])p Fl(;)14 b(map)f Fk(col)i(y)q(c)p Fl(;)1228 2421 y Fk(t)c Fi( )g Fj(0)p Fl(;)1228 2466 y(incr)j Fk(k)i Fl(from)e Fj(0)h Fl(to)g Fj(9)g Fl(do)1273 2512 y Fk(t)10 b Fi( )h Fk(:t)d Fj(+)h Fk(:xr)q Fj([)p Fk(:k)q Fj(])e Fi(\003)i Fk(:y)q(c)p Fj([)p Fk(:k)q Fj(])p Fl(;)1228 2558 y Fk(z)r(r)q Fj([)p Fk(:j)r Fj(])h Fi( )h Fk(:t)p Fl(;)1199 2603 y(end;)965 2770 y Ft(9)p eop %%Page: 10 10 bop 123 42 a Fl(end;)79 84 y(.)79 100 y(.)79 117 y(.)50 163 y(end)0 246 y Ft(Supp)q(ose)11 b(no)o(w)f(that)g(one)g(wishes)h(to)f(alter)g (the)h(represen)o(ta-)0 295 y(tion)g(of)g(the)i(structure)h Fh(ar)q(y)q Ft(2,)e(and)f(access)j(to)e(the)g(arra)o(y)g(is)0 345 y(to)f(b)q(e)h(made)f(through)g(a)h(dop)q(e)f(v)o(ector)i(to)e(de\014ne)i (the)f(rela-)0 395 y(tiv)o(e)g(base)i(of)e(eac)o(h)h(ro)o(w.)k(The)c(ma)r (jor)e(c)o(hange)i(required)h(is)0 445 y(to)e(replace)g(the)h(curren)o(t)g (structure)h(declaration)e(for)f Fh(ar)q(y)q Ft(2)0 495 y(b)o(y)50 574 y Fl(o)o(wn)j Fk(i)p Fj(1[10])p Fl(;)h(map)g Fk(r)q(ow)g(i)p Fj(1)p Fl(;)50 619 y(structure)g Fk(ar)q(y)q Fj(2[)p Fk(i;)7 b(j)r Fj(])j(=)h(\()p Fk(:ar)q(y)q Fj(2)e(+)f Fk(:i)p Fj(1[)p Fk(;)e(i)p Fj(])i(+)h Fk(:j)r Fj(\))p Fl(;)0 702 y Ft(With)19 b(this)h(represen)o(tation,)i(the)f(use)g(of)e(a)g(sp)q(ecial)h(ac-)0 752 y(cessing)c(algorithm)c(\(structure\))18 b(for)c(accessing)j(columns)0 802 y(b)q(ecomes)50 881 y Fl(structure)e Fk(col)q Fj([)p Fk(j)r Fj(])9 b(=)i(\()p Fk(:col)d Fj(+)g Fk(:i)p Fj(1[)p Fk(:j)r Fj(]\))p Fl(;)0 964 y Ft(As)18 b(can)g(b)q(e)g(seen,)h(these)g(fairly)d (simple)g(c)o(hanges)j(in)e(the)0 1014 y(program)10 b(completely)h(c)o(hange) h(its)f(represen)o(tation)j(of)d(the)0 1063 y(data.)31 b(No)18 b(c)o(hanges)h(in)e(the)i(pro)q(cessing)g(algorithm)d(are)0 1113 y(required.)0 1213 y Fu(4.)25 b(Mo)n(re)19 b(on)f(Data)h(Structures)0 1263 y Ft(The)g(example)e(ab)q(o)o(v)o(e)i(has)g(the)g(disadv)n(an)o(tage)f (of)g(using)0 1312 y(the)i(size)f(of)g(the)g(arra)o(y)g(explicitly)f(in)g (the)i(access)h(algo-)0 1362 y(rithm,)10 b(so)h(that)h(separate)g(structure)i (declarations)d(w)o(ould)0 1412 y(b)q(e)20 b(required)h(for)e(arra)o(ys)h(of) f(di\013eren)o(t)h(size.)36 b(It)20 b(should)0 1462 y(b)q(e)15 b(p)q(ossible)g(for)g(ob)o(vious)f(reasons)h(to)g(parameterize)g(the)0 1512 y(dep)q(endency)d(of)d(the)i(size)f(of)g(the)g(information)d(on)o(to)j (whic)o(h)0 1562 y(the)16 b(structure)i(is)d(going)f(to)i(b)q(e)g(mapp)q(ed.) 22 b(The)16 b(required)0 1611 y(\015exibilit)o(y)i(is)h(ac)o(hiev)o(ed)g(b)o (y)g(observing)g(that)h(un)o(til)e(no)o(w)0 1661 y(it)e(only)f(mak)o(es)g (sense)j(to)e(use)i(\\dotted)e(formals")e(in)i(the)0 1711 y(access)21 b(algorithm,)c(b)q(ecause)j Fs(bliss)f Ft(has)g(a)f(strict)i(v)n(alue)0 1761 y(substitution)10 b(of)f(parameters.)16 b(Th)o(us,)11 b(if)d(w)o(e)i(wish)g(\(and)f(w)o(e)0 1811 y(do)i(so)h(wish\),)f(another)h (in)o(terpretation)g(can)f(b)q(e)h(placed)g(on)0 1860 y(the)k(o)q(ccurrence)j (of)c(\\undotted)h(formals")e(in)h(the)i(access)0 1910 y(algorithm.)h(In)d (particular,)f(w)o(e)h(shall)f(use)h(the)h(undotted)0 1960 y(formal)23 b(parameter)i(names)g(to)g(denote)h(the)g(v)n(alue)f(of)0 2010 y(parameters)19 b(asso)q(ciated)g(with)f(particular)g(instances)i(of)0 2060 y(a)12 b(structure)i(\(as)e(distinct)h(from)d(instances)j(of)f(accesses) j(to)0 2109 y(that)f(structure\).)50 2159 y(Using)19 b(\\)p Fm(f)p Ft(")g(and)h(\\)p Fm(g)p Ft(")e(to)i(em)o(brace)f(optional)f(syn)o (tax)0 2209 y(\(i.e.)11 b(\\zero)i(or)f(one)g(instance)h(of"\),)e(the)h Fs(bliss)g Fg(structure)0 2259 y Ft(declaration)i(is)f(of)h(the)g(form)50 2338 y Fl(structure)h Fi(h)p Fj(name)p Fi(i)p Fl([)p Fi(h)p Fj(formal)f(parameter)g(list)p Fi(i)p Fl(])109 2383 y Fj(=)c Fi(f)p Fj([)p Fk(\017)195 2387 y Fe(1)212 2383 y Fi(f)p Fk(;)c(\017)264 2387 y Fe(2)281 2383 y Fi(g)p Fj(])p Fi(g)p Fk(\017)346 2387 y Fe(3)0 2466 y Ft(where)22 b Fh(\017)144 2472 y Ff(3)184 2466 y Ft(is)f(the)h(accessing)h(algorithm)18 b(as)k(b)q(efore,)h Fh(\017)915 2472 y Ff(1)0 2516 y Ft(is)f(an)g(expression)h(whose)g(v)n(alue)e (determines)i(the)g(size)0 2566 y(\(in)h(w)o(ords\))g(of)f(an)h(instance)g (of)g(this)g(structure,)k(and)0 2616 y Fh(\017)17 2622 y Ff(2)60 2616 y Ft(is)d(an)f(expression)i(whose)f(v)n(alue)g(is)f(the)i(name)d(of)1017 42 y(a)d(user)i(de\014ned)g(dynamic)e(allo)q(cation)f(function.)39 b(An)o(y)1017 91 y(of)19 b(the)i(expressions)h Fh(\017)1388 97 y Ff(1)1407 91 y Ft(,)f Fh(\017)1457 97 y Ff(2)1476 91 y Ft(,)g(or)f Fh(\017)1583 97 y Ff(3)1622 91 y Ft(\(but)h(esp)q(ecially)g Fh(\017)1932 97 y Ff(1)1017 141 y Ft(and)16 b Fh(\017)1117 147 y Ff(3)1135 141 y Ft(\))g(ma)o(y)f(in)o(v)o(olv)o(e)g(undotted)h(formals) f(and)h(th)o(us)g(b)q(e)1017 191 y(instance)j(sp)q(eci\014c.)32 b(Consider)19 b(the)g(follo)o(wing)d(example,)1017 241 y(whic)o(h)11 b(also)g(illustrates)h(the)h(extension)f(to)g(the)h(allo)q(cation)1017 291 y(declarations:)1066 369 y Fl(b)q(egin)1111 415 y(structure)i Fk(ar)q(y)q Fj(2[)p Fk(i;)7 b(j)r Fj(])j(=)g([)p Fk(i)f Fi(\003)f Fk(j)r Fj(]\()p Fk(:ar)q(y)q Fj(2)h(+)g Fk(:i)f Fi(\003)h Fk(j)h Fj(+)e Fk(:j)r Fj(\))p Fl(;)1111 461 y(o)o(wn)14 b Fk(ar)q(y)q Fj(2)i Fk(x)p Fl(:)p Fk(y)q Fl(:)p Fk(z)r Fj([10)p Fk(;)6 b Fj(10])p Fl(;)1111 505 y(.)1111 522 y(.)1111 538 y(.)1066 584 y(end;)1017 667 y Ft(This)14 b(is)g(essen)o(tially)g(the)h(same)e(example)g (as)h(has)g(already)1017 717 y(b)q(een)d(presen)o(ted)i(of)d(three,)i(t)o(w)o (o-dimensional,)7 b(10)r Fm(\002)r Ft(10)k(ar-)1017 767 y(ra)o(ys.)16 b(Ho)o(w)o(ev)o(er,)10 b(the)g(information)d(previously)i(con)o(tained)1017 816 y(in)k(a)h Fg(map)g Ft(declaration)f(has)i(no)o(w)e(b)q(een)i(included)g (in)e(the)1017 866 y(allo)q(cation)f(declaration.)17 b(More)d(imp)q(ortan)o (tly)m(,)d(note)j(that)1017 916 y(undotted)22 b(formal)d(names,)j(whic)o(h)g (corresp)q(ond)h(to)e(the)1017 966 y(\\instance)c(actuals:)24 b(10,10")15 b(are)i(used)h(to)f(compute)f(the)1017 1016 y(size)22 b(of)e(the)i(instances|as)h(w)o(ell)d(as)i(in)f(the)h(accessing)1017 1065 y(algorithm)d(itself.)42 b(\(As)22 b(in)g Fs(algol)h Ft(declarations,)g (the)1017 1115 y(instance-actuals)17 b(distribute)g(o)o(v)o(er)g(the)h(names) e(to)h(their)1017 1165 y(left.\))31 b(Th)o(us)18 b(the)h(single)f(structure)i (declaration,)f Fh(ar)q(y)q Ft(2,)1017 1215 y(ma)o(y)14 b(b)q(e)j(used)h(for) e(other)h(instances)h(of)d(similarly)f(struc-)1017 1265 y(tured)i(segmen)o (ts)g(whic)o(h)g(happ)q(en)g(to)g(b)q(e)h(of)e(a)h(size)g(other)1017 1315 y(than)d(10)c Fm(\002)h Ft(10.)1066 1364 y(The)i(form)e(of)h(allo)q (cation)g(and)g(structure)j(declarations)1017 1414 y(illustrated)g (previously)h(are)h(instances)g(of)f(the)g(extended)1017 1464 y(syn)o(tax)e(in)h(whic)o(h)g(the)g(ob)o(vious)f(defaults)h(are)g(c)o(hosen.) 1066 1514 y(Dynamic)26 b(allo)q(cation,)k(of)d(an)h(admittedly)e(simple)1017 1564 y(kind,)12 b(is)i(illustrated)g(b)o(y)g(the)g(follo)o(wing)d(example:) 1066 1642 y Fl(b)q(egin)1092 1688 y(o)o(wn)h Fk(space)p Fj([10000])p Fl(;)i(o)o(wn)e Fk(spaceptr)q Fl(;)i(external)f Fk(er)q(r)q(or)q Fl(;)1096 1734 y(function)f Fk(l)q(ocspacemg)q(r)q Fj(\()p Fk(tog)q(;)6 b(numb;)h(base)p Fj(\))k(=)1125 1779 y Fl(if)j Fk(:tog)1125 1825 y Fl(then)1155 1871 y(b)q(egin)1137 1916 y(if)c Fj(\()p Fk(spaceptr)j Fi( )e Fk(:spaceptr)t Fj(+)s Fk(:numb)p Fj(\))g Fk(>)g Fj(10000)h Fl(then)1199 1962 y(return)j Fk(er)q(r)q(or)q Fj(\(\))p Fl(;)1155 2008 y Fk(space)8 b Fj(+)h Fk(:spaceptr)g Fi(\000)g Fk(:numb)p Fl(;)1155 2053 y(end)1125 2099 y(else)15 b Fj(\()p Fl(if)f Fj(\()p Fk(space)8 b Fj(+)h Fk(:spaceptr)q Fj(\))h Fk(>)h(:base)k Fl(then)1199 2145 y Fk(spaceptr)d Fi( )f Fk(:base)e Fi(\000)f Fk(space)p Fj(\))p Fl(;)1096 2190 y(structure)15 b Fk(l)q(ar)q(y)q Fj([)p Fk(i;)7 b(j)r Fj(])j(=)1214 2236 y([)p Fk(i)e Fi(\003)h Fk(j;)d(l)q(ocspacemg)q(r)q Fj(]\()p Fk(:l)q(ar)q(y)k Fj(+)e Fk(:i)g Fi(\003)h Fk(j)h Fj(+)f Fk(:j)r Fj(\))p Fl(;)1096 2282 y(lo)q(cal)14 b Fk(l)q(ar)q(y)i(x)p Fj([)p Fk(:n;)6 b(:m)i Fj(+)g(1])p Fl(,)15 b Fk(y)q Fj([3)p Fk(;)6 b Fj(5])p Fl(;)1096 2326 y(.)1096 2343 y(.)1096 2359 y(.)1066 2405 y(end)1017 2488 y Ft(The)23 b(lo)q(cal)f(allo)q(cation)g(declaration)h(in)g(this)g(example,) 1017 2538 y Fg(lo)q(cal)e Fh(l)q(ar)q(y)j(x)7 b(:)g(:)g(:)n Ft(,)21 b(con)o(tains)e(expressions)j(whic)o(h)d(m)o(ust)1017 2588 y(b)q(e)c(ev)n(aluated)f(at)g(run-time)f(as)i(instance-actuals;)g(hence) 1017 2637 y(dynamic)25 b(allo)q(cation)h(is)h(required.)59 b(Note)28 b(that)f(the)954 2770 y(10)p eop %%Page: 11 11 bop 0 42 a Ft(structure)17 b(declaration)e(for)g Fh(l)q(ar)q(y)i Ft(con)o(tains)e(the)g(name)f(of)0 91 y(the)20 b(function)g Fh(l)q(ocspacemg)q(r)i Ft(in)e(the)g(p)q(osition)g(denoted)0 141 y Fh(\017)17 147 y Ff(2)60 141 y Ft(in)k(the)i(extended)g(structure)h (declaration)d(syn)o(tax.)0 191 y(In)e(fact)g(the)h(v)n(alue)e(of)g Fh(\017)417 197 y Ff(2)458 191 y Ft(is)h(required)h(to)e(b)q(e)i(that)f(of)0 241 y(a)g(function)g(with)g(three)i(formal)c(parameters,)k(sa)o(y)e Fh(pl)q Ft(,)0 291 y Fh(p)p Ft(2,)e(and)f Fh(p)p Ft(3.)33 b(This)20 b(function)f(is)g(automatically)d(called)0 340 y(\(p)q(ossibly)k(sev)o(eral)i (times\))d(at)i(en)o(try)g(and)f(exit)h(from)e(a)0 390 y(blo)q(c)o(k)24 b(con)o(taining)g(an)h(allo)q(cation)e(declaration)i(whic)o(h)0 440 y(sp)q(eci\014es)18 b(a)d(structure)j(declaration)d(whic)o(h)h(men)o (tions)e(it.)0 490 y(The)g(in)o(terpretation)h(of)e(the)h(parameters)g(is:)50 540 y Fh(p)p Ft(1)d(=)h(1)42 b(The)14 b(function)g(is)g(to)g(allo)q(cate)g(a) f(segmen)o(t)h(of)0 589 y(size)c Fh(p)p Ft(2)f(\(w)o(ords\),)i(and)e(return)i (a)e(p)q(oin)o(ter)g(to)h(this)f(segmen)o(t.)0 639 y Fh(p)p Ft(2)20 b(will)e(b)q(e)j(the)f(v)n(alue)g(of)f(the)h(size)h(expression)g(in)f (the)0 689 y(structure)c(declaration.)i Fh(p)p Ft(3)13 b(has)h(no)g(meaning.) 50 739 y Fh(p)p Ft(1)e(=)i(0)41 b(The)15 b(function)f(is)h(to)g(deallo)q (cate)f(a)h(segmen)o(t)0 789 y(of)d Fh(p)p Ft(2)g(w)o(ords)h(whose)g(b)q (eginning)e(is)i(p)q(oin)o(ted)f(to)g(b)o(y)h Fh(p)p Ft(3)f(\()p Fh(p)p Ft(3)0 839 y(is)f(the)g(v)n(alue)f(returned)i(b)o(y)f(a)f(previous)h (call)f(with)g Fh(p)p Ft(1)h(=)h(1\).)0 888 y(The)i(v)n(alue)e(of)g(the)i (function)f(in)g(this)g(case)h(is)f(imma)o(terial.)50 938 y(Th)o(us,)19 b(in)f(the)g(example)f(instances)j(of)d(structures)k(of)0 988 y(t)o(yp)q(e)h Fh(l)q(ar)q(y)h Ft(are)f(allo)q(cated)f(from)f(the)i(segmen)o (t)g(named)0 1038 y Fh(space)p Ft(.)39 b(Examination)18 b(of)i(the)i (function)e Fh(l)q(ocspacemg)q(r)0 1088 y Ft(rev)o(eals)d(that)f(it)g(allo)q (cates)h(on)f(a)g(last-in-\014rst-out)g(basis,)0 1137 y(and)d(hence)h(this)f (particular)g(allo)q(cation)e(function)h(is)h(only)0 1187 y(suitable)23 b(for)g(lo)q(cal)g(\(stac)o(k)h(discipline\))f(v)n(ariables.)46 b(It)0 1237 y(should)23 b(also)g(b)q(e)h(noted)g(that)g(the)g(example)e(ab)q (o)o(v)o(e)i(is)0 1287 y(similar)14 b(to)j(the)g(follo)o(wing)d(blo)q(c)o(k,) j(whic)o(h)f(uses)i(only)e(the)0 1337 y(simpler)f(declarations)g(of)h(the)g (previous)g(section.)25 b(\(Note)0 1386 y(that)17 b(the)h(example)e(is)h(not) g(completely)f(equiv)n(alen)o(t)h(due)0 1436 y(to)d(p)q(ossible)g(iden)o (ti\014er)g(con\015icts.\))50 1515 y Fl(b)q(egin)79 1561 y(o)o(wn)g Fk(space)p Fj([10000])p Fl(;)i(o)o(wn)e Fk(spaceptr)q Fl(;)79 1606 y(function)e Fk(l)q(ocspacemg)q(r)q Fj(\()p Fk(tog)q(;)7 b(numb;)f(base)p Fj(\))11 b(=)123 1652 y Fl(\045)k Fj(same)e(as)g(ab)q(o)o(v) o(e)j Fl(\045)79 1698 y(bind)d Fk(i)p Fj(1)e(=)g Fk(:n;)5 b(j)r Fj(1)11 b(=)g Fk(:m)d Fj(+)g(1)p Fl(;)79 1743 y(structure)15 b Fk(l)q(ar)q(y)q Fj(1[)p Fk(i;)8 b(j)r Fj(])i(=)g(\()p Fk(:l)q(ar)q(y)q Fj(1)g(+)e Fk(:i)g Fi(\003)h Fk(j)r Fj(1)g(+)f Fk(:j)r Fj(\))p Fl(;)79 1789 y(bind)13 b Fk(i)p Fj(2)e(=)g(3)p Fl(,)k Fk(j)r Fj(2)10 b(=)h(5)p Fl(;)79 1835 y(structure)k Fk(l)q(ar)q(y)q Fj(2[)p Fk(i;)8 b(j)r Fj(])i(=)g(\()p Fk(:l)q(ar)q(y)q Fj(2)g(+)e Fk(:i)g Fi(\003)h Fk(j)r Fj(2)g(+)f Fk(:j)r Fj(\))p Fl(;)79 1880 y(bind)k Fk(x)f Fj(=)f Fk(l)q(ocspacemg)q(r)q Fj(\(1)p Fk(;)d(i)p Fj(1)h Fi(\003)g Fk(j)r Fj(1)p Fk(;)e Fj(0\))p Fl(;)15 b(map)g Fk(l)q(ar)q(y)q Fj(1)g Fk(x)p Fl(;)79 1926 y(bind)e Fk(y)f Fj(=)e Fk(l)q(ocspacemg)q(r)q Fj(\(1)p Fk(;)d(i)p Fj(2)i Fi(\003)f Fk(j)r Fj(2)p Fk(;)e Fj(0\))p Fl(;)16 b(map)e Fk(l)q(ar)q(y)q Fj(2)i Fk(y)q Fl(;)79 1970 y(.)79 1987 y(.)79 2004 y(.)79 2049 y Fk(l)q(ocspacemg)q(r)q Fj(\(0)p Fk(;)7 b(i)p Fj(1)h Fi(\003)h Fk(j)r Fj(1)p Fk(;)d(x)p Fj(\))p Fl(;)79 2095 y Fk(l)q(ocspacemg)q(r)q Fj(\(0)p Fk(;)h(i)p Fj(2)h Fi(\003)h Fk(j)r Fj(2)p Fk(;)d(y)q Fj(\))p Fl(;)50 2141 y(end)0 2224 y Ft(This)20 b(example)g(illustrates)g (that)h(the)g(extended)h(decla-)0 2273 y(rations)13 b(in)o(tro)q(duce)h(no)e (additional)g(p)q(o)o(w)o(er;)h(ho)o(w)o(ev)o(er,)g(the)0 2323 y(extensions)e(do)f(p)q(ermit)g(considerable)h(simpli\014cation)d(and)0 2373 y(clarit)o(y)m(.)50 2423 y(The)21 b(requiremen)o(t)h(that)f(the)h (programmer)d(pro)o(vide)0 2473 y(his)12 b(o)o(wn)f(dynamic)g(allo)q(cation)f (function)i(w)o(as)g(in)o(tro)q(duced)0 2522 y(principally)k(to)i(a)o(v)o (oid)e(prerequisite)j(run-time)e(supp)q(ort.)0 2572 y(Ho)o(w)o(ev)o(er,)27 b(the)e(e\013ect)h(is)e(that)h(the)g(user)g(ma)o(y)d(de\014ne)0 2622 y(allo)q(cation)f(p)q(olicies)i(particularly)g(appropriate)g(to)g(his) 1017 42 y(o)o(wn)12 b(application.)k(Indeed,)d(one)g(migh)o(t)e(exp)q(ect)j (di\013eren)o(t)1017 91 y(allo)q(cation)20 b(p)q(olicies)h(to)h(b)q(e)g(asso) q(ciated)h(with)e(di\013eren)o(t)1017 141 y(structures,)g(or)d(ev)o(en)h (di\013eren)o(t)g(instances)g(of)f(the)h(same)1017 191 y(structure,)c(in)f(a) f(single)h(program.)1017 291 y Fu(Conclusions)1017 390 y Ft(W)m(e)g(ha)o(v)o (e)i(attempted)f(to)g(presen)o(t)i(ab)q(o)o(v)o(e)e(the)h(main)d(fea-)1017 440 y(tures)k(of)f Fs(bliss)p Ft(,)h(a)f(language)f(w)o(e)i(feel)g(esp)q (ecially)f(suited)1017 490 y(to)25 b(that)g(application)e(area)j(usually)e (called)h(\\systems)1017 540 y(programmi)o(ng.)o(")16 b(A)o(t)e(least)g(one)g (p)q(ossible)h(in)o(terpretation)1017 589 y(of)22 b(this)h(description)g(is)g (as)g(an)g(indirect)g(de\014nition)g(of)1017 639 y(the)d(system)g (programming)c(\\problem)j(area.")36 b(In)20 b(the)1017 689 y(simplest)11 b(case,)i(this)g(manifests)e(itself)i(in)f(our)g(break)h(with) 1017 739 y(the)e(traditional)d(in)o(terpretation)j(of)f(iden)o(ti\014ers)h (in)f(higher-)1017 789 y(lev)o(el)19 b(languages)h(as)g(the)g(consequen)o(t)i (demand)d(on)g(the)1017 839 y(programmer)12 b(to)i(b)q(e)h(consciously)g(a)o (w)o(are)f(of)g(the)h(distinc-)1017 888 y(tion)f(b)q(et)o(w)o(een)j(name)d (and)h(v)n(alue.)22 b(Similarl)o(y)m(,)12 b(the)k(struc-)1017 938 y(ture)f(mec)o(hanism)e(ma)o(y)g(b)q(e)j(in)o(terpreted)g(as)f(a)g (statemen)o(t)1017 988 y(of)h(our)h(judgemen)o(t)g(as)g(to)g(the)h(extreme)f (imp)q(ortance)g(of)1017 1038 y(the)11 b(represen)o(tation,)i(mo)q (di\014cation,)c(allo)q(cation)h(issues)i(in)1017 1088 y(systems)i(programmi) o(ng|a)o(nd)e(hence)j(that)f(these)i(issues)1017 1137 y(m)o(ust)k(b)q(e)h (explicitly)g(at)g(the)g(programmer's)e(atten)o(tion)1017 1187 y(and)9 b(con)o(trol.)16 b(The)10 b(decision)f(to)h(exclude)g(the)g Fg(go)h(to)d Ft(state-)1017 1237 y(men)o(t)18 b(is)h(similarly)d(a)j (consequence)j(of)d(our)g(judgemen)o(t)1017 1287 y(as)g(to)g(the)h(imp)q (ortance)f(of)g(writing)f(highly)h(structured)1017 1337 y(programs)8 b(so)i(that)g(they)h(ma)o(y)d(b)q(e)j(read,)g(understo)q(o)q(d,)g(and)1017 1386 y(mo)q(di\014ed.)1066 1436 y(Considerable)18 b(exp)q(erience)i(has)e(b)q (een)h(gained)f(in)f(the)1017 1486 y(use)11 b(of)g Fs(bliss)f Ft(for)h(writing)f(systems.)17 b(The)12 b Fs(bliss)e Ft(compiler)1017 1536 y(itself,)j(an)i Fs(apl)g Ft(system,)f(a)h Fs(w)l(a)m(tf)o(or)p Ft(-lik)o(e)f(fast)h Fs(f)o(or)m(tran)1017 1586 y Ft(compiler,)k Fs(simula)p Ft(-lik)o(e)h(ev)o(en)o(t)h(based)g(sim)o(ulation)d(sys-)1017 1636 y(tem,)10 b(c)o(hess)k(pla)o(ying)c(programs,)g(input-output)i (routines,)1017 1685 y(debugging)k(aids,)h(parts)h(of)f(an)g(op)q(erating)g (system,)g(and)1017 1735 y(so)f(on,)g(ha)o(v)o(e)g(b)q(een)h(written)g(in)e Fs(bliss)p Ft(.)25 b(This)16 b(represen)o(ts)1017 1785 y(on)g(the)i(order)g (of)f(100,000)e(lines)i(of)f(co)q(de,)j(and)d(forms)g(a)1017 1835 y(reasonable)d(base)g(for)g(forming)e(some)h(conclusions)h(ab)q(out)1017 1885 y(the)i(language.)21 b(By)15 b(suc)o(h)h(measures)f(as)g(readabilit)o(y) f(and)1017 1934 y(mo)q(di\014abili)o(t)o(y)m(,)8 b(lines)k(of)f(\(debugged\)) i(co)q(de)f(pro)q(duced)h(p)q(er)1017 1984 y(programmer)i(p)q(er)k(da)o(y)m (,)f(qualit)o(y)f(of)h(co)q(de)h(pro)q(duced)g(b)o(y)1017 2034 y(the)g(compiler,)f(and)h(user)h(reaction,)g(the)g(language)e(has)1017 2084 y(b)q(een)d(a)e(success.)1066 2134 y(Of)k(more)f(in)o(terest,)i(p)q (erhaps,)h(are)e(the)g(things)g(whic)o(h)1017 2183 y(w)o(e)g(ha)o(v)o(e)f (learned)i(whic)o(h)e(will)g(cause)i(us)f(to)f(extend)i(the)1017 2233 y(language)f(or)h(do)g(things)h(di\013eren)o(tly)f(if)g(w)o(e)h(w)o(ere) g(to)f(do)1017 2283 y(them)12 b(o)o(v)o(er)h(again.)j(W)m(e)d(men)o(tion)e (three,)j(one)f(of)f(whic)o(h)h(is)1017 2333 y(curren)o(tly)h(b)q(eing)g (implemen)o(ted.)1066 2383 y(1.)27 b(The)18 b(implemen)o(tatio)o(n)c (presumes)k(a)f(stac)o(k)g(whic)o(h)1017 2433 y(is)k(used)h(for)f(parameters) g(to)h(functions,)h(return)f(links,)1017 2482 y(and)16 b(lo)q(cal)f(v)n (ariables.)26 b(The)17 b(user)g(do)q(es)g(not)g(ha)o(v)o(e)f(direct)1017 2532 y(con)o(trol)i(o)o(v)o(er)i(the)f(implicit)e(structure.)36 b(Since)19 b(the)h(im-)1017 2582 y(plemen)o(tation)13 b(is)i(quite)g (e\016cien)o(t,)h(there)g(is)f(little)f(reason)1017 2632 y(for)23 b(the)i(user)g(to)e(o)o(v)o(erride)i(it)e(so)h(long)f(as)h(his)g(en)o(tire) 954 2770 y(11)p eop %%Page: 12 12 bop 0 42 a Ft(system)16 b(is)g(written)h(in)f Fs(bliss)p Ft(.)26 b(Ho)o(w)o(ev)o(er,)17 b(if)e(one)i(wishes)0 91 y(to)f(use)h Fs(bliss)f Ft(to)g(rewrite)h(parts)g(of)f(an)g(existing)g(system)0 141 y(\(for)21 b(example,)g(w)o(e)g(are)g(rewriting)g(parts)h(of)e(the)i Fs(pdp-)0 191 y(10)g Ft(op)q(erating)g(system\),)i(one)f(\014nds)f(that)h (con\015icts)g(in)0 241 y(parameter)9 b(passing)h(con)o(v)o(en)o(tions,)g (register)h(con)o(v)o(en)o(tions,)0 291 y(etc.,)j(arise.)50 340 y(A)22 b(partial)f(solution)h(to)g(these)h(problems)e(is)h(imple-)0 390 y(men)o(ted)g(in)g(the)i(curren)o(t)g(compiler)d(in)h(that)h(the)g(user)0 440 y(ma)o(y)17 b(con)o(trol)h(the)h(compiler's)e(register)i(allo)q(cation)e (p)q(ol-)0 490 y(icy)m(.)g(Another)d(partial)e(solution)g(\(not)g(y)o(et)i (implem)o(en)o(ted\))0 540 y(w)o(ould)19 b(p)q(ermit)f(a)i Fr(structur)n(e)i Ft(to)d(b)q(e)h(asso)q(ciated)g(with)g(a)0 589 y(function)i(to)g(sp)q(ecify)h(ho)o(w)f(parameters)g(are)h(accessed.)0 639 y(The)12 b(most)f(di\016cult)h(asp)q(ect)h(of)f(the)g(problem)f(is)h(to)g (devise)0 689 y(a)i(means)g(b)o(y)g(whic)o(h)h(the)g(user)h(ma)o(y)d(sp)q (ecify)i(the)g(sc)o(hema)0 739 y(for)f(generation)g(of)f(prologue)g(and)h (epilogue)f(co)q(de.)50 789 y(2.)34 b(The)20 b(\\escap)q(e")g(mec)o(hanism)d (is)i(essen)o(tial)h(in)f(the)0 839 y(con)o(text)11 b(of)g(a)f(\\)p Fg(go)i(to)p Ft(-less")e(language.)17 b(It)10 b(is)h(unfortunate)0 888 y(that)18 b(w)o(e)g(ha)o(v)o(e)f(eigh)o(t)g(separate)i(op)q(erations)f (\()p Fg(exitlo)q(op)p Ft(,)0 938 y Fg(exitblo)q(c)o(k)p Ft(,)i(etc.\),)k (all)c(of)g(whic)o(h)h(p)q(erform)g(essen)o(tially)0 988 y(the)f(same)e (function.)33 b(Our)20 b(mistak)o(e)d(w)o(as)i(in)g(assuming)0 1038 y(that)h(there)i(is)e(no)g(need)h(for)f(a)g(lab)q(el)f(once)i(the)g Fg(go)i(to)0 1088 y Ft(is)c(remo)o(v)o(ed.)34 b(It)20 b(w)o(ould)e(ha)o(v)o (e)h(b)q(een)i(b)q(etter)g(to)e(p)q(ermit)0 1137 y(a)h(con)o(trol)h(en)o (vironmen)o(t)e(\(a)h(blo)q(c)o(k,)i(a)e(lo)q(op,)h(or)g(what-)0 1187 y(ev)o(er\))d(to)g(b)q(e)g(lab)q(eled,)f(and)h(to)f(use)h(a)f(single)g (op)q(eration,)0 1237 y(sa)o(y)j(\\)p Fg(lea)o(v)o(e)f Fm(h)p Ft(lab)q(el)p Fm(i)g Fh(\017)p Ft(",)i(to)f(co)o(v)o(er)h(all)e(of)g(these)j (cases.)0 1287 y(A)14 b(simple)f(extension)h(to)g(this)g(notion,)f(\\)p Fg(lea)o(v)o(e)g Fm(h)p Ft(function)0 1337 y(name)p Fm(i)g Fh(\017)p Ft(",)g(could)h(cause)h(an)e(exit)h(from)e(sev)o(eral)j(\(nested\)) 0 1386 y(calls.)50 1436 y(3.)26 b(An)17 b(assumption)f(made)f(b)o(y)i(adv)o (o)q(cates)g(of)f(imple-)0 1486 y(men)o(tation)d(languages,)h(including)f (the)i(authors,)g(is)f(that)0 1536 y(systems)19 b(written)h(in)e(a)h (higher-lev)o(el)f(language)g(will)g(b)q(e)0 1586 y(ultimately)j(more)h (e\016cien)o(t)i(than)f(those)g(pro)q(duced)i(in)0 1636 y(assem)o(bly)16 b(language.)29 b(The)18 b(reasoning)f(b)q(ehind)h(this)g(as-)0 1685 y(sumption)12 b(is)i(simply)d(that)j(the)g(cost)h(of)e(redesigning)h (and)0 1735 y(reco)q(ding)19 b(\\critical")f(p)q(ortions)g(of)g(a)g(system)h (is)f(smaller)0 1785 y(when)h(it)f(is)g(written)h(in)f(a)g(higher-lev)o(el)g (language)f(than)0 1835 y(when)d(it)g(is)g(written)g(in)f(assem)o(bly)g(co)q (de,)h(and)g(hence)h(it)f(is)0 1885 y(more)e(practical)i(to)f(p)q(olish)g (the)h(\014nal)f(pro)q(duct.)18 b(The)c(cor-)0 1934 y(rectness)19 b(of)c(this)h(assumption)f(dep)q(ends)i(up)q(on)g(kno)o(wing)0 1984 y(whic)o(h)12 b(p)q(ortions)g(of)f(the)i(system)e(are)i(the)f (\\critical")f(ones.)0 2034 y(Exp)q(erience)18 b(indicates)f(that)g(our)f(in) o(tuition)f(ab)q(out)i(suc)o(h)0 2084 y(things)d(is)g(p)q(o)q(or.)50 2134 y(It)25 b(migh)o(t)e(b)q(e)j(argued)f(that)g(programmers)f(should)0 2183 y(build)16 b(mec)o(hanisms)f(in)o(to)h(their)h(system)f(to)h(measure)f (its)0 2233 y(e\016ciency|indeed)d(the)g(same)f(argumen)o(t)f(ma)o(y)g(b)q(e) i(made)0 2283 y(for)k(built-in)f(debugging)h(to)q(ols.)29 b(In)18 b(practice,)h(ho)o(w)o(ev)o(er,)0 2333 y(giv)o(en)d(the)g(decision)g(of)g(ho) o(w)g(to)f(exp)q(end)j(to)q(da)o(y's)d(e\013ort,)0 2383 y(a)d(programmer)f (will)g(usually)g(opt)i(for)f(pushing)g(the)i(main)0 2433 y(line)9 b(of)g(the)h(pro)r(ject)h(rather)f(than)g(building)e(these)j(supp)q(ort)0 2482 y(to)q(ols.)35 b(On)21 b(the)f(other)g(hand,)h(he)f(will)f(use)h(suc)o (h)h(to)q(ols)0 2532 y(if)g(they)g(already)g(exist.)41 b(One)22 b(suc)o(h)g(to)q(ol)f(installed)g(in)1017 42 y(the)16 b Fs(bliss)g Ft(compiler)e(will,)h(under)h(con)o(trol)g(of)f(a)h(compile)1017 91 y(time)22 b(toggle,)j(cause)g(a)f(user-de\014ned)i(function)e(to)f(b)q(e) 1017 141 y(called)j(on)h(eac)o(h)g(en)o(try)g(\(and)g(exit\))g(from)e(a)h (con)o(trol)1017 191 y(en)o(vironmen)o(t)h(\(blo)q(c)o(k,)k(conditional,)f (lo)q(op,)h(function,)1017 241 y(etc.\).)61 b(P)o(arameters)28 b(to)g(this)h(function)f(sp)q(ecify)g(the)1017 291 y(\(source\))18 b(line)e(n)o(um)o(b)q(er,)f(t)o(yp)q(e)i(of)f(con)o(trol)h(en)o(vironmen)o (t,)1017 340 y(etc.)h(The)11 b(user)h(ma)o(y)m(,)d(of)h(course,)j(do)e (whatev)o(er)g(he)h(pleases)1017 390 y(in)17 b(this)g(function;)i(ho)o(w)o (ev)o(er,)f(standard)g(functions)g(ha)o(v)o(e)1017 440 y(b)q(een)11 b(written)h(whic)o(h)e(coun)o(t)i(the)f(frequency)h(of)e(execution)1017 490 y(of)k(the)h(v)n(arious)f(expressions)i(and)e(accum)o(ulate)g(the)h(time) 1017 540 y(sp)q(en)o(t)h(in)g(these)h(expressions.)26 b(V)m(ery)16 b(simple)e(analysis)i(of)1017 589 y(the)h(data)f(collected)i(b)o(y)e(these)i (routines)g(can)f(so)g(helpful)1017 639 y(in)c(determining)g(when)h(further)h (e\013ort)f(will)f(b)q(e)h(fruitful.)1066 793 y Fr(A)n(cknow)r(le)n(dgments.) 23 b Ft(W)m(e)15 b(w)o(ould)g(lik)o(e)f(to)i(express)h(our)1017 843 y(deep)h(gratitude)g(to)f(Messrs.)i(Gesc)o(hk)o(e,)g(Wile,)f(and)f(Ap-) 1017 893 y(p)q(erson)f(\(graduate)f(studen)o(ts)h(at)f(Carnegie-Mellon)f (Uni-)1017 943 y(v)o(ersit)o(y\),)f(eac)o(h)h(of)f(whom)e(has)j(made)e(v)n (aluable)g(con)o(tribu-)1017 992 y(tions)i(to)g(b)q(oth)g(the)h(design)f(and) g(implemen)o(tation)d(of)i(the)1017 1042 y(language.)1017 1142 y Fu(References)1026 1246 y Ft(1.)20 b Fs(epl)14 b Ft(reference)j(man)o(ual,) 11 b(Pro)r(ject)k Fs(ma)o(c)p Ft(,)e(April)g(1966.)1026 1300 y(2.)20 b(Burroughs)30 b(B5500)e(Extended)i Fs(algol)g Ft(reference)1079 1350 y(man)o(ual.)15 b(Burroughs)g(Corp.,)e(Detroit,)h(Mic)o(h.)1026 1405 y(3.)20 b(Wirth,)h(N.)f(\\PL/360,)h(A)f(programming)d(language)1079 1454 y(for)j(the)h(360)f(computers.")37 b Fr(J.)20 b(A)o(CM)h(15)p Ft(,)h(1)e(\(Jan.)1079 1504 y(1968\),)12 b(37{74.)1026 1559 y(4.)20 b(Ric)o(hards,)12 b(M.)f(\\)p Fs(bcpl)p Ft(:)17 b(A)c(to)q(ol)e(for)h (compiler)f(writing)1079 1608 y(and)19 b(system)f(programming.)o(")31 b(Pro)q(c.)j Fs(afips)19 b Ft(1969)1079 1658 y Fs(sjcc)p Ft(,)28 b(V)m(ol.)d(34,)30 b Fs(afips)d Ft(Press,)k(Mon)o(tv)n(ale,)e(N.J.,)1079 1708 y(pp.)13 b(557{566.)1026 1762 y(5.)20 b(Naur,)26 b(P)m(.,)f(and)e (Randell,)i(B.)f(\(Eds.\))48 b(\\Soft)o(w)o(are)1079 1812 y(engineering.")62 b(Scien)o(ti\014c)29 b(A\013airs)g(Div.,)h Fs(na)m(to)p Ft(,)1079 1862 y(Brussels,)14 b(Belgium)d(\(Conference)k(held)d(in)h(Jan.)f(1969)1079 1912 y(in)h(Garmish\).)1026 1966 y(6.)20 b Fs(bliss)30 b Ft(reference)i(man)o (ual.)64 b(Computer)30 b(Science)1079 2016 y(Dept.)20 b(Rep.,)g (Carnegie-Mellon)f(Univ)o(ersit)o(y)m(,)i(Pitts-)1079 2066 y(burgh,)13 b(P)o(a.,)g(Jan.)h(15,)e(197O.)1026 2120 y(7.)20 b Fs(pdp-10)14 b Ft(reference)j(handb)q(o)q(ok.)j(Digital)12 b(Equipmen)o(t)1079 2170 y(Corp)q(oration,)h(Ma)o(ynard,)g(MA,)g(197O.)1026 2224 y(8.)20 b(Lang,)34 b(Charles)e(A.)e(\\SAL|Systems)h(Assem)o(bly)1079 2274 y(Language.")44 b(Pro)q(c.)23 b Fs(afips)g Ft(1969)f Fs(sjcc)p Ft(,)i(V)m(ol.)d(34,)1079 2324 y Fs(afips)14 b Ft(Press,)h(Mon)o(tv)n(ale,)e (N.J.,)g(pp.)g(543{555.)1026 2378 y(9.)20 b(Bell,)10 b(J.)g(\\The)h (quadratic)f(quotien)o(t)g(metho)q(d:)15 b(A)c(hash)1079 2428 y(co)q(de)16 b(eliminating)c(secondary)k(clustering.")22 b Fr(Comm.)1079 2478 y(A)o(CM)14 b(13)p Ft(,)g(2)g(\(F)m(eb.)f(1970\),)g(pp.)g (107{109.)p 1923 2532 27 27 v 954 2770 a(12)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF