(original) (raw)

%!PS-Adobe-2.0 %%Creator: This is dvips, version 5.3 (C) 1986-90 Radical Eye Software %%Title: cacm-final.dvi %%Pages: 26 1 %%BoundingBox: 0 0 612 792 %%EndComments %%BeginDocument: tex.pro /TeXDict 200 dict def TeXDict begin /bdf{bind def}def /@rigin{72 Resolution div 72 VResolution div neg scale translate}bdf /@letter{Resolution VResolution -10 mul @rigin}bdf /@landscape{[0 1 -1 0 0 0]concat Resolution VResolution @rigin}bdf /@a4{Resolution VResolution -10.6929133858 mul @rigin}bdf /@legal{ Resolution VResolution -13 mul @rigin}bdf /@manualfeed{statusdict /manualfeed true put}bdf /@copies{/#copies exch def}bdf /@FontMatrix[1 0 0 -1 0 0]def /@FontBBox[0 0 0 0]def /dmystr(ZZf@@@)def /newname{dmystr cvn}bdf /df{ /fontname exch def dmystr 2 fontname cvx(@@@@)cvs putinterval newname 7 dict def newname load begin /FontType 3 def /FontMatrix @FontMatrix def /FontBBox @FontBBox def /BitMaps 256 array def /BuildChar{CharBuilder}def /Encoding IdentityEncoding def end fontname{/foo setfont}2 array copy cvx def fontname load 0 dmystr 6 string copy cvn cvx put}bdf /dfe{newname dup load definefont setfont}bdf /ch-image{ch-data 0 get}bdf /ch-width{ch-data 1 get}bdf /ch-height {ch-data 2 get}bdf /ch-xoff{ch-data 3 get}bdf /ch-yoff{ch-data 4 get}bdf /ch-dx{ch-data 5 get}bdf /CharBuilder{save 3 1 roll exch /BitMaps get exch get /ch-data exch def ch-data null ne{ch-dx 0 ch-xoff ch-yoff neg ch-xoff ch-width add ch-height ch-yoff sub setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-height ch-yoff sub .1 add]{ch-image}imagemask}if restore}bdf /dc{/ch-code exch def /ch-data exch def newname load /BitMaps get ch-code ch-data put}bdf /bop{gsave /SaveImage save def 0 0 moveto}bdf /eop{clear SaveImage restore showpage grestore}bdf /@start{/VResolution exch def /Resolution exch def /IdentityEncoding 256 array def 0 1 255{IdentityEncoding exch 1 string dup 0 3 index put cvn put}for}bdf /p{show}bdf /RuleMatrix[1 0 0 -1 -.1 -.1]def /BlackDots 8 string def /v{gsave currentpoint translate false RuleMatrix{BlackDots}imagemask grestore}bdf /a{moveto}bdf /delta 0 def /tail{ dup /delta exch def 0 rmoveto}bdf /b{exch show tail}bdf /c{show delta 4 sub tail}bdf /d{show delta 3 sub tail}bdf /e{show delta 2 sub tail}bdf /f{show delta 1 sub tail}bdf /g{show delta 0 rmoveto}bdf /h{show delta 1 add tail}bdf /i{show delta 2 add tail}bdf /j{show delta 3 add tail}bdf /k{show delta 4 add tail}bdf /l{show -4 0 rmoveto}bdf /m{show -3 0 rmoveto}bdf /n{show -2 0 rmoveto}bdf /o{show -1 0 rmoveto}bdf /q{show 1 0 rmoveto}bdf /r{show 2 0 rmoveto}bdf /s{show 3 0 rmoveto}bdf /t{show 4 0 rmoveto}bdf /w{0 rmoveto}bdf /x{0 exch rmoveto}bdf /y{3 2 roll show moveto}bdf /bos{/section save def}bdf /eos{clear section restore}bdf end %%EndDocument TeXDict begin 300 300 @start /fa df[<00004000000000E000000000E000000000E00000 0001F000000001F000000003F800000002780000000278000000043C000000043C000000043C00 0000081E000000081E000000101F000000100F000000100F000000200780000020078000006007 C000004003C000004003C00000FFFFE00000FFFFE000008001E000010000F000010000F0000200 00F800020000780002000078000400003C000400003C001E00003E00FFC003FFE0FFC003FFE0> 35 35 3 0 41]65 dc[<0003F802001FFF06007E038601F000CE03E0003E0780001E0F00001E1F 00000E1E0000063E0000063C0000067C0000027C00000278000002F8000000F8000000F8000000 F8000000F8000000F8000000F8000000F8000000780000007C0000027C0000023C0000023E0000 021E0000041F0000040F0000080780001803E0003001F00060007E03C0001FFF000003FC00>31 36 4 1 39]67 dc[29 34 4 0 37]80 dc[< 00040000000E0000000E0000000E0000001F0000001F0000003F800000278000002780000043C0 000043C0000043C0000081E0000081E0000101F0000100F0000100F00003FFF800020078000600 7C0004003C0004003C000C001E000C001E003C003F00FF00FFE0>27 26 1 0 31]97 dc[<003F 0201C0C603002E0E001E1C000E1C0006380006780002700002700002F00000F00000F00000F000 00F00000F000007000027000027800023800041C00041C00080E000803003001C0C0003F00>23 26 2 0 29]99 dc[23 26 2 0 28]101 dc[<003F810001E063000380170006000F000C0007 001C00030038000300780001007800010070000100F0000000F0000000F0000000F0000000F000 0000F001FFE070001F0078000F0078000F0038000F001C000F000C000F0006000F000380170001 E06300003F8100>27 26 2 0 32]103 dc[25 26 2 0 31]104 dc[12 26 1 0 15]105 dc [20 26 2 0 26]108 dc[25 26 2 0 31]110 dc[<007F800001C0E000070038000E001C001C000E003C000F0038000700 780007807000038070000380F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003 C07800078078000780380007003C000F001C000E000E001C000700380001C0E000007F8000>26 26 2 0 32]111 dc[26 26 2 0 30]114 dc[<07E100181B00300700600300600300E00100E00100E00100F00000F800007F80 003FF8001FFC000FFE0000FF00000F00000780000780800380800380800380C00300C00700E006 00DC0C0083F000>17 26 2 0 23]115 dc[<7FFFFF00701E0700601E0100401E0100C01E018080 1E0080801E0080801E0080001E0000001E0000001E0000001E0000001E0000001E0000001E0000 001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000003F00 0003FFF000>25 26 1 0 29]116 dc[25 26 2 0 31]117 dc[<7FE07F800FC03E000F80180007C0100003C0200003E0600001 F0400000F0800000790000007D0000003E0000001E0000001F0000000F0000001780000037C000 0023C0000041E0000081F0000180F0000100780002007C0006003C000E003E001E003F00FF80FF E0>27 26 1 0 31]120 dc[28 26 1 0 31]121 dc dfe /fb df[<00FFFFF80000FFFFFE000007801F000007800780000F00 07C0000F0003C0000F0003C0000F0003C0001E0007C0001E0007C0001E0007C0001E000780003C 000F80003C000F00003C001E00003C003C00007801F000007FFFC0000078000000007800000000 F000000000F000000000F000000000F000000001E000000001E000000001E000000001E0000000 03C000000003C000000003C000000007C0000000FFFC000000FFFC000000>34 34 2 0 32]80 dc[<00007F00000003C1E000000E007000003C0038000078001C0000F0001E0001E0000E0003C0 000F000780000F000F80000F000F00000F801F00000F803E00000F803E00000F807C00000F807C 00000F807C00000F80F800001F00F800001F00F800001F00F800001E00F800003E00F000003E00 F000007C00F000007C00F00000F800F00000F000F00001F000780F01E000783083C00038408780 003C404E00001E405C00000F4078000003C1E0100000FFC010000000C030000000C020000000E0 60000000E1C0000000FFC0000000FF80000000FF000000007E000000003C0000>33 45 3 10 39 ]81 dc[<00FFFFF00000FFFFFC000007803F000007800F80000F0007C0000F0003C0000F0003C0 000F0003C0001E0007C0001E0007C0001E0007C0001E000F80003C000F00003C001E00003C0078 00003C01E000007FFF00000078038000007801C000007800E00000F000E00000F000E00000F000 F00000F000F00001E001F00001E001F00001E001F00001E001F00003C003F00003C003F02003C0 03F02007C001F040FFFC01F040FFFC00F1800000003E00>35 35 2 1 38]82 dc[<00001E0000 0063800000C7800001C7800001C300000180000003800000038000000380000003800000070000 00070000000700000007000000FFF80000FFF800000E0000000E0000000E0000000E0000001E00 00001C0000001C0000001C0000001C0000001C0000003800000038000000380000003800000038 0000007000000070000000700000007000000060000000E0000000E0000000E0000000C0000070 C00000F1800000F1000000620000003C000000>25 45 2 10 24]102 dc[<001E1800713800C0 B80180700380700700700F00700E00E01E00E01E00E01E00E03C01C03C01C03C01C03C01C03C03 801C03801C07800C0B8006370003C700000700000700000E00000E00000E00701C00F01800F030 0060E0003F8000>21 31 1 10 24]103 dc[<01E0F006310C081A1C101A3C201C3C201C18201C 0000380000380000380000380000700000700000700000700860E010F0E010F0E020E170404230 803C1F00>22 21 2 0 28]120 dc dfe /fc df[12 3 1 -10 17]45 dc[<00 1FE000007FFC0000FFFF0003F01F0007C007000F8000000F0000001E0000003C0000003C000000 78000000780000007800000078000000F0000000F0000000F0000000F0000000F0000000F00000 00F001FF80F001FF80F001FF80780007807800078078000780780007803C0007803C0007801E00 07800F0007800F80078007C0078003F00F8000FFFF80007FFE00001FF000>25 37 4 1 33]71 dc[<00FF0003FFE007FFF00F81F01E00703C00003C00007800007800007800007800007800007C 00003E00003F00001FE0000FFC0007FF8001FFC0003FE00003F00000F800007800007C00003C00 003C00003C00003C00003C00003CC00078E00078F800F07F03E01FFFC00FFF8001FE00>22 37 2 1 28]83 dc[<0001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E0 0001E00001E003F1E007FDE00FFFE01F07E03C03E07C01E07801E0F801E0F001E0F001E0F001E0 F001E0F001E0F001E0F001E07801E07803E03C03E03F0FE01FFDE00FF9E003E1E0>19 35 2 0 26]100 dc[17 35 4 0 26]104 dc[4 35 3 0 11]105 dc[<00FC0007FF800FFFC01F03E03E01F03C00F0780078700038F000 3CF0003CF0003CF0003CF0003CF0003C7800787800787C00F83E01F01F03E00FFFC007FF8000FC 00>22 22 1 0 25]111 dc[19 32 4 10 26] 112 dc[<07F01FFC3FFE3C0E7806780078007C003F003FF01FF80FFC01FE001F000F000F000FC0 0FF81EFFFE3FFC0FF0>16 22 1 0 19]115 dc dfe /fd df[<03F0000FFC001FFE003FFF007F FF807FFF80FFFFC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC07FFF807FFF803FFF001F FE000FFC0003F000>18 20 3 -2 25]15 dc[2 49 6 12 14]106 dc dfe /fe df[<0038007800F001E003C007800F000E001C001C0038003800700070007000E000E0 00E000E000E000E000E000E000E000E000700070007000380038001C001C000E000F00078003C0 01E000F800780038>13 40 8 5 26]40 dc[<6000F00078003C001E000F000780038001C001C0 00E000E0007000700070003800380038003800380038003800380038003800700070007000E000 E001C001C0038007800F001E003C007800F0006000>13 40 4 5 26]41 dc[<00E00000E00000 E00000E00040E040F0E1E0F8E3E07EEFC01FFF0007FC0003F80007FC001FFF007EEFC0F8E3E0F0 E1E040E04000E00000E00000E00000E000>19 21 3 -5 26]42 dc[<0030000078000078000078 000078000078000078000078000078007FFFF0FFFFF8FFFFF87FFFF00078000078000078000078 00007800007800007800007800003000>21 22 2 -4 26]43 dc[<183E7E7F3F1F070E0E1CFCF8 E0>8 13 9 7 26]44 dc[<7FFFC0FFFFE0FFFFE07FFFC0>19 4 3 -13 26]45 dc[<3078FCFC78 30>6 6 10 0 26]46 dc[<0000C00001E00001E00003E00003C00007C0000780000F80000F0000 0F00001F00001E00003E00003C00007C0000780000780000F80000F00001F00001E00003E00003 C00003C00007C0000780000F80000F00001F00001E00001E00003E00003C00007C0000780000F8 0000F00000F00000600000>19 39 3 4 26]47 dc[<01F00007FC000FFE001F1F001C07003803 803803807001C07001C07001C0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000 E0F001E07001C07001C07803C03803803C07801C07001F1F000FFE0007FC0001F000>19 30 3 0 26]48 dc[<00C001C001C003C007C00FC07FC0FDC071C001C001C001C001C001C001C001C001C0 01C001C001C001C001C001C001C001C001C001C07FFFFFFF7FFF>16 30 5 0 26]49 dc[<03F0 000FFC001FFF003C0F807803C07001C0E000E0F000E0F000E06000E00000E00000E00001C00001 C0000380000780000F00000E00003C00007C0000F00001E00003C0000780000F00001E00E03C00 E07FFFE0FFFFE07FFFE0>19 30 3 0 26]50 dc[<01FC0007FF001FFF801E03C03C01C03C00E0 3C00E00000E00000E00001C00003C000078001FF0001FF0001FFC00003E00000F0000070000038 000038000038600038F00038F00038E000707000F07E03E03FFFC00FFF0001FC00>21 30 2 0 26]51 dc[<3FFFC03FFFC03FFFC038000038000038000038000038000038000038000038000039 F8003FFE003FFF003E07803803C03001C00001C00000E00000E00000E06000E0F000E0F001C0E0 01C07003807C0F803FFF000FFC0003F000>19 30 3 0 26]53 dc[21 31 2 0 26]55 dc[<01FC0007FF001FFFC01F07C03C01E07800F0700070700070 7000707800F03800E01E03C00FFF8003FE0007FF001F8FC03C01E07800F0700070E00038E00038 E00038E00038F000787000707800F03E03E01FFFC007FF0001FC00>21 30 2 0 26]56 dc[<01 F00007FC001FFE003E0F003807807003807001C0E001C0E001C0E001E0E000E0E000E0E001E070 01E07803E03C0FE01FFFE00FFCE003F0E00001C00001C00001C0000380600380F00700F00F00F0 3E007FFC003FF0000FC000>19 30 3 0 26]57 dc[<3078FCFC78300000000000000000003078 FCFC7830>6 21 10 0 26]58 dc[<183C7E7E3C18000000000000000000183C7E7E3E1E0E0E1C 3CF8F0C0>7 28 9 7 26]59 dc[<7FFFF0FFFFF8FFFFF87FFFF00000000000000000000000007F FFF0FFFFF8FFFFF87FFFF0>21 12 2 -9 26]61 dc[<003800007C00007C00006C0000EE0000EE 0000EE0000EE0000C60001C70001C70001C70001C7000383800383800383800383800783C00701 C007FFC007FFC007FFC00E00E00E00E00E00E00E00E01C00707F83FCFF83FE7F83FC>23 30 1 0 26]65 dc[21 30 2 0 26]66 dc[<007C3801FF3807FFF80F83 F81E00F81C0078380078380038700038700038700000E00000E00000E00000E00000E00000E000 00E00000E000007000007000387000383800383800381C00701E00F00F83E007FFC001FF80007C 00>21 30 2 0 26]67 dc[22 30 1 0 26]68 dc[<7FFFFCFF FFFC7FFFFC0E001C0E001C0E001C0E001C0E001C0E00000E00000E07000E07000E07000FFF000F FF000FFF000E07000E07000E07000E00000E00000E00000E000E0E000E0E000E0E000E0E000E7F FFFEFFFFFE7FFFFE>23 30 1 0 26]69 dc[<7FFFFCFFFFFC7FFFFC0E001C0E001C0E001C0E00 1C0E001C0E00000E00000E07000E07000E07000FFF000FFF000FFF000E07000E07000E07000E00 000E00000E00000E00000E00000E00000E00000E00007FE000FFF0007FE000>22 30 1 0 26] 70 dc[<00F8E003FEE007FFE00F07E01E03E03C01E03800E07000E07000E07000E0E00000E000 00E00000E00000E00000E00000E00FF8E00FF8E00FF8E000E07000E07000E07001E03801E03C03 E01E03E00F07E007FFE003FEE000F8E0>21 30 2 0 26]71 dc[21 30 2 0 26]72 dc[17 30 4 0 26]73 dc[<03FFC003FF E003FFC0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E 00000E00000E00000E00000E00000E00000E00000E00000E00600E00F00E00F01E00F03C007FF8 003FF0000FC000>19 30 4 0 26]74 dc[23 30 1 0 26]75 dc[<7FE000FFF0007FE0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E 00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00380E00380E00380E 00380E00387FFFF8FFFFF87FFFF8>21 30 2 0 26]76 dc[<7E003F00FF007F807F007F001D80 DC001D80DC001D80DC001DC1DC001DC1DC001CC19C001CC19C001CE39C001CE39C001C631C001C 771C001C771C001C361C001C361C001C3E1C001C1C1C001C1C1C001C001C001C001C001C001C00 1C001C001C001C001C001C001C001C007F007F00FF80FF807F007F00>25 30 0 0 26]77 dc[< FE0FF8FF0FF8FF0FF81D81C01D81C01D81C01D81C01DC1C01CC1C01CC1C01CE1C01CE1C01C61C0 1C61C01C71C01C71C01C31C01C31C01C39C01C39C01C19C01C19C01C1DC01C0DC01C0DC01C0DC0 1C0DC0FF87C0FF87C0FF83C0>21 30 2 0 26]78 dc[<0FFE003FFF807FFFC07C07C07001C0F0 01E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E0 00E0E000E0E000E0E000E0E000E0F001E0F001E07001C07C07C07FFFC03FFF800FFE00>19 30 3 0 26]79 dc[<7FFF00FFFFC07FFFE00E01F00E00780E00380E003C0E001C0E001C0E001C0E001C 0E003C0E00380E00780E01F00FFFE00FFFC00FFF000E00000E00000E00000E00000E00000E0000 0E00000E00000E00007FC000FFE0007FC000>22 30 1 0 26]80 dc[23 30 2 0 26]82 dc[<03F1C00FFDC03FFFC07C0FC07003C0E003C0E001C0E001C0E001 C0E000007000007800003F00001FF00007FE0000FF00000F800003C00001C00000E00000E06000 E0E000E0E000E0E001C0F001C0FC0780FFFF80EFFE00E3F800>19 30 3 0 26]83 dc[<7FFFFE FFFFFEFFFFFEE0380EE0380EE0380EE0380EE0380E003800003800003800003800003800003800 003800003800003800003800003800003800003800003800003800003800003800003800003800 03FF8007FFC003FF80>23 30 1 0 26]84 dc[<7FC1FF00FFE3FF807FC1FF000E0038000E0038 000E0038000E0038000E0038000E0038000E0038000E0038000E0038000E0038000E0038000E00 38000E0038000E0038000E0038000E0038000E0038000E0038000E0038000E0038000700700007 0070000380E00003C1E00001FFC00000FF8000003E0000>25 30 0 0 26]85 dc[23 30 1 0 26]86 dc[23 30 1 0 26]87 dc[<7F87F87FCFF87F87F80F01C007038007838003870003C70001CE0001EE0000FC0000FC0000 7800007800007800007C00007C0000FE0000EE0001CF0001C7000387800383800703C00701C00E 01E00E00E07F83FCFF83FE7F83FC>23 30 1 0 26]88 dc[23 30 1 0 26]89 dc[13 39 10 4 26]91 dc[13 39 2 4 26]93 dc[<1FF0003FFC007FFE 00780F00300700000380000380007F8007FF801FFF803F8380780380700380E00380E00380E003 80700780780F803FFFFC1FFDFC07F0FC>22 21 3 0 26]97 dc[22 30 1 0 26]98 dc[<00FF8003FFC00FFFE01F01E03C00C0780000700000700000E00000E0 0000E00000E00000E000007000007000007800703C00701F01F00FFFE003FFC000FE00>20 21 3 0 26]99 dc[<001FC0001FC0001FC00001C00001C00001C00001C00001C00001C001F1C007FDC0 0FFFC01E0FC03C07C07803C07001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C07003C0 7003C03807C03E0FC01FFFFC07FDFC01F1FC>22 30 2 0 26]100 dc[<01F80007FF000FFF801E 07C03C01C07800E07000E0E00070E00070FFFFF0FFFFF0FFFFF0E000007000007000007800703C 00701F01F00FFFE003FFC000FE00>20 21 3 0 26]101 dc[<0007E0001FF0003FF800787800F0 3000E00000E00000E00000E0007FFFF0FFFFF0FFFFF000E00000E00000E00000E00000E00000E0 0000E00000E00000E00000E00000E00000E00000E00000E00000E0007FFFC07FFFC07FFFC0>21 30 1 0 26]102 dc[<00F87C03FFFE07FFFE0F078C0E03801C01C01C01C01C01C01C01C01C01C0 0E03800F07800FFF000FFE001CF8001C00001C00000E00000FFF800FFFE03FFFF87C007C70001C E0000EE0000EE0000EE0000E70001C78003C3E00F81FFFF007FFC001FF00>23 33 1 12 26] 103 dc[23 30 1 0 26]104 dc[<01C00003E00003E00003E000 01C0000000000000000000000000000000007FE000FFE0007FE00000E00000E00000E00000E000 00E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E000FFFFC0FFFFC0 FFFFC0>18 31 4 0 26]105 dc[23 30 1 0 26]107 dc[19 30 3 0 26]108 dc[<7CE0E000FFFBF8007FFFF8001F1F1C001E1E 1C001E1E1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C 1C1C001C1C1C001C1C1C001C1C1C007F1F1F00FF9F9F807F1F1F00>25 21 0 0 26]109 dc[23 21 1 0 26]110 dc[<01F00007FC 001FFF003E0F803C07807803C07001C0E000E0E000E0E000E0E000E0E000E0E000E0F001E07001 C07803C03C07803E0F801FFF0007FC0001F000>19 21 3 0 26]111 dc[22 32 1 11 26]112 dc[22 21 2 0 26]114 dc[<07FB801FFF807FFF80780780E00380E00380E0038078 00007FC0003FFC0007FF00003F800003806001C0E001C0E001C0F003C0FC0780FFFF00EFFE00E3 F800>18 21 4 0 26]115 dc[<00C00001C00001C00001C00001C00001C00001C0007FFFE0FFFF E0FFFFE001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C07001C0 7001C07001C07000E0E000FFE0007FC0001F00>20 28 1 0 26]116 dc[23 21 1 0 26]117 dc[<7FC7FCFFC7FE7FC7FC0E00E00E 00E00F01E00701C00701C00783C003838003838003838001C70001C70001C70000EE0000EE0000 EE00007C00007C00003800>23 21 1 0 26]118 dc[23 21 1 0 26]119 dc[<7FC7F87FCFFC7FC7F80703C003878003C70001EE00 00FE00007C00007800003800007C0000EE0001EE0001C7000383800783C00701C07FC7FCFFC7FE 7FC7FC>23 21 1 0 26]120 dc[<7FC7FCFFC7FE7FC7FC0E00E00F00E00701E00701C00781C003 81C003838001C38001C38001C70000E70000E70000E600006600006E00003C00003C00003C0000 3C0000380000380000780000700030700078E00079E0007FC0003F80001E0000>23 32 1 11 26 ]121 dc[<7FFFF0FFFFF0FFFFF0E001E0E003C0E00780000F00001E00003C0000780000F00001 E00003C0000780000F00381E00383C0038780038FFFFF8FFFFF8FFFFF8>21 21 2 0 26]122 dc [<60F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 60>4 39 11 4 26]124 dc dfe /ff df[<0000FE0000038100000E0080001C03C0003807C000 7007C0007007800070030000E0000000E0000000E0000000E0000000E0000000E000003FFFFF00 3FFFFF0001C00F0001C0070001C0070001C0070003800E0003800E0003800E0003800E0003800E 0003800E0007001C0007001C0007001C0007001C0007001C0007001C000F003C00FFE3FF80FFE3 FF80>26 35 1 0 28]12 dc[<1C07003E0F807E1F807E1F803A0E800200800200800401000401 00080200080200100400200800401000802000>17 15 6 -20 25]34 dc[<1C3E7E7E3A020204 04080810204080>7 15 3 10 14]44 dc[12 2 3 -10 17]45 dc[<3078F87870>5 5 4 0 14]46 dc[<0004001C007C0FFC0F9C001C00380038003800380038003800700070007000 700070007000E000E000E000E000E000E001C001C001C001C001C001C003C0FFFEFFFE>15 33 5 0 25]49 dc[<000FC0007FF000E0FC01003E02001E04001F07800F0FC00F0FC00F0FC00F0F801F 03001E00001E00003C00003C0000780000F00001E00003C0000700000E00001C00003000006000 00C0000180080200080400080800103000107FFFF0FFFFE0FFFFE0>24 33 2 0 25]50 dc[<10 00003800003FFFF83FFFF83FFFF060002040004040004080008080010000020000040000080000 100000100000200000600000E00000C00001C00001C0000380000380000780000780000F00000F 00001F00001F00001F00001F00003E00003E00003E00001C0000>21 35 7 1 25]55 dc[<003F 0000FFC001E0E00380700700700E00381E00381C00383C00383C00383C00383C00787800787800 787800783800F83800F83801781C01F00C02F0060CF001F0E00001E00001E00001C00003C07003 80F80700F80600F00E00803C00E070007FE0001F8000>21 34 4 1 25]57 dc[<060F1F1F0E00 000000000000000000003078F87870>8 21 4 0 14]58 dc[<0000040000000006000000000E00 0000000E000000001E000000001E000000003F000000006F000000004F00000000CF000000008F 000000018F000000010F8000000207800000020780000004078000000407800000080780000008 03C000001003C000001003C000002003C000003FFFC000007FFFC000004001E000008001E00000 8001E000010001E000010001E000020001F000020000F000060000F0001F0001F000FFC01FFF80 FFC01FFF00>33 35 2 0 37]65 dc[<0000FE010007FF83001F81C6007C006E00F0003E01E000 1E03C0001E0780000E0F00000C1F00000C1E0000043E0000043C0000047C0000047C000000F800 0000F8000000F8000000F8000000F8000000F8000000F0000000F0000000F0000010F8000010F8 000020F8000020780000207C0000403C0000801E0001800F0003000780060003E0380001FFF000 003F8000>32 36 6 1 36]67 dc[<07FFFFE00007FFFFF800003C007C00003C001E00003C000F 00003C000780003C00078000780003C000780003C000780003E000780003E000780003E0007800 03E000F00003E000F00003E000F00003E000F00003E000F00003E000F00003E001E00003C001E0 0007C001E00007C001E000078001E0000F8001E0000F0003C0001F0003C0001E0003C0003C0003 C000780003C000F00003C003E00007C00FC000FFFFFF0000FFFFF80000>35 34 2 0 38]68 dc[ <07FFFFFF8007FFFFFF80003C001F00003C000700003C000300003C000300003C000100007800 01000078000100007802010000780201000078020100007806000000F004000000F01C000000FF FC000000FFFC000000F01C000000F00C000001E008000001E008000001E008010001E008010001 E000020001E000020003C000020003C000040003C000040003C0000C0003C000180003C0003800 07C001F800FFFFFFF000FFFFFFF000>33 34 2 0 34]69 dc[<0000FE010007FF83001F81C600 7C006E00F0003E01E0001E03C0001E0780000E0F00000C1F00000C1E0000043E0000043C000004 7C0000047C000000F8000000F8000000F8000000F8000000F8000000F8000000F0003FFFF0003F FFF00000F0F80000F0F80000F0F80001E0780001E07C0001E03C0001E01E0003E00F0003E00780 04C003F038C001FFF040003F8000>32 36 6 1 39]71 dc[<07FFF007FFF0003E00003C00003C 00003C00003C0000780000780000780000780000780000780000F00000F00000F00000F00000F0 0000F00001E00001E00001E00001E00001E00001E00003C00003C00003C00003C00003C00003C0 0007C000FFFE00FFFC00>20 34 2 0 18]73 dc[<003FFF003FFF0000F00000F00000F00000F0 0000F00001E00001E00001E00001E00001E00001E00003C00003C00003C00003C00003C00003C0 000780000780000780000780000780000780300F007C0F00FC0F00FC0F00FC1E00F81E00803C00 40380030E0000F8000>24 35 3 1 26]74 dc[<07FFF00FFE07FFF00FFC003E0003E0003C0003 00003C000200003C000400003C0018000078002000007800400000780080000078010000007802 0000007808000000F018000000F03C000000F07C000000F09E000000F31E000000F40F000001E8 0F000001F00F800001E007800001E007C00001E003C00001E003E00003C001E00003C001F00003 C000F00003C000F80003C000780003C0007C0007C0007E00FFFC03FFC0FFFC03FFC0>39 34 2 0 39]75 dc[<07FFF80007FFF800003E0000003C0000003C0000003C0000003C0000007800000078 00000078000000780000007800000078000000F0000000F0000000F0000000F0000000F0000000 F0000001E0000001E0000001E0001001E0001001E0003001E0002003C0002003C0006003C00060 03C000C003C001C003C003C007C00FC0FFFFFF80FFFFFF80>28 34 2 0 31]76 dc[<07FC0000 07FE07FC00000FFE002E00000FC0002E00001780002E00001780002E0000278000270000278000 4700004F00004700008F00004700008F00004700010F00004380010F00004380020F0000838002 1E00008380041E000081C0041E000081C0081E000081C0081E000081C0101E000101C0203C0001 00E0203C000100E0403C000100E0403C000100E0803C000100E0803C0002007100780002007100 780002007200780002007200780002003C0078000600380078000F003800F800FFE0301FFF80FF E0301FFF80>47 34 2 0 46]77 dc[<07FE003FFC07FE003FFC003F0003C0002F000100002F80 0100002780010000278001000043C002000043C002000041E002000041E002000040F002000040 F002000080780400008078040000803C040000803C040000801E040000801E040001000F080001 000F080001000F880001000788000100078800010003C800020003D000020001F000020001F000 020000F000020000F00006000070000F00006000FFE0002000FFE0002000>38 34 2 0 37]78 dc[<0001FC00000F0780003C01E0007000F000E0007803C000380780003C0700001E0F00001E1E 00001E1E00001F3C00001F3C00001F7C00001F7C00001FF800001FF800001FF800001FF800001F F800001FF800003EF000003EF000003EF000007CF000007CF8000078F80000F8780000F0780001 E03C0003C03C0007801E000F000E001E000780380001C0E000007F8000>32 36 6 1 39]79 dc[ <07FFFFC007FFFFF0003C00FC003C003E003C001E003C001F003C001F0078001F0078001F0078 001F0078001F0078001E0078003E00F0003C00F0007800F000F000F003E000FFFF8000F0000001 E0000001E0000001E0000001E0000001E0000001E0000003C0000003C0000003C0000003C00000 03C0000003C0000007C00000FFFC0000FFFC0000>32 34 2 0 34]80 dc[<0001FC00000F0780 003C01E0007000F000E0007803C000380780003C0780001E0F00001E1E00001E1E00001F3E0000 1F3C00001F7C00001F7C00001FF800001FF800001FF800001FF800001FF800001FF000003EF000 003EF000003EF000007CF000007CF0000078F80000F8780000F0780F01E0381083C03C2043801E 2047000E407E000720780001E0E008007FE0080000600800007010000070300000787000007FE0 00003FE000003FC000001F8000000F00>32 45 6 10 39]81 dc[<07FFFF800007FFFFF000003C 00F800003C003C00003C001E00003C001F00003C001F000078001F000078001F000078001F0000 78001F000078003E000078003C0000F000780000F000F00000F007C00000FFFE000000F00E0000 00F003000001E003800001E001C00001E001C00001E001E00001E001E00001E001E00003C003E0 0003C003E00003C003E00003C003E00003C003E02003C003E04007C003E040FFFC01F080FFFC00 F1800000003E00>35 35 2 1 37]82 dc[<000FC040003FF0C000F0398001C00F800180038003 00038007000180070001800E0001000E0001000E0001000F0000000F0000000F80000007E00000 07FE000003FFC00001FFF000007FF8000007FC0000007C0000003C0000001E0000001E0000001E 0020001E0040001C0040001C0060001C00600018006000380070007000F800E000EF03C000C7FF 800080FE0000>26 36 3 1 28]83 dc[<1FFFFFFF3FFFFFFF3C01E01E3001E0062001E0026001 E0024001E0024003C0024003C0028003C0028003C0028003C0020003C000000780000007800000 078000000780000007800000078000000F0000000F0000000F0000000F0000000F0000000F0000 001E0000001E0000001E0000001E0000001E0000001E0000003E00001FFFF8001FFFF800>32 34 6 0 36]84 dc[<020080040100080200100400200800200800401000401000802000802000B82E 00FC3F00FC3F00781E00300C00>17 15 10 -20 25]92 dc[<03FC000E07001F01801F01C01E00 C00C00E00001C00001C0003FC003E1C00F01C01E01C0380380780380F00384F00384F00784F007 84F00B887833D01FC1E0>22 21 3 0 25]97 dc[<0780003F80003F0000070000070000070000 0700000700000E00000E00000E00000E00000E00000E00001C3F001CC1C01D00601E00701C0038 1C003838003C38003C38003C38003C38003C38003C7000787000787000707000F07000E06801C0 E80380C60E0081F800>22 35 5 0 28]98 dc[<00FF000383800607C00C07C01C078038030078 0000700000F00000F00000F00000F00000F00000E00000F00000F000807001007001003806001C 180007E000>18 21 4 0 22]99 dc[<00000F00007F00007E00000E00000E00000E00000E0000 0E00001C00001C00001C00001C00001C00001C007E3803C1380700B80E00781C00383800387800 70700070F00070F00070F00070F00070E000E0E000E0E000E0F000E07001E07003E03805E01C19 FC07E1FC>24 35 4 0 28]100 dc[<007E000383800701C00C00E01C00E03800E07800E07000E0 FFFFE0F00000F00000F00000F00000E00000E00000F000407000803000801803000E0C0003F000 >19 21 3 0 22]101 dc[<0001E0000630001C780018F80038F800707000700000700000E00000 E00000E00000E00000E00000E0003FFE003FFE0001C00001C00001C00001C00003800003800003 80000380000380000380000700000700000700000700000700000700000F0000FFF000FFF000> 21 35 1 0 15]102 dc[<00000380001F8CC00070D1C000E0E1C001C0700003C0700003C07000 0780F0000780F0000780F0000780E0000381E0000181C00002C30000027E000004000000040000 00040000000600000007FFC00007FFF00007FFF8001C007C0030000C0060000C0060000C00C000 0C00C0000C004000180060003000300060000C03800003FE0000>26 33 0 11 25]103 dc[<00 78000003F8000003F00000007000000070000000700000007000000070000000E0000000E00000 00E0000000E0000000E0000000E0000001C1F80001C60C0001D80E0001E0070001E0070001C007 0003C00E0003800E0003800E0003800E0003800E0003800E0007001C0007001C0007001C000700 1C0007001C0007001C000F003C00FFE3FF80FFE3FF80>25 35 1 0 28]104 dc[<007000F001F0 00F000E00000000000000000000000000000000001C00FC01FC003C001C001C003800380038003 80038003800700070007000700070007000F00FFE0FFE0>12 34 1 0 14]105 dc[<0001800003 C00007C00007C0000380000000000000000000000000000000000000000000000000000700007F 00007F00000F00000700000700000E00000E00000E00000E00000E00000E00001C00001C00001C 00001C00001C00001C00003800003800003800003800003800003800007000707000F87000F8E0 00F0C0006180003E0000>18 44 -3 10 15]106 dc[<0078000003F8000003F000000070000000 70000000700000007000000070000000E0000000E0000000E0000000E0000000E0000000E00000 01C07FC001C07FC001C03C0001C0300001C0400001C080000383000003840000038E000003BE00 0003CF00000387000007078000070380000701C0000701C0000700E0000700F0000F00F800FFE3 FF00FFE3FE00>26 35 1 0 26]107 dc[<007803F803F00070007000700070007000E000E000E0 00E000E000E001C001C001C001C001C001C0038003800380038003800380070007000700070007 0007000F00FFE0FFE0>13 35 1 0 14]108 dc[<01C1F807E01FC60C18301FD80E603803E00780 1C01E007801C01C007001C03C00F003803800E003803800E003803800E003803800E003803800E 003807001C007007001C007007001C007007001C007007001C007007001C00700F003C00F0FFE3 FF8FFEFFE3FF8FFE>39 21 1 0 42]109 dc[<01C1F8001FC60C001FD80E0003E0070001E00700 01C0070003C00E0003800E0003800E0003800E0003800E0003800E0007001C0007001C0007001C 0007001C0007001C0007001C000F003C00FFE3FF80FFE3FF80>25 21 1 0 28]110 dc[<007F00 01C1C00700E00E00701C003838003878003C70003CF0003CF0003CF0003CF0003CE00078E00078 E00070F000F07000E07001C03803800E0E0003F000>22 21 3 0 25]111 dc[<00E1F8000FE60E 000FE8070000F0038000E003C000E001C001C001E001C001E001C001E001C001E001C001E001C0 01E0038003C0038003C0038007800380078003800F0003C00E0007403C0007307000070FC00007 00000007000000070000000E0000000E0000000E0000000E0000000E000000FFC00000FFC00000 >27 31 0 10 28]112 dc[<00FC100382100701300E00F01C00F03800F07800E07800E0F000E0 F000E0F000E0F000E0F001C0F001C0F001C0F001C07003C07005C0380B801C338007C380000380 000380000380000700000700000700000700000700007FE0007FE0>20 31 4 10 26]113 dc[< 01C3E01FC4701FD8F003D0F001E06001C00003C000038000038000038000038000038000070000 0700000700000700000700000700000F0000FFF000FFF000>20 21 1 0 20]114 dc[<01FC8006 03800C01801801801801801800801801001E00001FE0000FFC0003FE00007E0000070040070040 0300400300600200600600F00400C8180087E000>17 21 2 0 20]115 dc[<0080008000800180 010001000300030007000F001FF8FFF80E000E000E000E001C001C001C001C001C001C00381038 10381038103810382038201C400780>13 31 4 0 19]116 dc[<0E0038FE03F8FE03F81E00780E 00380E00381C00701C00701C00701C00701C00701C00703800E03800E03800E03800E03801E038 02E01805E01C19FC07E1FC>22 21 4 0 28]117 dc[23 21 4 0 26]118 dc[34 21 4 0 36]119 dc[<1FF83FC01FF87FC001E03C0000E0100000E020000070 40000038800000390000001E0000001C0000000E0000001F0000003700000063800000C3800001 81C0000101C0000600E0001E00F000FF03FF00FF03FF00>26 21 1 0 26]120 dc[<0FFC0FE00F FC0FE000E0078000E0020000E0040000E004000070080000700800007010000070300000382000 003840000038400000388000003C8000001D0000001D0000001E0000001C0000000C0000000800 000008000000100000001000000020000078400000F8400000F8800000F1000000420000003C00 0000>27 31 0 10 26]121 dc[<07FFF80780380600700C00E00801C0080380080700100E0000 1C0000380000700000E00001C02003C0200380200700600E00401C00C03801C0700380FFFF80> 21 21 1 0 22]122 dc dfe /fg df[<0007F800007FFC0001FC0E0003F01F0007E03F000FC03F 000FC03F000FC03F000FC01E000FC00C000FC000000FC000000FC0FF80FFFFFF80FFFFFF800FC0 1F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800F C01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F807FF8FFF07FF8FFF0 >28 35 1 0 32]12 dc[<3C7EFFFFFFFF7E3C>8 8 4 0 16]46 dc[<00380000780003F800FFF8 00FDF80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8 0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8 007FFFF07FFFF0>20 32 4 0 29]49 dc[<03FC000FFF803C0FE07007F07C03F8FE01F8FE01FC FE01FCFE01FC7C01FC3801FC0001FC0001F80003F80003F00007E0000FC0000F80001E00003C00 00780000E00C01C00C03801C0300180600180FFFF81FFFF83FFFF87FFFF0FFFFF0FFFFF0>22 32 3 0 29]50 dc[<00FF0007FFC00F03F01E01F83F01F83F01FC3F81FC3F01FC1F01FC0C01F80001 F80003F00003E0000FC000FF0000FF000003E00001F80001FC0000FE0000FE0000FF7C00FF7C00 FFFE00FFFE00FFFE00FE7C01FC7801FC3C03F00FFFE001FF00>24 32 2 0 29]51 dc[<0000E0 0001E00003E00003E00007E0000FE0001FE0001BE00033E00073E000E3E001C3E00183E00303E0 0703E00E03E00C03E01803E03803E07003E0E003E0FFFFFFFFFFFF0007E00007E00007E00007E0 0007E00007E00007E001FFFF01FFFF>24 32 2 0 29]52 dc[<1000301E00F01FFFE01FFFE01F FFC01FFF001FFE001FF80018000018000018000018000019FE001FFF801E07E01C03F01801F000 01F80001F80001FC0001FC7801FCFC01FCFC01FCFC01FCFC01F8F801F86003F03003E01C0FC00F FF0003FC00>22 32 3 0 29]53 dc[<001FC000FFF001F03807C0780F80FC1F00FC1F00FC3F00 FC7E00787E00007E0000FE0000FE3FC0FE7FF0FE80F8FF807CFF007EFF007EFE007FFE007FFE00 7FFE007F7E007F7E007F7E007F3E007E3E007E1F007C0F00F807C1F003FFE000FF00>24 32 2 0 29]54 dc[<3C7EFFFFFFFF7E3C0000000000003C7EFFFFFFFF7E3C>8 22 4 0 16]58 dc[<0000 300000000078000000007800000000FC00000000FC00000000FC00000001FE00000001FE000000 03FF000000037F000000037F000000063F800000063F8000000E3FC000000C1FC000000C1FC000 00180FE00000180FE00000300FF000003007F000007007F800006003F800006003F80000FFFFFC 0000FFFFFC0001C001FE00018000FE00018000FE000300007F000300007F000700007F800F0000 3F80FFF007FFFCFFF007FFFC>38 34 2 0 43]65 dc[34 34 3 0 41]66 dc[<0001FF0040001FFFC1C0007F80F3C001FC001FC003F0000FC007E00007C0 0FC00003C01FC00003C03F800001C03F800001C07F800000C07F000000C07F000000C0FF000000 00FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF000000007F0000 00007F000000C07F800000C03F800000C03F800001C01FC00001800FC000018007E000030003F0 00060001FC001C00007F807800001FFFE0000001FF0000>34 34 3 0 41]67 dc[38 34 2 0 44]68 dc[33 34 2 0 38]69 dc[<0001FF0020001FFFE0E0007F8079E001FC001FE003F80007E007E00003E00FC00001 E01FC00001E03F800000E03F800000E07F800000607F000000607F00000060FF00000000FF0000 0000FF00000000FF00000000FF00000000FF00000000FF0007FFFEFF0007FFFE7F00000FE07F00 000FE07F80000FE03F80000FE03F80000FE01FC0000FE00FE0000FE007E0000FE003F8000FE001 FC001FE0007F8073E0001FFFE1E00001FF8060>39 34 3 0 45]71 dc[19 34 1 0 22]73 dc[39 34 2 0 45]75 dc[29 34 2 0 34] 76 dc[47 34 3 0 54]77 dc[40 34 2 0 45]78 dc[<0007FE0000003FFFC00000FE07F00003F801FC0007F000FE000FE0007F 001FC0003F801F80001F803F80001FC03F80001FC07F00000FE07F00000FE07F00000FE0FF0000 0FF0FF00000FF0FF00000FF0FF00000FF0FF00000FF0FF00000FF0FF00000FF0FF00000FF0FF00 000FF07F00000FE07F80001FE07F80001FE03F80001FC01FC0003F801FC0003F800FE0007F0007 F000FE0003F801FC0000FE07F000003FFFC0000007FE0000>36 34 3 0 43]79 dc[33 34 2 0 39]80 dc[40 34 2 0 43]82 dc[<01FE020007FFCE001F01FE003C007E003C001E0078000E0078000E00F8000600F8 000600FC000600FC000000FF000000FFF000007FFF80003FFFE0003FFFF8001FFFFC0007FFFE00 03FFFF00003FFF000001FF0000003F8000001F8000001F80C0000F80C0000F80C0000F80E0000F 00E0000F00F0001E00FC001C00FF807800E7FFF000807FC000>25 34 3 0 32]83 dc[<7FFFFF FFC07FFFFFFFC07E03F80FC07803F803C07003F801C06003F800C0E003F800E0E003F800E0C003 F80060C003F80060C003F80060C003F800600003F800000003F800000003F800000003F8000000 03F800000003F800000003F800000003F800000003F800000003F800000003F800000003F80000 0003F800000003F800000003F800000003F800000003F800000003F800000003F8000003FFFFF8 0003FFFFF800>35 33 2 0 40]84 dc[39 34 2 0 44] 85 dc[40 34 1 0 43]86 dc[56 34 1 0 59]87 dc[<7FFF83FFF07FFF83FFF007F8003C0003FC00180001FE00300001FE00700000FF00E0 00007F80C000003F818000003FC38000001FE70000000FE60000000FFC00000007FC00000003FC 00000003FC00000001FE00000000FF00000001FF00000001FF800000033FC00000071FC000000E 1FE000000C0FF000001807F800003807F800003003FC00006001FE0000E001FE0001C000FF0001 80007F8007C0003F80FFF807FFFCFFF807FFFC>38 34 2 0 43]88 dc[40 34 1 0 43]89 dc[<07FE00001FFF80003F07E0003F03F0003F01F0003F01F8 001E01F8000001F8000001F800003FF80003FDF8001F81F8003E01F8007C01F800F801F800F801 F800F801F800F801F8007C02F8007E0CF8001FF8FF8007E03F80>25 22 2 0 28]97 dc[27 35 2 0 32]98 dc[<00FF8007FFE00F 83F01F03F03E03F07E03F07C01E07C0000FC0000FC0000FC0000FC0000FC0000FC00007C00007E 00007E00003F00301F00600FC0E007FF8000FE00>20 22 2 0 25]99 dc[<0001FF000001FF00 00003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F 0000003F0000FE3F0007FFBF000FC1FF001F007F003E003F007E003F007C003F007C003F00FC00 3F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F007C003F007E003F003E003F001F 007F000F81FF0007FF3FE001FC3FE0>27 35 2 0 32]100 dc[<00FE0007FF800F83E01F01E03E 00F07E00F07C00F8FC00F8FC0078FFFFF8FFFFF8FC0000FC0000FC0000FC00007E00007E00183E 00381F00300F80F003FFC000FF00>21 22 2 0 26]101 dc[<001F8000FFE001F1F003E3F007E3 F00FC3F00FC1E00FC0000FC0000FC0000FC0000FC0000FC000FFFE00FFFE000FC0000FC0000FC0 000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0 000FC0000FC0007FFC007FFC00>20 35 2 0 18]102 dc[<00FE0F8003FF9FC00F83E3C01F01F3 C01E00F0003E00F8003E00F8003E00F8003E00F8003E00F8001E00F0001F01F0000F83E0000BFF 800008FE000018000000180000001C0000001FFFE0001FFFFC000FFFFF0007FFFF001FFFFF807C 001FC078000FC0F80007C0F80007C0F80007C07C000F803E001F001F807E000FFFFC0001FFE000 >26 33 1 11 29]103 dc[27 35 3 0 32]104 dc[<0E003F807F807F807F807F803F800E00000000000000000000000000FF80FF80 1F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F80FFF0FF F0>12 36 2 0 15]105 dc[26 35 2 0 30]107 dc[12 35 2 0 15]108 dc[44 22 3 0 51]109 dc[27 22 3 0 32]110 dc[<00FF0007FFE00F81F01F00F83E007C7C003E7C00 3E7C003EFC003FFC003FFC003FFC003FFC003FFC003FFC003F7C003E7E007E3E007C1F00F80F81 F007FFE000FF00>24 22 2 0 29]111 dc[27 32 2 10 32]112 dc[20 22 2 0 24]114 dc [<07F9801FFF80380780700380F00180F00180F80000FF0000FFF8007FFE003FFF001FFF8007FF 80003FC0C007C0C003C0E003C0E003C0F00380FC0F00EFFE00C3F800>18 22 2 0 23]115 dc[< 00C00000C00000C00000C00001C00001C00003C00007C0000FC0001FC000FFFF00FFFF000FC000 0FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC1800FC1800FC180 0FC1800FC18007C18007E30003FE0000FC00>17 32 1 0 22]116 dc[27 22 3 0 32]117 dc[38 22 1 0 41]119 dc[27 22 1 0 30]120 dc[27 32 1 10 30]121 dc dfe /fh df[<03000700FF000700070007000700 07000700070007000700070007000700070007000700070007000700FFF0>12 22 3 0 20]49 dc[<0FC0307040384038C03CE01CE01C003C003800380070006000C00180030006000404080410 0C3FF87FF8FFF8>14 22 2 0 20]50 dc[<0F8030E0607070787038207800780070006000C00F 8000E000700038003C403CE03CE03C8038407030E00F80>14 22 2 0 20]51 dc dfe /fi df[< 001FC1F00070270C00C07E1E0180FC3E0380FC3E0700F81C070078000700380007003800070038 0007003800070038000700380007003800FFFFFFE0FFFFFFE00700380007003800070038000700 380007003800070038000700380007003800070038000700380007003800070038000700380007 0038000700380007003800070038007FE1FFC07FE1FFC0>31 35 0 0 29]11 dc[<000FC00000 78300000E0080001803C0003807C0007007C0007007C0007003800070000000700000007000000 070000000700000007000000FFFFFC00FFFFFC0007003C0007001C0007001C0007001C0007001C 0007001C0007001C0007001C0007001C0007001C0007001C0007001C0007001C0007001C000700 1C0007001C0007001C007FF1FFC07FF1FFC0>26 35 0 0 28]12 dc[<000FEC0000701C0000E0 7C0001807C0003807C0007003C0007001C0007001C0007001C0007001C0007001C0007001C0007 001C0007001C00FFFFFC00FFFFFC0007001C0007001C0007001C0007001C0007001C0007001C00 07001C0007001C0007001C0007001C0007001C0007001C0007001C0007001C0007001C0007001C 0007001C007FF1FFC07FF1FFC0>26 35 0 0 28]13 dc[<000FC03F00007031E0C000E00B8020 01803E00F003807E01F007007C01F007007C01F007003C00E007001C000007001C000007001C00 0007001C000007001C000007001C0000FFFFFFFFF0FFFFFFFFF007001C00F007001C007007001C 007007001C007007001C007007001C007007001C007007001C007007001C007007001C00700700 1C007007001C007007001C007007001C007007001C007007001C007007001C00707FF1FFC7FF7F F1FFC7FF>40 35 0 0 42]14 dc[<701CF83EFC3FFC3F741D0401040104010401080208021004 100420084010>16 15 2 -20 25]34 dc[<003C000000006200000000C1000000018080000001 808000000380800000038080000003808000000380800000038100000003810000000382000000 038400000001C800000001C800000001D001FFC001E001FFC000E0003C0000E000180001700010 00027000200004380020000838004000181C008000301E008000700E0100007007020000F00782 0000F003840000F001C80000F000F00080F800F0008078007801803C01FC03003E070F06000FFE 07FC0003F001F800>34 37 2 1 39]38 dc[<70F8FCFC7404040404080810102040>6 15 4 -20 14]39 dc[<001000200040008001000300060004000C0018001800180030003000300070006000 60006000E000E000E000E000E000E000E000E000E000E000E000E0006000600060007000300030 0030001800180018000C0004000600030001000080004000200010>12 50 3 13 19]40 dc[<80 0040002000100008000C0006000200030001800180018000C000C000C000E00060006000600070 0070007000700070007000700070007000700070007000600060006000E000C000C000C0018001 8001800300020006000C0008001000200040008000>12 50 3 13 19]41 dc[<00018000000180 000001800000018000000180000001800000018000000180000001800000018000000180000001 800000018000000180000001800000018000FFFFFFFFFFFFFFFF00018000000180000001800000 018000000180000001800000018000000180000001800000018000000180000001800000018000 000180000001800000018000>32 34 3 5 39]43 dc[<70F8FCFC7404040404080810102040>6 15 4 10 14]44 dc[12 2 1 -10 17]45 dc[<70F8F8F870>5 5 4 0 14]46 dc[< 01F800070E000E07001C03803801C03801C07801E07000E07000E07000E0F000F0F000F0F000F0 F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F07000E07000E0 7000E07801E03801C03801C01C03800E0700070E0001F800>20 34 2 1 25]48 dc[<004001C0 07C0FFC0F9C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001 C001C001C001C001C001C001C001C001C001C07FFF7FFF>16 33 4 0 25]49 dc[<03F8000FFE 00181F802007C04003C04001E0F801E0FC01F0FC00F0FC00F07800F03001F00001E00001E00003 E00003C0000780000700000E00001C0000380000700000E0000080000100000200100400100800 101000302000207FFFE0FFFFE0FFFFE0>20 33 2 0 25]50 dc[<01F8000FFE001C0F803003C0 3803C07C03E07C01E07C01E03C03E01803E00003C0000380000780000E00001C0003F800000E00 0007800003C00003E00001E00001F00001F03001F07801F0FC01F0FC01F0FC01E0F803E04003C0 2007801C0F000FFE0003F800>20 34 2 1 25]51 dc[<000300000300000700000F00000F0000 170000370000270000470000C7000087000107000307000207000407000C070008070010070030 0700200700400700C00700FFFFFCFFFFFC00070000070000070000070000070000070000070000 FFF800FFF8>22 33 1 0 25]52 dc[<1800401E03801FFF801FFF001FFC0013F0001000001000 0010000010000010000010000010FC001306001403801801801001C00000E00000E00000F00000 F00000F07000F0F800F0F800F0F800F0F800E0C001E04001C06003C03003801C0F000FFE0003F0 00>20 34 2 1 25]53 dc[<003E0000FF8003C0C00700E00E01E01C03E01C03E03801C0380000 780000700000700000F0F800F30600F40300F40180F801C0F800E0F000E0F000F0F000F0F000F0 F000F0F000F07000F07000F07800E03800E03801E01C01C01C03800F070003FE0001F800>20 34 2 1 25]54 dc[<4000006000007FFFF07FFFF07FFFE0400020C000408000808001008001000002 0000040000040000080000180000100000300000300000700000700000E00000E00000E00001E0 0001E00001E00001E00003E00003E00003E00003E00003E00003E00003E00001C000>20 35 3 1 25]55 dc[<01F80007FE000E07801801C03000C02000606000606000606000607000607800C03E 00801F81001FC60007FC0003F80001FE00067F000C1F80100FC03003E06001E0600070C00070C0 0030C00030C00030C000306000607000403800C01E07800FFE0001F800>20 34 2 1 25]56 dc[ <01F80007FE000E0F001C03803803807801C07001C07001E0F000E0F000E0F000F0F000F0F000 F0F000F0F000F07000F07001F03801F01802F00C02F0060CF001F0F00000E00000E00001E00001 C03801C07C03807C0380780700300E00303C001FF80007E000>20 34 2 1 25]57 dc[<70F8F8 F870000000000000000000000070F8F8F870>5 21 4 0 14]58 dc[<70F8F8F870000000000000 000000000070F8F8F87808080808101010204040>5 31 4 10 14]59 dc[<0001800000018000 000180000003C0000003C0000003C0000005E0000005E0000005E0000008F0000008F0000008F0 0000107800001078000010780000203C0000203C0000603E0000401E0000401E0000C01F000080 0F0000FFFF0001FFFF800100078001000780020003C0020003C0020003C0040001E0040001E00C 0001E01E0001F0FFC01FFFFFC01FFF>32 35 2 0 37]65 dc[29 34 2 0 35]66 dc[<0007F008003FFC1800FC061801F0013803C000F80780 00780F0000381E0000381E0000183C0000183C0000187C0000087C00000878000008F8000000F8 000000F8000000F8000000F8000000F8000000F8000000F8000000780000007C0000087C000008 3C0000083C0000081E0000101E0000100F0000200780002003C0004001F0018000FC0700003FFC 000007F000>29 36 3 1 36]67 dc[32 34 2 0 38]68 dc[30 34 2 0 34]69 dc[28 34 2 0 33]70 dc[<0007F008003FFC1800FC0618 01F0013803C000F8078000780F0000381E0000381E0000183C0000183C0000187C0000087C0000 0878000008F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8001FFF7800 1FFF7C0000787C0000783C0000783C0000781E0000781F0000780F0000780780007803C000B801 F001B800FC0718003FFC080007F000>32 36 3 1 39]71 dc[32 34 2 0 37]72 dc[14 34 2 0 18]73 dc[<07FFF007FFF0000F00000F00000F00000F00000F00 000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00 000F00000F00000F00000F00000F00300F00780F00FC0F00FC0F00FC0E00F81E00401C00203800 18700007C000>20 35 2 1 26]74 dc[34 34 2 0 39] 75 dc[26 34 2 0 31]76 dc[41 34 2 0 46]77 dc[32 34 2 0 37]78 dc[<000FF00000381C0000E0070001C00380078001E0070000E00E0000701E0000783C00 003C3C00003C7C00003E7C00003E7800001E7800001EF800001FF800001FF800001FF800001FF8 00001FF800001FF800001FF800001FF800001F7C00003E7C00003E7C00003E3C00003C3E00007C 1E0000780F0000F00F0000F0078001E003C003C000E0070000381C00000FF000>32 36 3 1 39] 79 dc[28 34 2 0 34]80 dc[<000FF00000 381C0000E0070001C00380078001E0070000E00F0000F01E0000783E00007C3C00003C7C00003E 7C00003E7800001E7800001EF800001FF800001FF800001FF800001FF800001FF800001FF80000 1FF800001FF800001F7800001E7C00003E7C00003E3C00003C3E00007C1E03C0780F0420F00F08 10F0078809E003C80BC000E80F00003C1C01000FF4010000060100000603000007030000078700 0007FE000003FE000003FC000001FC000000F0>32 45 3 10 39]81 dc[34 35 2 1 37]82 dc[<03F8100FFE301E07303801F07000F0700070 E00030E00030E00010E00010E00010F00000F000007C00007F00003FF0001FFE000FFF8003FFC0 003FE00003F00000F0000070000078000038800038800038800038800038C00030C00070E00060 F800E0CF03C0C7FF0080FE00>21 36 3 1 28]83 dc[<7FFFFFFC7FFFFFFC7803C03C6003C00C 4003C0044003C004C003C006C003C0068003C0028003C0028003C0028003C0020003C0000003C0 000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003 C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C00001FFFF8001 FFFF80>31 34 2 0 36]84 dc[32 35 2 1 37]85 dc[34 35 1 1 37]86 dc[< FFF83FFE03FFFFF83FFE03FF0F8003E000780F0001E00030078001E00020078001E00020078001 F0002003C001F0004003C001F0004003C00278004001E00278008001E00278008001E0043C0080 00F0043C010000F0043C010000F0081E010000F8081E03000078081E02000078181F0200007810 0F0200003C100F0400003C100F0400003C20078400001E20078800001E20078800001E4003C800 000F4003D000000F4003D000000F8001F00000078001E00000078001E00000070000E000000700 00E00000030000C000000200004000>48 35 1 1 51]87 dc[34 34 1 0 37]89 dc[<7FFFFE7FFFFE7E003C78003C7000786000F0C000F0C001E0C001E0 8003C0800780800780000F00000F00001E00003C00003C0000780000780000F00001E00101E001 03C00103C0010780010F00030F00031E00021E00063C000E78001E78007EFFFFFEFFFFFE>24 34 3 0 30]90 dc[7 49 5 12 14]91 dc[<0802100420082008401040 108020802080208020B82EFC3FFC3F7C1F380E>16 15 6 -20 25]92 dc[7 49 1 12 14]93 dc[<08102020404080808080B8FCFC7C38>6 15 3 -20 14]96 dc[< 1FF000381C007C06007C07007C0380380380000380000380007F8007C3801E03803C0380780380 780380F00384F00384F00384F00784780B843C11C80FE0F0>22 21 2 0 25]97 dc[<0E0000FE 0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E 1F800E60E00E80300F00380E001C0E001E0E000E0E000F0E000F0E000F0E000F0E000F0E000F0E 000F0E000E0E001E0E001C0F00380C80700C60E0081F80>24 35 1 0 28]98 dc[<01FE000707 000C0F801C0F80380F80780700700000F00000F00000F00000F00000F00000F00000F000007000 007800403800401C00800C010007060001F800>18 21 2 0 22]99 dc[<0000700007F00007F0 0000F000007000007000007000007000007000007000007000007000007000007001F870070670 0E01701C00F0380070780070700070F00070F00070F00070F00070F00070F00070F00070700070 7800703800701C00F00C017807067F01F87F>24 35 2 0 28]100 dc[<01FC000707000C03801C 01C03801C07800E07000E0F000E0FFFFE0F00000F00000F00000F00000F0000070000078002038 00201C00400E008007030000FC00>19 21 1 0 22]101 dc[<003E0000E30001C780038F80030F 80070700070000070000070000070000070000070000070000070000FFF800FFF8000700000700 000700000700000700000700000700000700000700000700000700000700000700000700000700 000700000700007FF8007FF800>17 35 0 0 15]102 dc[<00007801F08C071D1C0E0E1C1C0700 1C07003C07803C07803C07803C07801C07001C07000E0E000F1C0019F000100000100000180000 1C00001FFF000FFFE00FFFF03800F860001840001CC0000CC0000CC0000C600018600018380070 0E01C001FE00>22 33 1 11 25]103 dc[<0E000000FE000000FE0000001E0000000E0000000E 0000000E0000000E0000000E0000000E0000000E0000000E0000000E0000000E0000000E1F8000 0E60E0000E8070000F0038000F0038000E0038000E0038000E0038000E0038000E0038000E0038 000E0038000E0038000E0038000E0038000E0038000E0038000E0038000E003800FFE3FF80FFE3 FF80>25 35 1 0 28]104 dc[<1C003E003E003E001C0000000000000000000000000000000000 0E00FE00FE001E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FF C0FFC0>10 34 1 0 14]105 dc[<00E001F001F001F000E0000000000000000000000000000000 0000F007F007F000F0007000700070007000700070007000700070007000700070007000700070 0070007000700070007000707070F870F8E0F8C071801F00>12 44 -2 10 15]106 dc[<0E0000 FE0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0000 0E03FC0E03FC0E01E00E01800E02000E04000E08000E10000E38000EF8000F1C000E1E000E0E00 0E07000E07800E03C00E01C00E01E00E01F0FFE3FEFFE3FE>23 35 1 0 26]107 dc[<0E00FE00 FE001E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E 000E000E000E000E000E000E000E000E000E000E000E00FFE0FFE0>11 35 1 0 14]108 dc[<0E 1FC07F00FE60E18380FE807201C01F003C00E00F003C00E00E003800E00E003800E00E003800E0 0E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800 E00E003800E00E003800E00E003800E0FFE3FF8FFEFFE3FF8FFE>39 21 1 0 42]109 dc[<0E1F 8000FE60E000FE8070001F0038000F0038000E0038000E0038000E0038000E0038000E0038000E 0038000E0038000E0038000E0038000E0038000E0038000E0038000E0038000E003800FFE3FF80 FFE3FF80>25 21 1 0 28]110 dc[<00FC000703800E01C01C00E0380070780078700038F0003C F0003CF0003CF0003CF0003CF0003CF0003C7000387800783800701C00E00E01C007038000FC00 >22 21 1 0 25]111 dc[<0E1F80FE60E0FE80700F00380E001C0E001E0E001E0E000F0E000F0E 000F0E000F0E000F0E000F0E000F0E001E0E001E0E001C0F00380E80700E60E00E1F800E00000E 00000E00000E00000E00000E00000E00000E0000FFE000FFE000>24 31 1 10 28]112 dc[<01 F8200704600E02601C01603801E07800E07800E0F000E0F000E0F000E0F000E0F000E0F000E0F0 00E07000E07800E03801E01C01E00C02E0070CE001F0E00000E00000E00000E00000E00000E000 00E00000E00000E0000FFE000FFE>23 31 2 10 26]113 dc[<0E1E00FE6300FE87801E87800F 03000F00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E 00000E0000FFF000FFF000>17 21 1 0 20]114 dc[<0FC4303C600CC00CC004C004E004F0007F 803FF00FF800FC001E800E8006C006C006C004E00CD81887E0>15 21 2 0 20]115 dc[<020002 000200020002000600060006000E001E003FF8FFF80E000E000E000E000E000E000E000E000E00 0E000E040E040E040E040E040E040708030801F0>14 31 1 0 19]116 dc[<0E003800FE03F800 FE03F8001E0078000E0038000E0038000E0038000E0038000E0038000E0038000E0038000E0038 000E0038000E0038000E0038000E0038000E0078000E0078000700BC0003833F8000FC3F80>25 21 1 0 28]117 dc[23 21 1 0 26]118 dc[33 21 1 0 36]119 dc[23 21 1 0 26]120 dc[23 31 1 10 26]121 dc[<3FFFC038038030078020 0700600E00401C00403C0040380000700000E00001E00001C0000380400700400F00400E00C01C 0080380080780180700780FFFF80>18 21 1 0 22]122 dc[24 1 0 -12 25]123 dc dfe /fj df[18 4 1 -14 24]45 dc[<3C7EFFFFFFFF7E3C0000 000000000000000000000000003C7EFFFFFFFF7E3C>8 31 6 0 20]58 dc[<000001C000000000 0001C0000000000001C0000000000003E0000000000003E0000000000003E0000000000007F000 0000000007F000000000000FF800000000000DF800000000000DF800000000001DFC0000000000 18FC000000000018FC0000000000307E0000000000307E0000000000307E0000000000603F0000 000000603F0000000000603F0000000000C01F8000000000C01F8000000000C01F800000000180 0FC000000001800FC000000003800FE0000000030007E0000000030007E0000000070007F00000 00060003F0000000060003F00000000E0003F80000000FFFFFF80000000FFFFFF8000000180000 FC000000180000FC000000180000FC0000003000007E0000003000007E0000003000007E000000 6000003F0000006000003F0000006000003F000000C000001F800000C000001F800001E000001F C00003E000001FC0000FF800003FE000FFFF0007FFFF80FFFF0007FFFF80>49 50 2 0 54]65 dc[43 49 3 0 51]66 dc[<00000FF800 200000FFFE00600003F80780E0000FC000E0E0001F000071E0003E00001BE000FC00000FE001F8 00000FE003F0000007E003E0000003E007C0000003E00FC0000001E00F80000001E01F80000000 E03F80000000E03F00000000E03F00000000607F00000000607F00000000607E0000000060FE00 00000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE00000000 00FE0000000000FE0000000000FE0000000000FE00000000007E00000000007F00000000607F00 000000603F00000000603F00000000603F80000000601F80000000C00F80000000C00FC0000000 C007C00000018003E00000018003F00000030001F80000060000FC00000C00003E00001C00001F 00003000000FC000E0000003F807C0000000FFFF000000000FF80000>43 51 4 1 52]67 dc[< FFF800000003FFE0FFFC00000007FFE003FC00000007F80001FC00000007F00001BE0000000DF0 0001BE0000000DF000019F00000019F000019F00000019F000019F00000019F000018F80000031 F000018F80000031F000018F80000031F0000187C0000061F0000187C0000061F0000183E00000 C1F0000183E00000C1F0000183E00000C1F0000181F0000181F0000181F0000181F0000180F800 0301F0000180F8000301F0000180F8000301F00001807C000601F00001807C000601F00001807E 000C01F00001803E000C01F00001803E000C01F00001801F001801F00001801F001801F0000180 1F001801F00001800F803001F00001800F803001F000018007C06001F000018007C06001F00001 8007C06001F000018003E0C001F000018003E0C001F000018001F18001F000018001F18001F000 018001F18001F000018000FB0001F000018000FB0001F000018000FB0001F0000180007E0001F0 0003C0007E0001F00007E0003C0001F0000FF0003C0003F800FFFF003C00FFFFE0FFFF001800FF FFE0>59 49 3 0 66]77 dc[41 49 3 0 49]80 dc[<7FFFFFFFFFF07FFFFFFFFFF07F001FE007F07C000FC001F078000FC000F070000FC0 007060000FC0003060000FC00030E0000FC00038E0000FC00038C0000FC00018C0000FC00018C0 000FC00018C0000FC00018C0000FC00018C0000FC0001800000FC0000000000FC0000000000FC0 000000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000 000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC0 000000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000 000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC0 000000000FC0000000003FF00000003FFFFFF000003FFFFFF000>45 49 3 0 52]84 dc[<03FF 80000FFFE0001F01F8003F807C003F803E003F801F003F800F001F000F8000000F8000000F8000 000F8000000F8000000F80001FFF8000FE0F8003F00F800FC00F801F800F803F000F807E000F80 7E000F80FC000F83FC000F83FC000F83FC001783FC0017837E0027833F0047C61F8183FE0FFF03 FC01FC00F0>32 31 3 0 36]97 dc[<0000007C0000001FFC0000001FFC00000000FC00000000 7C000000007C000000007C000000007C000000007C000000007C000000007C000000007C000000 007C000000007C000000007C000000007C000000007C000000007C000000007C00000FE07C0000 7FFC7C0001F80E7C0003E0037C00078001FC000F8000FC001F00007C003E00007C003E00007C00 7E00007C007C00007C007C00007C00FC00007C00FC00007C00FC00007C00FC00007C00FC00007C 00FC00007C00FC00007C007C00007C007C00007C007E00007C003E00007C003E00007C001F0000 FC000F0000FC000F8001FC0003C0077C0001F01C7E0000FFF87FF0001FC07FF0>36 50 2 0 40] 100 dc[<001FC000007FF80001F07C0007C01F000F800F001F000F801F0007C03E0007C07E0003 C07E0003E07C0003E0FC0003E0FC0003E0FFFFFFE0FFFFFFE0FC000000FC000000FC000000FC00 0000FC0000007E0000007E0000003E0000603F0000601F0000E00F8001C00FC0018003E0078001 F81E00007FF800000FE000>27 31 2 0 32]101 dc[<0001F800000FFE00001F0F00007C1F8000 F83F8000F03F8001F03F8001E01F0003E00E0003E0000003E0000003E0000003E0000003E00000 03E0000003E0000003E0000003E0000003E00000FFFFE000FFFFE00003E0000003E0000003E000 0003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0 000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003 E0000003E0000003E0000003E0000007F00000FFFFC000FFFFC000>25 50 1 0 22]102 dc[<00 00003C003F80FE00FFE38F03E0FE0F07803C0F0F001E0E1F001F001E000F001E000F003E000F80 3E000F803E000F803E000F803E000F801E000F001E000F001F001F000F001E0007803C0007E0F8 000CFFE000083F800008000000180000001C0000000C0000000E0000000FFFFC0007FFFF8003FF FFE007FFFFF01E0003F83C0000FC7800003C7800003EF000001EF000001EF000001EF000001EF0 00001E7800003C3C0000781E0000F00F0001E007E00FC001FFFF00003FF800>32 47 2 15 36] 103 dc[<03800FE00FE01FE01FE00FE00FE0038000000000000000000000000000000000000000 0003E07FE07FE007E003E003E003E003E003E003E003E003E003E003E003E003E003E003E003E0 03E003E003E003E003E003E003E003E003E007F0FFFFFFFF>16 49 1 0 20]105 dc[<03E03F80 03F80000FFE0FFE00FFE0000FFE381F8381F800007E6007C6007C00003E4007C4007C00003E800 3E8003E00003F0003F0003E00003F0003F0003E00003F0003F0003E00003E0003E0003E00003E0 003E0003E00003E0003E0003E00003E0003E0003E00003E0003E0003E00003E0003E0003E00003 E0003E0003E00003E0003E0003E00003E0003E0003E00003E0003E0003E00003E0003E0003E000 03E0003E0003E00003E0003E0003E00003E0003E0003E00003E0003E0003E00003E0003E0003E0 0003E0003E0003E00003E0003E0003E00003E0003E0003E00007F0007F0007F000FFFF8FFFF8FF FF80FFFF8FFFF8FFFF80>57 31 1 0 60]109 dc[<03E03F8000FFE0FFE000FFE381F80007E600 7C0003E4007C0003E8003E0003F0003E0003F0003E0003F0003E0003E0003E0003E0003E0003E0 003E0003E0003E0003E0003E0003E0003E0003E0003E0003E0003E0003E0003E0003E0003E0003 E0003E0003E0003E0003E0003E0003E0003E0003E0003E0003E0003E0003E0003E0003E0003E00 03E0003E0007F0007F00FFFF8FFFF8FFFF8FFFF8>37 31 1 0 40]110 dc[<000FE000007FFC00 01F01F0003C00780078003C00F0001E01E0000F03E0000F83E0000F87C00007C7C00007C7C0000 7CFC00007EFC00007EFC00007EFC00007EFC00007EFC00007EFC00007EFC00007E7C00007C7E00 00FC3E0000F83E0000F81F0001F00F0001E0078003C003C0078001F01F00007FFC00000FE000> 31 31 2 0 36]111 dc[<03E03F8000FFE1FFF000FFE781F80007EE007E0003F8003F0003F000 1F0003E0000F8003E0000FC003E00007C003E00007E003E00007E003E00003E003E00003F003E0 0003F003E00003F003E00003F003E00003F003E00003F003E00003F003E00003E003E00007E003 E00007E003E00007C003E0000FC003F0001F8003F0001F0003F8003E0003EC007C0003E781F800 03E1FFE00003E07F000003E000000003E000000003E000000003E000000003E000000003E00000 0003E000000003E000000003E000000003E000000003E000000007F0000000FFFF800000FFFF80 0000>36 45 1 14 40]112 dc[<07C0FC00FFC1FE00FFC30F0007C61F8003CC1F8003C81F8003 D80F0003D0000003D0000003F0000003E0000003E0000003E0000003E0000003E0000003E00000 03E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E000 0003E0000003E0000007F00000FFFFC000FFFFC000>25 31 1 0 28]114 dc[<01FE080FFF981E 01F8380078780038700038F00018F00018F00018F80018FE00007FC0007FFE003FFF801FFFE007 FFF001FFF8000FFC0000FCC0007EC0003EC0001EE0001EE0001EF0001EF0001CF8003CFC0078E7 01F0C3FFC080FF00>23 31 2 0 28]115 dc[<00600000600000600000600000E00000E00000E0 0001E00001E00003E00003E0000FE0001FE000FFFFF8FFFFF803E00003E00003E00003E00003E0 0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00C03E0 0C03E00C03E00C03E00C03E00C03E00C03E00801F01801F01800F870007FE0001F80>22 44 1 0 28]116 dc[49 31 1 0 52]119 dc dfe end %%EndProlog %%BeginSetup %%Feature: *Resolution 300 %%Feature: *ManualFeed False TeXDict begin @letter %%EndSetup %%Page: 1 1 bop 552 280 a fj(T)-6 b(o)n(w)n(ards)24 b(Megaprogramming:)230 523 y(A)f(P)n (aradigm)g(for)h(Comp)r(onen)n(t-Based)e(Programming)406 613 y fi(Gio)17 b (Wiederhold)768 595 y fh(1)790 613 y fi(,)g(P)o(eter)f(W)l(egner)1133 595 y fh (2)1155 613 y fi(,)h(and)f(Stefano)g(Ceri)1569 595 y fh(3)849 722 y fi(June)g (12,)g(1992)99 871 y fg(Abstract)99 940 y ff(Megaprogramming)8 b fi(is)j(a)g (tec)o(hnology)g(for)g(programming)e(with)i(large)g(mo)q(dules)f(called)h ff (mega-)99 1005 y(mo)q(dules)17 b fi(that)i(capture)e(the)i(functionalit)o(y)e (of)h(services)g(pro)o(vided)e(b)o(y)i(large)g(organizations)99 1070 y(lik)o (e)24 b(banks,)g(airline)f(reserv)m(ation)g(systems,)i(and)e(cit)o(y)h(transp) q(ortation)f(systems.)43 b(Mega-)99 1135 y(mo)q(dules)20 b(are)h(in)o(ternall\ y)f(homogeneous,)g(indep)q(enden)o(tly)g(main)o(tained)g(soft)o(w)o(are)g(sys\ tems)99 1199 y(managed)h(b)o(y)h(a)h(comm)o(unit)o(y)d(with)j(its)f(o)o(wn)g (terminology)l(,)g(goals,)i(kno)o(wledge,)f(and)e(pro-)99 1264 y(gramming)g (traditions.)42 b(Eac)o(h)22 b(megamo)q(dule)g(describ)q(es)h(its)g(externall\ y)h(accessible)e(data)99 1329 y(structures)14 b(and)h(op)q(erations)g(and)g (has)g(an)g(in)o(ternally)g(consisten)o(t)f(b)q(eha)o(vior.)21 b(The)15 b(con\ cepts,)99 1394 y(terminology)l(,)g(and)h(in)o(terpretation)f(paradigm)g(of)h (a)h(megamo)q(dule)e(is)h(called)g(its)h ff(on)o(tology)p fi(.)198 1463 y(The) e(ob)s(jectiv)o(e)h(of)g(this)f(pap)q(er)g(is)g(to)h(pro)o(vide)e(a)h(concept\ ual)g(framew)o(ork)f(for)i(the)f(study)99 1528 y(and)22 b(dev)o(elopmen)o(t)g (of)h(megaprogrammi)o(ng)d(and)i(to)h(iden)o(tify)g(tec)o(hnical)f(problems)f (to)i(b)q(e)99 1593 y(addressed;)c(w)o(e)g(do)f(so)h(b)o(y)g(prop)q(osing)f (a)h ff(megaprogrammin)o(g)e(language)p fi(,)h(that)i(serv)o(es)e(as)h(a)99 1657 y(mo)q(dule)14 b(in)o(terconnection)g(language)g(and)g(pro)o(vides)f(the) i(glue)g(for)f(joining)g(together)h(compu-)99 1722 y(tations)d(spanning)e(sev) o(eral)h(megamo)q(dules.)19 b(The)12 b(language)f(allo)o(ws)g(in)o(v)o(oking) g(megamo)q(dules,)99 1787 y(supplying)h(to)j(them)f(and)g(extracting)g(from)f (them)h(data)h(and)e(parameters,)g(con)o(trolling)f(their)99 1852 y(execution\ ,)k(transferring)e(and)i(transducing)e(data)i(b)q(et)o(w)o(een)g(megamo)q(dul\ es,)f(and)g(ac)o(hieving)99 1916 y(async)o(hron)o(y)g(and)g(parallelism)g(of) h(computations.)198 1986 y(The)c(underlying)e(paradigm)g(is)i(that)g(megamo)q (dules)e(pro)o(vide)h(services.)20 b(Megaprogram-)99 2051 y(ming)j(has)g(the) h(p)q(oten)o(tial)f(of)h(substan)o(tially)e(increasing)g(mo)q(deling)h(p)q (o)o(w)o(er)f(and)h(soft)o(w)o(are)99 2115 y(pro)q(ductivit)o(y)14 b(b)o(y)f (conceptualizing)g(v)o(ery)h(large)g(soft)o(w)o(are)f(systems)g(in)h(terms)f (of)h(in)o(teractions)99 2180 y(among)i(v)o(ery)g(large)g(comp)q(onen)o(ts.)0 2600 y 600 2 v 151 2637 a fh(1)198 2655 y fi(Computer)f(Science)i(Departmen)o (t,)e(Stanford)h(Univ)o(ersit)o(y)l(,)f(Stanford,)h(Ca)g(94305)151 2697 y fh (2)198 2715 y fi(Computer)f(Science)i(Departmen)o(t,)e(Bro)o(wn)h(Univ)o(ersi\ t)o(y)f(Pro)o(vidence,)h(RI)g(02912)151 2757 y fh(3)198 2775 y fi(Dipartimen) o(to)f(di)h(Elettronica)g(e)h(Informazione,)e(P)o(olitecnico)h(di)g(Milano,)f (Milano,)g(Italy)987 2895 y(1)p eop %%Page: 2 2 bop 0 50 a fg(1.)57 b(In)n(tro)r(duction)0 146 y fi(The)23 b(problem)e(of)i (scaling)f(up)h(soft)o(w)o(are)f(engineering)f(to)j(handle)e(v)o(ery)h(large) f(soft)o(w)o(are)g(systems)h(is)0 236 y(recognized)16 b(as)h(a)g(b)q(ottlenec) o(k)g(in)g(soft)o(w)o(are)f(engineering)f([CSTB:90].)22 b(The)17 b(term)g ff (megaprogrammi)o(ng)0 326 y fi(w)o(as)22 b(in)o(tro)q(duced)g(b)o(y)g(D)o(ARP) l(A)h(\(see:)35 b([BoSc:92]\))23 b(to)g(motiv)m(ate)h(researc)o(h)d(on)i(this) f(problem.)40 b(This)0 415 y(pap)q(er)18 b(prop)q(oses)f(a)i(framew)o(ork)e (for)h(megaprogrammin)o(g)e(in)i(terms)g(of)h(soft)o(w)o(are)e(comp)q(onen)o (ts)g(called)0 505 y ff(megamo)q(dules)11 b fi(that)i(capture)f(the)h(functio\ nalit)o(y)f(of)h(services)f(pro)o(vided)f(b)o(y)h(large)g(organizational)f (units)0 595 y(lik)o(e)16 b(banks,)g(airline)f(reserv)m(ation)h(systems,)g (and)g(cit)o(y)g(transp)q(ortation)g(systems)g(\(see)h(Figure)e(1\).)99 691 y (Megamo)q(dules)21 b(realize)g(greater)h(abstraction)f(p)q(o)o(w)o(er)g(than) h(traditional)f(mo)q(dules)g(b)o(y)h(stronger)0 781 y(encapsulation)f(mec)o (hanisms:)30 b(they)23 b(can)f(encapsulate)g(not)g(only)g(pro)q(cedures)f(and) g(data,)j(but)e(also)0 870 y(t)o(yp)q(es,)g(concurrency)l(,)e(kno)o(wledge,)h (and)f(on)o(tology)l(.)34 b(Programming)18 b(within)i(a)h(megamo)q(dule)e(can) i(b)q(e)0 960 y(handled)f(b)o(y)h(traditional)g(tec)o(hnology)l(,)g(while)g (computations)g(spanning)e(sev)o(eral)i(megamo)q(dules)e(are)0 1050 y(sp)q (eci\014ed)j(b)o(y)g ff(megaprograms)d fi(in)j(a)h ff(megaprogrammi)o(ng)d (language)p fi(.)38 b(Megaprograms)20 b(pro)o(vide)h(the)0 1139 y(glue)16 b (for)g(megamo)q(dule)g(comp)q(osition)f(and)h(t)o(ypically)g(in)o(v)o(olv)o (e)g(comm)o(unication)e(o)o(v)o(er)i(net)o(w)o(orks.)0 1216 y 1999 2 v 78 1285 a fe(*********************)q(******)q(*******)q(******)q(*******)q(*******)q (*)78 1345 y(*)27 b(MEGAMODULE:)1074 b(*)78 1405 y(*)79 b(encapsulates)28 b (data,)f(behavior)g(and)g(knowledge)237 b(*)78 1465 y(*)79 b(supports)27 b (multiple)h(concurrent)f(activities)290 b(*)78 1525 y(*)79 b(is)27 b(autonomo\ usly)g(operated)h(and)e(maintained)290 b(*)78 1584 y(*)79 b(is)27 b(a)f(poten\ tial)h(component)h(of)e(many)h(megaprograms)133 b(*)78 1644 y(***************\ ******)q(******)q(*******)q(******)q(*******)q(*******)q(*)0 1689 y 1999 2 v 57 x fi(Figure)15 b(1:)94 b(Prop)q(erties)16 b(of)g(a)h(Megamo)q(dule)987 2895 y(2)p eop %%Page: 3 3 bop 99 50 a fi(In)12 b(this)f(pap)q(er)g(w)o(e)h(pro)o(vide)f(a)g(framew)o (ork)g(for)h(megaprogramm)o(ing,)e(recognizing)g(that)j(m)o(uc)o(h)d(w)o(ork) 0 139 y(needs)15 b(to)g(b)q(e)h(done)e(to)i(turn)e(our)h(vision)f(in)o(to)h (realit)o(y)l(.)21 b(The)15 b(remainder)e(of)j(Section)f(1)g(in)o(tro)q(duces) f(basic)0 229 y(concepts)19 b(and)g(a)g(running)e(example.)30 b(Section)19 b (2)h(outlines)e(the)i(general)e(features)h(and)g(functionalit)o(y)0 319 y(of) f(a)f(megaprogramming)d(language,)j(whic)o(h)f(supp)q(orts)g(op)q(erations)h (for)g(in)o(v)o(oking)f(megamo)q(dules,)g(for)0 408 y(supplying)j(and)h(extra\ cting)i(information,)e(and)g(for)h(insp)q(ecting)f(their)h(state)g(and)f(moni\ toring)f(their)0 498 y(progress.)25 b(Section)18 b(3)g(deals)g(with)g(the)h (comp)q(osition)e(and)g(in)o(teraction)h(of)g(megamo)q(dules,)f(indicating)0 588 y(ho)o(w)g(their)g(compilation)f(and)h(optimization)g(can)g(tak)o(e)h(pla\ ce.)25 b(Section)17 b(4)g(describ)q(es)g(an)g(arc)o(hitecture)0 677 y(for)23 b (megaprogramm)o(ing)d(systems)i(with)h(libraries)e(and)h(databases,)h(and)f (deals)h(with)f(megamo)q(dule)0 767 y(main)o(tenance)c(and)g(life-cycle)h(man\ agemen)o(t.)28 b(Section)19 b(5)g(p)q(ositions)f(megaprogramming)e(relativ)o (e)j(to)0 857 y(other)d(w)o(ork.)0 962 y fg(1.1)56 b(Encapsulation)20 b(P)n (o)n(w)n(er)g(of)f(Soft)n(w)n(are)g(Comp)q(on)o(en)n(ts)0 1052 y fi(Soft)o (w)o(are)11 b(comp)q(onen)o(ts)g(pro)o(vide)f(their)i(clien)o(ts)f(with)h(ser\ vices)f(sp)q(eci\014ed)h(b)o(y)f(their)h(in)o(terface)g(and)f(encap-)0 1142 y (sulate)18 b(\(hide\))g(lo)q(cal)h(structures)e(that)h(implemen)o(t)f(their)h (services)f([P)o(arnas:72],)f(along)i(the)g(follo)o(wing)0 1232 y(progression\ :)148 1322 y fd(\017)25 b fi(F)l(unctions)15 b(and)h(pro)q(cedures:)k(encapsu\ late)c(statemen)o(ts)g(and)g(expressions.)148 1412 y fd(\017)25 b fi(Ob)s(jec\ ts)16 b(and)g(classes:)21 b(encapsulate)16 b(data)g(and)g(pro)q(cedures.)148 1502 y fd(\017)25 b fi(Megamo)q(dules:)20 b(encapsulate)c(b)q(eha)o(vior,)f (kno)o(wledge,)h(concurrency)l(,)f(on)o(tology)l(.)0 1607 y(F)l(unctions)f (and)h(pro)q(cedures)e(encapsulate)i(statemen)o(ts)g(and)g(expressions.)20 b (Ob)s(jects)15 b(and)g(classes)f(real-)0 1697 y(ize)h(greater)g(expressiv)o (e)f(p)q(o)o(w)o(er)g(b)o(y)g(encapsulating)g(data)h(\(instance)f(v)m(ariable\ s\))h(as)g(w)o(ell)f(as)h(pro)q(cedures)0 1786 y(\(metho)q(ds\))h([W)l(egn:90\ ].)k(Megamo)q(dules)14 b(supp)q(ort)h(e\013ectiv)o(e)h(hiding)f(of)g(domain-s\ p)q(eci\014c)f(information,)0 1876 y(b)o(y)i(encapsulating)f(b)q(eha)o(vior,) h(kno)o(wledge,)f(and)h(concurrency)l(.)21 b(A)c(b)q(etter)g(encapsulation)e (concept)i(al-)0 1966 y(lo)o(ws)d(megamo)q(dules)f(to)j(mo)q(del)e(v)o(ery)h (large)g(organizations)e(as)i(w)o(ell)f(as)h(soft)o(w)o(are)f(comm)o(unities) f(ha)o(ving)0 2055 y(a)k(lo)q(cal)f(language,)g(culture,)f(and)h(traditions.) 99 2145 y(Megaprogramming)i(is)j(a)g(form)f(of)i ff(programming)c(in)j(the)g (large)g fi(that)h(encompasses)d(not)i(only)0 2235 y(largeness)f(of)i(size)f (but)g(also)g(p)q(ersistence)g(\(largeness)f(in)h(time\),)i(div)o(ersit)o(y)d (\(large)i(v)m(ariabilit)o(y\),)g(and)0 2325 y(infra-structure)14 b(\(large)j (capital)f(in)o(v)o(estmen)o(t\):)148 2415 y fd(\017)25 b fi(Size:)d(man)o (y)15 b(lines)h(of)h(co)q(de.)148 2505 y fd(\017)25 b fi(P)o(ersistence:)c (data)16 b(surviv)o(e)g(the)h(execution)f(of)h(programs.)148 2595 y fd(\017) 25 b fi(Div)o(ersit)o(y:)c(of)c(concepts,)f(p)q(eople,)g(kno)o(wledge,)g(trad\ itions,)f(soft)o(w)o(are)h(comm)o(unities.)148 2685 y fd(\017)25 b fi(Infrast\ ructure:)20 b(education,)c(in)o(terfaces,)g(to)q(ols,)g(net)o(w)o(orks.)0 2775 y(T)l(raditional)h(programming)e(in)j(the)h(large,)f(as)g(de\014ned)g(in)g ([DeKr:76],)f(is)h(concerned)g(primarily)e(with)987 2895 y(3)p eop %%Page: 4 4 bop 0 50 a fi(largeness)11 b(of)h(size,)h(and)e(do)q(es)i(not)f(substan)o (tially)e(address)h(the)h(requiremen)o(ts)f(of)h(p)q(ersistence,)g(div)o(ersi\ t)o(y)l(,)0 139 y(and)g(infrastructure.)18 b(T)l(o)12 b(ac)o(hiev)o(e)g(the)h (needed)e(scale-up)g(in)h(soft)o(w)o(are)g(design)f(and)g(managemen)o(t,)h (m)o(uc)o(h)0 229 y(curren)o(t)j(atten)o(tion)i(is)f(placed)g(on)h(mo)q(delin\ g)e(the)i(pro)q(cess)f(and)g(on)g(enhancemen)o(t)f(of)i(computer-aided)0 319 y (soft)o(w)o(are)f(engineering)f(\(CASE\))i(to)q(ols)f([Hump:88])g([Blum:90].) 99 440 y(P)o(ersistence)d(requires)g(great)i(atten)o(tion)f(to)h(the)f(manage\ men)o(t)f(of)i(c)o(hange.)20 b(Div)o(ersit)o(y)14 b(of)g(concepts)0 529 y(and) g(p)q(eople)g(requires)f(the)h(co)q(ordination)f(of)h(div)o(erse)g(languages,) f(m)o(ultiple)f(programming)g(paradigms,)0 619 y(alternate)20 b(information)e (represen)o(tation,)h(and)h(heterogeneous)e(comp)q(onen)o(ts.)31 b(An)20 b (adequate)h(infras-)0 709 y(tructure)d(requires)e(p)q(o)o(w)o(erful)h(to)q (ols)h(and)g(programming)d(en)o(vironmen)o(ts,)h(as)i(w)o(ell)f(as)h(supp)q (ort)f(of)h(net-)0 798 y(w)o(orks,)d(system)i(ev)o(olution,)e(and)h(education) g([BoSc:92].)99 919 y(The)d(megaprogramming)d(paradigm,)i(mo)q(deling)h(real-\ w)o(orld)e(services,)i(is)g(naturally)g(parallel)f(and)0 1009 y(distributed;) 21 b(it)g(should)f(supp)q(ort)f(dynamic)h(c)o(hanges)g(of)h(the)g(in)o(terfac\ e)f(b)q(eha)o(vior)g(and)g(structure)g(of)0 1099 y(constituen)o(t)f(megamo)q (dules;)g(for)g(example,)g(a)h(bank)f(ma)o(y)f(pro)o(vide)h(new)g(services)g (to)g(its)h(customers,)0 1188 y(while)c(a)h(corp)q(oration)e(ma)o(y)h(create) h(new)f(man)o(ufacturing)e(and)i(service)g(departmen)o(ts.)99 1309 y(Megaprog\ ramming)g(is)j(concerned)f(with)h(computations)f(that)i(span)e(sev)o(eral)h (soft)o(w)o(are)f(comp)q(o-)0 1399 y(nen)o(ts.)27 b(Its)18 b(ro)q(ots)g(ma)o (y)g(p)q(erhaps)f(b)q(e)i(found)f(in)g(the)g(w)o(ork)g(of)h([DeKr:76],)e(whic) o(h)h(in)o(tro)q(duced)f ff(mo)q(dule)0 1488 y(in)o(terconnection)e(languages) g fi(\(MILs\))h(in)g(order)e(to)j(facilitate)g(the)f(construction)f(and)g(man\ agemen)o(t)g(of)0 1578 y(programs)j(consisting)h(of)h(collections)g(of)g(soft) o(w)o(are)f(comp)q(onen)o(ts,)h(thereb)o(y)g(recognizing)e(that)j(struc-)0 1668 y(turing)13 b(collections)h(of)h(mo)q(dules)e(is)h(an)g(essen)o(tially)g (di\013eren)o(t)f(in)o(tellectual)h(activit)o(y)h(from)f(constructing)0 1757 y (individual)d(mo)q(dules.)19 b(Recen)o(t)13 b(w)o(ork)f(\([BeLP:92]\))h(on)f ff(mo)q(dule)g(in)o(terface)g(formalisms)e fi(\(MIF\))j(pro)o(vides)0 1847 y (the)k(basis)e(for)h(the)h(sp)q(eci\014cation)f(and)g(implemen)o(tation)f(of) h(MILs.)99 1968 y(Megamo)q(dules)26 b(require)g(stronger)h(mo)q(dule)f(in)o (terconnection)g(mec)o(hanisms)f(than)i(traditional)0 2058 y(mo)q(dules)13 b (b)q(ecause)i(of)f(their)g(stronger)g(encapsulation)f(facilities)h(and)g(thei\ r)g(supp)q(ort)f(of)i(heterogeneous)0 2147 y(in)o(terfaces)20 b(and)g(dynamic) g(ev)o(olution.)34 b(Therefore,)22 b(megaprogramm)o(ing)c(languages)h(\(MPL\)) j(extend)0 2237 y(MILs')d(expressiv)o(e)f(p)q(o)o(w)o(er,)g(b)o(y)h(handling) f(information)f(transfer)h(b)q(et)o(w)o(een)h(heterogeneous)f(mo)q(dules,)0 2327 y(dynamic)11 b(queries)g(and)g(up)q(dates)g(b)o(y)h(users,)f(distributed) f(net)o(w)o(ork)h(comm)o(unication)e(proto)q(cols,)j(and)f(dy-)0 2416 y(namic\ ally)k(c)o(hanging)f(the)i(sp)q(eci\014cations)f(of)h(in)o(terfaces.)21 b(The) 16 b(traditional)e fe(CALL)j fi(statemen)o(t)e(b)q(ecomes)0 2506 y(o)o(v)o (erloaded)21 b(when)h(faced)h(with)g(this)f(arra)o(y)f(of)i(tasks.)40 b(W)l (ork)23 b(on)f(parallel)f(languages)h(has)g(already)0 2596 y(replaced)16 b (a)h(single)f(statemen)o(t)h(with)g(m)o(ultiple)f(segmen)o(ts)g([Rinard:92].) 21 b(W)l(e)c(generalize)g(on)f(that)i(con-)0 2685 y(cept.)29 b(W)l(e)19 b(pre\ sen)o(t)e(a)i(particular)e(MPL)i(that)g(is)f(relativ)o(ely)h(lo)o(w-lev)o(el) e(as)i(a)f(programming)e(language)0 2775 y(but)g(high-lev)o(el)f(when)i(view) o(ed)f(as)g(a)g(net)o(w)o(orking)g(language.)987 2895 y(4)p eop %%Page: 5 5 bop 0 50 a fg(1.2)56 b(On)n(tologies)0 152 y fi(The)14 b(term)f(\\on)o(tolog\ y")g(deriv)o(es)g(from)g(logic)h(and)f(arti\014cial)g(in)o(telligence,)g(wher\ e)g(it)h(denotes)g(the)g(primi-)0 241 y(tiv)o(e)f(concepts,)g(terminology)l (,)e(and)h(in)o(terpretation)f(paradigm)g(of)h(a)h(domain)e(of)h(discourse)f ([Grub)q(er:91].)0 331 y(Whereas)j(on)o(tologies)f(pro)o(vide)g(a)h(conceptua\ l)g(framew)o(ork)f(for)i(talking)f(ab)q(out)g(an)g(application)f(domain)0 421 y(and)j(an)h(implemen)o(tation)e(framew)o(ork)g(for)i(problem)e(solving.)22 b (They)17 b(pro)o(vide)e(a)i(partitioning)f(of)h(con-)0 510 y(text,)c(so)e(tha\ t)h(systems)e(that)i(w)o(ould)e(otherwise)g(b)q(e)i(to)q(o)g(complex)f(to)g (understand,)f(b)q(ecome)h(manageable)0 600 y([WRB+:90,)16 b(Lenat:90].)99 702 y(Our)i(paradigm)g(for)h(megaprogrammin)o(g)e(is)i(based)f(on)h(partitioning) f(of)i(tasks)f(in)o(to)g(large)g(com-)0 792 y(p)q(onen)o(ts,)g(called)f(megam\ o)q(dules,)g(that)h(pro)o(vide)f(greater)g(spatial,)h(temp)q(oral,)f(and)h (conceptual)f(inde-)0 881 y(p)q(endence)f(than)g(traditional)f(mo)q(dules.)23 b(Eac)o(h)17 b(megamo)q(dule)f(should)f(ha)o(v)o(e)i(an)g(in)o(ternally)f(con\ sisten)o(t)0 971 y(on)o(tology)l(,)d(to)g(re\015ect)g(a)g(uniform)e(conceptua\ l)h(framew)o(ork)g(and)g(problem-solving)e(paradigm.)19 b(Whereas)0 1061 y (on)o(tologies)c(in)h(logic)h(are)f(sp)q(eci\014ed)g(b)o(y)g(systems)f(of)i (axioms,)f(the)g(on)o(tology)g(of)h(a)f(megamo)q(dule)g(should)0 1150 y(b)q (e)i(determined)f(b)o(y)h(declarations)f(sp)q(ecifying)h(the)h(prop)q(erties) e(of)h(named)f(en)o(tities)h(accessible)g(within)0 1240 y(the)k(megamo)q(dule\ .)34 b(Eac)o(h)21 b(declaration)f(determines)g(an)h ff(on)o(tological)g(commi\ tmen)o(t)f fi(to)h(use)g(the)h(de-)0 1330 y(\014ned)i(term)f(in)h(the)h(manne\ r)e(sp)q(eci\014ed)g(b)o(y)h(the)h(declaration.)44 b(The)24 b(collection)h (of)f(all)g(on)o(tological)0 1419 y(commitmen)o(ts)14 b(determines)g(the)i (on)o(tology)l(.)21 b(Declarations)15 b(ma)o(y)g(b)q(e)h(classi\014ed)e(b)o (y)i(the)g(nature)f(of)g(their)0 1509 y(on)o(tological)d(commitmen)o(t)h(in)o (to)g(declarations)f(for)h(v)m(ariables,)g(op)q(erations,)g(b)q(eha)o(vior,)g (and)g(kno)o(wledge:)148 1611 y(1)25 b fe(declare\(variable,)k(x,)d(3\))148 1713 y fi(2)f fe(declare\(operation,)k(successor,)f(fun\(x\).\(x+1\)\))148 1815 y fi(3)d fe(declare\(behavior,)k(vehicleclass,)f(vehiclebehavior\))148 1916 y fi(4)d fe(declare\(knowledge,)k(time,)e(ontology-of-time\))0 2045 y fi (V)l(ariables,)14 b(op)q(erations,)g(and)h(b)q(eha)o(vior)f(can)h(b)q(e)g(in) o(tro)q(duced)f(b)o(y)h(traditional)f(declarations.)20 b(On)o(tologi-)0 2135 y (cal)14 b(commitmen)o(ts)e(for)i(kno)o(wledge)f(are)h(b)q(ey)o(ond)f(the)h (curren)o(t)f(state)h(of)g(the)g(art)g(and)g(b)q(ey)o(ond)f(the)h(scop)q(e)0 2225 y(of)j(this)f(pap)q(er,)g(but)g(are)g(a)h(cen)o(tral)e(goal)i(of)f(arti\ \014cial)g(in)o(telligence)g(\([Grub)q(er:91],)f([So)o(w)o(a:91]\).)99 2327 y (F)l(ortunately)26 b(w)o(e)g(can)h(separate)f(the)h(question)f(of)h(on)o(tolo\ gical)e(commitmen)o(t)h(within)g(mega-)0 2416 y(mo)q(dules)17 b(from)g(that)i (of)f(comm)o(unication)e(among)h(megamo)q(dules.)24 b(Since)18 b(w)o(e)g(are) f(largely)h(concerned)0 2506 y(with)f(megamo)q(dule)f(comp)q(osition)f(rather) i(than)f(with)h(their)g(in)o(ternal)e(structure,)h(the)i(mec)o(hanisms)c(of)0 2596 y(on)o(tological)e(commitmen)o(t,)g(though)h(imp)q(ortan)o(t)f(to)h(the) h(practical)e(realization)h(of)g(megaprogrammin)o(g,)0 2685 y(are)i(not)g(a)h (primary)d(concern)i(of)h(this)f(pap)q(er:)20 b(the)c(sp)q(eci\014cation)f (of)g(on)o(tologies)f(lo)q(cal)i(to)g(a)f(comp)q(onen)o(t)0 2775 y(remains)g (a)h(lo)q(cal)h(issue.)987 2895 y(5)p eop %%Page: 6 6 bop 0 50 a fg(1.3)56 b(An)20 b(Exam)o(ple:)k(T)-5 b(ransp)r(ortation)17 b (of)h(Go)r(o)r(ds)f(Bet)n(w)n(een)k(Tw)n(o)f(Cities)0 140 y fi(As)13 b(an)f (illustration,)g(consider)f(the)i(transp)q(ortation)e(of)i(go)q(o)q(ds)g(b)q (et)o(w)o(een)f(t)o(w)o(o)h(cities.)20 b(The)13 b(general)f(prob-)0 230 y(lem) 17 b(is)g(that)h(of)f(shipping)f(go)q(o)q(ds)h(b)q(et)o(w)o(een)g(an)o(y)g (pair)f(of)i(cities)f(b)o(y)g(v)m(arious)g(forms)f(of)i(transp)q(ortation,)0 319 y(suc)o(h)12 b(as)h(air,)g(rail,)g(or)f(truc)o(k.)21 b(Lo)q(cal)13 b(tran\ sp)q(ortation)f(within)h(eac)o(h)g(cit)o(y)g(is)g(managed)f(b)o(y)h(megamo)q (dules,)0 409 y(and)k(in)o(tercit)o(y)f(transp)q(ortation)g(b)o(y)h(air,)g (rail,)f(and)h(truc)o(k)f(is)h(managed)f(b)o(y)h(other)g(megamo)q(dules.)22 b (The)0 499 y(complexit)o(y)16 b(of)g(eac)o(h)f(megamo)q(dule)g(is)g(substan)o (tial)f(and)i(the)g(total)g(n)o(um)o(b)q(er)e(of)i(megamo)q(dules)e(can)i(b)q (e)0 588 y(mo)q(derately)g(large.)22 b(W)l(e)16 b(examine)g(a)h(sp)q(eci\014c) f(application)g(in)g(greater)g(detail.)99 678 y(Consider)c(a)i(logistics)g (application)e(for)i(the)g(shipmen)o(t)e(of)j(go)q(o)q(ds)f(b)q(et)o(w)o(een) f(t)o(w)o(o)h(U.S.)g(Na)o(vy)g(instal-)0 768 y(lations,)k(NOSC)h(in)f(San)g (Diego)h(to)g(NRL)g(in)g(W)l(ashington.)27 b(This)18 b fc(Ship-Go)q(o)q(ds)h fi(task)g(can)g(b)q(e)g(realized)0 858 y(b)o(y)d(a)h(megaprogram)d(using)h (three)h(megamo)q(dules)f(for:)148 948 y(1)25 b(Surface)16 b(transp)q(ort)f (in)i(San)e(Diego)i(from)f(NOSC.)148 1038 y(2)25 b(Commercial)15 b(air)h(frei\ gh)o(t.)148 1128 y(3)25 b(Surface)16 b(transp)q(ort)f(in)i(W)l(ashington)e (DC)h(from)g(one)h(of)f(its)h(airp)q(orts)e(to)i(NRL.)0 1249 y(The)12 b(megam\ o)q(dules)e(\(1\))i(and)f(\(3\))i(will)e(b)q(e)h(similar)e(in)i(structure)f (and)g(pro)q(cessing,)g(but)g(will)h(use)f(di\013eren)o(t)0 1339 y(databases.) 21 b(Lo)q(cal)c(exp)q(erts)f(in)g(these)h(cities)f(will)g(main)o(tain)f(their) h(o)o(wn)f(databases.)21 b(Megamo)q(dule)15 b(\(2\))0 1429 y(will)h(di\013er) g(in)g(on)o(tology)g(as)g(w)o(ell,)g(as)g(it)h(represen)o(ts)d(and)i(pro)q (cesses)g(data)g(according)f(to)i(its)g(particular)0 1518 y(needs)f(and)g(acc\ ording)f(to)i(the)g(unique)f(c)o(haracteristics)f(of)h(the)h(en)o(vironmen)o (t.)99 1608 y(Megamo)q(dule)k(\(1\),)k(whic)o(h)d(deals)f(with)i(San)f(Diego) g(surface)g(transp)q(ort,)h(will)f(use)g(tables)h(that)0 1698 y(en)o(umerate) 14 b(the)h(truc)o(ks)f(a)o(v)m(ailable)g(to)h(NOSC,)f(the)h(times)g(when)f (they)h(are)g(a)o(v)m(ailable,)f(their)h(capacities,)0 1788 y(and)j(their)g (loading)f(facilities.)27 b(It)19 b(will)f(also)g(con)o(tain)g(a)g(San)g(Dieg\ o)g(roadmap)f(and)h(transit)f(times)h(for)0 1877 y(road-segmen)o(ts)g(at)i (di\013eren)o(t)g(times)g(of)g(da)o(y)l(.)33 b(Programs)18 b(within)i(this)f (megamo)q(dule)g(will)h(deal)g(with)0 1967 y(reserving)c(truc)o(ks,)g(mo)o (ving)f(them)i(to)g(NOSC,)g(their)f(loading,)g(and)g(tra)o(v)o(el)g(to)h(the) g(airp)q(ort.)23 b(They)17 b(will)0 2057 y(also)d(b)q(e)g(able)g(to)h(pro)q (duce)f(cost)g(and)g(time)g(estimates)g(in)g(these)h(tasks.)21 b(Ho)o(w)o(ev) o(er,)14 b(when)g(the)g(departure)0 2146 y(time)h(from)f(NOSC)h(is)f(not)h (kno)o(wn,)f(the)h(estimates)g(ma)o(y)f(ha)o(v)o(e)g(excessiv)o(e)h(uncertain) o(t)o(y)f(or)g(require)g(v)o(ery)0 2236 y(large)i(tables)g(of)h(alternativ)o (es)f(for)g(v)m(arious)g(conditions.)99 2326 y(Megamo)q(dule)k(\(2\),)i(for)f (planning)e(deliv)o(ery)h(of)h(go)q(o)q(ds)g(via)g(commercial)e(air)i(freigh) o(t,)g(is)f(itself)h(a)0 2416 y(substan)o(tial)13 b(application.)20 b(It)15 b (has)e(to)i(b)q(e)g(able)f(to)h(c)o(ho)q(ose)e(among)h(m)o(ultiple)f(airlines\ ,)g(obtain)h(sc)o(hedules)0 2506 y(and)g(tari\013s,)h(and)f(c)o(hec)o(k)h(for) f(a)o(v)m(ailable)g(space.)21 b(This)14 b(megamo)q(dule)g(ma)o(y)g(itself)h (in)o(v)o(ok)o(e)f(computational)0 2595 y(co)q(des)i(shared)g(b)o(y)g(other)g (megamo)q(dules)f(through)g(con)o(v)o(en)o(tional)g(in)o(terfaces)h(to)h(prog\ ram)d(libraries.)99 2685 y(Megamo)q(dule)j(\(3\),)i(for)g(the)f(W)l(ashington) f(surface-transp)q(ort,)g(will)h(need)g(to)g(kno)o(w)g(routes)g(from)0 2775 y (eac)o(h)g(of)g(the)h(three)f(W)l(ashington)f(airp)q(orts.)26 b(Rush)17 b(hou\ rs)g(di\013er)h(among)f(cities,)i(and)e(in)h(W)l(ashington)987 2895 y(6)p eop %%Page: 7 7 bop 0 50 a fi(some)15 b(critical)g(roads)g(are)g(closed)h(in)f(one)g(directi\ on)g(during)f(rush)h(hours.)20 b(Geograph)o(y)14 b(mak)o(es)h(a)h(di\013er-)0 139 y(ence)f(as)g(w)o(ell.)21 b(Heuristics)14 b(that)h(are)g(e\013ectiv)o(e)h (in)e(San)h(Diego,)g(suc)o(h)f(as)g(`tak)o(e)i(a)e(lo)q(cal)i(road)e(if)h(the) g(main)0 229 y(road)h(is)g(blo)q(c)o(k)o(ed',)f(fail)i(when)f(dealing)f(with) i(W)l(ashington)e(bridges.)99 320 y(The)j(megaprogram)d(will)j(then)g(co)q (ordinate)g(the)g(activities)g(of)h(megamo)q(dules)d(\(1\),)j(\(2\),)g(and)e (\(3\))0 410 y(and)24 b(presen)o(t)f(to)i(its)f(end-user)f(the)h ff(b)q(est)h fi(plan)f(for)g(the)h(shipmen)o(t.)44 b(The)24 b(execution)h(sequence)f(of)0 500 y(megamo)q(dules)18 b(ma)o(y)g(b)q(e)i(a\013ected)g(b)o(y)f(a)g(v)m(ariet) o(y)h(of)g(application)e(requiremen)o(ts)f(and)i(constrain)o(ts.)29 b(If)0 589 y(the)18 b ff(time-of-arriv)m(al)e fi(at)j(NRL)f(is)f(the)h(critical)g(factor\ ,)g(then)g(execution)g(should)e(probably)h(commence)0 679 y(with)g(the)g(W)l (ashington)f(megamo)q(dule)g(and)h(pro)q(ceed)f(bac)o(kw)o(ards.)22 b(If)17 b (instead)g(the)g ff(time-ready)f fi(of)i(the)0 769 y(shipmen)o(t)i(at)i(NOSC) f(is)g(supplied)f(to)i(the)g(San)f(Diego)g(megamo)q(dule,)h(then)f(forw)o(ard) f(computation)0 858 y(determines)14 b(the)i(arriv)m(al)f(time.)22 b(Without) 16 b(suc)o(h)e(requiremen)o(ts,)g(the)i(megaprogram)d(migh)o(t)i(fo)q(cus)h (\014rst)0 948 y(on)g(the)h(most)f(economical)g(\015igh)o(t.)0 1009 y 1999 2 v 105 1139 a fe(End)26 b(User)h(A)131 b(End)26 b(User)h(B)52 1194 y(-----------\ ---)133 b(--------------)52 1249 y(|)27 b(IO)f(module)53 b(|)131 b(|)26 b(IO) h(module)g(|)52 1304 y(|)g(suitable)79 b(|)131 b(|)26 b(suitable)i(|)52 1358 y (|)f(for)f(user)h(A)f(|)131 b(|)26 b(for)h(user)g(B)f(|)52 1413 y(-----------\ ---)133 b(-------------)209 1468 y(||)53 b(||)183 1523 y(--------------------\ ---)q(-------)q(------)q(-------)q(----)183 1578 y(|)174 b fc(Ship-Go)q(o)q (ds)26 b fe(Megaprogram)159 b(|)183 1632 y(-----------------------)q(-------) q(------)q(-------)q(----)183 1687 y(||)e(||)g(||)183 1742 y(||)27 b(\(1\)) 157 b(||)26 b(\(2\))132 b(||)26 b(\(3\))183 1797 y(||)157 b(||)g(||)26 1852 y (--------------)28 b(--------------)h(--------------)f(--------------)g(-----\ ---------)26 1906 y(|)e(Megamodule)i(|)e(|)h(Megamodule)g(|)g(|)f(Megamodule) i(|)e(|)g(Megamodule)i(|)e(|)h(Megamodule)g(|)26 1961 y(|)53 b(warehouse)27 b (|)f(|)h(surface)g(tr.|)g(|)f(airfreight)i(|)e(|)g(surface)h(tr.|)g(|)g(ocean) f(tran.|)26 2016 y(|)g(\(not)h(used\))g(|)f(|)h(San)f(Diego)53 b(|)27 b(|)52 b (Com)27 b(US)105 b(|)26 b(|)g(Washington)i(|)e(|)h(\(not)f(used\))h(|)26 2071 y(--------------)55 b(-------------)28 b(--------------)g(--------------)g (--------------)157 2126 y([)e(lower-level)i(megamodules)g(and)e(databases)i (])0 2381 y 1999 2 v 51 x fi(Figure)15 b(2.)72 b(Example)16 b(of)g(use)h(of)f (megamo)q(dules)f(b)o(y)h(a)h(megaprogram.)987 2895 y(7)p eop %%Page: 8 8 bop 0 50 a fg(2.)57 b(Megaprogram)n(s)16 b(and)i(Megaprogram)n(m)m(ing)e(Lan\ guages)0 142 y fi(Megaprograms)e(comp)q(ose)i(and)f(sc)o(hedule)g(the)i(compu\ tations)e(p)q(erformed)g(b)o(y)i(megamo)q(dules.)j(Mega-)0 231 y(programming) 15 b(languages)i(m)o(ust)g(allo)o(w)g(\015exible)g(comp)q(osition)g(of)h(mega\ mo)q(dules)f(and)g(supp)q(ort)g(b)q(oth)0 321 y(sync)o(hronous)23 b(and)i(asy\ nc)o(hronous)e(co)q(ordination)h(sc)o(hemes,)j(decen)o(tralized)d(data)i(tran\ sfer,)h(paral-)0 411 y(lelism,)15 b(and)h(conditional)f(executions.)99 502 y (In)f(this)h(section,)f(w)o(e)h(prop)q(ose)e(a)i(particular)e(MPL)h([WW)o(C:9\ 0];)g(man)o(y)g(concepts)g(presen)o(ted)g(here,)0 592 y(though)f(sp)q(eci\014\ cally)h(related)f(to)h(one)g(prop)q(osed)f(language,)g(are)g(quite)i(general.) 20 b(The)14 b(language)e(is)i(used)0 682 y(for)i(in)o(tro)q(ducing)e(function\ alities)i(to)g(b)q(e)h(implemen)o(ted)d(b)o(y)i(megaprograms)e(and)h(megamo)q (dules.)20 b(The)0 771 y(reader)f(should)f(b)q(e)j(a)o(w)o(are)d(that)j(the)f (language)f(and)g(its)h(functionalities)f(corresp)q(ond)g(to)h(our)f(vision;) 0 861 y(researc)o(h)e(and)g(dev)o(elopmen)o(t)g(is)h(required)g(to)g(turn)g (this)g(vision)g(in)o(to)g(realit)o(y)l(.)26 b(The)19 b(design)e(principles)0 951 y(of)g(MPL)f(can)g(b)q(e)h(summarized)d(as)i(follo)o(ws:)148 1042 y fd (\017)25 b fi(T)l(raditional)20 b fe(CALL)j fi(statemen)o(ts)f(for)f(in)o(v)o (oking)g(remote)h(pro)q(cedures)e(and)i(passing)e(param-)198 1132 y(eters,)i (are)f(o)o(v)o(erloaded)e(when)i(used)g(to)g(comp)q(ose)g(large)f(systems.)36 b(MPL)21 b(segmen)o(ts)e(their)198 1222 y(functions)14 b(b)o(y)h(separating)f (parameter)f(managemen)o(t)h(in)g(input)h(and)f(output)h(from)f(the)h(in)o (v)o(o-)198 1311 y(cation.)148 1403 y fd(\017)25 b fi(Flexibilit)o(y)12 b(and) h(async)o(hron)o(y)e(is)i(enhanced,)g(b)o(y)g(allo)o(wing)f(autonomous)f(exec\ ution)i(of)h(mega-)198 1493 y(mo)q(dules,)19 b(while)g(the)h(in)o(v)o(oking)e (megaprograms)f(retain)i(great)g(\015exibilit)o(y)l(,)h(as)f(MPL)g(state-)198 1582 y(men)o(ts)e(can)h(monitor,)f(insp)q(ect,)h(and)g(constrain)f(the)h(exec\ ution)g(of)g(megamo)q(dules)f(and)g(can)198 1672 y(accept)g(partial)f(results\ .)148 1764 y fd(\017)25 b fi(W)l(e)30 b(are)f(inspired)f(b)o(y)h(our)g(databa\ se)g(bac)o(kground;)35 b(databases)28 b(pro)o(vide)h(services)g(au-)198 1853 y (tonomously;)19 b(input)f(and)h(output)g(parameters)e(of)i(megamo)q(dules)f (are)h(presen)o(ted)e(through)198 1943 y(database-lik)o(e)c(sc)o(hemas,)g(and) g(the)i(ideas)f(b)q(ehind)f(megamo)q(dule)g(optimization)g(ha)o(v)o(e)h(sev)o (eral)198 2033 y(common)h(features)h(with)h(query)f(optimization.)99 2124 y (The)k(distinguishing)d(feature)j(of)h(the)f(prop)q(osed)f(MPL)h(is)f(the)i (substitution)e(of)h(the)g(traditional)0 2214 y fe(CALL)c fi(statemen)o(t,)f (whic)o(h)f(exerts)i(con)o(trol)e(and)h(pro)o(vides)e(comm)o(unication)h(b)q (et)o(w)o(een)h(soft)o(w)o(are)f(comp)q(o-)0 2304 y(nen)o(ts,)i(b)o(y)g(three) g(distinct)g(statemen)o(ts:)22 b fe(SUPPLY)p fi(,)17 b fe(INVOKE)p fi(,)g(and) f fe(EXTRACT)p fi(.)134 2412 y(a.)25 b fe(SUPPLY)18 b fi(pro)o(vides)c(global) i(argumen)o(ts)f(from)g(a)i(megaprogram)d(to)j(the)g(megamo)q(dule.)132 2504 y (b.)24 b fe(INVOKE)e fi(causes)e(the)h(megamo)q(dule)f(to)h(actually)g(pro)q (cess)f(these)h(argumen)o(ts)e(and)h(prepare)198 2594 y(results.)137 2685 y (c.)25 b fe(EXTRACT)13 b fi(p)q(ermits)d(the)i(megaprogram)d(to)j(actually)g (extract)g(results)f(from)g(the)h(megamo)q(dule.)198 2775 y(F)l(urther)j(stat\ emen)o(ts)i(are)f(used)h(for)f(insp)q(ecting)h(and)f(con)o(trolling)f(megamo) q(dule)h(execution.)987 2895 y(8)p eop %%Page: 9 9 bop 198 50 a fi(The)16 b(most)g(imp)q(ortan)o(t)g(are:)132 139 y(d.)24 b fe (EXAMINE)13 b fi(to)f(allo)o(w)f(the)h(megaprogram)d(to)j(c)o(hec)o(k)f(on)h (the)g(progress)d(b)q(eing)j(made)f(in)g(obtaining)198 229 y(results.)137 319 y(e.)25 b fe(ESTIMATE)p fi(,)16 b(to)e(cause)g(the)h(megamo)q(dule)e(to)i(pro) o(vide)e(a)h(p)q(erformance)f(estimate,)i(so)f(that)h(the)198 408 y(megaprogr\ am)f(can)i(judge)h(whether)f(in)o(v)o(o)q(cation)f(is)h(lik)o(ely)h(to)g(b)q (e)g(e\013ectiv)o(e.)0 498 y(T)l(o)j(illustrate)f(our)g(MPL,)h(w)o(e)g(giv)o (e)g(a)g(simple)f(megaprogram)f(that)i(\014lls)f(an)h(order)f(b)o(y)h(in)o (v)o(oking)f(t)o(w)o(o)0 588 y(megamo)q(dules)f(\\)p fe(Producer)p fi(")j(and) f(\\)p fe(Consumer)p fi(",)i(supplying)c(and)h(extracting)i(data)f(for)f(eac) o(h)h(mega-)0 677 y(mo)q(dule,)g(and)f(transducing)f(the)i(output)g(of)g(the) g(pro)q(ducer)f(in)o(to)g(the)i(format)e(required)g(b)o(y)g(the)i(con-)0 767 y (sumer.)39 b(Keyw)o(ords)22 b(of)h(MPL)g(are)f(en)o(tirely)g(in)h(capital)g (letters,)h(megamo)q(dule)d(and)i(megaprogram)0 857 y(names)15 b(ha)o(v)o(e)h (an)h(initial)e(capital)i(letter,)g(and)e(datanames)h(are)g(en)o(tirely)g(in) g(small)f(letters.)0 933 y 1999 2 v 26 980 a fe(MEGAPROGRAM)28 b(Fill-order\(\ Producer,)h(Consumer\))78 1040 y(Input)e(product,)h(list-of-parts)78 1100 y (SUPPLY)g(TO)e(Producer,)h(list-of-parts)78 1160 y(INVOKE)h(Producer.product) 78 1219 y(EXAMINE)g(\(Status\))f(UNTIL)g(Status)g(=)f(DONE)78 1279 y(EXTRACT) i(FROM)e(Producer,)i(list-of-produced-items)78 1339 y(PERFORM)g(Transduce\(li\ st-of-produced)q(-items)q(,)h(list-of-consumer-items\))78 1399 y(SUPPLY)f(TO) e(Consumer,)h(list-of-consumer-ite)q(ms)78 1459 y(INVOKE)h(Consumer.purchase) 78 1518 y(EXAMINE)g(\(Status\))f(UNTIL)g(Status)g(=)f(DONE)78 1578 y(EXTRACT) i(FROM)e(Consumer,)i(list-of-purchased-items)78 1638 y(Output)g(cost,)e(list-\ of-purchased-ite)q(ms)0 1703 y 1999 2 v 47 x fi(Figure)15 b(3.)50 b(A)17 b (Simple)e(Megaprogram)99 1865 y(Our)k(MPL)h(is)g(not)g(complex)g(from)f(a)h (programming)d(language)j(p)q(oin)o(t)f(of)i(view,)g(but)f(is)g(higher-)0 1955 y(lev)o(el)e(than)f(a)h(mo)q(dule)f(in)o(terconnection)g(language.)25 b(In)17 b(the)h(follo)o(wing,)f(w)o(e)h(examine)f(the)h(features)g(of)0 2045 y(our)h (MPL)g(in)g(greater)h(detail;)h(w)o(e)e(presen)o(t)g(\014rst)g(the)g(data)h (structures)e(for)i(the)g(supply)e(and)h(extract)0 2134 y(op)q(eration,)12 b (next)h(the)f(op)q(erations)f(for)h(megamo)q(dule)e(in)o(teraction;)j(then)f (the)g(op)q(erations)f(for)h(insp)q(ecting)0 2224 y(at)i(compile-time)f(the)h (in)o(terfaces)f(and)g(con)o(ten)o(t)h(of)g(megaprograms;)d(and)j(\014nally)l (,)f(those)h(for)f(examining)0 2314 y(the)k(run-time)e(status)h(of)h(computat\ ions.)j(Compile-time)15 b(and)h(execution-time)g(can)h(easily)f(o)o(v)o(erlap\ .)0 2416 y fg(2.1)56 b(Data)19 b(Structure)h(In)n(terfaces)e(for)g(Supply)i (and)e(Extract)0 2506 y fi(The)i ff(data)f(structures)g fi(supp)q(orted)g(b)o (y)g(a)h(megaprogrammi)o(ng)d(declaration)i(enable)g(pro)o(viding)f(input)0 2596 y(and)c(output)h(parameters,)e(of)j(arbitrary)d(complexit)o(y)l(,)i(b)q (et)o(w)o(een)f(a)h(megaprogram)e(and)h(megamo)q(dules;)0 2685 y(data)25 b (structures)e(are)h(de\014ned)g(in)g(the)h(con)o(text)h(of)e(megamo)q(dules)f (and)h(are)h(accessible)f(b)o(y)g(mega-)0 2775 y(programs.)44 b(The)25 b(MPL) g(t)o(yp)q(e)g(system)f(should)g(b)q(e)h(p)q(o)o(w)o(erful)e(enough)h(to)h (supp)q(ort)f(complex)g(data)987 2895 y(9)p eop %%Page: 10 10 bop 0 50 a fi(structures;)14 b(therefore,)h(it)g(should)e(include)h(generali\ zed)g(t)o(yp)q(e)i(constructors,)d(including)h(records,)f(sets,)0 139 y(m)o (ultisets,)i(lists,)h(sequences,)g(up)q(datable)g(arra)o(ys,)e(sparse)i(arra) o(ys,)e(etc.)99 230 y(Data)d(structures)f(of)i(megamo)q(dules)d(are)i(designe\ d)f(indep)q(enden)o(tly;)i(they)f(ha)o(v)o(e)g(arbitrary)e(in)o(ternal)0 319 y (t)o(yp)q(e)18 b(systems)f(and)h(are)f(de\014ned)g(async)o(hronously)e(from)i (megaprogram)e(de\014nitions.)25 b(Megamo)q(dules)0 409 y(also)14 b(pro)o(vid\ e)g(self-describing)e fe(EXPORT)k fi(data)f(structures)e(that)i(should)f(b)q (e)h(compatible)f(with)g(the)h(MPL)0 499 y(t)o(yp)q(e)20 b(system.)32 b(Ho)o (w)o(ev)o(er,)20 b(a)g(megamo)q(dule)e(need)i(not)g(to)g(b)q(e)g(able)g(to)g (handle)f(all)h(of)g(the)g(MPL)g(t)o(yp)q(e)0 588 y(system,)c(its)h(capabilit) o(y)e(m)o(ust)h(only)g(b)q(e)h(adequate)f(to)h(supp)q(ort)f(all)g(of)h(its)f fe(EXPORT)i fi(data)e(structures.)99 679 y(The)j(tec)o(hnology)g(w)o(e)g(prop) q(ose)f(to)h(b)q(orro)o(w)f(and)g(adapt)h(here)g(deriv)o(es)f(from)g(database) h(sc)o(hemas,)0 768 y(the)14 b(description)e(of)j(database)e(con)o(ten)o(ts)g (and)g(formats)g(that)h(p)q(ermits)f(man)o(y)g(transaction)g(programs)f(to)0 858 y(share)17 b(a)h(database)f(and)g(obtain)g(data)h(selectiv)o(ely)g(and)f (asso)q(ciativ)o(ely)l(.)25 b(Accordingly)l(,)17 b(datastructures)0 948 y(of) k(megamo)q(dules)f(are)g(declared)h(in)f(terms)h(of)g(a)g(sc)o(hema)f(de\014n\ ition,)h(but)g(signi\014can)o(t)e(extension)i(of)0 1037 y(database)16 b(sc)o (hema)f(concepts)h(will)g(b)q(e)h(required,)e(since:)148 1127 y(1)25 b(The)19 b(data)g(structures)f(p)q(ermissible)f(in)i(general)f(megaprograms)f(are)h (more)h(complex)f(than)198 1217 y(the)f(simple)e(relations)g(seen)i(in)f(most) g(DBMSs)g([CCZLL:90].)148 1307 y(2)25 b(Enough)20 b(information)f(m)o(ust)g (b)q(e)i(pro)o(vided)f(to)h(p)q(ermit)f(transduction)f(of)i(information)e(b)q (e-)198 1397 y(t)o(w)o(een)c(data)h(structures)f(that)h(di\013er.)21 b(T)l (ransduction)13 b(o)q(ccurs)j(when)f(data)h(extracted)g(from)f(a)198 1487 y (megamo)q(dule)e(are)h(submitted)f(to)i(a)f(successor)f(megamo)q(dule:)19 b (optimizations,)13 b(describ)q(ed)g(in)198 1576 y(Section)h(4,)g(com)o(bine)f (consecutiv)o(e)g fe(EXTRACT)j fi(and)d fe(SUPPLY)i fi(op)q(erations)e(to)h (generate)g(a)g(direct)198 1666 y(\015o)o(w)i(of)h(information)d(among)i(mega\ mo)q(dules.)0 1772 y fg(2.2)56 b(Op)r(erations)19 b(for)f(Megamo)q(dule)f(In) n(teraction)0 1862 y fi(These)g(op)q(erations)g(split)g(the)h(traditional)f (\\)p fe(CALL)26 b(module;)p fi(")20 b(statemen)o(t)d(in)o(to)g(three)h(parts\ ,)f(to)h(allo)o(w)0 1951 y(adequate)e(managemen)o(t)e(of)i(large)f(megamo)q (dules.)20 b(This)14 b(split)i(also)f(fosters)g(async)o(hronous)e(op)q(eratio\ n)0 2041 y(and)j(parallel)f(execution)i(of)g(megamo)q(dules.)0 2147 y fg(SUPP\ L)-5 b(Y)113 b fi(The)12 b fe(SUPPLY)i fi(statemen)o(t)e(pro)o(vides)e(inform\ ation)h(to)i(the)f(megamo)q(dule)f(as)h(a)g(subset)g(of)0 2236 y(the)i(megamo) q(dule's)d(data)i(structure.)20 b(When)13 b(a)h(supply)e(statemen)o(t)h(is)g (compiled)f(b)o(y)h(the)h(megamo)q(dule,)0 2326 y(the)g(t)o(yp)q(e)g(of)g(the) g(MPL)f(data)h(structure)f(is)g(compared)f(with)i(the)g(t)o(yp)q(e)g(of)g(the) g(datastructure)e(de\014nition)0 2416 y(previously)17 b(exp)q(orted)g(b)o(y)h (the)g(megamo)q(dule;)f(the)h(megamo)q(dule)e(is)h(resp)q(onsible)f(for)h(man\ aging)g(t)o(yp)q(e)0 2505 y(co)q(ercion)h(transformations)d(needed)i(for)h (ensuring)e(compatibilit)o(y)g(of)i(in)o(ternal)f(data)h(structures)e(with)0 2595 y(the)i(MPL)g(t)o(yp)q(e)g(system.)25 b(Problems)16 b(of)i(this)f(transl\ ation)g(inside)g(a)g(megamo)q(dule)g(are)g(not)h(discussed)0 2685 y(in)e(this) g(pap)q(er.)99 2775 y(The)22 b(supply)e(of)i(data)g(v)m(alues)g(b)o(y)f(megap\ rograms)e(conforming)h(to)j(this)e(general)g(sc)o(hema)g(ma)o(y)974 2895 y (10)p eop %%Page: 11 11 bop 0 50 a fi(di\013er.)21 b(In)16 b(particular:)148 139 y fd(\017)25 b fi (Man)o(y)11 b(v)m(alues)h(ma)o(y)g(not)g(b)q(e)g(supplied)e(b)o(y)i(some)f (megaprogram;)g(default)h(v)m(alues)g(are)g(assumed)198 229 y(b)o(y)k(the)h (megamo)q(dules)e(for)h(supply)f(v)m(ariables)h(that)h(ha)o(v)o(e)f(not)g(b)q (een)h(supplied.)148 319 y fd(\017)25 b fi(Some)20 b(elemen)o(ts)h(of)g(the)h fe(SUPPLY)g fi(data)f(structures)f(ma)o(y)g(b)q(e)i(de\014ned)e(to)i(b)q(e)f fe(PARAMETER)p fi(s.)198 408 y(Suc)o(h)15 b(parameter)f(v)m(alues)h(are)h(sp) q(eci\014ed)f(with)g(the)h(actual)g(in)o(v)o(o)q(cation)f(of)h(the)g(megamo)q (dule.)198 498 y(During)h(execution)i(of)g(the)g fe(SUPPLY)g fi(statemen)o (t,)g(the)g(megamo)q(dule)e(retains)h(con)o(trol.)27 b(This)198 588 y(assures) 15 b(that)i(the)f(data)h(transmission)d(to)j(the)f(megamo)q(dule)g(is)g(sync) o(hronized)e(prop)q(erly)l(.)0 689 y fg(INV)n(OKE)119 b fi(The)19 b(statemen) o(t)g(\\)p fe(INVOKE)27 b(megamodule)h(WITH)e(parameters)p fi(")21 b(causes)d (the)i(initia-)0 779 y(tion)e(of)h(async)o(hronous)c(execution)k(of)f(the)g (megamo)q(dule)f(with)h(an)o(y)g(parameter)f(v)m(alues)h(listed)g(in)g(the)0 869 y fe(WITH)13 b fi(p)q(ortion.)19 b(The)12 b(parameter)f(v)m(alues)g(are)h (b)q(ound)f(to)h(those)g(datastructure)f(items)g(that)i(w)o(ere)e(de\014ned)0 958 y(as)16 b(parameters)f(in)h(the)h fe(SUPPLY)h fi(statemen)o(t.)k(After)17 b(the)g fe(INVOKE)h fi(statemen)o(t)e(is)g(pro)q(cessed,)g(con)o(trol)g(is)0 1048 y(returned)f(to)i(the)g(megaprogram;)d(th)o(us,)h(the)i(megaprogram)d (can)i(sc)o(hedule)f(other)i(w)o(ork)f(in)g(parallel.)0 1149 y fg(EXTRA)n(CT) 115 b fi(An)14 b fe(EXTRACT)i fi(statemen)o(t)e(pro)o(vides)f(megamo)q(dule)g (results)g(to)i(the)g(megaprogram.)0 1239 y(All)20 b(v)m(ariables)e(that)i (are)f(exp)q(ected)i(to)e(b)q(e)h(extracted)g(as)f(result)g(of)h(the)g(megamo) q(dule)e(execution)h(are)0 1329 y(made)14 b(a)o(v)m(ailable)g(to)h(the)g(MPL) f(en)o(vironmen)o(t)f(as)h(datastructures)f(accessed)h(through)f(this)i(MPL)f (state-)0 1418 y(men)o(t.)26 b(The)18 b(result)f(is)g(fully)h(v)m(alid)g(when) g(the)g(megamo)q(dule)f(state)h(is)g fe(DONE)g fi(\(corresp)q(onding)e(to)j (com-)0 1508 y(pletion)g(of)g(the)g(megamo)q(dule)f(activit)o(y)l(,)i(as)f (sho)o(wn)e(in)i(Figure)f(3\),)i(but)f(w)o(e)f(place)h(no)g(constrain)o(ts)e (on)0 1598 y(earlier)e(extraction)i(of)g(incomplete)f(information.)99 1687 y (During)23 b(execution)i(of)g(the)g fe(EXTRACT)h fi(statemen)o(t,)h(the)e(meg\ amo)q(dule)e(again)h(retains)g(con)o(trol.)0 1777 y(This)16 b(assures)f(that) j(in)e(this)h(phase,)e(as)i(during)e(the)i(execution)h(of)f fe(SUPPLY)p fi (,)g(the)h(data)e(transmission)f(is)0 1867 y(sync)o(hronized)g(b)o(y)h(the)h (megamo)q(dule.)99 1956 y(Note)c(that)f fe(INVOKE)g fi(is)g(t)o(ypically)f (executed)i(async)o(hronously)l(,)c(with)j(the)g(parameters)e(of)i(the)g(in)o (v)o(ok)o(e)0 2046 y(b)q(eing)k(part)h(of)f(the)h(activ)m(ation)h(message;)d (megamo)q(dule)g(op)q(eration)h(can,)h(ho)o(w)o(ev)o(er,)e(remain)g(indep)q (en-)0 2136 y(den)o(t.)20 b(F)l(or)12 b(instance,)h(a)g(megamo)q(dule)f(ma)o (y)g(alw)o(a)o(ys)g(b)q(e)h(activ)o(e)g(and)g(k)o(eep)g(the)g fe(EXTRACT)h fi (data)f(structure)0 2225 y(up-to-date.)24 b(Then,)17 b(the)h fe(INVOKE)g fi (message)f(only)g(pro)o(vides)f(a)h(sync)o(hronization)f(handle)g(and)h(the)h fe(EX-)0 2315 y(TRACT)f fi(op)q(eration)e(ma)o(y)g(b)q(e)h(immediately)f(exec\ uted.)22 b(A)16 b(megamo)q(dule)f(migh)o(t)f(b)q(e)j(activ)o(e)f(p)q(erio)q (dically)0 2405 y(based)h(on)h(external)f(triggers.)25 b(An)18 b fe(EXTRACT)h fi(op)q(eration)e(then)h(pro)o(vides)e(p)q(oten)o(tially)i(not)g(up-to-date)0 2494 y(snapshots;)d(the)j fe(EXTRACT)g fi(op)q(eration)e(ma)o(y)h(b)q(e)g(exe\ cuted)h(at)f(an)o(y)f(time,)h(since)g(it)g(do)q(es)g(not)g(a\013ect)h(the)0 2584 y(b)q(eha)o(vior)e(of)g(the)h(megamo)q(dule.)0 2685 y fg(2.3)56 b(Op)r (erations)19 b(for)f(Insp)r(ecting)h(the)g(In)n(terface)h(and)e(Con)n(ten)n (t)j(of)d(Megaprogram)n(s)0 2775 y fi(The)g(follo)o(wing)g(op)q(erations,)g (pro)o(vided)e(b)o(y)j(megamo)q(dules,)e(are)h ff(public)f fi(for)h(use)g(in) h(a)f(megaprogram-)974 2895 y(11)p eop %%Page: 12 12 bop 0 50 a fi(ming)21 b(en)o(vironmen)o(t;)i(they)g(can)e(b)q(e)i(requested) f(b)o(y)f(megaprogrammers)e(and)i(their)h(result)f(helps)g(in)0 139 y(the)g (sp)q(eci\014cation)g(and)f(design)g(of)h(megaprograms.)33 b(They)21 b(can)g (also)f(b)q(e)h(used)f(b)o(y)h(MPL)g(compilers)0 229 y(to)e(obtain)f(informat\ ion)f(and)h(ma)o(y)g(b)q(e)h(used)f(at)h(execution-time)f(in)g(in)o(terpretiv) o(e)f(situations.)27 b(These)0 319 y(op)q(erations)13 b(p)q(ermit)h(megamo)q (dules)f(to)i(sp)q(ecify)f(the)h(data)f(structures)g(and)f(defaults)h(that)h (they)g(imp)q(ort)0 408 y(and)20 b(exp)q(ort;)j(some)d(megamo)q(dule-sp)q(eci\ \014c)f(information)g(can)h(also)g(b)q(e)h(made)f(a)o(v)m(ailable)g(for)h(ins\ p)q(ec-)0 498 y(tion.)32 b(Note)21 b(that)f(the)g(information)f(\015o)o(ws)f (up,)i(while)g(traditionally)f(subroutines)e(dep)q(end)j(for)f(their)0 588 y (en)o(vironmen)o(t)c(on)h(the)h(in)o(v)o(oking)e(programs,)f(and)i(th)o(us)f (are)h(di\016cult)g(to)h(reuse.)0 702 y fg(IMPOR)-5 b(T)17 b(SUPPL)-5 b(Y)115 b fi(The)14 b fe(IMPORT)27 b(SUPPLY)15 b fi(statemen)o(t)f(causes)g(the)g(meg\ amo)q(dule)f(to)i(exp)q(ort)0 791 y(the)k(supply)e(data)i(structures.)26 b (Standard)17 b(names)h(are)g(used)f(to)i(describ)q(e)f(data)g(structures,)g (formats,)0 881 y(exten)o(ts,)h(and)f(sizes,)h(according)e(to)i(MPL)f(t)o(yp) q(es.)28 b(Elemen)o(ts)18 b(of)h(data)f(structures)f(ma)o(y)h(ha)o(v)o(e)g (default)0 971 y(v)m(alues)e(whic)o(h)g(can)g(b)q(e)h(retriev)o(ed)f(b)o(y)g (an)g fe(INSPECT)i fi(command.)0 1084 y fg(IMPOR)-5 b(T)21 b(EXTRA)n(CT)118 b fi(The)18 b fe(IMPORT)27 b(EXTRACT)19 b fi(statemen)o(t,)f(similar)e(to)i(the) g fe(IMPORT)27 b(SUP-)0 1174 y(PLY)p fi(,)17 b(causes)f(the)g(megamo)q(dule)g (to)h(exp)q(ort)f(the)h(extract)h(data)e(structure.)0 1288 y fg(INSPECT)119 b fi(Insp)q(ection)20 b(of)g(a)g(megamo)q(dule)f(pro)o(vides)f(information)h (ab)q(out)h(its)g(on)o(tology)g(and)0 1377 y(sp)q(eci\014c)14 b(parameters;)g (the)g(result)g(of)h(an)f fe(INSPECT)i fi(op)q(eration)e(do)q(es)g(not)g(dep) q(end)g(on)h(the)f(curren)o(t)g(state)0 1467 y(of)k(the)h(mo)q(dule)e(b)q(ein\ g)h(insp)q(ected.)27 b(Insp)q(ection)18 b(could)f(yield)i(do)q(cumen)o(tation\ ,)e(v)o(ersion)g(information,)0 1557 y(or)f(formal)g(descriptions)e(of)j(meth\ o)q(ds)f(and)g(scop)q(e)g(of)h(applicabilit)o(y)l(.)0 1670 y fg(2.4)56 b(Op)r (erations)19 b(for)f(Exam)o(ining)f(the)j(Status)f(of)f(Megamo)q(dules)0 1765 y fi(A)e(n)o(um)o(b)q(er)e(of)i(op)q(erations)e(p)q(ermit)h(in)o(teraction)g (of)h(megaprograms)d(and)i(megamo)q(dules.)20 b(Their)15 b(func-)0 1854 y(tio\ n)g(is)f(to)h(aid)f(in)g(execution)h(to)g(attain)g(a)f(high)g(lev)o(el)h(of)g (e\016ciency)l(.)21 b(They)15 b(ma)o(y)l(,)f(for)g(instance,)g(pro)o(vide)0 1944 y(information)f(that)i(leads)f(to)h(a)g(resc)o(heduling)d(of)j(op)q(erat\ ional)f(sequences)h(of)g(megamo)q(dule)e(in)o(v)o(o)q(cation.)0 2034 y(Since) 19 b(w)o(e)g(assume)f(a)i(parallel)e(computing)g(en)o(vironmen)o(t)f(througho\ ut,)i(suc)o(h)f(\015exibilit)o(y)h(is)g(essen)o(tial)0 2123 y(to)e(exploit)g (parallel)e(capabilities)g(in)h(a)h(dynamic)e(manner.)0 2237 y fg(EXAMINE)123 b fi(In)23 b(addition)g(to)h(the)g(data)f(structures)g(used)f(to)i(supply)f (and)g(extract)h(data,)h(a)0 2327 y(megamo)q(dule)20 b(main)o(tains)f(a)i(n)o (um)o(b)q(er)e(of)j(state)g(v)m(ariables.)35 b(The)21 b fe(EXAMINE)h fi(state\ men)o(t)f(accesses)g(the)0 2416 y(most)15 b(critical)f(v)m(ariable,)h(namely) g fe(STATE)p fi(.)g(Reasonable)f(v)m(alues)h(for)g fe(STATE)h fi(v)m(ariables) e(in)h(megamo)q(dules)0 2506 y(are:)29 b fe(DONE)p fi(,)21 b fe(IN)s 16 2 v 16 w(PROGRESS)p fi(,)g fe(IDLE)p fi(,)g fe(IN)s 16 2 v 16 w(ERROR)p fi(,)g(or)e fe(WAITING)p fi(.)j(F)l(or)d(instance,)h fe(STATE=DONE)i fi(indicates)0 2596 y (that)15 b(the)g(megaprogram)d(can)i(safely)h(extract)h(results)d(from)h(the) h(megamo)q(dule.)20 b(Other)14 b(v)m(ariables)g(that)0 2685 y(ma)o(y)d(b)q (e)h(pro)o(vided)e(b)o(y)h(a)g(megamo)q(dule)g(include,)g(for)g(instance,)h (measures)e(of)i(nearness)e(to)h(a)h(solution)e(for)0 2775 y(an)15 b(iterativ) o(e)g(program,)e(the)i(n)o(um)o(b)q(er)e(of)i(c)o(hoices)f(b)q(eing)h(conside\ red)e(for)i(a)g(searc)o(h-t)o(yp)q(e)f(megamo)q(dule,)974 2895 y(12)p eop %%Page: 13 13 bop 0 50 a fi(and)19 b(so)g(on.)31 b(These)19 b(v)m(ariables)g(ma)o(y)g(b)q (e)g(accessed)h(at)f(an)o(y)h(time)f(for)g(a)h(megamo)q(dule)e(that)i(has)f (b)q(een)0 139 y(in)o(v)o(ok)o(ed.)i(The)16 b(op)q(eration)g(of)h fe(EXAMINE) g fi(is)f(sync)o(hronous)e(with)j(resp)q(ect)f(to)h(the)g(megaprogram.)0 245 y fg(ESTIMA)-5 b(TE)113 b fi(F)l(or)13 b(megaprogrammin)o(g)e(optimization,)j (estimates)f(of)h(execution)h(cost)f(of)g(mega-)0 335 y(mo)q(dules)h(ma)o(y)g (b)q(e)g(needed)h([Wie:92a,Wie:92b];)e(b)q(ecause)i(of)g(the)f(encapsulation) g(pro)o(vided)f(b)o(y)h(mega-)0 424 y(mo)q(dules,)i(suc)o(h)g(estimation)h (can)g(only)f(b)q(e)i(pro)o(vided)d(from)i(inside)f(the)h(megamo)q(dule.)25 b (The)18 b(result)g(of)0 514 y(execution)j(of)g(an)g fe(ESTIMATE)h fi(statemen) o(t)f(is)g(a)f(simple)g(estimate)h(of)g(execution)h(cost)f(\(time,)h(dollars,) 0 604 y(result)16 b(v)o(olume\),)g(with)g(the)h(degree)f(of)h(certain)o(t)o (y)f(of)g(that)h(estimate)g(\(0..1\).)0 709 y fg(CONSTRAIN)114 b fi(The)14 b fe(CONSTRAIN)i fi(statemen)o(t)e(p)q(ermits)f(the)i(resetting,)f(b)o(y)g(a)g (megaprogram,)e(of)0 799 y(in)o(ternal)j(megamo)q(dule)g(parameters)g(obtaine\ d)h(b)o(y)g(insp)q(ection.)0 905 y fg(LIMIT)117 b fi(The)16 b fe(LIMIT)i fi (function)e(constrains)f(megamo)q(dule)h(execution)h(in)f(terms)g(of)h(time)g (or)f(cost)0 994 y(\(as)23 b(a)f(surrogate)g(for)g(computational)f(time)i(sp) q(en)o(t\).)40 b(Not)24 b(all)e(megamo)q(dules)f(will)h(b)q(e)h(able)f(to)h (ac-)0 1084 y(commo)q(date)e(suc)o(h)f(a)i(request,)g(but)f(if)h(they)g(can,) g(certain)f(megaprogram)e(tasks)i(w)o(ould)f(b)q(e)i(greatly)0 1174 y(simpli\ \014ed.)99 1264 y(The)16 b(in)o(teraction)g(b)q(et)o(w)o(een)g(megaprograms)e (and)i(megamo)q(dules)f(is)h(illustrated)f(in)h(Figure)f(4.)0 1322 y 1999 2 v 131 1410 a fe(-------------------------)q(-------)q(------)q(-------)q(------\ -)q(------)q(---)131 1465 y(|)183 b(MEGAPROGRAM)80 b(|)131 1520 y(|)e(compila\ tion)159 b(execution)80 b(|)131 1575 y(-------------------------)q(-------)q (------)q(-------)q(-------)q(------)q(---)26 1630 y(**)f(**)53 b(*)78 b(|)26 b(|)157 b(|)27 b(*)52 b(***)26 1684 y(||)27 b(IMPORT)g(||)52 b(|)79 b(|)26 b (|)g(SUPPLY)i(|)e(|)52 b(|)27 b(|)f(EXTRACT)26 1739 y(||)h(META-)53 b(||)f (|)79 b(|)26 b(|)g(DATA)80 b(|)26 b(|)52 b(|)27 b(|)f(DATA)26 1794 y(||)53 b (DATA)g(||)f(|)79 b(|)26 b(|)157 b(|)27 b(|)52 b(|)26 b(|)26 1849 y(||)53 b (for)79 b(||)52 b(|)79 b(|)26 b(|)157 b(|)27 b(|EXAMINE)26 1904 y(||SUPPLY)54 b(||)e(|INSPECT)28 b(|)e(|)52 b(INVOKE|)28 b(|)52 b(|)26 b(|)26 1958 y(||)h (EXTRACT||)53 b(|)79 b(***)157 b(*)27 b(|)52 b(|)26 b(|)157 2013 y(----------\ --------------)q(-------)q(------)q(-------)q(-------)157 2068 y(|)79 b(MEGAM\ ODULE)210 b(|)157 2123 y(|)105 b(Exported)27 b(datastructures)211 b(|)157 2177 y(|)105 b(Mappings)27 b(to)f(local)h(values)211 b(|)157 2232 y(|)105 b(Local) 27 b(datastructures)237 b(|)157 2287 y(|)105 b(Local)27 b(programs)g(and)g (databases)210 b(|)157 2342 y(------------------------)q(-------)q(------)q (-------)q(-------)0 2584 y 1999 2 v 50 x fi(Figure)15 b(4.)94 b(Information) 15 b(\015o)o(w)h(in)g(megaprogamming.)974 2895 y(13)p eop %%Page: 14 14 bop 0 50 a fg(3.)57 b(Comp)q(os)o(ition)18 b(and)h(In)n(teraction)h(of)e(Meg\ amo)q(dules)0 140 y fi(In)f(this)g(section)g(w)o(e)g(discuss)e(the)j(comp)q (osition)e(and)h(in)o(teraction)f(of)h(megamo)q(dules)f(as)h(it)g(is)g(ac)o (hiev)o(ed)0 230 y(through)e(compilation)h(and)f(optimization)h(of)h(megaprog\ rams.)0 335 y fg(3.1)56 b(Comp)r(o)o(sition)18 b(and)g(In)n(teraction)i(of)f (T)-5 b(raditional)20 b(Soft)n(w)n(are)g(Com)o(p)r(o)o(nen)n(ts)0 426 y fi (F)l(unction)f(comp)q(osition)g(in)h(traditional)f(languages)g(can)h(b)q(e)g (sp)q(eci\014ed)g(b)o(y)g(the)g(notation)g(\\)p fb(f)5 b fi(\()p fb(g)r fi (\()p fb(x)p fi(\)\)",)0 515 y(where)20 b fb(f)26 b fi(op)q(erates)21 b(on)f (the)g(v)m(alue)h(pro)q(duced)e(b)o(y)h(\\)p fb(g)r fi(\()p fb(x)p fi(\)".)35 b(Pro)q(cedure)19 b(comp)q(osition)h(is)g(realized)f(b)o(y)0 605 y(executing) 13 b(a)f(sequence)g(of)g(pro)q(cedure)g(statemen)o(ts)f(\\)p fb(P)c fi(;)h fb (Q)p fi(;)g fb(R)p fi(")13 b(where)f(eac)o(h)g(transforms)e(a)i(global)g(stat\ e.)99 695 y(The)21 b(comp)q(osition)f(of)h(megamo)q(dules)e(requires)h(more)g (than)h(simple)e(catenation.)35 b(Information)0 785 y(has)12 b(to)i(b)q(e)g (transduced:)k(collected,)c(transformed,)e(and)h(forw)o(arded)e(among)h(megam\ o)q(dules)g(and)g(input-)0 874 y(output)f(mo)q(dules.)19 b(T)l(o)11 b(elucida\ te)g(these)g(MPL)g(concepts)g(w)o(e)g(can)g(compare)f(ho)o(w)g(direct)h(comm) o(unication)0 964 y(among)22 b(programs)e(is)j(sp)q(eci\014ed)f(in)g(a)h fa (unix)f fi(en)o(vironmen)o(t.)38 b(MPL)23 b(concepts)f(can)h(b)q(e)g(view)o (ed)g(as)f(a)0 1054 y(generalization)15 b(of)i(suc)o(h)e fa(unix)h fi(concept\ s.)99 1144 y(The)f fa(unix)f fi(shell)g(pla)o(ys)g(the)h(role)g(of)g(a)g(mega\ programmin)o(g)d(language)i(for)h fa(unix)f fi(pro)q(cesses.)20 b fa(unix)0 1234 y fi(pip)q(es)c(pro)o(vide)f(direct)h(comm)o(unication)e(among)i(pro)q (cesses)f(that)i(transform)e(a)h(stream)g(of)g(input)g(data)0 1323 y(in)o(to) g(output)h(data.)23 b(A)18 b fa(unix)d fi(command)h(of)h(the)g(form)f(\\)p fb (P)7 b fi(1)15 b fd(j)f fb(P)7 b fi(2")17 b(allo)o(ws)e(the)j(results)e(of)h (the)g(pro)q(cess)0 1413 y fb(P)7 b fi(1)21 b(to)h(b)q(e)f(incremen)o(tally)f (pip)q(ed)h(to)g fb(P)7 b fi(2,)22 b(so)f(that)h fb(P)7 b fi(2)21 b(can)g(pro) q(cess)f(the)i(output)f(stream)f(of)h fb(P)7 b fi(1)21 b(in)0 1503 y(parallel) 15 b(with)i(further)e(computation)h(b)o(y)g fb(P)7 b fi(1.)99 1593 y(The)14 b (generalizations)e(pro)o(vided)g(b)o(y)i(MPL)f(require)g(that)i(w)o(e)e(iden) o(tify)h(eac)o(h)f(MPL)h(op)q(eration)f(with)0 1682 y(an)j(explicit)g(megamo) q(dule)f(name,)g(since)h(the)g(comp)q(ositions)f(of)h fe(IMPORT)p fi(,)h fe (SUPPLY)p fi(,)g fe(INVOKE)p fi(,)g fe(EXAMINE)p fi(,)0 1772 y fe(EXTRACT)p fi (,)f(etc.,)g(are)f(arbitrary)f(and)g(an)o(y)h(of)g(the)h(megamo)q(dules)d(ma) o(y)i(b)q(e)h(addressed.)j(In)c(MPL,)g(mega-)0 1862 y(program)c(execution)j (will)e(b)q(e)i(async)o(hronous,)d(similar)g(to)j(what)f fa(unix)f fi(supp)q (orts)g(with)h(the)g(form)g(\\)p fb(P)7 b fi(&".)0 1951 y(Ho)o(w)o(ev)o(er,) 16 b(the)i(megamo)q(dules)d(remain)h(accessible)g(through)g(the)i fe(EXAMINE) g fi(statemen)o(t,)f(so)g(that)g(their)0 2041 y(progress)c(can)i(b)q(e)g(moni\ tored.)20 b(The)15 b(com)o(bination)e(of)i(async)o(hron)o(y)e(and)h(con)o(tro\ l)g(adds)g(m)o(uc)o(h)f(p)q(o)o(w)o(er)h(to)0 2131 y(the)k(megaprograming)c (language)j(paradigm.)23 b(Researc)o(h)16 b(will)h(b)q(e)h(needed)f(to)g(phra\ se)g(a)g(syn)o(tactically)0 2220 y(attractiv)o(e)e(language)f(whic)o(h)f(p)q (ermits)h(sp)q(eci\014cation)g(of)h(the)g(parallelism)d(and)i(async)o(hron)o (y)f(implicit)g(in)0 2310 y(the)k(megaprogrammin)o(g)d(paradigm.)0 2416 y fg (3.2)56 b(Comp)r(o)o(sition)18 b(and)g(In)n(teraction)i(of)f(Megam)o(o)r(d)o (ules)0 2506 y fi(A)c(simple)f(pattern)h(of)g(in)o(teraction)f(b)q(et)o(w)o (een)h(the)g(megaprogram)e(and)h(megamo)q(dules)g(can)h(b)q(e)g(realized)0 2596 y(b)o(y)e fe(SUPPLY)p fi(,)h fe(INVOKE,)h fi(and)e fe(EXTRACT)p fi(.)h (Note)g(that)g(ev)o(en)g(this)f(simple)f(pattern)h(of)h(in)o(teraction)e(impr\ o)o(v)o(es)0 2685 y(the)23 b(con)o(v)o(en)o(tional)f(dev)o(elopmen)o(t)g(of)h (applications.)40 b(The)23 b fe(SUPPLY)h fi(and)f fe(EXTRACT)h fi(data)f(stru\ ctures)0 2775 y(pro)o(vide)g(a)h(higher)f(lev)o(el)h(of)h(abstraction)e(with) h(resp)q(ect)h(to)f(direct)g(linking)g(of)g(soft)o(w)o(are)f(mo)q(dules,)974 2895 y(14)p eop %%Page: 15 15 bop 0 50 a fi(enabling)22 b(transduction)f(of)j(data)e(structures)g(b)q(et)o (w)o(een)h(megamo)q(dules)e(according)h(to)i(mec)o(hanisms)0 139 y(whic)o(h) 16 b(are)h(de\014ned)g(in)g(the)g(megaprogram.)22 b(Selectiv)o(e)c(sp)q(eci\ \014cation)e(of)i(parameters)e(reduces)g(set-up)0 229 y(and)g(comm)o(unicatio\ n)e(costs.)99 322 y(More)21 b(complex)g(in)o(teraction,)h(y)o(et)h(still)e (under)f(the)i(direct)g(con)o(trol)f(of)h(the)g(megaprogrammer)o(,)0 411 y (is)e(p)q(ossible)f(through)f(the)j(use)e(of)i(con)o(trol)e(structures)g fe (IF)26 b(...)53 b(THEN)27 b(...)p fi(,)21 b(whose)e(e\013ect)i(is)f(based)0 501 y(on)c(returned)f(parameters)f(from)i(the)g fe(INSPECT)p fi(,)h fe(IMPORT) p fi(,)g fe(EXAMINE)p fi(,)g(and)f fe(ESTIMATE)h fi(statemen)o(ts.)k(By)0 591 y(b)q(eing)g(able)h(to)g(assess)e(the)i(b)q(eha)o(vior)f(of)h(a)g(megamo)q (dule)e(in)i(execution,)h(it)f(is)f(p)q(ossible)g(to)h(ac)o(hiev)o(e)0 680 y (imp)q(ortan)o(t)16 b(\015exibilit)o(y)h(at)g(execution)h(time.)24 b(In)17 b (particular,)e(execution)j(of)f(an)g(unpro)q(ductiv)o(e)f(mo)q(dule)0 770 y (ma)o(y)h(b)q(e)h(ab)q(orted)f(and)g(a)h(di\013eren)o(t)f(execution)h(pattern) f(ma)o(y)g(then)h(b)q(e)g(tried.)25 b(When)17 b(computational)0 860 y(resourc\ es)11 b(are)i(plen)o(tiful,)f(m)o(ultiple)f(similar)g(megamo)q(dules)h(ma)o (y)g(b)q(e)h(started)f(in)h(parallel,)f(and)g(only)h(the)0 949 y(one)f(giving) f(the)h(b)q(est)g(resp)q(onse)e(b)q(e)i(retained.)20 b(This)11 b(approac)o (h)f(requires)g(that)j(the)f fe(INVOKE)g fi(primitiv)o(e)f(b)q(e)0 1039 y(non) o(blo)q(c)o(king,)j(and)h(also)h(requires)f(explicit)h(time)g(con)o(trol)f (within)g(the)h(MPL.)g(The)g(MPL)f(will)h(need)f(an)0 1129 y(in)o(ternal)g (time-driv)o(en)f(in)o(terrupt,)h(so)h(that)g(it)g(can)g(decide)g(when)g(situ\ ations)f(equiv)m(alen)o(t)h(to)h fe(TIME-OUT)0 1218 y fi(in)f(con)o(v)o(en)o (tional)f(con)o(trol)g(of)i(indep)q(enden)o(t)e(pro)q(cesses)h(o)q(ccur.)99 1311 y(The)d(access)h(to)f(a)h(megamo)q(dule)e(migh)o(t)h(b)q(e)g(sub)s(ject) h(to)g(limits,)f(and)f(the)i ff(megaprogram)d(comp)q(oser)0 1401 y fi(migh)o (t)i(b)q(e)i(able)f(to)h(c)o(hec)o(k)f(that)h(limits)e(are)h(feasible)g(throu\ gh)g(the)g fe(ESTIMATE)i fi(command.)k(This)13 b(merges)0 1490 y(the)k(tradit\ ional)e(compilation)g(and)h(execution)h(phases)e(in)o(to)h(a)h(complex)f(in)o (teraction.)0 1601 y fg(3.3)56 b(Compiling)18 b(Megaprogram)n(s)0 1693 y fi (Compilation)j(of)h(megaprograms)d(is)i(imp)q(ortan)o(t)g(to)i(reduce)e(the)h (cost)g(of)h(extract,)h(transduce,)e(and)0 1783 y(supply)13 b(sequences)h(amo\ ng)f(mo)q(dules.)20 b(This)14 b(cost)g(is)g(esp)q(ecially)g(high)g(if)g(the)h (megamo)q(dules)d(are)i(widely)0 1873 y(distributed.)20 b(F)l(or)15 b(compila\ tion)f(and)h(initial)h(optimization)e(all)i(in)o(teractions)e(require)h(comm) o(unication)0 1962 y(with)f(the)h(site)f(where)g(the)g(megaprogram)e(resides.) 20 b(After)15 b(compilation,)e(information)g(can)h(b)q(e)g(directly)0 2052 y (con)o(v)o(ey)o(ed)g(among)f(the)i(megamo)q(dules,)e(and)g(the)i(load)f(on)g (the)g(net)o(w)o(ork)g(as)g(w)o(ell)g(as)g(on)g(the)h(originating)0 2142 y (site)i(of)f(the)h(megaprogram)d(can)i(b)q(e)h(considerably)e(reduced.)99 2234 y(Man)o(y)g(of)i(the)f(meta-information)e(statemen)o(ts,)i(previously)f(descr\ ib)q(ed)g(as)g(aiding)g(the)i(execution)0 2324 y(of)i(an)g(in)o(terpreted)f (megaprogram,)g(will)g(b)q(e)i(used)e(b)o(y)h(the)h(megaprogram)c(compiler)i (to)i(pro)o(vide)e(the)0 2413 y(input)j(for)g(compilization)f(decisions.)35 b (Compilation)20 b(enables)g ff(megaprogram)f(optimization)p fi(,)j(where)0 2503 y(the)c(en)o(tire)g(megaprogram)d(is)i(submitted)g(to)i(an)e(optimizatio\ n)g(mo)q(dule.)26 b(Suc)o(h)16 b(optimization)h(w)o(ould)0 2593 y(b)q(e)g(res\ p)q(onsible)d(for:)148 2685 y fd(\017)25 b fi(Com)o(bining)13 b(consecutiv)o (e)i fe(SUPPLY)h fi(and)f fe(EXTRACT)i fi(op)q(erations)d(b)o(y)h(generating) f(a)i(direct)f(\015o)o(w)198 2775 y(of)i(information)e(b)q(et)o(w)o(een)h(meg\ amo)q(dules.)974 2895 y(15)p eop %%Page: 16 16 bop 148 50 a fd(\017)25 b fi(Deciding)20 b(the)g(order)g(of)g(in)o(v)o(o)q (cation)g(of)h(megamo)q(dules,)e(in)h(particular)f(in)o(v)o(oking)g(them)h (in)198 139 y(the)d(\\optimal")e(\(e.g.,)i(fastest,)g(least)f(exp)q(ensiv)o (e,)g(...\))22 b(order.)148 229 y fd(\017)j fi(In)o(tro)q(ducing)15 b(paralle\ lism)f(and)i(async)o(hron)o(y)f(in)h(the)h(sc)o(hedule)e(of)h(in)o(v)o(o)q (cations)g(of)h(mo)q(dules.)0 319 y(These)22 b(optimizations)f(migh)o(t)g(see\ m)h(no)o(v)o(el)g(in)g(the)h(\014eld)e(of)i(soft)o(w)o(are)e(engineering)g (but)h(ha)o(v)o(e)g(b)q(een)0 408 y(successful)17 b(in)h(database)f(systems.) 26 b(The)18 b(information)e(pro)o(vided)h(b)o(y)h fe(INSPECT)p fi(,)h fe(EXAM\ INE)p fi(,)g fe(ESTIMATE)0 498 y fi(is)d(comparable)f(to)i(the)g(information) e(a)o(v)m(ailable)g(to)i(a)g(database)f(query)g(optimizer.)99 588 y(The)h(com\ p)q(osition)f(for)i(our)e(initial)h(example,)g(in)g(the)g(case)h(that)f(the)h fe(ready-time)28 b(at)17 b fi(NOSC)h(is)0 677 y(giv)o(en,)e(migh)o(t)f(consis\ t)h(of:)148 767 y(1)25 b(In)o(v)o(oking)19 b(the)i(San)e(Diego)i(mo)q(dule)e (with)i(information)d(ab)q(out)j(the)f fe(ready-time)i fi(and)e(the)198 857 y (load.)34 b(Extracted)21 b(from)f(that)h(mo)q(dule)f(w)o(ould)g(b)q(e)h(cost) g(and)f(time-required)f(information,)198 946 y(and)i(an)o(y)g(needed)h(sc)o (hedule)e(and)h(routing)g(data.)38 b(No)o(w)21 b(the)h(earliest)f(arriv)m(al-\ time)g(of)h(the)198 1036 y(load)16 b(at)h(Lindb)q(erg)e(\014eld)h(in)g(San)g (Diego)h(can)f(b)q(e)h(computed.)148 1126 y(2)25 b(The)15 b(air-freigh)o(t)f (megamo)q(dule)h(is)g(no)o(w)g(supplied)e(with)j(these)g(sp)q(eci\014cations,) e(in)o(v)o(ok)o(ed,)h(and)198 1215 y(similar)d(results)g(are)h(extracted.)22 b (The)13 b(arriv)m(al-time)g(at,)h(sa)o(y)f(at)h(W)l(ashington)e(Dulles)h(airp) q(ort,)198 1305 y(for)j(the)h(b)q(est)g(\015igh)o(t,)e(is)h(no)o(w)g(computed\ .)148 1395 y(3)25 b(The)13 b(W)l(ashington)f(surface)h(mo)q(dule)g(is)g(no)o (w)g(in)o(v)o(ok)o(ed)f(with)h(that)h(time)f(and)g(the)h(\014nal)e(arriv)m (al-)198 1484 y(time)k(at)h(NRL)g(is)f(no)o(w)g(pro)q(duced.)148 1574 y(4)25 b (Desired)16 b(output,)g(extracted)h(from)f(these)g(mo)q(dules,)f(is)i(supplie\ d)d(to)j(an)f(output)h(mo)q(dule)e(b)o(y)198 1664 y(the)i(megaprogram.)0 1768 y(Man)o(y)12 b(v)o(ersions)g(of)h(suc)o(h)f(megaprograms)e(can)j(b)q(e)g(en)o (visaged.)20 b(A)13 b(megaprogram)d(ma)o(y)j(iterate)g(through)0 1858 y(the)g (alternate)h(airp)q(orts,)e(giv)o(en)h(as)g(c)o(hoices)f(b)o(y)h(the)g(air-fr\ eigh)o(t)f(mo)q(dule,)h(to)g(optimize)g(the)g(W)l(ashington)0 1948 y(end)18 b (of)h(the)g(transp)q(ort)e(task.)29 b(Also,)19 b(as)f(indicated)g(earlier,)g (if)g(the)h(due-time)f(at)h(NRL)f(is)h(the)f(critical)0 2037 y(factor,)e(then) h(the)g(megamo)q(dules)e(will)h(b)q(e)g(in)o(v)o(ok)o(ed)g(in)g(the)h(rev)o (erse)e(order.)99 2127 y(If)21 b(minimal)e(cost)i(is)g(the)g(criterion,)g(ste\ p)f(2)h(will)g(lik)o(ely)f(gain)h(priorit)o(y)e(and)h(b)q(e)i(sc)o(heduled)d (\014rst)0 2217 y(with)d(minimal)f(constrain)o(ts.)974 2895 y(16)p eop %%Page: 17 17 bop 0 50 a 1999 2 v 288 111 a fe(SUPPLY)27 b(Surface-transport)185 b(--)53 b (set)27 b(up)f(megamodule)471 171 y(\()g(Goods)h(\(Weight)g(=)f(5000)h(UNIT)g (kg,)680 230 y(Volume)g(=)f(30)h(UNIT)g(m3,)680 290 y(Maxunitsize)h(=)e(5)g (UNIT)h(m,)680 350 y(....\))523 410 y(From)g(\(Town)g(=)f(San)h(Diego,)g(Loc) f(=)h(PARAMETER)g(locn\))523 470 y(To)79 b(\(Town)27 b(=)f(Washington,)i(Loc) e(=)h(NRL,)f(building22\))523 529 y(At)79 b(\(Date)27 b(=)f(12JUN90,)h(Time)g (=)f(PARAMETER)i(T)s 16 2 v 16 w(ready)f(\))680 589 y(....\))288 649 y(INVOKE) g(Surface-transport)185 b(--)53 b(start)27 b(megamodule)523 709 y(WITH)g(\(T-\ ready)g(=)f(18:00,)654 768 y(locn)h(=)f(\(NOSC,)h(building)g(17\),)654 828 y (....\))0 911 y 1999 2 v 50 x fi(Figure)15 b(5.)94 b(Example)16 b(of)h(a)f (megaprogram)e(in)o(v)o(oking)h(one)i(megamo)q(dule.)0 1143 y fg(4.)57 b(Mega\ program)n(m)m(ing)16 b(System)g(Arc)n(hitecture)0 1233 y fi(The)22 b(arc)o (hitecture)g(of)g(a)h(megaprogrammi)o(ng)c(system)j(consists)g(of)g(a)h(colle\ ction)f(of)h(geographically)0 1322 y(distributed)15 b(megamo)q(dules)h(link)o (ed)g(b)o(y)g(high)g(capacit)o(y)h(net)o(w)o(orks;)f(the)h(megaprogramming)d (en)o(viron-)0 1412 y(men)o(t)20 b(should)g(include)f(a)i(rep)q(ository)f(and) g(dictionary)l(,)h(and)f(supp)q(ort)g(megamo)q(dule)g(execution)h(and)0 1502 y (main)o(tenance.)0 1607 y fg(4.1)56 b(Megamo)r(d)o(ule)17 b(Rep)r(ository)i (and)g(Dictionary)99 1698 y fi(Information)12 b(ab)q(out)i(the)g(collection)g (of)g(megamo)q(dules)e(in)h(the)h(megaprogrammin)o(g)d(en)o(vironmen)o(t)0 1787 y(is)20 b(sp)q(eci\014ed)f(in)h(a)g(data)g(dictionary)g(that)g(includes) f(the)i(follo)o(wing)d(information)h(ab)q(out)h(eac)o(h)g(mega-)0 1877 y(mo)q (dule:)134 1967 y(1.)25 b(The)16 b(names)g(of)h(megamo)q(dules)d(whic)o(h)i (are)g(curren)o(tly)g(a)o(v)m(ailable.)134 2057 y(2.)25 b(A)19 b(description) e(of)i(the)g(in)o(terface)f(of)g(the)h(megamo)q(dule)e(\(simply)h(stated,)h (some)f(formal)g(de-)198 2147 y(scription)d(of)i(the)g(function)f(p)q(erforme\ d)f(b)o(y)h(the)h(mo)q(dule\).)134 2237 y(3.)25 b(The)20 b(information)e(need\ ed)i(to)g(b)q(e)h(supplied)d(and)h(a)o(v)m(ailable)h(for)f(extraction,)i(expr\ essed)e(as)198 2326 y(data)d(structures)g(in)g(the)h(MPL)f(t)o(yp)q(e)h(syste\ m.)134 2416 y(4.)25 b(In)o(ternal)14 b(information)g(ab)q(out)i(megamo)q(dule\ s;)e(these)i(include)f(the)g(programming)e(language)198 2506 y(used)22 b(b)o (y)h(the)h(megamo)q(dule,)f(its)g(in)o(ternal)f(mo)q(dularization,)h(the)g (sc)o(hemas)f(of)h(databases)198 2596 y(whic)o(h)d(are)h(accessed)g(b)o(y)g (the)g(megamo)q(dule,)g(the)h(lev)o(el)f(of)g(consistency)g(pro)o(vided)f(b)o (y)h(the)198 2685 y(megamo)q(dule)12 b(applications)g(in)h(accessing)f(the)h (databases,)g(real-time)f(constrain)o(ts)g(on)h(mega-)198 2775 y(mo)q(dule)j (execution,)g(etc.)974 2895 y(17)p eop %%Page: 18 18 bop 134 50 a fi(5.)25 b(An)17 b(indication)e(of)i(the)g(a)o(v)m(ailabilit)o (y)e(and)h(the)h(cost)g(of)f(using)g(the)g(megamo)q(dule.)0 151 y(Database)f (tec)o(hniques)f(ma)o(y)g(pro)o(vide)g(useful)h(concepts)f(in)h(organizing)e (this)i(information)f(and)g(making)0 241 y(it)20 b(a)o(v)m(ailable)f(to)h(the) g(megaprogrammer)c(through)i(con)o(v)o(en)o(tional)g(and)h(ad-ho)q(c)g(query) h(in)o(terfaces.)30 b(In)0 331 y(particular,)16 b(the)i fe(IMPORT)27 b(SUPPLY) p fi(,)18 b fe(IMPORT)27 b(EXTRACT)p fi(,)18 b(and)f fe(INSPECT)i fi(statemen) o(ts)e(in)g(MPL)g(ma)o(y)g(b)q(e)0 420 y(considered)e(as)h(formal)g(in)o(terf\ aces)f(to)i(this)f(dictionary)l(.)0 522 y fg(4.2)56 b(Supp)r(ort)18 b(for)g (Megaprogram)c(Execution)0 611 y fi(The)22 b(data)h(dictionary)f(\(library\)) f(is)h(part)g(of)h(a)g(program)d(execution)j(en)o(vironmen)o(t)d(whic)o(h)i (ma)o(y)g(b)q(e)0 701 y(replicated)16 b(at)i(man)o(y)e(sites,)h(including)e (sites)i(asso)q(ciated)f(with)h(individual)f(megamo)q(dules,)f(to)j(p)q(ermit) 0 791 y(distributed)12 b(sp)q(eci\014cation)h(and)f(execution)i(of)f(megamo)q (dules.)19 b(The)14 b(resp)q(onsibilities)d(of)i(the)h(megapro-)0 880 y(gramm\ ing)g(en)o(vironmen)o(t)h(in)h(supp)q(orting)f(execution)i(include:)134 970 y (1.)25 b(T)o(yp)q(e)18 b(c)o(hec)o(king)e(the)i(consistency)f(of)h fe(IMPORT) g fi(pairs)e(for)h(successiv)o(e)g fe(EXTRACT)h fi(and)f fe(SUPPLY)198 1060 y fi(op)q(erations.)38 b(If)23 b(the)f(t)o(yp)q(e)h(systems)f(are)g(di\013eren) o(t,)g(pro)o(vide)f(required)g(routines)h(for)g(t)o(yp)q(e)198 1149 y(co)q (ercion.)134 1239 y(2.)j(Generate)g(executable)g(co)q(de)g(for)f(megaprograms) e(after)j(compilation,)g(where)f(this)h(co)q(de)198 1329 y(migh)o(t)16 b(cons\ ist)f(of)i(sev)o(eral)f(remote)g(pro)q(cedure)f(calls)h(and)g(supp)q(ort)g (for)g(data)g(transduction.)134 1418 y(3.)25 b(Generate)16 b(compiled)f(v)o (ersions)f(of)j(the)f(megamo)q(dules)e(whic)o(h)h(are)h(used)f(in)h(the)g(con) o(text)h(of)f(a)198 1508 y(sp)q(eci\014c)f(megaprogram,)d(with)j(optimization\ s)e(due)i(to)g(the)g(v)m(alues)f(pro)o(vided)g(in)g(the)h fe(IMPORT)198 1598 y fi(data)h(structure.)134 1687 y(4.)25 b(Pro)o(vide)15 b(late)i(t)o(yp)q(e)g (c)o(hec)o(king)f(for)g(run-time)f(parameters.)134 1777 y(5.)25 b(Handle)16 b (concurren)o(t)f(execution)i(and)f(sync)o(hronization)f(of)i(m)o(ultiple)e (megaprograms,)f(initi-)198 1867 y(ated)j(at)g(di\013eren)o(t)e(sites)h(of)h (the)g(megaprogrammin)o(g)d(system.)134 1956 y(6.)25 b(Deal)17 b(with)f(the)h (notion)f(of)g(transaction)g(atomicit)o(y)g(in)h(the)f(con)o(text)h(of)g(mega\ programs.)0 2058 y fg(4.3)56 b(Access)20 b(to)f(Databases)0 2147 y fi(W)l(e)g (assume)e(that)i(databases)f(are)g(part)g(of)h(megamo)q(dules.)27 b(The)18 b (seman)o(tics)g(of)g(the)h(database)f(b)q(eing)0 2237 y(used)d(is)h(completel\ y)g(captured)f(within)h(the)g(\\on)o(tology")f(of)i(the)f(megamo)q(dule)f(and) g(do)q(es)h(not)g(need)g(to)0 2327 y(b)q(ecome)h(\\public.")23 b(Instead,)17 b (data-structures)f(for)h fe(SUPPLY)h fi(and)f fe(EXTRACT)i fi(do)e(b)q(ecome) g(public;)g(they)0 2416 y(will)f(b)q(e)h(in\015uenced)e(b)o(y)h(the)h(sc)o (hemas)e(of)i(databases)e(whic)o(h)h(are)g(stored)g(within)g(a)g(megamo)q(dul\ e.)99 2506 y(W)l(e)21 b(do)f(not)h(fo)q(cus)f(on)g(fully)h(transparen)o(t)d (distributed)h(databases)h(where)g(access)g(to)h(an)o(y)f(data)0 2596 y(item) e(can)g(b)q(e)g(made)g(from)f(an)o(y)g(site)i(regardless)d(of)i(the)g(logical) g(fragmen)o(tation)e(and)i(ph)o(ysical)f(distri-)0 2685 y(bution;)22 b(this)e (issue)g(is)g(not)h(the)g(concern)f(of)g(megaprogramming.)31 b(If)21 b(used,) g(their)f(lo)q(c)o(king)g(sc)o(hemes)0 2775 y(will)e(constrain)g(megamo)q(dul\ e)g(execution)h(parallelism.)26 b(Our)18 b(view)i(is)e(consisten)o(t)g(with)h (autonomous)974 2895 y(18)p eop %%Page: 19 19 bop 0 50 a fi(and)16 b(indep)q(enden)o(t)f(access;)h(w)o(e)h(can)f(lo)o(w)o (er)f(consistency)h(requiremen)o(ts)f(to)i(matc)o(h)f(those)g(see)h(in)f(fede\ r-)0 139 y(ated)h(databases)f([Lit)o(w:86],)g(b)q(ecause)h(w)o(e)g(do)f(not)h (exp)q(ect)i(to)e(pro)o(vide)e(comparable)h(seman)o(tics)f(across)0 229 y(dat\ abases)g(whic)o(h)h(are)g(managed)f(within)h(di\013eren)o(t)g(megamo)q(dules.) 0 335 y fg(4.4)56 b(T)-5 b(ransaction)19 b(Managemen)n(t)e(and)h(Concurrency) i(Con)n(trol)0 425 y fi(W)l(e)i(safely)f(assume)f(that)h(durabilit)o(y)f(\(e.\ g.,)i(p)q(ermanence)f(of)g(e\013ects)h(of)f(committed)g(transactions\),)0 515 y(lo)q(cal)14 b(serializabilit)o(y)f(\(i.e.,)h(equiv)m(alence)h(of)f(eac)o (h)f(lo)q(cal)i(sc)o(hedule)d(to)j(some)e(serial)g(lo)q(cal)h(sc)o(hedule\),) g(and)0 604 y(isolation)k(will)g(b)q(e)h(pro)o(vided)e(b)o(y)h(eac)o(h)g(lo)q (cal)h(database)f(managemen)o(t)f(system.)28 b(Therefore,)18 b(the)h(only)0 694 y(issues)10 b(concern)h(global)g(atomicit)o(y)h(and)f(serializabilit)o (y)f(of)i(megaprograms,)e(seen)h(as)g(large)g(transactions)0 784 y(op)q(erati\ ng)16 b(as)g(a)g(unit)h(o)o(v)o(er)e(disp)q(erse,)g(heterogeneous)h(databases\ .)21 b(This)15 b(problem)g(is)h(quite)h(hard,)e(but)0 873 y(some)h(practical) g(solutions)f(ha)o(v)o(e)h(b)q(een)g(studied;)g(they)h(are)f(brie\015y)g(men) o(tioned)f(in)h(Section)g(5.3.)0 979 y fg(4.5)56 b(Main)n(tenance)0 1069 y fi (A)15 b(ma)s(jor)e(motiv)m(ation)h(for)f(our)h(approac)o(h)e(to)i(megaprogram\ ming)d(is)i(to)i(impro)o(v)o(e)d(the)i(managemen)o(t)f(of)0 1159 y(main)o(ten\ ance)g(tasks.)20 b(The)14 b(dev)o(elopmen)o(t)f(and)g(main)o(tenance)g(of)h (eac)o(h)f(megamo)q(dule)g(is)g(en)o(tirely)g(under)0 1248 y(the)k(authorit)o (y)g(of)g(a)g(lo)q(cal)g(soft)o(w)o(are)f(dev)o(elopmen)o(t)f(team.)24 b(This) 16 b(pro)o(vides)f(freedom)i(for)f(indep)q(enden)o(t)0 1338 y(dev)o(elopmen)o (t)d(and)h(main)o(tenance)g(of)h(eac)o(h)f(megamo)q(dule,)g(but)g(also)g(conf\ ers)g(a)h(resp)q(onsibilit)o(y)e(for)h(pro-)0 1428 y(viding)i(reliable)g(serv\ ice)g(to)h(clien)o(ts.)22 b(Reliabilit)o(y)16 b(can)h(b)q(e)g(ensured)e(b)o (y)h(globally)h(enforced)f ff(acceptance)0 1517 y(testing)g fi(for)f(b)q(oth) g(new)h(mo)q(dules)e(and)h(new)g(v)o(ersions)f(\(releases\))h(of)h(already)f (existing)g(mo)q(dules.)21 b(Some)0 1607 y(megamo)q(dules)h(ma)o(y)h(ha)o(v)o (e)f(requiremen)o(ts)g(for)h(con)o(tin)o(uous)f(execution)h(of)h(pro)q(cesses) e(that)i(monitor)0 1697 y(ongoing)15 b(real-w)o(orld)g(activities,)h(and)g (cannot)g(b)q(e)h(tak)o(en)g(out)f(of)h(service.)99 1787 y(Main)o(tenance)h (is)h(greatly)h(facilitated)g(b)o(y)f(the)h(separation)e(b)q(et)o(w)o(een)h (megamo)q(dules)f(and)h(mega-)0 1876 y(programs.)h(Main)o(tenance)15 b(is)h (partitioned)f(at)i(b)q(oth)g(the)g(megaprogram)d(and)i(megamo)q(dule)f(lev)o (els.)148 1967 y fd(\017)25 b fi(Main)o(tenance)19 b(within)g(eac)o(h)h(megam\ o)q(dule)f(is)h(done)f(b)o(y)h(an)g(exp)q(ert)g(of)h(the)f(megamo)q(dule's) 198 2056 y(\\on)o(tology)l(.")44 b(W)l(e)24 b(distinguish)e(t)o(w)o(o)i(t)o (yp)q(es)g(of)h(c)o(hanges.)43 b ff(Lo)q(cal)25 b(c)o(hanges)d fi(do)i(not)g (a\013ect)198 2146 y(the)d fe(SUPPLY/EXTRACT)j fi(data)d(structures,)g(and)f (therefore)h(do)g(not)g(require)g(megaprogram)198 2236 y(recompilation.)43 b ff(Global)24 b(c)o(hanges)f fi(a\013ect)i(the)f fe(SUPPLY/EXTRACT)j fi(data)d (structures,)h(and)198 2325 y(therefore)16 b(cause)g(megaprogram)e(recompilat\ ion.)148 2415 y fd(\017)25 b fi(Main)o(tenance)17 b(of)h(a)f(megaprogram)f (is)h(done)g(b)o(y)h(megaprogrammers)o(;)e(this)h(ma)o(y)g(b)q(e)h(due)g(to) 198 2505 y(c)o(hanges)j(of)i(the)g(in)o(v)o(o)q(cation)f(strategies)g(of)h (megamo)q(dules,)f(or)g(migh)o(t)g(b)q(e)h(due)f(to)h(global)198 2595 y(c)o (hanges)15 b(to)i(megamo)q(dules.)148 2685 y fd(\017)25 b fi(No)17 b(main)o (tenance)e(op)q(eration)h(should)f(span)h(t)o(w)o(o)g(megamo)q(dules.)148 2775 y fd(\017)25 b fi(While)d(the)h(main)o(tenance)e(of)i(a)f(sp)q(eci\014c)h(meg\ amo)q(dule)e(is)h(taking)h(place,)g(it)g(is)f(advisable)974 2895 y(19)p eop %%Page: 20 20 bop 198 50 a fi(to)21 b(supp)q(ort)e(the)i(old)f(v)o(ersion)f(together)h(wit\ h)h(the)g(new)f(v)o(ersion,)g(so)g(that)h(use)f(of)g(existing)198 139 y(megap\ rograms)14 b(can)i(con)o(tin)o(ue.)0 357 y fg(5.)57 b(Comp)o(arison)16 b(With) k(Related)h(W)-5 b(ork)0 456 y fi(Megaprogramming)11 b(is)j(primarily)e(a)j (soft)o(w)o(are)e(engineering)g(activit)o(y)l(,)i(but)f(b)q(orro)o(ws)f(hea)o (vily)h(from)g(the)0 546 y(tec)o(hnologies)h(of)i(databases)f(and)f(of)i(arti\ \014cial)f(in)o(telligence.)0 668 y fg(5.1)56 b(Soft)n(w)n(are)20 b(Engineeri\ ng)0 767 y fi(The)15 b(goals)g(of)g(megaprogramming,)d(dev)o(eloping)i(a)i (comp)q(onen)o(t-based)d(soft)o(w)o(are)h(tec)o(hnology)h(for)g(pro-)0 856 y (gramming)k(in)j(the)f(large,)i(are)e(also)g(cen)o(tral)g(goals)g(of)g(soft)o (w)o(are)g(engineering.)36 b(Megaprogrammi)o(ng)0 946 y(builds)17 b(on)i(earl\ ier)f(w)o(ork)g(on)h(data)f(abstraction)g([LisGu:86,)h(P)o(arnas:72],)e(ob)s (ject-orien)o(ted)g(program-)0 1036 y(ming)f([GolRob:83],)e(and)i(distributed) f(computing)h([CoDo:88].)99 1134 y(Scaling)g(up)f(from)h(ob)s(jects)g(to)h (megamo)q(dules)e(go)q(es)i(b)q(ey)o(ond)e(ob)s(ject-orien)o(ted)h(notions)f (of)i(encap-)0 1224 y(sulation)k(and)g(message)f(passing;)j(tec)o(hniques)e (for)g(managing)f(megamo)q(dules)g(and)h(comm)o(unicating)0 1314 y(b)q(et)o (w)o(een)14 b(them)f(are)h(qualitativ)o(ely)g(di\013eren)o(t)f(from)g(those)g (for)h(ob)s(jects.)21 b(Because)14 b(megamo)q(dules)e(are)h(so)0 1403 y(m)o (uc)o(h)g(more)g(substan)o(tial)g(than)h(traditional)g(mo)q(dules,)f(tec)o (hniques)h(for)h(ob)s(ject)f(managemen)o(t)f(through)0 1493 y(t)o(yp)q(es,)18 b(classes)e(and)h(inheritance)f(are)h(less)g(applicable;)g(megamo)q(dules)e (require)i(sp)q(ecial)g(database)g(re-)0 1583 y(triev)m(al,)g(bro)o(wsing,)d (and)i(instrumen)o(tation)e(metho)q(ds.)99 1681 y(Reusabilit)o(y)k(is)i(anoth\ er)f(related)g(area)g(in)h(whic)o(h)f(traditional)f(mec)o(hanisms)f([BiP)o (e:89])i(need)h(to)0 1771 y(b)q(e)e(supplemen)o(ted)f(to)h(handle)f(the)i(lar\ ger)e(gran)o(ularit)o(y)f(of)i(megamo)q(dules.)26 b(W)l(e)18 b(ha)o(v)o(e)g (de\014ned)f(mega-)0 1861 y(mo)q(dules)22 b(as)g(the)h(unit)f(of)h(use)g(and) f(reuse)g(b)o(y)g(megaprograms)e(in)i(a)h(manner)e(that)j(use)e(and)g(reuse)0 1950 y(b)q(ecome)16 b(indistinguishable.)j(Remo)o(ving)c(the)i(mo)q(dules)f (from)f(the)i(in)o(v)o(oking)e(en)o(vironmen)o(t)g(is)h(critical.)99 2049 y (Kron)e(and)g(DeRemer's)f([DeKr:76])h(and)g(subsequen)o(t)f(w)o(ork)i([BeLP:9\ 2])f(on)h(mo)q(dule)f(in)o(terconnec-)0 2138 y(tion)k(languages)e(and)h(progr\ amming)e(in)i(the)h(large)f(is)h(v)o(ery)g(in\015uen)o(tial,)e(though)h(megam\ o)q(dule)f(in)o(ter-)0 2228 y(connection)g(mec)o(hanisms)d(di\013er)i(from)g (traditional)g(p)q(oin)o(t-to-p)q(oin)o(t)g(comm)o(unication)f(mec)o(hanisms) f(of)0 2318 y(ob)s(ject-based)i(languages.)99 2416 y(The)j(need)g(for)f(a)i (distinct)e(language)g(to)i(manage)e(mo)q(dule)g(distribution)f(alternativ)o (es)i(of)g(an)g(ap-)0 2506 y(plication)d(w)o(as)h(recognized)f(b)o(y)h(Purtil\ o)f(in)h(his)f(thesis)h(and)f(implemen)o(ted)g(in)g(his)h fa(Pol)m(ylith)e fi (soft)o(w)o(are)0 2596 y(bus)f([Purt:90].)19 b(Our)13 b(megaprogrammi)o(ng)e (paradigm)g(extends)i(this)h(view)f(b)o(y)g(prop)q(osing)f(a)i(compilable)0 2685 y(language)g(for)i(information)d(\015o)o(w)i(con)o(trol,)f(con)o(v)o(ers\ ion,)g(and)h(optimization)f(\()p ff(transduction)p fi(\),)h(a)o(v)o(oiding)0 2775 y(programmer)f(in)o(v)o(olv)o(emen)o(t)g(as)j(system)f(con\014guration)f (and)g(application)h(needs)g(c)o(hange.)974 2895 y(20)p eop %%Page: 21 21 bop 0 50 a fg(5.2)56 b(Databases)19 b(and)f(T)-5 b(ransaction)19 b(Pro)r(ces\ sing)0 142 y fi(W)l(ork)24 b(in)g(databases)f(has)h(tak)o(en)g(a)h(n)o(um)o (b)q(er)d(of)j(recen)o(t)f(directions)f([Silb)q(er:91])g(that)h(are)g(relev)m (an)o(t)0 232 y(to)g(megaprogrammi)o(ng,)e(including)g(enhanced)g(functionali\ ties)h(for)g(data)g(distribution)f(and)h(ric)o(her)0 322 y(data)g(mo)q(dels)e (through)h(the)g(use)h(of)f(ric)o(h)g(t)o(yp)q(e)h(systems)f(for)g(data)h(de\ \014nition.)38 b(In)23 b(this)f(pap)q(er,)h(w)o(e)0 411 y(suggest)e(that)h (the)f(ideal)g(data)h(mo)q(del)f(for)g(megaprogrammin)o(g)e(should)h(ha)o(v)o (e)h(a)g(ric)o(h)g(t)o(yp)q(e)h(system,)0 501 y(but)16 b(w)o(e)g(delib)q(erat\ ely)g(don't)f(tak)o(e)i(a)f(p)q(osition)f(on)h(whether)f(it)i(m)o(ust)e(b)q (e)h(ob)s(ject-orien)o(ted;)f(indeed,)g(the)0 591 y(usefulness)e(of)j(concept\ s)e(suc)o(h)g(as)h(ob)s(ject)g(iden)o(tit)o(y)g(and)f(generalization)g(hierar\ c)o(hies)f(with)i(distributed)0 680 y(data,)h(autonomously)f(managed)h(b)o (y)g(eac)o(h)g(megamo)q(dule,)f(is)h(curren)o(tly)f(b)q(eing)i(debated.)99 773 y(Databases)f(m)o(ust)g(already)g(deal)g(with)h(heterogeneit)o(y)l(,)g(someti\ mes)e(caused)h(b)o(y)h(\014nding)e(that)i(dis-)0 863 y(tinct)d(information)f (resources)f(are)i(lo)q(cated)g(at)h(distinct)e(sites)h(and)f(under)g(distinc\ t)h(managemen)o(t.)19 b(The)0 952 y(query)j(program)d(has)i(then)h(no)f(con)o (trol)g(o)o(v)o(er)g(the)h(in)o(ternals)e(of)h(the)h(resource)f(represen)o (tation,)g(and)0 1042 y(v)o(ery)e(little)i(con)o(trol)d(o)o(v)o(er)h(the)h (in)o(terface.)30 b(These)19 b(systems)g(go)h(b)o(y)f(the)h(name)f(of)g ff (federated)h(systems)p fi(.)0 1132 y(Languages)15 b(to)i(deal)f(with)g(com)o (bining)e(information)h(from)h(federated)g(systems)f(ha)o(v)o(e)h(b)q(een)h (dev)o(elop)q(ed)0 1221 y([Da)o(y)o(a:85])e([Lit)o(w:86].)99 1314 y(T)l(ransa\ ction)10 b(pro)q(cessing)h(is)g(another)g(\014eld)g(of)h(concern)f(for)h(mega\ programmin)o(g.)18 b(Classical)10 b(trans-)0 1403 y(actions)i(are)h(min)o(usc\ ule)e(tasks)h(whic)o(h)g(only)h(in)o(teract)g(with)f(eac)o(h)h(other)f(throug\ h)g(the)h(database;)g(t)o(ypical)0 1493 y(w)o(orkloads)k(reac)o(h)h(thousands) g(of)h(these)g(small)f(transactions)f(p)q(er)i(second.)28 b(Ho)o(w)o(ev)o(er) 19 b(it)g(has)f(b)q(ecome)0 1583 y(clear)k(that)h(not)f(all)g(database)g(appl\ ications)f(\014t)h(in)o(to)g(this)g(basic)g(paradigm,)g(so)g(that)h(new)f(mo) q(dels)0 1672 y(of)c(transactions)f(are)h(emerging,)g(including)e ff(long)i (transactions)f fi([Katz:83])h(and)f ff(nested)h(transactions)0 1762 y fi([Mo\ ss:85].)31 b(Long-liv)o(ed)19 b(transactions)g(t)o(ypically)h(release)g(their) f(lo)q(c)o(ks)h(and)g(run)f(at)i(a)f(lo)o(w)o(er)f(lev)o(el)h(of)0 1852 y(con\ sistency)11 b(with)h(resp)q(ect)g(to)g(full)f(serializabilit)o(y)l(.)18 b ff (Sagas)11 b fi([Garcia:87])f(are)i(particular)e(nested)h(transac-)0 1941 y (tions)k(whic)o(h)g(ac)o(hiev)o(e)g(global)f(atomicit)o(y)i(but)f(p)q(ermit)g (the)h(autonomous)e(commitmen)o(t)g(of)i(comp)q(onen)o(t)0 2031 y(subtransact\ ions,)i(whose)h(e\013ect)h(can)g(b)q(e)g(undone)e(b)o(y)h(comp)q(ensation)g (\(t)o(ypically)l(,)h(b)o(y)g(\014ring)e(another)0 2121 y(transaction)11 b (that)h(will)f(reconstruct)g(the)i(initial)e(state\).)21 b(These)11 b(mec)o (hanisms)f(ma)o(y)h(\014nd)g(an)g(application)0 2210 y(in)16 b(megaprogrammin\ g)o(,)e(where)i(the)h(autonom)o(y)e(of)i(eac)o(h)f(megamo)q(dule)f(is)h(a)h (strict)f(requiremen)o(t.)0 2321 y fg(5.3)56 b(Arti\014cial)23 b(In)n(tellige\ nce)99 2416 y fi(Indep)q(endence)13 b(of)h(mo)q(dules)f(has)g(b)q(een)h(a)g (long-standing)e(concern)h(in)h(arti\014cial)f(in)o(telligence)g(\(AI\).)0 2506 y(Sp)q(eci\014cally)24 b(the)g(paradigm)e(of)i(indep)q(enden)o(t)f(actor\ s)g(and)g(agen)o(ts)h(has)f(captured)g(atten)o(tion)h(from)0 2596 y([Hewitt:7\ 3])16 b(to)g([Genesereth:89],)f(prop)q(osing)e(v)m(arious)i(mo)q(dels)g(for)g (building)f(complex)h(computations)0 2685 y(and)j(kno)o(wledge)h(bases)f(star\ ting)g(from)g(kno)o(wledge)h(whic)o(h)f(is)g(indep)q(enden)o(tly)g(pro)o(vide\ d)f(in)i(di\013eren)o(t)0 2775 y(con)o(texts.)k(Since)17 b(programming)d(w)o (as)i(not)h(an)g(ob)s(jectiv)o(e)g(of)g(AI)g(researc)o(hers,)e(this)i(w)o(ork) f(w)o(as)g(fo)q(cused)974 2895 y(21)p eop %%Page: 22 22 bop 0 50 a fi(on)13 b(bringing)f(in)o(telligence)h(within)g(mo)q(dules)f(and) h(on)g(pro)o(viding)f(lo)q(ose)h(and)g(\015exible)g(con)o(trol)g(of)h(mo)q (dule)0 139 y(in)o(terconnection.)25 b(In)18 b(con)o(trast,)f(w)o(e)h(prop)q (ose)f(mec)o(hanisms)f(for)h(megamo)q(dule)g(con)o(trol)g(that,)i(though)0 229 y(maximally)d(\015exible,)g(are)h(fully)g(sp)q(eci\014ed)f(through)g(the)h (MPL)g(instructions;)e(w)o(e)i(do)g(not)g(exp)q(ect)h(that)0 319 y(megamo)q (dules)k(prop)q(ose)g(and)h(negotiate)h(their)g(o)o(wn)e(computations,)i(as)g (is)f(often)h(exp)q(ected)g(in)g(AI)0 408 y(mo)q(dels.)99 505 y(The)f(notion) g(of)h(megamo)q(dule)e(on)o(tology)h(and)g(the)h(imp)q(ortance)e(of)i(on)o (tological)e(commitmen)o(t)0 594 y(\(i.e.,)c(that)g(en)o(tities)g(within)f (megamo)q(dules)f(conform)h(to)i(their)e(declarations\))g(w)o(as)g(dev)o(elop) q(ed)g(in)h(the)0 684 y(con)o(text)24 b(of)g(kno)o(wledge)f(represen)o(tation) f(mo)q(dels)h([Grub)q(er:91];)i(megaprogramming)c(b)q(orro)o(ws)g(this)0 774 y (notion)c(in)f(order)g(to)h(de\014ne)g(the)g(exp)q(ected)h(qualities)f(of)g (megamo)q(dules,)f(whic)o(h)g(ho)o(w)o(ev)o(er)f(remain)h(out)0 863 y(of)h (megaprogrammi)o(ng)d(con)o(trol.)0 1045 y fg(6.)57 b(Conclusion)0 1142 y fi (W)l(e)21 b(ha)o(v)o(e)e(de\014ned)h(megaprogrammi)o(ng)d(as)j(a)h(departure) e(from)g(standard)g(top-do)o(wn)g(programming)0 1231 y(practice,)c(whic)o(h)g (has)g(not)h(b)q(een)f(able)h(to)g(deal)f(w)o(ell)g(with)h(the)g(problems)d (encoun)o(tered)i(when)g(building)0 1321 y(and)21 b(main)o(taining)e(large)i (soft)o(w)o(are)g(systems.)37 b(Our)20 b(ob)s(jectiv)o(e)i(has)f(b)q(een)h (to)g(pro)o(vide)e(a)i(conceptual)0 1410 y(framew)o(ork)16 b(for)i(the)g(stud\ y)g(of)g(megaprogramm)o(ing)d(and)i(to)h(iden)o(tify)g(tec)o(hnical)f(problem\ s)f(to)i(b)q(e)g(ad-)0 1500 y(dressed)d(in)h(dev)o(eloping)f(an)i(e\013ectiv) o(e)g(tec)o(hnology)f(of)h(megaprogrammin)o(g.)99 1596 y(Concrete)22 b(applic\ ation)g(of)g(a)h(comprehensiv)o(e)d(megaprogramming)f(tec)o(hnology)j(along)g (the)h(di-)0 1686 y(rections)d(outlined)f(in)h(this)g(pap)q(er)f(is)h(clearly) g(still)g(far)g(a)o(w)o(a)o(y)l(.)32 b(A)20 b(n)o(um)o(b)q(er)f(of)h(problems) e(need)i(to)h(b)q(e)0 1776 y(solv)o(ed,)f(not)g(only)h(related)e(to)i(megamo) q(dule)e(in)o(tegration,)h(but)g(also)g(in)f(the)i(building)d(of)j(individual) 0 1865 y(comp)q(onen)o(ts,)d(esp)q(ecially)g(if)h(w)o(e)f(aim)g(at)h(enhancin\ g)f(their)g(p)q(ortabilit)o(y)g(and)g(reusabilit)o(y)l(.)26 b(Impro)o(ving)0 1955 y(\\programming)15 b(in)i(the)i(medium")d(is)i(a)g(premise)e(for)i(the)g (e\013ectiv)o(e)h(dev)o(elopmen)o(t)e(of)h(megaprogram-)0 2045 y(ming.)j(Some) 16 b(of)g(its)h(principles)e(can)h(b)q(e)h(incorp)q(orated)e(in)h(handcrafted) f(systems.)99 2141 y(Another)k(critical)f(factor)h(to)h(the)f(success)f(of)h (megaprogrammin)o(g)d(is)j(its)f(in)o(tegration)g(with)h(cur-)0 2230 y(ren)o (t)24 b(standardization)e(e\013orts.)45 b(Emerging)22 b(standards)h(for)g(sup\ p)q(orting)g(remote)h(database)f(access)0 2320 y(and)15 b(distributed)g(commi\ tmen)o(t)f(proto)q(cols)i(ma)o(y)f(pro)o(vide)g(useful)g(concepts)h(for)g(the) g(tec)o(hnological)f(in-)0 2410 y(frastructure)h(needed)h(for)g(supp)q(orting) f(megaprogramming)e(requiremen)o(ts)i(on)h(a)g(computer)g(net)o(w)o(ork)0 2499 y(\(based)f(on)g(transfer)g(and)g(transduction)f(of)h(data)h(structures)e(amo\ ng)h(megamo)q(dules\).)99 2596 y(Though)d(w)o(e)i(see)f(an)h(existing)f(trend) g(to)o(w)o(ard)f(the)i(design)f(of)g(p)q(o)o(w)o(erful)g(MPLs)g(and)f(mo)q (dule)h(in)o(ter-)0 2685 y(face)i(formalisms,)e(w)o(e)i(ha)o(v)o(e)f(to)h(sig\ ni\014can)o(tly)e(raise)h(the)i(lev)o(el)e(of)i(exp)q(ected)f(functionalities) g(compared)0 2775 y(to)h(the)g(curren)o(t)e(state-of-art;)h(feasibilit)o(y)g (and)g(applicabilit)o(y)f(of)i(these)f(ideas)g(m)o(ust)g(b)q(e)g(demonstrated) 974 2895 y(22)p eop %%Page: 23 23 bop 0 50 a fi(through)16 b(further)h(researc)o(h)f(and)h(exp)q(erimen)o(ts.) 24 b(This)17 b(pap)q(er)g(iden)o(ti\014es)f(a)i(n)o(um)o(b)q(er)d(of)j(op)q (en)g(researc)o(h)0 139 y(issues:)148 233 y fd(\017)25 b fi(Design)16 b(of)h (a)f(megaprogramming)d(language)j(and)f(t)o(yp)q(e)j(system.)148 327 y fd(\ \017)25 b fi(Design)16 b(and)g(implemen)o(t)f(the)h(megaprogramming)d(supp)q (ort)j(en)o(vironmen)o(t.)148 422 y fd(\017)25 b fi(Design)19 b(optimizers)g (for)h(megaprograms,)e(with)i(an)f(increasing)g(degree)g(of)i(sophistication,) 198 511 y(including)15 b(the)i(minimization)d(of)j(co)q(ercion)f(and)g(transd\ uction)f(costs.)148 605 y fd(\017)25 b fi(Establish)16 b(trade-o\013s)h(b)q (et)o(w)o(een)h(pre-execution)f(compilation)f(and)h(dynamic)g(sc)o(heduling)f (of)198 695 y(megaprogams.)148 789 y fd(\017)25 b fi(Understand)17 b(the)h (role)g(of)g(emerging)f(standards)f(in)i(the)h(con)o(text)f(of)h(databases)e (and)g(trans-)198 879 y(action)f(pro)q(cessing)g(systems)f(for)i(the)f(implem\ en)o(tation)f(of)i(megaprogrammi)o(ng)d(in)o(terfaces.)148 973 y fd(\017)25 b fi(Understand)20 b(deeply)h(the)h(nature)f(of)g(\\on)o(tologies")f(as)h(a)g (basis)g(for)g(programming)d(mega-)198 1062 y(mo)q(dules.)148 1156 y fd(\017) 25 b fi(Understand)20 b(and)h(disclose)f(the)i(metho)q(dological)e(issues)g (concerned)h(with)g(building)e(indi-)198 1246 y(vidual)j(megamo)q(dules)e(so) i(as)g(to)g(assure)f(their)h(reusabilit)o(y)f(in)g(the)i(dev)o(elopmen)o(t)e (of)h(new)198 1336 y(applications.)148 1430 y fd(\017)j fi(Understand)11 b (and)h(disclose)g(the)h(metho)q(dological)e(issues)h(concerned)f(with)i(build\ ing)e(complex)198 1519 y(megaprogrammin)o(g)e(applications.)18 b(The)11 b(swi\ tc)o(h)g(to)h(a)f(service)g(from)f(a)i(subroutine)d(paradigm)198 1609 y(refo) q(cuses)16 b(man)o(y)g(of)g(these)h(issues.)0 1780 y fg(Ac)n(kno)n(wledgemen) n(t)0 1874 y fi(W)l(e)24 b(ha)o(v)o(e)e(receiv)o(ed)h(useful)g(commen)o(ts)f (on)h(this)g(w)o(ork)g(from)f(T)l(om)h(Dean,)i(T)l(om)e(Do)q(eppner,)h(Stev)o (e)0 1964 y(Reiss,)13 b(and)g(P)o(eter)g(Rathmann.)19 b(W)l(e)14 b(are)f(grat\ eful)g(to)h(the)f(anon)o(ymous)f(referees)h(for)g(their)g(constructiv)o(e)0 2053 y(commen)o(ts)d(and)g(suggestions.)19 b(A)11 b(long-standing)e(in)o(tere\ st)i(in)g(new)g(programming)d(paradigms)h(has)h(b)q(een)0 2143 y(encouraged) 19 b(b)o(y)g(Sheldon)f(Fink)o(elstein,)i(Witold)f(Lit)o(win,)h(Carl)f(Hewitt,) j(Y)l(oa)o(v)e(Shoam,)f(and)g(others.)0 2233 y(W)l(ork)d(of)g(Stefano)h(Cresp\ i-Reghizzi,)c(Letizia)k(T)l(anca,)f(and)f(Rob)q(erto)h(Zicari)g(con)o(tribute\ s)f(insigh)o(t)g(in)o(to)0 2322 y(the)i(applicabilit)o(y)e(of)h(these)h(conce\ pts.)k(The)16 b(initial)g(motiv)m(ation)h(for)f(this)g(form)o(ulation)e(w)o (as)i(pro)o(vided)0 2412 y(at)c(the)h(1990)e(D)o(ARP)l(A-ISTO)g(Soft)o(w)o (are)g(Enginering)f(PI)i(meeting,)g(where)g(the)g(need)g(for)f(new)h(directio\ ns)0 2502 y(in)k(programming-i)o(n-the-)o(large)d(w)o(as)j(explicated)h(and)f (the)g(term)h ff(megaprogramm)o(ing)c fi(app)q(eared.)99 2596 y(Bac)o(kground) d(researc)o(h)g(for)i(w)o(ork)f(has)g(b)q(een)h(partially)f(supp)q(orted)f (b)o(y)h(the)h(D)o(ARP)l(A)g(con)o(tract)f(N39-)0 2685 y(84-C-211.)19 b(Earli\ er,)12 b(Gio)g(Wiederhold)e(w)o(as)i(supp)q(orted)f(b)o(y)g(IBM)h(German)o (y)l(.)19 b(Recen)o(t)12 b(supp)q(ort)f(includes)0 2775 y(a)18 b(gran)o(t)f (on)g(co)q(ordinating)g(up)q(dates)g(to)h(replicated)f(copies)g(on)h(federate\ d)f(databases)g(\(F)-6 b(A)o(UVE)19 b(Con-)974 2895 y(23)p eop %%Page: 24 24 bop 0 50 a fi(tract)18 b(IRI-9007753,)e(NSF\),)h(a)h(gran)o(t)e(on)h(Kno)o (wledge-based)e(Mediators)h(from)h(the)h(IBM)f(Kno)o(wledge)0 139 y(Systems)h (Lab,)g(Menlo)g(P)o(ark,)g(and)g(a)g(D)o(ARP)l(A)h(con)o(tract)f(to)h(ISI)f (for)g(dev)o(elopmen)o(t)f(of)i(standards)d(for)0 229 y(Kno)o(wledge-querying) d(and)i(-manipulation.)k(Stefano)c(Ceri)g(is)g(partially)g(supp)q(orted)f(b)o (y)h(the)h(ESPRIT)0 319 y(Pro)s(jects)g(\\Stretc)o(h")g(and)g(\\Idea")g(and)g (b)o(y)g(the)h(CNR)g(Pro)s(ject)f(\\Logidata+.")0 478 y fg(References)99 605 y fi([BeLP:92])k(F.)g(C.)g(Belz,)i(D.)e(C.)g(Luc)o(kham,)h(and)e(J.)h(M.)g(Purt\ ilo:)29 b(\\Application)19 b(of)i(ProtoT)l(ec)o(h)198 695 y(T)l(ec)o(hnology) 12 b(to)h(the)g(DSSA)g(Program";)f ff(Pro)q(c.)h(D)o(ARP)l(A)g(Soft)o(w)o(are) f(T)l(ec)o(hnology)f(Conference)198 785 y(1992)p fi(,)16 b(Los)g(Angeles)h (CA,)f(April)g(28{30,)g(Meridien)f(Corp.,)h(Arlington)f(V)-6 b(A)18 b(1992.) 99 876 y([BiP)o(e:89])j(T.)h(J.)f(Biggersta\013)h(and)f(A.)h(J.)g(P)o(erlis:) 31 b ff(\\Soft)o(w)o(are)21 b(Reusabilit)o(y")p fi(;)i(Addison-W)l(esley)198 966 y(\(A)o(CM)17 b(Press\))e(1989.)99 1058 y([Blum:90])f(B.)i(I.)f(Blum:)21 b (\\Mo)q(deling-in-the-Large";)12 b(draft)j(of)h(Chap.)e(3)i(of)f(`Soft)o(w)o (are)g(Engineer-)198 1147 y(ing)20 b(for)h(Large)f(and)h(Small)e(Pro)s(jects'\ ,)j(Milton)e(S.)g(Eisenho)o(w)o(er)f(Researc)o(h)g(Cen)o(ter,)i(Johns)198 1237 y(Hopkins)16 b(Univ)o(ersit)o(y)l(,)f(T.R.RMI-90-023,)f(Sept.1990.)99 1329 y ([BoSc:92])24 b(B.)g(Bo)q(ehm)g(and)f(B.)i(Sc)o(herlis:)35 b(\\Megaprogrammin\ g)o(";)25 b ff(Pro)q(c.)f(D)o(ARP)l(A)g(Soft)o(w)o(are)198 1418 y(T)l(ec)o (hnology)c(Conference)i(1992)p fi(,)g(Los)f(Angeles)g(CA,)h(April)f(28{30,)h (Meridien)e(Corp.,)i(Ar-)198 1508 y(lington)16 b(V)-6 b(A)18 b(1992.)99 1600 y ([CCZLL:90])h(S.)f(Ceri,)h(S.)f(Crespi.,)g(R.)g(Zicari,)h(G.)g(Lamp)q(erti,G.\ ,)f(and)g(L.)h(La)o(v)m(azza:)27 b(\\)p fa(Algres)p fi(:)198 1689 y(an)16 b (adv)m(anced)g(database)g(system)g(for)h(complex)f(applications";)f ff(IEEE)h (Soft)o(w)o(are)p fi(,)f(Jul.1990.)99 1781 y([CoDo:88])k(G.)h(F.)f(Colouris)g (and)g(J.)g(Dollimore:)28 b ff(\\Distributed)18 b(Systems:)28 b(Concepts)20 b (and)f(De-)198 1871 y(sign")p fi(;)c(Addison)h(W)l(esley)g(1988.)99 1962 y ([CSTB:90])21 b(Scaling)g(Up:)32 b(A)22 b(Researc)o(h)e(Agenda)h(for)h(Soft)o (w)o(are)e(Engineering,)h(Summary)f(of)i(a)198 2052 y(Rep)q(ort)15 b(b)o(y)h (the)f(Computer)g(Science)g(and)g(T)l(ec)o(hnology)g(Board)g(\(CSTB\);)h ff (Comm)o(unications)198 2141 y(of)h(the)g(A)o(CM)p fi(,)f(33:3,)g(Marc)o(h)f (1990.)99 2233 y([Da)o(y)o(a:85])10 b(U.)i(Da)o(y)o(al:)19 b(\\Query)11 b(Pro) q(cessing)f(in)i(a)f(Multidatabase)f(System";)j(in)e ff(Query)g(Pro)q(cessing) 198 2323 y(in)16 b(Database)g(Systems)p fi(,)g(1985,)g(Springer,)e(pp.81{108.) 99 2414 y([DeKr:76])j(F.)h(DeRemer)g(and)g(H.)h(H.)g(Kron:)25 b(\\Programming) 15 b(in)k(the)f(Small)g(V)l(ersus)f(Program-)198 2504 y(ming)f(in)h(the)h(Lar\ ge";)f ff(IEEE)h(T)l(ransactions)d(on)i(Soft)o(w)o(are)g(Engineering,)e fi (June)i(1976.)24 b(Also)198 2594 y(in)17 b ff(T)l(utorial)f(on)h(Soft)o(w)o (are)f(Design)h(T)l(ec)o(hniques)p fi(,)f(Eds)g(P)l(.)h(F)l(reeman)f(and)g (A.)i(I.)f(W)l(asserman,)198 2683 y(IEEE)f(Computer)g(So)q(ciet)o(y)h(Press)e (1983.)99 2775 y([Garcia:87])h(H.)h(Garcia-Molina)d(and)i(K.)h(Salem:)k(\\Sag\ as";)16 b ff(Pro)q(c.)22 b(A)o(CM-SIGMOD)15 b(In)o(t.)22 b(Conf.)974 2895 y fi (24)p eop %%Page: 25 25 bop 198 50 a ff(On)16 b(Managemen)o(t)f(of)i(Data)p fi(,)g(S.)f(F)l(rancisco\ ,)e(1987.)99 142 y([Genesereth:89])e(M.)g(R.)h(Genesereth:)20 b(\\Prop)q(osal) 11 b(for)i(Researc)o(h)e(on)i(Informable)e(Agen)o(ts";)j(Logic)198 232 y(Grou\ p)h(Rep)q(ort)i(89-9,)e(Stanford)h(Univ)o(ersit)o(y)l(,)g(Ma)o(y)g(1989.)99 324 y([GolRob:83])e(A.)i(Goldb)q(erg)e(and)h(D.)h(Robson:)k ff(\\Smalltalk,) 14 b(The)i(Language)f(and)f(its)i(Implemen-)198 414 y(tation")p fi(;)g(Addiso\ n-W)l(esley)l(,)f(1983.)99 506 y([Grub)q(er:91])23 b(T.)i(R.)f(Grub)q(er:)38 b (\\The)25 b(Role)f(if)h(Common)f(On)o(tology)g(in)g(Ac)o(hieving)h(Sharable,) 198 596 y(Reusable)d(Kno)o(wledge)f(Bases";)26 b(in)c(Allen,)i(J.A.,)g(Fik)o (es,)g(R.,)g(and)e(Sandew)o(all,)g(E.)h(\(Eds\))198 686 y ff(Principles)14 b (o)i(f)g(Kno)o(wledge)e(Represen)o(tation)g(and)h(Reasoning)p fi(,)f(Morgan-K\ aufmann,)f(1991.)99 778 y([Hewitt:73])h(C.)g(Hewitt,)i(P)l(.)d(Bishop,)h(and) f(R.)g(Steiger:)21 b(\\A)14 b(Univ)o(ersal)f(Mo)q(dular)f fa(a)o(ctor)i fi (F)l(ormal-)198 868 y(ism)i(for)g(Arti\014cial)g(In)o(telligence";)g ff(IJCAI) g fi(3,)g(SRI,)g(Aug.1973,)g(pp.235-245.)99 960 y([Humphrey:88])j(W.)i(S.)g (Humphrey:)30 b(\\Characterizing)20 b(the)h(Soft)o(w)o(are)f(Pro)q(cess";)i ff (IEEE)f(Soft-)198 1050 y(w)o(are)p fi(,)16 b(V)l(ol.5)g(No.2,)g(Marc)o(h)f (1988,)i(pp.)e(73{79.)99 1142 y([Katz:83])30 b(R.)g(H.)g(Katz:)50 b(\\Managin\ g)28 b(the)j(Chip)e(Design)h(Database";)36 b ff(IEEE)30 b(Computer)p fi(,)198 1232 y(Dec.1983,)16 b(pp.16{36.)99 1324 y([Lenat:90])h(R.V.)f(Douglas)g(Lenat) i(et)f(al.:)23 b(\\)p fa(Cyc)p fi(,)17 b(T)l(o)o(w)o(ards)e(Programs)f(with)j (Common)f(Sense";)198 1414 y ff(CA)o(CM)p fi(,)g(V)l(ol.33)g(No)h(8,)f(Aug.19\ 90.)99 1506 y([LisGu:86])k(B.)h(Lisk)o(o)o(v)g(and)g(J.)f(Guttag:)32 b ff(\\A\ bstraction)21 b(and)f(Sp)q(eci\014cation)h(in)g(Programming)198 1596 y(Langua\ ges")p fi(,)15 b(MIT)h(Press)g(1986.)99 1688 y([Lit)o(w:86])j(W.)h(Lit)o(win) f(and)g(A.)h(Ab)q(dellatif:)28 b(\\Multidatabase)18 b(In)o(terop)q(erabilit)o (y";)i ff(IEEE)f(Com-)198 1778 y(puter)p fi(,)d(V)l(ol.19)g(No.12,)g(Dec.1986\ ,)h(pp.10{18.)99 1870 y([Moss:85])h(J.Eliot)i(B.)g(Moss:)27 b ff(Nested)21 b (T)l(ransactions,)e(an)g(Approac)o(h)g(to)h(Reliable)f(Distributed)198 1960 y (Computing)p fi(;)c(The)h(MIT)h(Press,)e(1985.)99 2052 y([P)o(arnas:72])k(D.) i(L.)g(P)o(arnas:)29 b(\\On)21 b(the)g(Criteria)f(to)i(b)q(e)f(used)f(in)h (Decomp)q(osing)f(Systems)h(in)o(to)198 2142 y(Mo)q(dules";)13 b ff(Comm)o (unications)f(of)i(the)g(A)o(CM,)f(1972)p fi(.)21 b(Also)13 b(in)h ff(T)l(uto\ rial)e(on)i(Soft)o(w)o(are)f(Design)198 2232 y(T)l(ec)o(hniques)p fi(,)k(Eds) h(P)l(.)f(F)l(reeman)g(and)h(A.)g(I.)g(W)l(asserman,)f(IEEE)h(Computer)f(So)q (ciet)o(y)h(Press)198 2321 y(1983.)99 2414 y([Purt:90])j(J.)g(M.)g(Purtillo:) 31 b(\\The)22 b(P)o(olylith)f(Soft)o(w)o(are)g(Bus";)j(Univ.)d(of)h(Maryland) f(T)l(ec)o(h.)g(Re-)198 2503 y(p)q(ort)c(2469,)h(1990;)f(to)h(app)q(ear)f(in) g ff(A)o(CM)h(T)l(ransactions)d(on)i(Programming)e(Languages)i(and)198 2593 y (Systems)p fi(.)99 2685 y([Rinard;92])g(M.)i(C.)h(Rinard)e(and)h(M.)g(S.)g (Lam:)28 b(\\Seman)o(tic)18 b(F)l(oundations)g(of)h(Jade";)i ff(Pro)q(ceed-) 198 2775 y(ings)i(of)g(the)h(Nineteen)o(th)f(Ann)o(ual)g(A)o(CM)g(Symp)q(osiu\ m)e(on)j(Principles)d(of)j(Programming)974 2895 y fi(25)p eop %%Page: 26 26 bop 198 50 a ff(Languages)16 b fi(Jan.)21 b(1992.)99 139 y([Silb)q(er91])e (A.)i(Silb)q(ersc)o(hatz,)g(M.)f(Stonebrak)o(er)f(and)h(J.)g(Ullman)g(\(eds.\ \):)31 b(\\Database)20 b(Systems:)198 229 y(Ac)o(hiev)o(emen)o(ts)13 b(and)h (Opp)q(ortunities";)g ff(Comm)o(unications)e(of)j(the)f(A)o(CM)p fi(,)h(34:10\ ,)f(Oct.)22 b(1991,)198 319 y(110-120.)99 408 y([So)o(w)o(a:91])11 b(J.)h(F.) g(So)o(w)o(a:)18 b(\\Issues)12 b(in)g(Kno)o(wledge)f(Represen)o(tation")g(in) h(J.F.)g(So)o(w)o(a)f(\(ed.\))21 b ff(Seman)o(tic)198 498 y(Net)o(w)o(orks:) 29 b(Explorations)19 b(in)h(the)h(Represen)o(tation)d(of)j(Kno)o(wledge)p fi (,)f(Morgan-Kaufman)o(n,)198 588 y(1991.)99 677 y([W)l(egn:90])j(P)l(.)g(W)l (egner:)35 b(\\Concepts)23 b(and)g(P)o(aradigms)e(of)i(Ob)s(ject-Orien)o(ted) f(Programming";)198 767 y ff(Ob)s(ject-Orien)o(ted)15 b(Messenger)p fi(,)g (V)l(ol)h(1,)h(Num)o(b)q(er)e(1,)i(August)f(1990.)99 857 y([WRB+:90])c(G.)h (Wiederhold,)f(P)l(.)h(Rathmann,)e(T.)i(Barsalou,)f(B.)h(S.)g(Lee,)h(and)e (D.)h(Quass:)18 b(\\P)o(arti-)198 946 y(tioning)11 b(and)g(Comp)q(osing)g(Kno) o(wledge";)h ff(Information)e(Systems)p fi(,)i(V)l(ol.15)g(no.1,)g(1990,)g (pp.61-)198 1036 y(72.)99 1126 y([Wie:92a])20 b(G.)i(Wiederhold:)29 b(\\Media\ tors)20 b(in)g(the)i(Arc)o(hitecture)e(of)h(F)l(uture)f(Information)g(Sys-) 198 1215 y(tems";)c ff(IEEE)g(Computer)p fi(,)g(Marc)o(h)f(1992,)h(pages)g (38{49.)99 1305 y([Wie:92b])e(G.)h(Wiederhold:)20 b(\\Mo)q(del-free)14 b(Opti\ mization";)g ff(Pro)q(c.)h(D)o(ARP)l(A)g(Soft)o(w)o(are)f(T)l(ec)o(hnol-)198 1395 y(ogy)j(Conference)f(1992)p fi(,)g(Los)g(Angeles)h(CA,)g(April)e(28{30,) i(Meridien)e(Corp.,)g(Arlington)h(V)-6 b(A)198 1484 y(1992,)16 b(pp.)g(82{96.) 99 1574 y([WW)o(C:90])h(Gio)g(Wiederhold,)f(P)o(eter)h(W)l(egner,)g(and)g(Ste\ fano)h(Ceri:)23 b("T)l(o)o(w)o(ards)15 b(Megaprogram-)198 1664 y(ming";)23 b (Stanford)e(Univ)o(ersit)o(y)l(,)h(Rep)q(ort)g(No.ST)l(AN-CS-90-1341)e(Bro)o (wn)h(Univ)o(ersit)o(y)l(,)h(Re-)198 1753 y(p)q(ort)e(No.90-20,)g(Oct.1990,)g (and)f(P)o(olitecnico)g(di)h(Milano,)f(Dipartimen)o(to)f(di)i(Elettronica,) 198 1843 y(N.)d(90-055.)974 2895 y(26)p eop %%Trailer end %%EOF