%!PS-Adobe-2.0 %%Creator: dvipsk 5.495b Copyright 1986, 1992 Radical Eye Software %%Title: tas.dvi %%Pages: 53 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%EndComments %DVIPSCommandLine: dvips tas %DVIPSSource: TeX output 1992.11.05:1723 %%BeginProcSet: tex.pro %! /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N} B /TR{translate}N /isls false N /vsize 11 72 mul N /@rigin{isls{[0 -1 1 0 0 0] concat}if 72 Resolution div 72 VResolution div neg scale isls{Resolution hsize -72 div mul 0 TR}if Resolution VResolution vsize -72 div 1 add mul TR matrix currentmatrix dup dup 4 get round 4 exch put dup dup 5 get round 5 exch put setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{ CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N} B /I{cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook known{start-hook} if pop /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255 {IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V{}B /RV statusdict begin /product where{ pop product dup length 7 ge{0 7 getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}ifelse}{false}ifelse end{{gsave TR -.1 -.1 TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 -.1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{ gsave transform round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}B /r{ p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end %%EndProcSet TeXDict begin 40258431 52099146 1000 300 300 (tas.dvi) @start /Fa 1 51 df50 D E /Fb 41 122 df<0003FC000FFE001C0F00180F00380E0038000070000070000070 0000700007FFFC07FFFC00E03800E03800E03800E03801C07001C07001C07001C07001C0E603C0 E60380E60380EC03807C038038070000070000670000F60000FE0000FC00007800001821819916 >12 D<0003F380000FFB80001C3F8000383F8000383F0000380700007007000070070000700E00 00700E0007FFFE0007FFFE0000E01C0000E01C0000E01C0000E01C0001C0380001C0380001C038 0001C0380001C0730001C07300038073000380760003803E0003801C0003000000070000006700 0000F6000000FE000000FC000000780000001921819917>I<0006001C0038007000E000C00180 0380030007000E000E001C001C00180038003800300070007000700060006000E000E000E000E0 00E000E000E000E0006000600070003000300018000C000F267C9B10>40 D<00600030003000180018001C001C000C000C000C000C000C000C000C001C001C001C001C0018 00380038003800700070006000E000E001C001C00380030007000E000C00180030006000C0000E 267F9B10>I45 D<70F8F8F0E005057C840C>I<0E1E3E3E1C000000 00000070F8F8F0E007107C8F0C>58 D<0000700000700000F00001F00001F00003F00003F00006 F00006F0000CF0000CF00018F00038F00030F00060F00060F800C07800FFF801FFF80380780300 780600780600780E00787F83FFFF83FF181A7E991D>65 D<03FFF803FFFE00781E00780F00F00F 00F00F00F00F00F00F01E01E01E01C01E07C01FFF003FFE003C0F803C03803C03C07803C07803C 07803C07803C0F00780F00780F00F00F03E0FFFFC0FFFF00181A7D991B>I<03FFF80003FFFE00 00781F000078070000F0038000F0038000F0038000F003C001E003C001E003C001E003C001E003 C003C0078003C0078003C0078003C0070007800F0007800F0007800E0007801C000F003C000F00 78000F00F0000F03E000FFFF8000FFFE00001A1A7D991D>68 D<03FFFF03FFFF00780F00780700 F00300F00300F00300F00601E18601E18001E18001E38003FF0003FF0003C70003C30007860007 86000780000780000F00000F00000F00000F0000FFF000FFF000181A7D9919>70 D<01FFC003FFC0003C00003C0000780000780000780000780000F00000F00000F00000F00001E0 0001E00001E00001E00003C00003C00003C00003C0000780000780000780000780007FF000FFF0 00121A7F990F>73 D<001F80007FE001F0F003C03807803C0F001C1E001C1C001E3C001E38001E 78001E78001EF0003CF0003CF0003CF00078F00078F00070F000F0F001E0F001C0700380780700 3C1E001FFC0007E000171A7A991D>79 D<1FFFFE1FFFFE1C1E0E381E06303C06303C06603C0660 3C0CC0780C00780000780000780000F00000F00000F00000F00001E00001E00001E00001E00003 C00003C00003C00003C000FFFC00FFFC00171A7A991B>84 D<01FF8FF803FF8FF8003C0780003E 0700001E0E00001E0C00001F1800000F3000000F6000000FE0000007C000000780000007C00000 07C000000FC000001FC000003BE0000031E0000061E00000C1F0000180F0000380F0000700F800 0F007800FF83FF80FF83FF001D1A7E991D>88 DI<03CC07EE1E3C3C3C381C781CF038F038F038F038E073E073E0 F371F67F3E1E1C10107C8F14>97 D<7E007E000E000E001C001C001C001C00380038003BC03FF0 7C70783870387038E078E078E078E078E0F0C0E0E1E0E3C07F003E000D1A7C9912>I<01F007F8 0E381C78387878007000F000F000F000E000E010F03870F03FC01F000D107C8F12>I<001F8000 1F80000380000380000700000700000700000700000E00000E0003CE0007EE001E3C003C3C0038 1C00781C00F03800F03800F03800F03800E07300E07300E0F30071F6007F3E001E1C00111A7C99 14>I<01E007F01E183C1878187870FFE0FF80F000F000F000F010703870F03FC01F000D107C8F 12>I<000F00001F80001F80003F80003F0000700000700000700000700000700007FF0007FF00 00E00000E00000E00000E00001C00001C00001C00001C00001C000038000038000038000038000 038000070000070000670000F60000FE0000FC0000780000112181990C>I<00F30001FB80078F 000F0F000E07001E07003C0E003C0E003C0E003C0E00381C00381C00383C001C7C001FF80007B8 00003800003800607000F07000F0E000FFC0003F000011177E8F12>I<1F80001F800003800003 80000700000700000700000700000E00000E00000E7C000FFE001F87001E07001E07001C070038 0E00380E00380E00381C00701CC0701CC07038C0703980E01F00600E00121A7E9914>I<018003 8007800300000000000000000000001C003E006700C700CE00CE000E001C001C00380039803980 718073003E001C0009197D980C>I<000C001E001C00180000000000000000000000E003F00738 06380C380C38007000700070007000E000E000E000E001C001C001C001C06380F380F700FE0078 000F2081980C>I<1F801F800380038007000700070007000E000E000E0E0E1F1C771CCF1D8F1F 063F003FC039E038E070E370E370E370E6E07C6038101A7E9912>I<3F3F07070E0E0E0E1C1C1C 1C3838383870707070E6E6E6EC7C38081A7D990A>I<383E1F007CFF3F806FC3E1C0CF03C1C0CF 0381C0CE0381C01C0703801C0703801C0703801C070700380E0730380E0730380E0E30380E0E60 701C07C0300C03801C107D8F1F>I<383E007CFF006FC380CF0380CF0380CE03801C07001C0700 1C07001C0E00380E60380E60381C60381CC0700F8030070013107D8F16>I<01F007F80E1C1C1E 380E780E701EF01EF01EF01CE03CE038F07070E03FC01F000F107C8F14>I<070F000F9FC00DF1 C019E0E019C0E019C0E00381E00381E00381E00381E00703C0070380078780078F000EFC000E78 000E00000E00001C00001C00001C0000FF8000FF00001317808F14>I<03C607EE1E3C3C3C381C 781CF038F038F038F038E070E070E0F071F07FE01EE000E000E001C001C001C00FF81FF00F177C 8F12>I<38F07DF86F1CCF3CCE3CCE181C001C001C001C003800380038003800700030000E107D 8F10>I<03E007F00E701CF01CF01C401F801FC00FE001E060E0F0E0F0E0E1C07F803E000C107D 8F10>I<06000E000E000E000E001C001C00FFC0FFC038003800380038007000700070007000E1 80E180E300E7007E0038000A177C960D>I<1C03003E0380670700C70700CE0700CE07000E0E00 1C0E001C0E001C0E00381CC0381CC0383CC01C7D801FEF8007870012107D8F15>I<1C0C3E1E67 3EC71ECE0ECE0E0E0C1C0C1C0C1C0C381838181C301C600FE007800F107D8F12>I<1C06183E07 3C670E7CC70E3CCE0E1CCE0E1C0E1C181C1C181C1C181C1C183838303838301C38601C7C600FFF C007878016107D8F19>I<078E001FDF8038F38070E78060E78060E30001C00001C00001C00001 C000638300F38300F38700E78E00FDFC0038F00011107E8F12>I<1C03003E0380670700C70700 CE0700CE07000E0E001C0E001C0E001C0E00381C00381C00383C001C7C001FF80007B800003800 207000707000F0E000F1C0007F80003E000011177D8F13>I E /Fc 4 42 df<0FC01FE03FF07FF87FF8FFFCFFFCFFFCFFFCFFFCFFFC7FF87FF83FF01FE00FC00E107E9013> 15 D<00000600001E00007C0001F00007C0001F00007C0001F00007C0001F00007C0000F00000 F800003E00000F800003E00000F800003E00000F800003E00000F800003E00000E000000000000 000000000000000000000000FFFFFEFFFFFE171F7D971E>20 D<00000060000000006000000000 3000000000180000000018000000000E00FFFFFFFF80FFFFFFFF800000000E0000000018000000 001800000000300000000060000000006000210E7E8F26>33 D<0000100000000018000000000C 000000000C000000000600000000030000FFFFFF8000FFFFFFE00000000070000000001E000000 0007800000001E0000000038000000006000FFFFFFC000FFFFFF80000000030000000006000000 000C000000000C00000000180000000010000021167E9326>41 D E /Fd 56 123 df<01F87E03F9FE070B820E07000E07000E07000E07000E07000E0700FFE7F0FFE7F00E 07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E 07000E0700171A809916>11 D<00038001E38003E3800620000E00000E00000E00000E00000E00 000E0000FFE380FFE3800E03800E03800E03800E03800E03800E03800E03800E03800E03800E03 800E03800E03800E03800E03800E0380111B809A15>I34 D<000C0600000C0600000C060000180C0000180C0000180C0000180C00003018 0000301800003018000030180000603000FFFFFFE0FFFFFFE000C0600000C0600000C060000180 C0000180C0000180C000FFFFFFE0FFFFFFE0030180000301800006030000060300000603000006 030000060300000C0600000C0600000C0600000C0600001B217E9920>I<00C00180030006000E 000C001C003800380030007000700070006000E000E000E000E000E000E000E000E000E000E000 60007000700070003000380038001C000C000E0006000300018000C00A267E9B0F>40 DI44 DII58 DI61 D<003800007C00007C00005C00 00CE0000CE0001CF00018F000187000387800307800303800703C00603C00E01E00E01E00FFFE0 1FFFF01C00F01800F038007838007870007C70003C60003CE0001E171A7F991A>65 DI69 DI<007F00 01FFE007C0F00F00701E00303C00003C0000780000780000F00000F00000F00000F00000F00000 F007F0F007F0F000707800707800703C00703C00701E00700F007007C0F001FFE0007F00141A7E 991A>I73 D76 DII<00FE0003FF800783C00F01E01E00F03C 007838003878003C78003CF0001EF0001EF0001EF0001EF0001EF0001EF0001EF0001E78003C78 003C3800383C00781E00F00F01E00783C003FF8000FE00171A7E991C>I82 D<07E01FF83C3C700C600CE000E000E000F000F8007F003FF01FF80FFC00FE001E000F00070007 0007C007C00EE00E783C3FF807E0101A7E9915>III88 D91 D<60C0408040804080C180E1C0E1C0E1C00A08799913>II<0F 803FC070E0606040700070007001F01FF03E707070E070E070E070F0F07FF03E700C117E9012> 97 DI<07E00FF81C1C380C70006000E000E000 E000E000E0007000700038041C1C0FFC07F00E117F9011>I<000E000E000E000E000E000E000E 000E000E07CE0FFE1C1E380E700E700EE00EE00EE00EE00EE00E600E700E381E3C3E1FEE07CE0F 1A7F9914>I<07C01FF03C7070187018E00CE00CFFFCFFFCE000E0006000700038003C0C1FFC07 F00E117F9011>I<01F803F807080E000E000E000E000E000E00FFC0FFC00E000E000E000E000E 000E000E000E000E000E000E000E000E000E000E000D1A80990C>I<078F1FFF38783870703870 3870387038387038703FE07780700070003FF03FFC3FFE700FE007E007E007700E781E1FF807E0 10197F9013>III<03C003C003C003C0000000000000000000 00000001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C0 01C001C001C0C380FF003E000A22839A0A>II< E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0031A7D990A>III<07E01FF83C3C381C700E6006E007E007E007E007E007F00F 700E781E3C3C1FF807E010117F9013>II<03CE0FFE1C3E 381E700E700EE00EE00EE00EE00EE00E700E700E381E3C3E1FFE07CE000E000E000E000E000E00 0E000E0F187F9014>II<1F803FE07060 E000E000E000F8007F803FC007E000F000708070C070F0E07FC01F800C117F900F>I<1C001C00 1C001C00FFC0FFC01C001C001C001C001C001C001C001C001C001C001C001C001C200FE00F800B 157F940E>IIII<700700780E00381C001C 3C000E380007700003E00003C00001C00003E0000770000E30000C38001C1C00380E00700700F0 07801111809012>II<7FF87FF8007000F000E001C00380 038007000E000E001C00380078007000FFF8FFF80D117F9011>I E /Fe 47 124 df<003FF001FFF003E3F007C3F00F83F00F83F00F81F00F81F00F81F0FFFFF0FFFFF0FF FFF00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F07FE7FE7F E7FE7FE7FE171A809919>13 D<387CFEFEFE7E3E060C0C1C183020070E7E860C>44 D<387CFEFEFE7C3807077E860C>46 D<000180000380000780000700000700000F00000E00001E 00001C00001C00003C0000380000780000700000F00000E00000E00001E00001C00003C0000380 000380000780000700000F00000E00001E00001C00001C00003C00003800007800007000007000 00F00000E00000E0000011257E9B16>I<0FE0003FFC007FFE00E0FF00FE3F00FE3F807C1F8038 1F80003F80003F00003F00007E0000F80000F00001E0000383800703800E03801807803FFF007F FF00FFFF00FFFF00FFFF0011187E9716>50 D<07E0001FF8003FFC007C3E007C1F00FC1F00FC1F 00FC1F80FC1F80FC1F80FC1F807C1F807C3F803FFF800FDF80001F803C1F007E1F007E1F007E3E 007E7C003FF8001FF0000FC00011187E9716>57 D<387CFEFEFE7C38000000387CFEFEFE7C3807 117E900C>I<0007800000078000000FC000000FC000000FC000001FE000001FE000001FE00000 3BF000003BF000007BF8000071F8000071F80000E0FC0000E0FC0001E0FE0001C07E0001FFFE00 03FFFF0003FFFF0003803F0007001F8007001F80FFE0FFFCFFE0FFFCFFE0FFFC1E1A7F9921>65 DI<001FE06000 FFF8E003FFFFE007F80FE01FC007E01F8003E03F0001E07F0001E07E0000E0FE0000E0FE000000 FE000000FE000000FE000000FE000000FE000000FE0000E07E0000E07F0000E03F0001C01F8001 C01FC0038007F80F0003FFFE0000FFFC00001FE0001B1A7E9920>IIII72 DI77 DI<003FC00001FFF80007E07E000FC03F001F801F803F000FC03F 000FC07E0007E07E0007E0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0 FE0007F07E0007E07F000FE03F000FC03F000FC01F801F800FC03F0007F0FE0001FFF800003FC0 001C1A7E9921>II82 D<07F0C01FFDC03FFFC07C0FC07803C0F803C0F801C0F801C0FE0000FFE0007FFE007FFF003FFF C01FFFC007FFE0003FF00007F00003F0E001F0E001F0E001F0F001E0FC07E0FFFFC0EFFF80C3FE 00141A7E9919>I<7FFFFF807FFFFF807FFFFF807C3F0F80703F0380F03F03C0F03F03C0E03F01 C0E03F01C0E03F01C0003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F 0000003F0000003F0000003F0000003F0000003F00000FFFFC000FFFFC000FFFFC001A1A7E991F >I86 D89 D91 D93 D<0FF0003FFC007E3E007E1E007E1F003C1F00181F0007FF001FFF 007F1F007E1F00FC1F00FC1F00FC1F007E3FE03FEFE00F87E013117F9015>97 DI<03F8000FFE001F3F003E3F007C3F007C1E00FC0C00FC0000FC0000FC0000FC 00007C00007E00003E03801F87000FFE0003FC0011117F9014>I<001FE0001FE0001FE00003E0 0003E00003E00003E00003E00003E003FBE00FFFE01F07E03E03E07C03E07C03E0FC03E0FC03E0 FC03E0FC03E0FC03E0FC03E07C03E03E03E03F0FFC0FFFFC03F3FC161A7F9919>I<03F0000FFC 001E1E003C0F007C0F007C0F80FC0F80FFFF80FFFF80FC0000FC00007C00007C00003E03801F07 000FFE0003F80011117F9014>I<07F3C01FFFE03E3FE03C1FE07C1FC07C1F007C1F007C1F003C 1E003E3E003FFC0037F0003000003800003FFE003FFF801FFFC07FFFC0F003E0F001E0F001E0F0 01E07C07C03FFF8007FC0013197F9016>103 D<1E003F003F007F003F003F001E000000000000 007F007F007F001F001F001F001F001F001F001F001F001F001F001F00FFC0FFC0FFC00A1B809A 0C>105 D107 DIII<03F8000FFE003E0F803C07 807C07C07C07C0FC07E0FC07E0FC07E0FC07E0FC07E0FC07E07C07C07E0FC03F1F800FFE0003F8 0013117F9016>II<03F1C00FFBC01F0FC03E07C07E07C07C07C0FC07C0FC07C0FC07C0FC07C0 FC07C0FC07C07E07C07E07C03F1FC01FFFC007E7C00007C00007C00007C00007C0003FF8003FF8 003FF815187F9017>II<1FB03FF070F0E070E070F800FFC07FF03FF81FFC01FCE03CE01CF0 1CF838FFF0CFC00E117F9011>I<07000700070007000F000F001F003FF0FFF0FFF01F001F001F 001F001F001F001F001F381F381F381F381F300FF003C00D187F9711>III121 D123 D E /Ff 4 64 df<070007000700E738F778FFF83FE00F80 3FE0FFF8F778E7380700070007000D0F7E9812>42 D<0030000030000030000030000030000030 00003000003000003000003000003000FFFFFCFFFFFC0030000030000030000030000030000030 0000300000300000300000300000300016187E931B>I<0FC03FE070706038E01C401C401C001C 001C00380038007000E000C00180030006000C00180030007FFC7FFC0E167F9512>50 D<1F807FC0E0E0C0704070007000E001E00380030006000600060006000E000400000000000000 00000E000E000E000C177E9611>63 D E /Fg 2 111 df<018003C003C0018000000000000000 0000001E003F0067006700C7000E000E000E001C001CC038C039801F000E000A1780960C>105 D<1C3E003E7F8067C380678380CF03800F03800E03800E07001C07001C07301C0E301C0E603807 C0180380140E808D15>110 D E /Fh 1 49 df<0E1F1F1F1E3E3E3C3C7C78787070F0E0600811 7F910A>48 D E /Fi 11 106 df0 D<78FCFCFCFC7806067D 8D0D>I<018001C001800180C183E187F99F7DBE1FF807E007E01FF87DBEF99FE187C183018001 8001C0018010147D9417>3 D<07E01FF83C3C700E6006E007C003C003C003C003C003C003E007 6006700E3C3C1FF807E010127D9317>14 D<07E01FF83FFC7FFE7FFEFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFF7FFE7FFE3FFC1FF807E010127D9317>I<0000000600000000060000000003000000 000180000000018000000000C00000000070FFFFFFFFFCFFFFFFFFF8000000007000000000C000 00000180000000018000000003000000000600000000060026107D922D>33 D<0000020000000003000000000300000000018000000000C000000000C0000000006000FFFFFF F000FFFFFFFC000000000E00000000038000000001F0000000007C00000000F000000003C00000 0007000000000C00FFFFFFF800FFFFFFF0000000006000000000C0000000018000000001800000 0003000000000300000000020000261A7D972D>41 D<001F007F00F801E003C003C003C003C003 C003C003C003C003C003C003C003C003C003C003C007800F00FE00F800FE000F00078003C003C0 03C003C003C003C003C003C003C003C003C003C003C003C003C001E000F8007F001F102D7DA117 >102 DI<00C000C001C001800180038003000700 060006000E000C000C001C001800180038003000700060006000E000C000C000E0006000600070 0030003800180018001C000C000C000E00060006000700030003800180018001C000C000C00A2E 7CA112>II E /Fj 27 122 df<0003800000038000000380000007C0000007C000000FE000000FE000000FE000001FF0 000019F0000019F0000031F8000030F8000030F80000607C0000607C0000607C0000C03E0000C0 3E0000C03E0001801F0001FFFF0003FFFF8003000F8003000F8006000FC0060007C0060007C00E 0003E01F0007E0FFC03FFEFFC03FFE1F207D9F25>65 DI<000F E010003FF83000FC0E7003E003F007C001F00F8000F01F0000F01F0000703E0000703E0000707E 0000307C000030FC000030FC000000FC000000FC000000FC000000FC000000FC000000FC000000 FC0000007C0000307E0000303E0000303E0000301F0000601F0000600F8000C007C0018003E003 0000FC0E00003FFC00000FF0001C217C9F24>I69 DI72 DI78 D<001FE000007FF80001F03E0003E01F00078007 800F8007C01F0003E03E0001F03E0001F07E0001F87C0000F87C0000F8FC0000FCFC0000FCFC00 00FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FC7C0000F87E0001F87E0001F83E 0001F03F0003F01F0003E00F8007C007C00F8003E01F0001F03E00007FF800001FE0001E217C9F 26>II<03F0200FFC601E0FE03803E07801E07000E0F000E0F0 0060F00060F00060F80000FC00007F00007FF0003FFE001FFF000FFF8003FFC0007FE00007E000 01F00001F00000F0C000F0C000F0C000F0E000E0E000E0F001E0F801C0FE0780C7FF0081FC0014 217C9F1C>83 D<7FFFFFF87FFFFFF87C07C0F87007C0386007C0186007C018E007C01CC007C00C C007C00CC007C00CC007C00C0007C0000007C0000007C0000007C0000007C0000007C0000007C0 000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007 C0000007C00003FFFF8003FFFF801E1F7D9E24>I<001800003C00003C00003C00007E00007E00 007E0000CF0000CF0000CF000187800187800387C00303C00303C007FFE007FFE00601E00C00F0 0C00F01E00F8FF03FFFF03FF18177F961C>97 DI<007E0803FF9807C1F80F00781E00383C00387C0018 780018F80018F80000F80000F80000F80000F80000F800187800187C00183C00301E00300F0060 07C1C003FF80007E0015177E961B>III107 DI110 D<00FE0003FF800F83E01F01F03E00F83C00787C007C78003CF8003EF800 3EF8003EF8003EF8003EF8003EF8003E78003C7C007C3C00783E00F81F01F00F83E003FF8000FE 0017177E961D>II114 D<0F841FEC307C601CE01CE00CE00CF000FC007FC03FF01FF80FFC007C001E000EC0 0EC00EC00EE01CF838DFF087E00F177E9615>I<7FFFFC7FFFFC783C1C603C0C603C0CE03C0EC0 3C06C03C06C03C06003C00003C00003C00003C00003C00003C00003C00003C00003C00003C0000 3C00003C0007FFE007FFE017177F961B>I120 DI E /Fk 64 123 df<007F07F001FF1FF003FF3FF007FF7FF0078078000F00F0000F00F0000F00F0 000F00F0000F00F0000F00F0000F00F000FFF8FF80FFF8FF80FFF8FF80FFF8FF800F00F0000F00 F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F 00F0000F00F0000F00F0000F00F0000F00F0001C20809F1B>11 D<0001F000F9F001F9F003F9F0 07F9F00780000F00000F00000F00000F00000F00000F00000F0000FFF8F0FFF8F0FFF8F0FFF8F0 0F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F0 0F00F00F00F00F00F0142180A018>I34 D<000300C0000300C0000300C0000701C000060180000601800006018000060180 000E0380000C0300000C0300000C0300000C0300001C070000180600FFFFFFFEFFFFFFFE00300C 0000300C0000300C0000701C0000601800006018000060180000601800FFFFFFFEFFFFFFFE00C0 300001C07000018060000180600001806000018060000380E0000300C0000300C0000300C00007 01C0000601800006018000060180001F297D9F26>I 39 D<00F001E003C0078007800F001E001E001E003C003C003C007800780078007800F000F000 F000F000F000F000F000F000F000F000F000F000F000F00078007800780078003C003C003C001E 001E001E000F000780078003C001E000F00C2E7EA112>II<01800003C00003C00003C000E3C700F3CF00FFFF00FFFF003FFC000FF0000FF000 3FFC00FFFF00FFFF00F3CF00E3C70003C00003C00003C00001800011147DA117>I<0006000000 060000000600000006000000060000000600000006000000060000000600000006000000060000 00060000000600000006000000060000FFFFFFF0FFFFFFF0000600000006000000060000000600 000006000000060000000600000006000000060000000600000006000000060000000600000006 0000000600001C207D9A23>IIII<03F00007F8001FFE001FFE003E1F003C0F0078078078 0780780780F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F0 03C0F003C0F003C07807807807807807803C0F003E1F001FFE001FFE000FFC0003F00012207E9E 17>48 D<00C001C00FC0FFC0FFC0FFC0F3C003C003C003C003C003C003C003C003C003C003C003 C003C003C003C003C003C003C003C003C003C07FFF7FFF7FFF7FFF101F7D9E17>I<07E0000FF8 001FFE003FFF007C3F00700F80F00780F007C06007C02003C00003C00003C00007C00007800007 80000F00001F00003E00007C0000F80001F00003C0000780000F00001E00003C0000780000FFFF C0FFFFC0FFFFC0FFFFC0121F7E9E17>I58 DI< FFFFFFF0FFFFFFF000000000000000000000000000000000000000000000000000000000000000 00FFFFFFF0FFFFFFF01C0C7D9023>61 D<001F0000001F0000003F8000003F8000003780000077 C0000073C0000073C00000F3E00000E3E00000E1E00001E1F00001C1F00001C1F00003C0F80003 C0F8000380F80007807C0007807C0007007C000FFFFE000FFFFE000FFFFE001E001F001E001F00 3C001F803C000F803C000F8078000FC0780007C0780007C0F00007E01B207F9F1E>65 DI<001FC000FFF801FFFC03FFFC07 F07C0FC0181F80003F00003E00007E00007C00007C00007C0000F80000F80000F80000F80000F8 0000F80000F80000F800007C00007C00007C00007E00003E00003F00001F80020FC00E07F03E03 FFFE01FFFC00FFF0001FC017227DA01D>IIII73 D76 DII<003F000000FFC00003FFF00007FFF8000FE1FC001F807E001F003E003E001F003E00 1F007C000F807C000F807C000F80F80007C0F80007C0F80007C0F80007C0F80007C0F80007C0F8 0007C0F80007C0F80007C0FC000FC07C000F807C000F807C000F803E001F003F003F001F003E00 1F807E000FE1FC0007FFF80003FFF00000FFC000003F00001A227DA021>II<01FC0007FF800FFFC01FFFC03F07C03E01807C00007C 00007C00007C00007C00007E00003E00003F80001FF8001FFE000FFF0003FF8000FF80000FC000 07C00007E00003E00003E00003E00003E00003E06007C0F007C0FE0F80FFFF807FFF001FFE0003 F80013227EA019>83 DII<7C000F807E000F003F001F001F003E001F803C000F80 7C0007C0F80003E0F00003E1F00001F3E00000FBC00000FFC000007F8000003F0000001F000000 1F0000003F0000007F8000007FC00000F3C00001F1E00001E1F00003E0F80007C0F80007807C00 0F803E001F003E001E001F003E001F807C000FC0780007C0F80007E01B207F9F1E>88 D91 D<381C3018301870387038E070F87CF87CF87CF87CF87C0E0B 7A9F17>II<3830307070E0F8F8F8F8F8050B7C9F0D>96 D<07E03FF87FFC7FFE701F400F000F000F03FF1FFF3FFF7F0FF00FF00FF01FF83F7FFF7FFF3FEF 1F0F10147E9316>II<03F00FFC1F FE3FFE3E0E78047800F000F000F000F000F000F000780078003E033FFF1FFF0FFF03FC10147E93 14>I<000780000780000780000780000780000780000780000780000780000780000780000780 0FC7801FF7803FFF803FFF807E1F80780780F80780F00780F00780F00780F00780F00780F00780 F80780780F807C1F803FFF803FFF801FF78007878011207E9F17>I<03F0000FFC001FFE003FFF 003E1F007807007FFF80FFFF80FFFF80FFFF80F00000F00000F000007800007C00003E03003FFF 001FFF0007FF0001FC0011147F9314>I<007E01FE03FE07FE07800F000F000F000F000F000F00 0F00FFF0FFF0FFF0FFF00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F 000F000F20809F0E>I<03E1E00FFFF01FFFF03FFFF03C1E00780F00780F00780F00780F00780F 003C1E003FFE003FFC007FF80073E0007000007800007FFE003FFF803FFFC07FFFE0F803F0F000 F0F000F0F000F07C03E07FFFE03FFFC00FFF0003FC00141E7F9317>III<03E003E003E003E003E000000000000000 0000000000000001E001E001E001E001E001E001E001E001E001E001E001E001E001E001E001E0 01E001E001E001E001E001E001E001E043E0FFC0FFC0FF803F000B29839F0C>IIIII<01F800 07FE001FFF803FFFC03E07C07C03E07801E0F000F0F000F0F000F0F000F0F000F0F801F07801E0 7C03E03E07C03FFFC01FFF8007FE0001F80014147F9317>II<07C7801FF7801FFF803FFF807E1F807C0F80F80780F00780F00780F00780F00780F00780F0 0780F80780780F807E1F807FFF803FFF801FF7800F878000078000078000078000078000078000 0780000780000780000780111D7E9317>II<07F01FFC3FFC7FFC7818780078 007C003FC01FF00FF803F8007C003C403CF07CFFFCFFF87FF00FC00E147F9311>I<1E001E001E 001E001E001E00FFF0FFF0FFF0FFF01E001E001E001E001E001E001E001E001E001E001E001E20 1FE00FF00FF007C00C1A7F9910>IIII<7801E07C03C03E07801E0F000F0F00079E00 03FC0003F80001F80000F00001F00001F80003FC00079E000F0F000E0F001E07803C03C07801E0 F801F01414809315>II<7FFF7FFF7FFF7FFE003E007C00 F801F001F003E007C00F800F801F003E007C007FFFFFFFFFFFFFFF10147F9314>I E /Fl 68 125 df<00FC7C0183C6070F8F060F0F0E0F060E07000E07000E07000E07000E0700FF FFF00E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E 07000E07007F0FF0181A809916>11 D<00FC00018200070700060F000E0F000E06000E00000E00 000E00000E0000FFFF000E07000E07000E07000E07000E07000E07000E07000E07000E07000E07 000E07000E07000E07000E07007F0FE0131A809915>I<00FF00038700070F00060F000E07000E 07000E07000E07000E07000E0700FFFF000E07000E07000E07000E07000E07000E07000E07000E 07000E07000E07000E07000E07000E07000E07007F9FE0131A809915>I<01C000000320000006 1000000E1000000E1000000E1000000E1000000E2000000E4000000E40000007807F8007001E00 07000800078010000B80100013C0200031C0200060E04000E0F08000E0788000E0390000E01E00 80E00E0080700F01003873C3000F807C00191A7E991E>38 D<60F0F868080808101020C0050B7D 990B>I<00800100020004000C00080018003000300030006000600060006000E000E000E000E0 00E000E000E000E000E000E0006000600060006000300030003000180008000C00040002000100 008009267D9B0F>I<8000400020001000180008000C0006000600060003000300030003000380 03800380038003800380038003800380038003000300030003000600060006000C000800180010 0020004000800009267E9B0F>I<60F0F07010101020204080040B7D830B>44 DI<60F0F06004047D830B>I<03000700FF000700070007000700070007 0007000700070007000700070007000700070007000700070007000700FFF00C187D9713>49 D<0F8030604030F038F83CF81CF81C701C003C003800380070006000E001C00180030006040C04 180430083FF87FF8FFF80E187E9713>I<0F8010E03070787878387838307800700070006000C0 0F8000E000700038003C003C703CF83CF83CF038607030E00F800E187E9713>I<003000300070 00F000F001700370027004700C7008701070307020704070C070FFFF0070007000700070007000 7007FF10187F9713>I<40007FFE7FFC7FFC4008801080108020004000C0008001800180018003 8003800380078007800780078007800780078003000F197E9813>55 D<07801860303020186018 6018701878107E303F601FC00FE01BF031F8607C403CC01CC00CC00CC0086008201018600F800E 187E9713>I<60F0F060000000000000000060F0F06004107D8F0B>58 D<60F0F0600000000000 00000060F0F0701010102020408004177D8F0B>I<000C0000000C0000000C0000001E0000001E 0000003F0000002F0000002F0000004F800000478000004780000083C0000083C0000083C00001 01E0000101E0000101E00003FFF0000200F0000600F800040078000400780008003C0008003C00 1C003E00FF01FFC01A1A7F991D>65 DI<003F0201C0C603002E0E001E1C000E1C 0006380006780002700002700002F00000F00000F00000F00000F00000F0000070000270000278 00023800041C00041C00080E000803003001C0C0003F00171A7E991C>IIII<00 3F020001C0C60003002E000E001E001C000E001C00060038000600780002007000020070000200 F0000000F0000000F0000000F0000000F0000000F003FFC070001E0070001E0078001E0038001E 001C001E001C001E000E001E0003002E0001C0C600003F02001A1A7E991E>III76 DII<007F000001C1C000070070000E0038001C001C003C001E0038000E0078000F0070000700 F0000780F0000780F0000780F0000780F0000780F0000780F0000780F000078078000F0078000F 0038000E003C001E001C001C000E0038000700700001C1C000007F0000191A7E991E>II82 D<0FC21836300E60066006E002E002E002F000F8007F803FF01FF80FFC01FE001E000F00078007 80078007C006C006E00CD81887E0101A7E9915>I<7FFFFF00701E0700601E0100401E0100C01E 0180801E0080801E0080801E0080001E0000001E0000001E0000001E0000001E0000001E000000 1E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000 001E000003FFF000191A7F991C>II87 D89 D91 D93 D<18204040808080B0F87830050B7E990B>96 D<3F80E0C0F0E0F0706070007007 F01C7030707070E070E071E071E0F171FB1E3C10107E8F13>II<07F00C1C383C 303C7018E000E000E000E000E000E0007000300438080C1807E00E107F8F11>I<007E00000E00 000E00000E00000E00000E00000E00000E00000E00000E0003CE000C3E00380E00300E00700E00 E00E00E00E00E00E00E00E00E00E00E00E00600E00700E00381E001C2E0007CFC0121A7F9915> I<07C01C3030187018600CE00CFFFCE000E000E000E0006000300438080C1807E00E107F8F11> I<00F00398073C0E3C0E180E000E000E000E000E00FFC00E000E000E000E000E000E000E000E00 0E000E000E000E000E000E007FE00E1A80990C>I<0FCE18733032703870387038703830301860 2FC02000600070003FF03FFC1FFE600FC003C003C003C0036006381C07E010187F8F13>II<18003C003C001800000000000000000000000000FC001C001C001C001C001C001C00 1C001C001C001C001C001C001C001C00FF80091A80990B>I<00C001E001E000C0000000000000 00000000000007E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000 E000E060E0F0E0F1C061803E000B2183990C>III II<07E01C38300C700E6006E007E007E007E007E007E007 6006700E381C1C3807E010107F8F13>II<03C2000C2600381E00300E00700E00E00E00E00E00E00E00 E00E00E00E00E00E00700E00700E00381E001C2E0007CE00000E00000E00000E00000E00000E00 000E00007FC012177F8F14>II<1F2060E04020C020C020F0007F003FC01FE000F080708030C030 C020F0408F800C107F8F0F>I<0400040004000C000C001C003C00FFC01C001C001C001C001C00 1C001C001C001C201C201C201C201C200E4003800B177F960F>IIIIII<7FF86070407040E041C041C0 0380070007000E081C081C08381070107030FFF00D107F8F11>I124 D E /Fm 2 51 df<0C007C00FC009C001C001C001C001C001C001C001C001C001C001C00FF80FF 8009107E8F0F>49 D<1F007F80C3C0E1E0E0E000E001E001C0038007000E00186030607FC0FFC0 FFC00B107F8F0F>I E /Fn 53 122 df<387C7EFE7E3E06060C0C183060C080070F7D850D>44 D<387C7EFC7C3807067D850D>46 D<000C003C00FC0FF81E78007800780078007800F000F000F0 00F000F000F001E001E001E001E001E001E003C003C003C003C003C003C007C0FFFEFFFE0F1E7C 9D17>49 D<003F0000FFC001C3E00301F00600F80F80F80FC0FC0FC0FC0F80FC0F80F80600F800 01F80001F00003E00003E00007C0000F00001E00003C0000780000E00001C0000380600700600E 00601800C03FFFC07FFFC0FFFF80FFFF80161E7E9D17>I<007F0000FF8003C3E00701E00781F0 0F81F00F83F00F83F00F03E00003E00007C0000780001F0000FC0000F800000E00000F00000780 0007C00007C00007C0380FC07C0FC0FC0FC0FC0FC0F80F80F01F00603E00787C003FF8000FC000 141F7D9D17>I<0000E00001E00001E00003C00007C0000FC0001FC0001BC00033C000678000E7 8001C7800187800307800607800E0F001C0F00180F00300F00600F007FFFF8FFFFF0001E00001E 00001E00001E00001E00003E0003FFE003FFE0151E7E9D17>I<000F80007FC000F0E001C1E003 83E00703E00F01C01E00001E00003E00003C00007CFC007DFE007F07007E0780FC0780FC07C0F8 07C0F807C0F807C0F807C0F00F80F00F80F00F80F00F00F00F00701E00781C003878001FF00007 C000131F7C9D17>54 D<003F0000FF8001C1E00300E00700700E00700E00700E00700E00E00F00 E00FC1C00FE38007F70007FC0003FE0003FF000F7F801C1FC0380FC03807C07003C07001C0E001 C0E001C0E001C0E003807003007006003C1C001FF80007E000141F7D9D17>56 D<0000180000003800000038000000780000007C000000FC000000FC000001FC000001FC000003 7C0000037E0000063E0000063E00000C3E00000C3E0000183E0000183F0000301F0000301F0000 601F0000601F0000FFFF0000FFFF0001800F8001800F8003000F8003000F8006000F8006000F80 1F000FC0FFC0FFFCFFC0FFFC1E207E9F22>65 D<07FFFF8007FFFFE0003E01F0003E00F8007C00 FC007C00FC007C00FC007C00FC007C00FC007C00F800F801F800F801F000F803E000F80FC000FF FF0000FFFFC001F007E001F003E001F003F001F001F001F001F001F001F803E001F003E003F003 E003F003E003E003E007E003E00FC007E01F807FFFFE00FFFFF8001E1F7F9E20>I<0001F80800 0FFE18003F0738007C01F801F000F803E000F007C0007007C000700F8000701F0000701F000070 3F0000603E0000607E0000007E0000007E0000007E000000FC000000FC000000FC000000FC0000 00FC0000C07C0000C07C0001807C0001803E0003003E0003001E0006000F000C000F80180003E0 700001FFE000007F00001D217B9F21>I<07FFFF800007FFFFF000003E01F800003E007C00007C 003E00007C003E00007C001F00007C001F00007C001F00007C001F8000F8001F8000F8001F8000 F8001F8000F8001F8000F8001F8000F8001F8001F0001F0001F0003F0001F0003F0001F0003F00 01F0003E0001F0007E0003E0007C0003E000780003E000F80003E001F00003E003E00003E007C0 0007E01F80007FFFFE0000FFFFF00000211F7F9E23>I<07FFFFFC07FFFFFC003E007C003E003C 007C001C007C001C007C001C007C001C007C001C007C061800F80C1800F80C0000F80C0000F83C 0000FFFC0000FFFC0001F0380001F0180001F0180001F0180C01F0181801F0001803E0001803E0 003003E0003003E0007003E000E003E001E007E007E07FFFFFC0FFFFFFC01E1F7F9E1F>I<07FF FFFC07FFFFFC003E007C003E003C007C001C007C001C007C001C007C001C007C001C007C061800 F80C1800F80C0000F80C0000F83C0000FFFC0000FFFC0001F0380001F0180001F0180001F01800 01F0180001F0000003E0000003E0000003E0000003E0000003E0000003E0000007E000007FFF00 00FFFF00001E1F7F9E1E>I<0001FC04000FFF0C003F039C007C00FC00F0007C01E0007803C000 3807C000380F8000381F8000381F0000383F0000303E0000307E0000007E0000007E0000007E00 0000FC000000FC000000FC00FFFCFC00FFFC7C0003E07C0003E07C0007C07C0007C03E0007C03E 0007C01F0007C00F000FC007C01B8003F0718001FFE080003F80001E217B9F24>I<07FFE3FFF0 07FFE3FFF0003E003E00003E003E00007C007C00007C007C00007C007C00007C007C00007C007C 00007C007C0000F800F80000F800F80000F800F80000F800F80000FFFFF80000FFFFF80001F001 F00001F001F00001F001F00001F001F00001F001F00001F001F00003E003E00003E003E00003E0 03E00003E003E00003E003E00003E003E00007E007E0007FFE7FFE00FFFC7FFE00241F7F9E22> I<07FFF007FFF0003E00003E00007C00007C00007C00007C00007C00007C0000F80000F80000F8 0000F80000F80000F80001F00001F00001F00001F00001F00001F00003E00003E00003E00003E0 0003E00003E00007E000FFFE00FFFE00141F809E10>I<07FFF80007FFF800003E0000003E0000 007C0000007C0000007C0000007C0000007C0000007C000000F8000000F8000000F8000000F800 0000F8000000F8000001F0000001F0000001F0000001F000C001F000C001F0018003E0018003E0 018003E0038003E0030003E0070003E00F0007E03F007FFFFE00FFFFFE001A1F7F9E1C>76 D<07FE00007FF007FE0000FFF0003F0000FE00003F0001BE00006F0001FC00006F00037C00006F 00037C00006780067C00006780067C000067800C7C0000C7800CF80000C78018F80000C3C018F8 0000C3C030F80000C3C030F80000C3C060F8000183C061F0000183C0C1F0000181E0C1F0000181 E181F0000181E301F0000181E301F0000301E603E0000300F603E0000300FC03E0000300FC03E0 000300F803E0000700F803E0000F807007E0007FF0707FFE00FFF060FFFE002C1F7F9E2A>I<07 FE00FFF007FF00FFF0003F001F00003F800E00006F800C00006FC00C000067C00C000067E00C00 0063E00C000063F00C0000C1F0180000C1F8180000C0F8180000C0F8180000C07C180000C07C18 0001803E300001803E300001803F300001801F300001801FB00001800FB00003000FE000030007 E000030007E000030003E000030003E000070001E0000F8001C0007FF000C000FFF000C000241F 7F9E22>I<0003F800001FFE00003E1F0000F8078001F003C003E003E007C001E00F8001F00F80 01F01F0001F01F0001F83F0001F83E0001F87E0001F87E0001F87E0001F87E0001F8FC0003F0FC 0003F0FC0003F0FC0003F0FC0007E07C0007E07C0007C07C000FC07E000F803E001F003E003E00 1F007C000F80F80007C1F00003FFC00000FE00001D217B9F23>I<07FFFF8007FFFFE0003E03F0 003E00F8007C00F8007C00FC007C00FC007C00FC007C00FC007C00FC00F801F800F801F800F801 F000F803E000F80FC000FFFF0001FFFC0001F0000001F0000001F0000001F0000001F0000003E0 000003E0000003E0000003E0000003E0000003E0000007E000007FFE0000FFFE00001E1F7F9E1F >I<07FFFE0007FFFF80003E07E0003E01F0007C01F0007C01F8007C01F8007C01F8007C01F800 7C01F000F803F000F803E000F807C000F80F8000FFFE0000FFF80001F03C0001F01E0001F01E00 01F01E0001F01F0001F01F0003E03F0003E03F0003E03F0003E03F0003E03F0303E03F0307E03F 067FFE1F8CFFFE0FFC000003F020207F9E21>82 D<003F04007FCC01E0FC03C07C03803C078038 0700180F00180F00180F00180F00000F80000FC0000FFC000FFF0007FF8003FFC001FFE0001FE0 0003E00001F00001F00001F06001E06001E06001E06001C07003C0700380F80780FE0F00C7FC00 81F80016217D9F19>I<1FFFFFF81FFFFFF81E03E0F83803E0383807C0383007C0387007C01860 07C0186007C0386007C030C00F8030000F8000000F8000000F8000000F8000000F8000001F0000 001F0000001F0000001F0000001F0000001F0000003E0000003E0000003E0000003E0000003E00 00003E0000007E00001FFFF8003FFFF8001D1F7B9E21>III<03FFE3FFC003FFE3FFC0003F00FC00003F00 7000001F006000001F80C000000F818000000FC380000007C700000007E600000007EC00000003 F800000003F800000001F000000001F800000000F800000001FC00000003FC000000037C000000 067E0000000C3E0000001C3F000000381F000000301F800000600F800000C00F800001C00FC000 038007C0000FC007E000FFF03FFE00FFF03FFE00221F7F9E22>88 D<7FFC03FF80FFFC03FF0007 E000F80007E000E00003E000C00003F001C00003F003800001F003000001F806000000F80E0000 00F80C000000FC180000007C300000007E700000007E600000003EC00000003F800000001F8000 00001F000000001F000000001F000000001E000000003E000000003E000000003E000000003E00 0000003E000000003C000000007C00000007FFE000000FFFE00000211F7B9E22>I<01FC0007FF 000F87800F83C00F03C00603C00003C00003C001FFC00FFFC01F83C03E07807C0780F80798F807 98F80F98F80F987C3FB03FF7E01F83C015147E9317>97 D<0780003F80007F80000F8000078000 0F00000F00000F00000F00000F00000F00001E00001E3F001EFF801FC3C01F01E01E01E03C01F0 3C01F03C01F03C01F03C01F03C01F07803E07803E07803E07803C07807807C0F00FE1E00E7FC00 C1F00014207C9F19>I<01FC07FE0F1F1E1F3C1E7C0C7800F800F800F800F800F000F000F000F8 00F806780C3C181FF00FC010147C9314>I<0000780003F80007F80000F80000780000F00000F0 0000F00000F00000F00000F00001E001F1E007FDE00F07E01E03E03C01E07C03C07803C0F803C0 F803C0F803C0F803C0F00780F00780F00780F00780F00F80781F80783F803FEFF00F8FF015207C 9F19>I<00F80007FE000F0F001E0F003C07807C0780780780F80780FFFF80FFFF80F80000F000 00F00000F00000F00000F803007806003E0C001FF80007E00011147D9314>I<0003E0000FF000 3CF80078F800F0F000F0F001E00001E00001E00001E00001E00003C0003FFC003FFC0003C00003 C00003C0000780000780000780000780000780000780000F00000F00000F00000F00000F00000F 00001F0000FFF000FFF00015207F9F0E>I<00000E003F1F00FFF701E1EF03C1F607C0F00781F0 0F81F00F81F00F81E00783E00783C007FF000EFC000C00001C00001E00001FFF000FFFC00FFFE0 1FFFF03C00F0700078700078E00070E000707000F07001E03C07C01FFF0003F800181F809417> I<00F00007F0000FF00001F00000F00001E00001E00001E00001E00001E00001E00003C00003C7 E003DFF003F87803E07803C07807C0780780780780780780780780780780780F00F00F00F00F00 F00F00F00F00F00F00F01F01F0FFE7FEFFE7FE17207F9F19>I<00E001F003F003F003E001C000 00000000000000000001C01FC01FC007C003C00780078007800780078007800F000F000F000F00 0F000F001F00FFC0FFC00C1F7F9E0D>I<00F00007F0000FF00001F00000F00001E00001E00001 E00001E00001E00001E00003C00003C3FE03C3FE03C1F003C1C003C380078600078C00079C0007 BC0007FE0007FE000F1E000F1F000F0F000F0F800F07800F07C01F07E0FFCFF8FFCFF817207F9F 18>107 D<00F007F00FF001F000F001E001E001E001E001E001E003C003C003C003C003C003C0 0780078007800780078007800F000F000F000F000F000F001F00FFE0FFE00C207F9F0D>I<03C3 F01F801FCFF87FC03FF83DC1E007E03F01E003E03F01E007C03E01E007803C01E007803C01E007 803C01E007803C01E007803C01E00F007803C00F007803C00F007803C00F007803C00F007803C0 0F007803C01F00F807C0FFE7FF3FF8FFE7FF3FF825147F9327>I<03C7E01FDFF03FF87807E078 03C07807C0780780780780780780780780780780780F00F00F00F00F00F00F00F00F00F00F00F0 1F01F0FFE7FEFFE7FE17147F9319>I<00FC0003FF000F87801E03C03C01E03C01E07801F0F801 F0F801F0F801F0F801F0F003E0F003E0F003C0F003C0F00780780F003C1E001FFC0007E0001414 7D9317>I<00F1F80007F7FC000FFE1E0000F81F0000F00F0001E00F8001E00F8001E00F8001E0 0F8001E00F8001E00F8003C01F0003C01F0003C01F0003C03E0003C03C0003E0780007F0F00007 BFE000078F80000780000007800000078000000F0000000F0000000F0000000F000000FFE00000 FFE00000191D819319>I<01F06007FCE00F8EE01E07E03E03E07C03C07C03C0F803C0F803C0F8 03C0F803C0F00780F00780F00780F80780F80F80781F807C7F003FEF000F8F00000F00000F0000 0F00001E00001E00001E00001E0001FFC001FFC0131D7C9318>I<03CF001FFF803FF7C007E7C0 03C78007C3000780000780000780000780000780000F00000F00000F00000F00000F00000F0000 1F0000FFF000FFF00012147F9312>I<01F207FE0E0E1C0E1C0E3C0C3C003FC01FF00FF807FC01 FC003C601C601C601C7038F870FFE0CFC00F147E9312>I<0180030003000300070007000F003E 00FFF8FFF81E001E001E003C003C003C003C003C003C007800786078607860786078C078C03F80 1E000D1C7C9B12>I<0F00F07F07F0FF0FF01F01F00F00F01E01E01E01E01E01E01E01E01E01E0 1E01E03C03C03C03C03C03C03C03C03C07C03C0FC03C1FC01FF7F80FC7F815147D9319>III<1FF9FF1F F9FF03E0F001E0E001F1C000F38000FB00007E00007C00003C00003E00007E0000FF0000CF0001 8F800307800707C01F03C0FF8FFCFF9FFC18147F9318>I<0FFC7F800FFC7F8001E03E0001E018 0001F0180000F0300000F0300000F0600000F0E00000F8C0000079C00000798000007B0000007B 0000007E0000003E0000003C0000003C0000003800000038000000300000003000000060000078 600000F8C00000C1800000E38000007F0000003C000000191D809318>I E /Fo 43 122 df<0001FFFC00001FFFFC00007FFFFC0000FFC3FC0001FE03FC0003FC03FC0007 FC03FC0007F803FC0007F803FC0007F803FC0007F803FC0007F803FC0007F803FC0007F803FC00 07F803FC00FFFFFFFC00FFFFFFFC00FFFFFFFC00FFFFFFFC0007F803FC0007F803FC0007F803FC 0007F803FC0007F803FC0007F803FC0007F803FC0007F803FC0007F803FC0007F803FC0007F803 FC0007F803FC0007F803FC0007F803FC0007F803FC0007F803FC0007F803FC0007F803FC0007F8 03FC007FFFBFFFC07FFFBFFFC07FFFBFFFC07FFFBFFFC0222A7FA926>13 D<1E007F807F80FFC0FFC0FFC0FFC07F807F801E000A0A7C8913>46 D<000700001F00007F0007 FF00FFFF00FFFF00FFFF00F8FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000 FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000 FF0000FF0000FF0000FF0000FF0000FF007FFFFE7FFFFE7FFFFE7FFFFE17277BA622>49 D<00FFC00007FFF8001FFFFC003FFFFF007F07FF807F01FF80FF80FFC0FF80FFC0FF807FE0FF80 7FE0FF803FE07F003FE03E007FE000007FE000007FE000007FC00000FFC00000FF800001FF0000 01FE000003FC000007F800000FE000001FC000003F8000007E01E0007C01E000F801E001F003C0 03C003C0078003C00FFFFFC01FFFFFC03FFFFFC07FFFFFC0FFFFFF80FFFFFF80FFFFFF80FFFFFF 801B277DA622>I<00FFC00003FFF00007FFFC000FFFFE001FC3FF003FC1FF003FC0FF803FC0FF 803FE0FF803FC0FF801FC0FF801F81FF800001FF000001FF000003FE00000FFC0000FFF00000FF C00000FFF8000003FE000000FF000000FF8000007FC000007FC000007FE000007FE03E007FE07F 007FE0FF807FE0FF807FE0FF807FE0FF807FC0FF80FFC0FF00FF807F03FF003FFFFE001FFFFC00 07FFF00001FF80001B277DA622>I<00001F0000003F0000003F0000007F000000FF000001FF00 0001FF000003FF000007FF00000FFF00001F7F00001E7F00003C7F0000787F0000F87F0001F07F 0001E07F0003C07F0007807F000F807F000F007F001E007F003C007F007C007F00F8007F00FFFF FFF8FFFFFFF8FFFFFFF8FFFFFFF80000FF000000FF000000FF000000FF000000FF000000FF0000 7FFFF8007FFFF8007FFFF8007FFFF81D277EA622>I<1C0007001F803F001FFFFF001FFFFE001F FFFC001FFFFC001FFFF0001FFFE0001FFF80001FFE00001E0000001E0000001E0000001E000000 1E0000001E7FC0001FFFF8001FFFFE001FC0FF001F007F801E007F8000003FC000003FC000003F E000003FE01C003FE07E003FE0FF003FE0FF003FE0FF003FE0FF003FC0FF007FC0FE007FC07E00 FF803F83FF003FFFFE000FFFFC0007FFF00000FF80001B277DA622>I<0007F800003FFC0000FF FE0001FFFF0007FE1F000FF83F800FE07F801FE07F803FC07F803FC07F807FC03F007F801E007F 8000007F800000FF820000FF9FF000FFFFFC00FFFFFE00FFE07F00FFE03F80FFC03FC0FFC03FC0 FF803FE0FF803FE0FF803FE0FF803FE0FF803FE07F803FE07F803FE07F803FE07F803FE03F803F C03FC03FC01FC07F800FF0FF0007FFFE0003FFFC0001FFF800007FC0001B277DA622>I<3C0000 003F0000003FFFFFF03FFFFFF03FFFFFF03FFFFFF07FFFFFE07FFFFFC07FFFFF807FFFFF807800 1F0078003E0078007C00F000F800F000F000F001F0000003E0000007C0000007C000000F800000 1F8000001F0000003F0000003F0000007F0000007F0000007E000000FE000000FE000000FE0000 00FE000001FE000001FE000001FE000001FE000001FE000001FE000001FE000001FE000000FC00 00007800001C297CA822>I<007FC00001FFF80007FFFC000FFFFE000FE0FF001F803F001F003F 803F001F803F001F803F801F803FC01F803FF01F803FF83F003FFE7F001FFFFE001FFFFC000FFF F80007FFFC0003FFFE0007FFFF000FFFFF801FFFFFC03F0FFFC07F03FFE07E00FFE0FE007FE0FC 001FE0FC000FE0FC0007E0FC0007E0FC0007E0FE0007C07E000FC07F801F803FE07F801FFFFF00 0FFFFE0003FFF80000FFC0001B277DA622>I<000007C00000000007C0000000000FE000000000 0FE0000000000FE0000000001FF0000000001FF0000000003FF8000000003FF8000000003FF800 0000007FFC000000007FFC00000000FFFE00000000F3FE00000000F3FE00000001F3FF00000001 E1FF00000003E1FF80000003C0FF80000003C0FF80000007C0FFC0000007807FC000000F807FE0 00000F003FE000000F003FE000001F003FF000001E001FF000003FFFFFF800003FFFFFF800003F FFFFF800007FFFFFFC0000780007FC0000F80007FE0000F00003FE0000F00003FE0001F00003FF 0001E00001FF00FFFF003FFFFEFFFF003FFFFEFFFF003FFFFEFFFF003FFFFE2F297EA834>65 DI<00007FF003800007FFFE0780001FFFFF8F8000 7FFFFFFF8000FFF807FF8003FFC001FF8007FF00007F800FFC00003F800FF800001F801FF80000 1F803FF000000F803FF000000F807FE0000007807FE0000007807FE000000780FFC000000000FF C000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC00000 0000FFC000000000FFC000000000FFC0000000007FE0000000007FE0000007807FE0000007803F F0000007803FF000000F801FF800000F800FF800001F000FFC00001F0007FF00007E0003FFC000 FC0000FFF807F800007FFFFFF000001FFFFFC0000007FFFF000000007FF8000029297CA832>I< FFFFFFF80000FFFFFFFF8000FFFFFFFFE000FFFFFFFFF80003FE003FFC0003FE0007FE0003FE00 01FF0003FE0000FF8003FE00007FC003FE00007FC003FE00003FE003FE00003FE003FE00001FF0 03FE00001FF003FE00001FF003FE00001FF003FE00001FF803FE00001FF803FE00001FF803FE00 001FF803FE00001FF803FE00001FF803FE00001FF803FE00001FF803FE00001FF803FE00001FF8 03FE00001FF003FE00001FF003FE00001FF003FE00003FE003FE00003FE003FE00003FC003FE00 007FC003FE0000FF8003FE0001FF0003FE0007FE0003FE001FFC00FFFFFFFFF800FFFFFFFFE000 FFFFFFFF8000FFFFFFFC00002D297DA835>III72 DI77 DI80 D82 D<00FF80E003FFF1E00FFFFFE01FFFFFE03FC0 FFE03F801FE07F000FE07E0007E0FE0003E0FE0003E0FE0001E0FF0001E0FF0001E0FFC00000FF F80000FFFFC0007FFFF8007FFFFE003FFFFF801FFFFFC00FFFFFC007FFFFE001FFFFF0003FFFF0 0003FFF800003FF800000FF8000007F8F00007F8F00003F8F00003F8F00003F8F80003F8FC0007 F0FE0007F0FF000FE0FFF01FE0FFFFFFC0FFFFFF80F1FFFE00E03FF8001D297CA826>I<03FFC0 000FFFF0001FFFFC003FC3FE003FC0FF003FC0FF003FC07F803FC07F801F807F8000007F800001 FF8000FFFF8007FFFF801FFFFF803FF87F807FC07F807F807F80FF807F80FF007F80FF007F80FF 007F80FF80FF807F81FFC07FC3FFFC3FFFFFFC0FFF1FFC03FC0FFC1E1B7E9A21>97 DI<003FF80001FFFE0007FFFF000FF87F80 1FE07F803FC07F803FC07F807FC07F807F803F00FF800000FF800000FF800000FF800000FF8000 00FF800000FF800000FF800000FF8000007FC000007FC000003FC003C03FE007C01FF007C00FFC 1F8007FFFF0001FFFC00003FF0001A1B7E9A1F>I<00007FF80000007FF80000007FF80000007F F800000007F800000007F800000007F800000007F800000007F800000007F800000007F8000000 07F800000007F800000007F800000007F800003FC7F80001FFFFF80007FFFFF8000FF83FF8001F E00FF8003FC007F8003FC007F8007FC007F8007F8007F800FF8007F800FF8007F800FF8007F800 FF8007F800FF8007F800FF8007F800FF8007F800FF8007F800FF8007F8007F8007F8007F8007F8 003FC007F8003FC00FF8001FE01FF8000FF87FFF8007FFFFFF8001FFF7FF80007FC7FF80212A7E A926>I<003FE00001FFFC0007FFFE000FF0FF001FE03F803FC03FC03FC01FC07F801FC07F800F E0FF800FE0FF800FE0FFFFFFE0FFFFFFE0FFFFFFE0FF800000FF800000FF800000FF8000007F80 00007FC000003FC001E03FE003E01FF003C00FFC0FC003FFFF8001FFFE00003FF0001B1B7E9A20 >I<00FF83F007FFFFF80FFFFFFC1FE3FEFC3FC1FEFC3F80FEFC7F80FF307F80FF007F80FF007F 80FF007F80FF007F80FF003F80FE003FC1FE001FE3FC001FFFF8001FFFF0003CFF80003C000000 3E0000003F0000003FFFF8003FFFFF003FFFFFC01FFFFFE00FFFFFF01FFFFFF03FFFFFF87F000F F8FE0003F8FC0001F8FC0001F8FC0001F8FE0003F87E0003F07F800FF03FE03FE01FFFFFC007FF FF0000FFF8001E287E9A22>103 D<07C00FE01FF03FF03FF03FF03FF01FF00FE007C000000000 0000000000000000FFF0FFF0FFF0FFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F F00FF00FF00FF00FF00FF00FF00FF0FFFFFFFFFFFFFFFF102B7EAA13>105 D108 DII<003FE00001FFFC0003FFFE000FF07F801FC01FC03FC01FE03F800FE07F800FF07F800FF0 7F800FF0FF800FF8FF800FF8FF800FF8FF800FF8FF800FF8FF800FF8FF800FF8FF800FF87F800F F07F800FF03F800FE03FC01FE01FE03FC00FF07F8007FFFF0001FFFC00003FE0001D1B7E9A22> II<003FC0780001FFF0F80007FFFDF8000FFC7FF8001FF01FF8003FE00FF8003F E00FF8007FC007F8007FC007F800FF8007F800FF8007F800FF8007F800FF8007F800FF8007F800 FF8007F800FF8007F800FF8007F800FF8007F8007FC007F8007FC007F8003FC007F8003FE00FF8 001FF01FF8000FF87FF80007FFFFF80001FFF7F800007FC7F800000007F800000007F800000007 F800000007F800000007F800000007F800000007F800000007F80000007FFF8000007FFF800000 7FFF8000007FFF8021277E9A24>II<03FE701FFFF03FFFF07E07F07C01 F0F800F0F800F0FC00F0FF0000FFFC00FFFF807FFFC07FFFF03FFFF80FFFF803FFFC003FFC0003 FCF000FCF0007CF8007CF8007CFC00F8FF03F8FFFFF0FFFFC0E1FF00161B7E9A1B>I<00780000 780000780000780000F80000F80000F80001F80003F80003F80007F8001FFFF0FFFFF0FFFFF0FF FFF007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007 F87807F87807F87807F87807F87807F87807F8F803FCF001FFF000FFE0003F8015267FA51B>I< FFF07FF800FFF07FF800FFF07FF800FFF07FF8000FF007F8000FF007F8000FF007F8000FF007F8 000FF007F8000FF007F8000FF007F8000FF007F8000FF007F8000FF007F8000FF007F8000FF007 F8000FF007F8000FF007F8000FF007F8000FF007F8000FF00FF8000FF00FF8000FF01FF80007F8 7FFF8007FFFFFF8001FFF7FF80007FC7FF80211B7D9A26>II120 DI E /Fp 46 123 df<00007F800001FFE00003C0F0000701F0000F01F0000F01 E0000E00C0001E0000001E0000001E0000001E0000003C000003FFFFC003FFFFC0003C0780003C 0780007C07800078078000780F0000780F0000780F0000780F0000F01E0000F01E0000F01E0000 F01E3000F03C6001E03C6001E03C6001E03CC001E01F8001C00F0003C0000003C0000003C00000 73800000FB800000FF000000F6000000FC000000780000001C29819F1A>12 D<00007E3C0001FFBC000387F800070FF8000F0FF8000F0778001E00F0001E00F0001E00F0001E 00F0001E01E0003C01E003FFFFE007FFFFE0003C03C0003C03C0007803C0007803C00078078000 7807800078078000F0078000F00F0000F00F0000F00F0000F00F1801E01E3001E01E3001E01E30 01E01E6001E00FC001C0078003C0000003C000000380000073800000FF800000FF000000F60000 00FC000000780000001E29819F1B>I<7FF07FF0FFE07FE00C047D8B10>45 D<000007000000070000000F0000000F0000001F0000003F0000003F0000007F0000007F000000 DF000000DF0000019F0000039F0000031F0000061F0000061F00000C1F80000C1F8000180F8000 180F8000300F80007FFF80007FFF8000C00F8000C00F8001800F8001800F8003000F8007000F80 0F000F807FC0FFF8FFC0FFF81D207E9F22>65 D<01FFFFC001FFFFF0001F00F8001F0078001F00 7C003E007C003E007C003E007C003E007C007C00F8007C00F8007C01F0007C03E000F80FC000FF FF0000FFFF8000F807C001F003E001F003E001F001E001F001E003E003E003E003E003E003E003 E003C007C007C007C00F8007C01F0007C03E00FFFFFC00FFFFE0001E1F7D9E20>I<0000FE0200 07FF06001F818C003E00DC0078007C00F0007C01E0003803C00038078000380F8000381F000030 1F0000303E0000303E0000007C0000007C0000007C0000007C000000F8000000F8000000F80000 00F80000C0F80001807800018078000300780003003C0006003C000C001E0018000F00300007C0 E00003FF800000FE00001F217A9F21>I<01FFFF8001FFFFE0001F01F0001F0078001F003C003E 003C003E001E003E001E003E001E007C001E007C001E007C001E007C001E00F8003E00F8003E00 F8003E00F8003E01F0007C01F0007C01F0007C01F0007803E000F003E000F003E001E003E003C0 07C007C007C00F8007C01E0007C07C00FFFFF000FFFFC0001F1F7D9E22>I<01FFFFFE01FFFFFC 001F003C001F001C001F001C003E000C003E000C003E000C003E0018007C0C18007C0C18007C0C 00007C1C0000F8380000FFF80000FFF80000F8380001F0300001F0300001F0303001F0306003E0 006003E0006003E000C003E001C007C0018007C0038007C0070007C01F00FFFFFF00FFFFFE001F 1F7D9E1F>I<01FFFFFC01FFFFF8001F0078001F0038001F0038003E0018003E0018003E001800 3E0030007C0C30007C0C30007C0C00007C1C0000F8380000FFF80000FFF80000F8380001F03000 01F0300001F0300001F0300003E0000003E0000003E0000003E0000007C0000007C0000007C000 0007C00000FFFE0000FFFC00001E1F7D9E1E>I<01FFF3FFE001FFF3FFE0001F007C00001F007C 00001F007C00003E00F800003E00F800003E00F800003E00F800007C01F000007C01F000007C01 F000007C01F00000F803E00000FFFFE00000FFFFE00000F803E00001F007C00001F007C00001F0 07C00001F007C00003E00F800003E00F800003E00F800003E00F800007C01F000007C01F000007 C01F000007C01F0000FFF9FFF000FFF9FFE000231F7D9E22>72 D<01FFF801FFF8001F00001F00 001F00003E00003E00003E00003E00007C00007C00007C00007C0000F80000F80000F80000F800 01F00001F00001F00001F00003E00003E00003E00003E00007C00007C00007C00007C000FFFC00 FFFC00151F7E9E12>I<01FFFC0001FFFC00001F0000001F0000001F0000003E0000003E000000 3E0000003E0000007C0000007C0000007C0000007C000000F8000000F8000000F8000000F80000 01F0000001F0000001F0018001F0018003E0030003E0030003E0060003E0060007C00E0007C01C 0007C03C0007C0FC00FFFFF800FFFFF800191F7D9E1D>76 D<01FF8001FFC001FF8001FFC0001F 8003F800001F8003F800001F8006F80000378007F0000037800DF0000037800DF00000378019F0 0000678033E00000678033E00000678063E00000678063E00000C3C0C7C00000C3C0C7C00000C3 C187C00000C3C187C0000183C30F80000183C60F80000183C60F80000183CC0F80000303CC1F00 000303D81F00000303D81F00000303F01F00000603F03E00000603E03E00000603C03E00000E03 C03E0000FFE387FFE000FFC387FFC0002A1F7D9E29>I<0001FC000007FF00001F07C0003C03E0 00F001E001E000F003C000F007C00078078000780F0000781F0000781E0000783E0000783E0000 787C0000F87C0000F87C0000F87C0000F8F80001F0F80001F0F80001E0F80003E0F80003C0F800 07C07800078078000F007C001F003C003E003E007C001E00F0000F83E00007FF800001FC00001D 217A9F23>79 D<01FFFF8001FFFFE0001F01F0001F0078001F0078003E007C003E007C003E007C 003E007C007C00F8007C00F8007C00F0007C01E000F803E000F80F8000FFFF0000FFF80001F000 0001F0000001F0000001F0000003E0000003E0000003E0000003E0000007C0000007C0000007C0 000007C00000FFFC0000FFF800001E1F7D9E1F>I<01FFFF0001FFFFC0001F03E0001F00F0001F 00F8003E00F8003E00F8003E00F8003E00F8007C01F0007C01F0007C03E0007C07C000F81F0000 FFFE0000FFF80000F83C0001F03E0001F01E0001F01F0001F01F0003E03E0003E03E0003E03E00 03E03E0007C07C0007C07C1807C07C1807C07C30FFFC3E30FFF81FE0000007C01D207D9E21>82 D<0007E040001FF8C0003C1D8000700F8000E0078001E0078001C0030003C0030003C0030003C0 030007C0000007E0000003F0000003FE000003FFC00001FFE00000FFF000007FF8000007F80000 00F8000000780000007800000078003000780030007800300070007000F0007000E0007801E000 7803C000EE078000C7FE000081F800001A217D9F1A>I<0FFFFFF01FFFFFE01E07C1E01807C0E0 3807C060300F8060300F8060600F8060600F80C0C01F00C0C01F00C0001F0000001F0000003E00 00003E0000003E0000003E0000007C0000007C0000007C0000007C000000F8000000F8000000F8 000000F8000001F0000001F0000001F0000003F00000FFFF8000FFFF80001C1F789E21>I<00FF F8FFE000FFF8FFE0000FC03E00000FC038000007C070000007C060000007E0C0000007E1800000 03E300000003F700000003FE00000001FC00000001F800000001F800000000F800000000F80000 0000FC00000001FC000000037C000000067E0000000E7E0000001C3E000000183F000000303F00 0000601F000000C01F000001C01F800003800F80000F801F8000FFE07FF800FFE0FFF800231F7E 9E22>88 DI<00F18003FBC0070F800E0F801C07803C07803C0F 00780F00780F00780F00F01E00F01E00F01E00F01E30F03C60F03C60707C6070FCC03F9F800F0F 0014147C9317>97 D<03C0003FC0003F80000780000780000780000F00000F00000F00000F0000 1E00001E00001E78001FFE003F8E003E07003C07003C0780780780780780780780780780F00F00 F00F00F00F00F01E00F01C00703C0070380038F0003FE0000F800011207C9F15>I<007E0001FF 000387800F0F801E0F801C0F003C0600780000780000780000F00000F00000F00000F00000F000 00700200700700381E001FF80007E00011147C9315>I<0000780007F80007F00000F00000F000 00F00001E00001E00001E00001E00003C00003C000F3C003FBC0070F800E0F801C07803C07803C 0F00780F00780F00780F00F01E00F01E00F01E00F01E30F03C60F03C60707C6070FCC03F9F800F 0F0015207C9F17>I<007C0001FF000783000F01801E01803C01803C0300780E007FFC007FE000 F00000F00000F00000F000007000007002007807003C1E001FF80007E00011147C9315>I<0001 E00003F8000778000FF8000EF8001E70001E00001E00001E00003E00003C00003C0007FFE007FF E0003C0000780000780000780000780000780000F00000F00000F00000F00000F00001E00001E0 0001E00001E00001E00003C00003C00003C00003C000038000778000FF0000FF0000F60000FC00 007800001529819F0E>I<003E3000FF7801E3F00381F00780F00700F00F01E01E01E01E01E01E 01E03C03C03C03C03C03C03C03C03C07801C07801C0F800E3F800FFF0003CF00000F00000F0000 1E00701E00F81E00F83C00F0F800FFF0003F8000151D7E9315>I<00F0000FF0000FE00001E000 01E00001E00003C00003C00003C00003C000078000078000079F0007FF800FE3C00F81C00F01E0 0F01E01E03C01E03C01E03C01E03C03C07803C07803C07803C0F0C780F18780E18781E30780E70 F00FE060078016207E9F17>I<006000F001F001F000E00000000000000000000000000F001F80 33C033C063C063C0C780078007800F000F001E001E001E303C603C603CC03CC01F800F000C1F7D 9E0E>I<0003800007C00007C0000780000700000000000000000000000000000000000000007C 0000FE00018F00030F00060F00060F000C1E00001E00001E00001E00003C00003C00003C00003C 0000780000780000780000780000F00000F00000F00000F00001E00071E000F9E000FBC000F780 00FF00007C00001228819E0E>I<00F0000FF0000FE00001E00001E00001E00003C00003C00003 C00003C0000780000780000781E00783E00F0E300F18F00F11F00F21F01E41E01F81C01F80001F F0003CF8003C3C003C3C003C1E30783C60783C60783C60781CC0F01F80600F0014207E9F15>I< 01E01FE01FC003C003C003C007800780078007800F000F000F000F001E001E001E001E003C003C 003C003C0078007800780078C0F180F180F180F3007E003C000B207D9F0C>I<0F07C0F8001F9F E3FC0033F8F71E0063E07C0E0063C0780F0063C0780F00C780F01E000780F01E000780F01E0007 80F01E000F01E03C000F01E03C000F01E03C000F01E078601E03C078C01E03C070C01E03C0F180 1E03C073803C07807F001803003C0023147D9325>I<0F07C01F9FE033F8F063E07063C07863C0 78C780F00780F00780F00780F00F01E00F01E00F01E00F03C31E03C61E03861E078C1E039C3C03 F81801E018147D931A>I<007C0001FF000383800F01C01E01C01C01E03C01E07801E07801E078 01E0F003C0F003C0F003C0F00780F00700700F00701E003838001FF00007C00013147C9317>I< 01E1E003F3F8067E1C0C7C1C0C781E0C781E18F01E00F01E00F01E00F01E01E03C01E03C01E03C 01E07803C07803C07003E0E003E1C007BF80079E000780000780000F00000F00000F00000F0000 1E0000FFE000FFE000171D809317>I<00F86003FDE0078FC00E07C01E03C01C03C03C07807807 80780780780780F00F00F00F00F00F00F00F00F01E00701E00703E0038FE003FFC000F3C00003C 00003C0000780000780000780000780000F0000FFF000FFF00131D7C9315>I<0F1E001FBF0033 E18063C3C063C7C063C7C0C787800787000780000780000F00000F00000F00000F00001E00001E 00001E00001E00003C000018000012147D9313>I<00FC03FE0707060F0E0F0E0E1E001FE00FF8 0FFC07FC01FE003E781EF81CF81CF01860703FE01F8010147D9313>I<00C001E003C003C003C0 03C007800780FFF0FFF00F000F000F000F001E001E001E001E003C003C003C003C307860786078 C079C03F801E000C1C7C9B0F>I<0780601FC0F039C1E031E1E061C1E063C1E0C3C3C00783C007 83C00783C00F07800F07800F07800F078C0F0F180E0F180F0F180F1F3007F7E003E3C016147D93 18>I<0781C01FC3C039C3E031E1E061C0E063C0E0C3C0C00780C00780C00780C00F01800F0180 0F01800F03000F03000F06000F06000F0C0007F80001E00013147D9315>I<078060E01FC0F1E0 39C1E1F031E1E0F061C1E07063C1E070C3C3C0600783C0600783C0600783C0600F0780C00F0780 C00F0780C00F0781800F0781800F0781000F0F8300071F860007FBFC0001F0F8001C147D931E> I<07C3800FE7C0187CE03079E0607BE0607BE0C0F3C000F38000F00000F00001E00001E00039E0 0079E060FBC0C0FBC0C0F3C180E7C3007CFE00387C0013147D9315>I<0780301FC07839C0F031 E0F061C0F063C0F0C3C1E00781E00781E00781E00F03C00F03C00F03C00F03C00F07800F07800F 07800F1F8007FF0001EF00000F00000E00381E007C1C007C3C0078780070F0003FC0001F000015 1D7D9316>I<00E06003F0C007FFC00FFF800C0300000600000C0000180000300000600000C000 0180000300000600C00C01801803803FFF007FFE0060FC00C0780013147E9313>I E /Fq 16 121 df<007F01FF07C00F001E003E003C007C007FFC7FFCF800F800F8007800780078 003C001E0C0FFC03F010147F9312>15 D<0300F00783F00F07F00F0DF00F18E00F30001E60001F C0001FE0001FFC003C7E003C0F003C0F003C0786780F0C780F0C780F08780718F003F06001E017 147E931A>20 D<03C00007F00000F00000F800007800007C00007C00003C00003E00003E00001E 00001F00001F00000F00000F80000F800007800007C0000FC0001BC0003BE00073E000E1E001C1 F00381F00700F00F00F83E00787C0078F8007CF0003C60003E17207E9F1B>I<0007C0001FE000 787000E07801E07801C07C03C07C07807C07807C07807C0F00F80F00F80F00F80F00F01E01E01E 01E01F03C01F87803DFE003CF8003C00003C0000780000780000780000780000F00000F00000F0 0000600000161E7F9318>26 D<007C01FE07FF0F071C021800180018001BE01FF01FF03FC03000 60006000C000C0066006701C7FF83FF00FC010167F9415>34 D<78FCFCFCFC7806067D850D>58 D<78FCFCFEFE7E0606060C0C18387020070F7D850D>I<00000040000001C0000007C000001F00 00007C000001F0000007C000001F0000007C000001F0000007C000001F0000007C000000F00000 00F00000007C0000001F00000007C0000001F00000007C0000001F00000007C0000001F0000000 7C0000001F00000007C0000001C0000000401A1C7C9823>I<00030003000700060006000E000C 000C001C0018001800380030003000700060006000E000C000C001C00180018001800380030003 000700060006000E000C000C001C0018001800380030003000700060006000E000C000C000102D 7DA117>I<80000000E0000000F80000003E0000000F80000003E0000000F80000003E0000000F 80000003E0000000F80000003E0000000F80000003C0000003C000000F8000003E000000F80000 03E000000F8000003E000000F8000003E000000F8000003E000000F8000000E000000080000000 1A1C7C9823>I<000007000000070000000F0000001F0000001F0000003F0000003F0000007F00 00007F000000DF0000019F0000019F0000031F8000031F8000060F8000060F80000C0F8000180F 8000180F8000300F8000300F80007FFF8000FFFF8000C00F8001800F8001800FC003000FC00300 07C0060007C01F000FC0FFC0FFFCFFC0FFFC1E207E9F22>65 D<00FFFFC000FFFFF0000F80F800 0F803C000F803E001F003E001F003E001F003E001F003E003E007C003E007C003E00F8003E01F0 007C07C0007FFF80007FFE00007C0F0000F80F8000F8078000F807C000F807C001F00F8001F00F 8001F00F8001F00F8003E01F0003E01F0303E01F0303E01F067FFE0F8EFFFE07FC000001F02020 7F9E23>82 D<0000F00003FC00073C00077C000F7C000F38000F00001E00001E00001E00001E00 001E0003FFF007FFF0003C00003C00003C0000780000780000780000780000780000F80000F000 00F00000F00000F00000F00001E00001E00001E00001E00001C00003C00003C000738000FB8000 FF0000F70000FE000078000016297D9F16>102 D<003C6000FEF003C3E00783E00F01E00F01E0 1E03C03E03C03E03C03E03C07C07807C07807C07807C07807C0F003C0F003C1F001C3F000FFE00 079E00001E00001E00003C00703C00F83C00F87800F1F000FFE0003F0000141D7F9316>I<0E07 E0003F8FF00033F8780063F0380063E03C0063C03C00C78078000780780007807800078078000F 00F0000F00F0000F00F0000F01E1801E01E3001E03C3001E03C6001E01CE003C01FC0018007000 19147F931B>110 D<07C3C00FE7E0187C603078F06079F06079F0C0F1E000F1C000F00000F000 01E00001E00039E00079E030FBC060FBC060F3C0C0E7E3807CFF00383C0014147E931A>120 D E /Fr 81 125 df<001F83F000FFEFF801E0FE7C03C1F87C0781F87C0F01F0380F00F0000F00 F0000F00F0000F00F0000F00F0000F00F000FFFFFF80FFFFFF800F00F0000F00F0000F00F0000F 00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F000 0F00F0000F00F0000F00F000FFC3FF00FFC3FF001E20809F1B>11 D<001F8000FFC001E0E003C0 F00781F00F01F00F00E00F00000F00000F00000F00000F0000FFFFF0FFFFF00F00F00F00F00F00 F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00 F0FFC3FFFFC3FF1820809F19>I<001FB000FFF001E1F003C1F00781F00F00F00F00F00F00F00F 00F00F00F00F00F00F00F0FFFFF0FFFFF00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F 00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F0FFE7FFFFE7FF1820809F19>I< 001FC0FC00007FE7FE0001F07F070003C0FE07800780FC0F800F00F80F800F007807000F007800 000F007800000F007800000F007800000F00780000FFFFFFFF80FFFFFFFF800F007807800F0078 07800F007807800F007807800F007807800F007807800F007807800F007807800F007807800F00 7807800F007807800F007807800F007807800F007807800F007807800F00780780FFE3FF3FF8FF E3FF3FF82520809F26>I<78FCFCFCFCFCFCFC7878787878787878783030303030000000000078 FCFCFCFC7806217DA00D>33 D<0078000000FC000001C600000383000003830000078300000783 000007830000078300000786000007860000078C00000798000007B81FFC03F01FFC03E003E003 C0018003E0030007E003000FF006001CF006003CF80C0078780C00783C1800F83E3000F81E3000 F80F6000F80FC000F807C0187C03E0187C07F0303E1EF8701FF83FE007E00F801E227EA023>38 D<78FCFCFEFE7E0606060C0C18387020070F7D9F0D>I<006000C001800380070006000E001C00 1C003C003800380078007000700070007000F000F000F000F000F000F000F000F000F000F000F0 00F00070007000700070007800380038003C001C001C000E00060007000380018000C000600B2E 7DA112>II<00060000000600000006000000 060000000600000006000000060000000600000006000000060000000600000006000000060000 0006000000060000FFFFFFF0FFFFFFF00006000000060000000600000006000000060000000600 000006000000060000000600000006000000060000000600000006000000060000000600001C20 7D9A23>43 D<78FCFCFEFE7E0606060C0C18387020070F7D850D>I I<78FCFCFCFC7806067D850D>I<00030003000700060006000E000C000C001C00180018003800 30003000700060006000E000C000C001C00180018001800380030003000700060006000E000C00 0C001C0018001800380030003000700060006000E000C000C000102D7DA117>I<03F0000FFC00 1E1E001C0E003C0F00780780780780780780780780F807C0F807C0F807C0F807C0F807C0F807C0 F807C0F807C0F807C0F807C0F807C0F807C0F807C07807807807807807807807803C0F001C0E00 1E1E000FFC0003F000121F7E9D17>I<00C001C00FC0FFC0F3C003C003C003C003C003C003C003 C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C07FFF7FFF101E 7D9D17>I<07F0000FFC00383E00701F00600F80F80F80FC0FC0FC0FC0FC07C07807C03007C000 0FC0000F80000F80001F00001E00003C0000780000F00000E00001C0000380000700C00E00C01C 00C01801C03FFF807FFF80FFFF80FFFF80121E7E9D17>I<03F0000FFC001C3E00301F00781F80 7C0F807C0F807C1F803C1F80001F00001F00001E00003C0003F80003F000003C00001E00001F00 000F80000F80000FC0300FC0780FC0FC0FC0FC0FC0FC0F80781F80701F00383E001FFC0007E000 121F7E9D17>I<000E00000E00001E00003E00003E00007E00007E0000DE0001DE00019E00031E 00071E00061E000C1E001C1E00181E00381E00301E00601E00E01E00FFFFF0FFFFF0001E00001E 00001E00001E00001E00001E0001FFE001FFE0141E7F9D17>I<3803003FFF003FFE003FFC003F F0003FC00030000030000030000030000030000031F00037FC003E1E003C0F0038078030078000 07800007C00007C00007C07807C0F807C0F807C0F80780F00780600F00700E00383C001FF80007 E000121F7E9D17>I<007C0001FE000783000F07800E0F801C0F803C07003C0000780000780000 780000F9F800FBFC00FE0E00FC0700FC0780F80780F807C0F807C0F807C0F807C0F807C07807C0 7807C07807803807803C07001C0F000E1E0007FC0001F000121F7E9D17>I<6000007FFFC07FFF C07FFF807FFF80E00300C00600C00600C00C0000180000300000300000600000600000E00000E0 0001E00001C00003C00003C00003C00003C00003C00007C00007C00007C00007C00007C00007C0 0007C000038000121F7D9D17>I<03F0000FFC001E1E0038070030070070038070038070038078 03807C07007E07003F8E001FFC000FF80007FC0007FE001EFF00387F80701F807007C0E003C0E0 03C0E001C0E001C0E001C0F001807003803807001E0E000FFC0003F000121F7E9D17>I<03F000 07F8001E1C003C0E00380F00780700780780F80780F80780F807C0F807C0F807C0F807C0F807C0 7807C0780FC0380FC01C1FC00FF7C007E7C0000780000780000780000F00380F007C0E007C1E00 781C003078001FF0000FC000121F7E9D17>I<78FCFCFCFC78000000000000000078FCFCFCFC78 06147D930D>I<78FCFCFCFC78000000000000000070F8FCFCFC7C0C0C0C181838306020061D7D 930D>I61 D<0FC03FF070F86078F07CF87CF87C707C0078 00F801F001C0038003800300070006000600060006000600000000000000000000000F001F801F 801F801F800F000E207D9F15>63 D<0003800000038000000380000007C0000007C0000007C000 000FE000000FE000000FE0000019F0000019F0000019F0000030F8000030F8000030F8000060FC 0000607C0000607C0000E07E0000C03E0000C03E0001FFFF0001FFFF0001801F0003801F800300 0F8003000F8007000FC0070007C00F8007C0FFE07FFEFFE07FFE1F207F9F22>65 DI<001FC040007FF0C001F839C003E00FC0078007C00F8003C0 1F0003C01E0001C03E0001C07E0001C07C0000C07C0000C0FC0000C0FC000000FC000000FC0000 00FC000000FC000000FC000000FC000000FC0000007C0000C07C0000C07E0000C03E0000C01E00 01801F0001800F80030007C0030003E0060001F81C00007FF000001FC0001A217D9F21>III I<000FE020007FF86000F81CE003E007E007C003E00F8001E01F0001E01F0000E03E0000E03E00 00E07E0000607C000060FC000060FC000000FC000000FC000000FC000000FC000000FC000000FC 00FFFCFC00FFFC7C0003E07E0003E03E0003E03E0003E01F0003E01F0003E00F8003E007C003E0 03E007E000FC1CE0007FF820000FE0001E217D9F24>III<0FFFE00FFFE0003E00003E 00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E 00003E00003E00003E00003E00003E00003E00783E00FC3E00FC3E00FC3E00F83C00707C0070F8 001FF0000FC00013207F9E17>I76 DII<001F800000FFF00001F0F80007C03E000F80 1F000F000F001F000F803E0007C03E0007C07E0007E07C0003E07C0003E0FC0003F0FC0003F0FC 0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F07C0003E07E0007E07E0007E0 3E0007C03E0007C01F000F800F000F000F801F0007C03E0001F0F80000FFF000001F80001C217D 9F23>II<001F800000FFF00001F0F80007C03E000F801F000F 000F001F000F803E0007C03E0007C07E0007E07C0003E07C0003E0FC0003F0FC0003F0FC0003F0 FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F07C0003E07C0003E07E0007E03E0007 C03E0F07C01F1F8F800F38CF000FB05F0007F07E0001F0F80000FFF010001FB010000038100000 3C3000003FF000003FF000001FE000001FE000000FC0000007801C297D9F23>II<07E0800FF9801C1F80380F80780780700380F00380F00180F00180 F00180F80000F800007E00007FE0003FFC003FFE001FFF0007FF0000FF80000F800007C00007C0 0003C0C003C0C003C0C003C0C003C0E00380F00780F80700FE0E00CFFC0081F80012217D9F19> I<7FFFFFE07FFFFFE07C0F81E0700F80E0600F8060600F8060E00F8070C00F8030C00F8030C00F 8030C00F8030000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800000 0F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000 07FFFF0007FFFF001C1F7E9E21>IIII91 D93 D<081C38306060C0C0C0FCFEFE7E7E3C070F7E9F0D>96 D<07F0001FFC003E1E003E0F 003E07801C078000078000078003FF800FFF803F07807C07807C0780F80798F80798F80798F80F 987C1FF83FF3F00FC1E015147F9317>I<0F0000FF0000FF00000F00000F00000F00000F00000F 00000F00000F00000F00000F00000F1F800F7FC00FE1E00F80F00F00780F00780F007C0F007C0F 007C0F007C0F007C0F007C0F007C0F00780F00780F00F80F80F00EC1E00E7FC00C1F001620809F 19>I<03F00FFC1E3E3C3E3C3E781C7800F800F800F800F800F800F80078007C003C033E031F0E 0FFC03F010147E9314>I<0003C0003FC0003FC00003C00003C00003C00003C00003C00003C000 03C00003C00003C003E3C00FFBC01E0FC03C07C07C03C07803C07803C0F803C0F803C0F803C0F8 03C0F803C0F803C07803C07803C07803C03C07C01E1FC00FFBFC03E3FC16207E9F19>I<03F000 0FFC001E1E003C0F003C0F00780F00780780F80780FFFF80FFFF80F80000F80000F80000780000 7C00003C01801E03800F070007FE0001F80011147F9314>I<003E0000FF0003CF80078F80078F 800F07000F00000F00000F00000F00000F00000F0000FFF000FFF0000F00000F00000F00000F00 000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000FFF0 00FFF0001120809F0E>I<0000E003F1F00FFF701E1E703C0F607C0F807C0F807C0F807C0F807C 0F803C0F001E1E001FFC0033F0003000003000003800003FFE003FFF801FFFC03FFFE07801E070 00F0E00070E00070E000707000E07801E03E07C00FFF0003FC00141F7F9417>I<0F0000FF0000 FF00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F1F800F7FC00FE1E0 0FC0F00F80F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F0 0F00F00F00F0FFF3FFFFF3FF1820809F19>I<0E001F003F003F001F000E000000000000000000 00000F007F007F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00FF E0FFE00B1F809E0D>I<00F001F801F801F801F800F000000000000000000000007807F807F800 F80078007800780078007800780078007800780078007800780078007800780078007800780078 7078F878F8F0F9E07FC03F000D28839E0E>I<0F0000FF0000FF00000F00000F00000F00000F00 000F00000F00000F00000F00000F00000F0FF80F0FF80F07C00F07000F06000F0C000F18000F38 000F78000FFC000FBC000F1E000F1F000F0F000F0F800F07C00F03C00F03E0FFE7FCFFE7FC1620 809F18>I<0F00FF00FF000F000F000F000F000F000F000F000F000F000F000F000F000F000F00 0F000F000F000F000F000F000F000F000F000F000F000F000F00FFF0FFF00C20809F0D>I<0F0F C07E00FF3FE1FF00FFE0F707800FC07E03C00F807C03C00F007803C00F007803C00F007803C00F 007803C00F007803C00F007803C00F007803C00F007803C00F007803C00F007803C00F007803C0 0F007803C00F007803C0FFF3FF9FFCFFF3FF9FFC2614809327>I<0F1F80FF7FC0FFE1E00FC0F0 0F80F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F0 0F00F0FFF3FFFFF3FF1814809319>I<01F80007FE001F0F803C03C03C03C07801E07801E0F801 F0F801F0F801F0F801F0F801F0F801F07801E07801E03C03C03C03C01F0F8007FE0001F8001414 7F9317>I<0F1F80FF7FC0FFE1E00F81F00F00F80F00F80F007C0F007C0F007C0F007C0F007C0F 007C0F007C0F00780F00F80F00F80F81F00FC3E00F7FC00F1F000F00000F00000F00000F00000F 00000F00000F0000FFF000FFF000161D809319>I<03E0C00FF9C01F1DC03E07C07C07C07C03C0 7803C0F803C0F803C0F803C0F803C0F803C0F803C07803C07C03C07C07C03E07C01E1FC00FFBC0 03E3C00003C00003C00003C00003C00003C00003C00003C0003FFC003FFC161D7E9318>I<0F7C FFFEFFDF0F9F0F9F0F0E0F000F000F000F000F000F000F000F000F000F000F000F00FFF0FFF010 14809312>I<0FB03FF07070E030E030E030F000FF007FC03FE01FF003F80078C038C038E038E0 30F070FFE08F800D147E9312>I<06000600060006000E000E001E003E00FFF8FFF81E001E001E 001E001E001E001E001E001E001E001E181E181E181E181E180F3007E003C00D1C7F9B12>I<0F 00F0FF0FF0FF0FF00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F 00F00F00F00F01F00F01F00707F003FEFF01F8FF1814809319>III<7FE7FC7FE7FC0783E007838003C3 0001E60001EE0000FC00007800007800003C00007E0000FE0001CF000187800387800703C00F03 E0FFCFFEFFCFFE1714809318>II<3FFF3FFF381E303E70 3C607860F861F001E003E007C007830F831F031E073C067C06781EFFFEFFFE10147F9314>III E /Fs 54 123 df<0007F800003FFC0001FFFE0003F83E0007E07E0007C07E000FC07E000FC07E 000FC03C000FC000000FC000000FC1FF00FFFFFF00FFFFFF00FFFFFF000FC03F000FC03F000FC0 3F000FC03F000FC03F000FC03F000FC03F000FC03F000FC03F000FC03F000FC03F000FC03F000F C03F000FC03F007FF9FFE07FF9FFE07FF9FFE01B20809F1D>12 D<3C007E00FF00FF00FF80FF80 7F803F8003800780070007000E001E003C003800100009117D870F>44 D<3C7EFFFFFFFF7E3C08 087D870F>46 D<00700001F0000FF000FFF000FFF000F3F00003F00003F00003F00003F00003F0 0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0 0003F00003F000FFFF80FFFF80FFFF80111D7C9C1A>49 D<07F0001FFE007FFF007E7F80FF3FC0 FF1FC0FF1FE0FF1FE07E0FE0180FE0001FE0001FC0001FC0003F80003F00007E0000F80000F000 01E00003C0E00780E00F00E01E01E01FFFE03FFFC07FFFC0FFFFC0FFFFC0FFFFC0131D7D9C1A> I<01FC0007FF000FFF801F1FC03F8FE03F8FE03F8FE03F8FE01F8FE01F1FC0001FC0003F8001FF 0001FC0001FF80000FC0000FE00007F03C07F87E07F8FF07F8FF07F8FF07F8FF07F07E07F07C0F E03FFFC00FFF0003FC00151D7E9C1A>I<0003C00007C0000FC0001FC0001FC0003FC0007FC000 F7C001E7C001E7C003C7C00787C00F07C00E07C01E07C03C07C07807C0F007C0FFFFFEFFFFFEFF FFFE000FC0000FC0000FC0000FC0000FC001FFFE01FFFE01FFFE171D7F9C1A>I<3003803FFF80 3FFF803FFF003FFE003FF8003FE0003E00003800003800003800003BF8003FFE003FFF003E1F80 380FC0380FC0000FE0000FE03C0FE07E0FE0FE0FE0FE0FE0FE0FC0FE1FC07C3F803FFF001FFC00 07F000131D7D9C1A>I<003F0001FFC007FFE00FE3E01F87F01F07F03F07F07E07F07E03E07E00 00FE3E00FEFF80FFFFC0FF87E0FF03F0FF03F0FE03F8FE03F8FE03F8FE03F87E03F87E03F87E03 F83E03F03E03F01F87E00FFFC007FF8001FC00151D7E9C1A>I<01FC0007FF000FFF801F07C01E 07E03E03E03E03E03F03E03F83E03FE7C03FF7C01FFF800FFF000FFFC00FFFE01FFFE03E7FF07C 1FF8FC07F8F803F8F800F8F800F8F800F8F800F07C01F03F03E03FFFC00FFF8003FC00151D7E9C 1A>56 D<01FC0007FF001FFF803F07C07E03E07E03E0FE03F0FE03F0FE03F0FE03F8FE03F8FE03 F8FE03F87E07F87E07F83F0FF81FFFF80FFBF803E3F80003F03E03F07F03F07F07E07F07E07F0F C03E1F803FFF001FFC0007F000151D7E9C1A>I<3C7EFFFFFFFF7E3C000000003C7EFFFFFFFF7E 3C08147D930F>I<0000E000000001F000000001F000000003F800000003F800000003F8000000 07FC00000007FC0000000FFE0000000EFE0000000EFE0000001CFF0000001C7F0000003C7F8000 00383F800000383F800000703FC00000701FC00000F01FE00000E00FE00000FFFFE00001FFFFF0 0001FFFFF00003C007F800038003F800038003F800070001FC00070001FC00FFF01FFFE0FFF01F FFE0FFF01FFFE0231F7E9E28>65 DI<0007FC06003FFF0E00FF FFDE03FE03FE07F800FE0FE0007E1FC0003E3F80001E3F80001E7F80000E7F00000E7F00000EFF 000000FF000000FF000000FF000000FF000000FF000000FF0000007F0000007F00000E7F80000E 3F80000E3F80001C1FC0001C0FE0003807F8007803FE01F000FFFFC0003FFF800007FC001F1F7D 9E26>IIII73 D76 DII<001FF80000FFFF0001FFFF8007F81FE00FE007F01FC003F81FC003F83F8001FC7F80 01FE7F0000FE7F0000FEFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF 0000FFFF0000FF7F0000FE7F8001FE7F8001FE3F8001FC3FC003FC1FC003F80FF00FF007F81FE0 01FFFF8000FFFF00001FF800201F7D9E27>II82 D<03FC180FFF381FFFF83E03F87C00F8780078F80078F80038F80038FC0000FF0000FFF8007FFF 007FFFC03FFFE01FFFF00FFFF803FFF8001FFC0001FC0000FC00007CE0007CE0007CE0007CF000 78F800F8FE01F0FFFFE0E7FFC0C1FF00161F7D9E1D>I<7FFFFFFC7FFFFFFC7FFFFFFC7E0FE0FC 780FE03C700FE01CF00FE01EF00FE01EE00FE00EE00FE00EE00FE00EE00FE00E000FE000000FE0 00000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000F E000000FE000000FE000000FE00007FFFFC007FFFFC007FFFFC01F1E7E9D24>II< FFFF007FF8FFFF007FF8FFFF007FF807F000070007F8000F0003F8000E0003FC001E0001FC001C 0001FC001C0000FE00380000FE00380000FF007800007F007000007F80F000003F80E000003F80 E000001FC1C000001FC1C000001FE3C000000FE38000000FF780000007F700000007FF00000003 FE00000003FE00000003FE00000001FC00000001FC00000000F800000000F80000000070000025 1F7F9E28>I89 D<03FC000FFF801FFFC03F8FE03F83F03F83F01F03F00E03F001FF F00FFFF03FC3F07E03F0FC03F0FC03F0FC03F0FC03F07E0FF07FFDFE3FF9FE0FE0FE17147F9319 >97 DI<01FC0007FF001FFF803F9FC03F1FC07E1FC0 7E0F80FE0700FE0000FE0000FE0000FE0000FE00007E00007F00E03F00E03F83C01FFF8007FF00 01FC0013147E9317>I<0007FC000007FC000007FC000000FC000000FC000000FC000000FC0000 00FC000000FC000000FC000000FC000000FC0003F8FC000FFFFC001FFFFC003F83FC007F00FC00 7E00FC00FE00FC00FE00FC00FE00FC00FE00FC00FE00FC00FE00FC00FE00FC00FE00FC007E00FC 007E01FC003F07FC001FFFFF800FFEFF8003F0FF8019207E9F1D>I<01FF0007FFC01FFFE03F87 F07F03F07F01F8FE01F8FFFFF8FFFFF8FFFFF8FE0000FE0000FE00007E00007F00383F80783FE0 F01FFFF007FFC001FF0015147F9318>I<001FC0007FE001FFF003F0F007E7F00FC7F00FC3E00F C3E00FC0000FC0000FC0000FC000FFFC00FFFC00FFFC000FC0000FC0000FC0000FC0000FC0000F C0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0007FFC007FFC007FFC0014207F9F 10>I<03FC7C0FFFFE1FFFFE3F0FFE3E07DC7E07E07E07E07E07E07E07E03E07C03F0FC01FFF80 1FFF003BFC003800003800003FFF803FFFF01FFFF81FFFFC7FFFFC7C00FEF8003EF8003EF8003E 7C007C7F01FC3FFFF80FFFE001FF00171E7F931A>I I<1F003F803F807F807F803F803F801F0000000000000000000000FF80FF80FF801F801F801F80 1F801F801F801F801F801F801F801F801F801F801F80FFF0FFF0FFF00C217EA00F>I107 DIII<01FF0007FFC01FFFF03F83 F83F01F87E00FC7E00FCFE00FEFE00FEFE00FEFE00FEFE00FEFE00FE7E00FC7E00FC3F01F83F83 F81FFFF007FFC001FF0017147F931A>II<03F81C000FFE3C001FFF3C003F87FC00 7F01FC007F00FC00FE00FC00FE00FC00FE00FC00FE00FC00FE00FC00FE00FC00FE00FC00FE00FC 007F00FC007F01FC003F87FC001FFFFC000FFEFC0003F0FC000000FC000000FC000000FC000000 FC000000FC000000FC000007FF800007FF800007FF80191D7E931C>II<0FE63FFE7FFE781EF00EF00EFC00FFE07FF87FFC1F FE0FFF00FFE00FE00FF00FF81EFFFEFFFCC7F010147E9315>I<0380038003800380078007800F 800F803F80FFFCFFFCFFFC1F801F801F801F801F801F801F801F801F801F8E1F8E1F8E1F8E1F8C 0FFC07F803F00F1D7F9C14>III 120 DI<3FFFE03FFFE03FFFE03E1FC0383F80787F8070FF0070FE0071FC0003FC00 07F8E007F0E00FE0E01FE1E03FC1E03F83C07F07C0FFFFC0FFFFC0FFFFC013147F9317>I E /Ft 29 122 df<07F0001FF8003FFC007FFE007FFF00FFFF00FFFF80FFFF80FFFFC0FFFFC0FF FFC0FFFFC07FFFC07FFFC03FFFC01FFFC007F7C00007C0000FC0000F80000F80000F80001F8000 1F00003F00003E00007E00007C0000FC0001F80003F80007F0000FE0001FC0001F80000F000006 00001225789021>44 D<07F0000FF8001FFC003FFE007FFF00FFFF80FFFF80FFFF80FFFF80FFFF 80FFFF80FFFF807FFF003FFE001FFC000FF80007F0001111789021>46 D<0000000003E0000000 00000000000007F00000000000000000000FF80000000000000000000FF8000000000000000000 1FFC0000000000000000001FFC0000000000000000001FFC0000000000000000003FFE00000000 00000000003FFE0000000000000000007FFF0000000000000000007FFF0000000000000000007F FF000000000000000000FFFF800000000000000000FFFF800000000000000001FFFFC000000000 00000001FFFFC00000000000000001FFFFC00000000000000003FFFFE00000000000000003FFFF E00000000000000007FFFFF00000000000000007FFFFF0000000000000000FEFFFF80000000000 00000FEFFFF8000000000000000FC7FFF8000000000000001FC7FFFC000000000000001F87FFFC 000000000000003F83FFFE000000000000003F83FFFE000000000000003F01FFFE000000000000 007F01FFFF000000000000007E00FFFF00000000000000FE00FFFF80000000000000FC00FFFF80 000000000000FC007FFF80000000000001FC007FFFC0000000000001F8003FFFC0000000000003 F8003FFFE0000000000003F0003FFFE0000000000003F0001FFFE0000000000007F0001FFFF000 0000000007E0000FFFF000000000000FE0000FFFF800000000000FC0000FFFF800000000001FC0 0007FFFC00000000001FC00007FFFC00000000001F800003FFFC00000000003F800003FFFE0000 0000003FFFFFFFFFFE00000000007FFFFFFFFFFF00000000007FFFFFFFFFFF00000000007FFFFF FFFFFF0000000000FFFFFFFFFFFF8000000000FFFFFFFFFFFF8000000001FC0000007FFFC00000 0001F80000007FFFC000000001F80000003FFFC000000003F80000003FFFE000000003F0000000 1FFFE000000007F00000001FFFF000000007E00000001FFFF000000007E00000000FFFF0000000 0FE00000000FFFF80000000FC000000007FFF80000001FC000000007FFFC0000001F8000000007 FFFC0000FFFFFFE0000FFFFFFFFF80FFFFFFE0000FFFFFFFFF80FFFFFFE0000FFFFFFFFF80FFFF FFE0000FFFFFFFFF80FFFFFFE0000FFFFFFFFF80FFFFFFE0000FFFFFFFFF8051477CC65A>65 DI<000000007FFE00001E0000000FFFFFE0 003E000000FFFFFFF8007E000003FFFFFFFE00FE00001FFFFFFFFF81FE00003FFFFFFFFFE7FE00 00FFFFFC00FFFFFE0003FFFFC0001FFFFE0007FFFE000003FFFE000FFFF8000001FFFE001FFFE0 0000007FFE003FFFC00000003FFE007FFF000000001FFE00FFFE000000000FFE01FFFE00000000 0FFE03FFFC0000000007FE03FFF80000000003FE07FFF80000000003FE0FFFF00000000001FE0F FFF00000000001FE1FFFE00000000001FE1FFFE00000000000FE1FFFE00000000000FE3FFFC000 00000000FE3FFFC000000000007E7FFFC000000000007E7FFFC000000000007E7FFFC000000000 007E7FFF800000000000007FFF80000000000000FFFF80000000000000FFFF80000000000000FF FF80000000000000FFFF80000000000000FFFF80000000000000FFFF80000000000000FFFF8000 0000000000FFFF80000000000000FFFF80000000000000FFFF80000000000000FFFF8000000000 0000FFFF80000000000000FFFF800000000000007FFF800000000000007FFF800000000000007F FFC00000000000007FFFC000000000007E7FFFC000000000007E3FFFC000000000007E3FFFC000 000000007E1FFFE000000000007E1FFFE00000000000FE1FFFE00000000000FE0FFFF000000000 00FC0FFFF00000000000FC07FFF80000000001FC03FFF80000000001F803FFFC0000000003F801 FFFE0000000007F000FFFE0000000007F0007FFF800000000FE0003FFFC00000001FC0001FFFE0 0000003F80000FFFF8000000FF000007FFFE000003FE000003FFFFC0000FFC000000FFFFFC007F F80000003FFFFFFFFFF00000001FFFFFFFFFC000000003FFFFFFFF8000000000FFFFFFFC000000 00000FFFFFF00000000000007FFE000000474979C756>II< FFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFE00FFFFFF FFFFFFFFFF00FFFFFFFFFFFFFFFF00001FFFE00003FFFF00001FFFE000003FFF00001FFFE00000 0FFF00001FFFE0000003FF00001FFFE0000001FF00001FFFE0000000FF00001FFFE0000000FF00 001FFFE00000007F80001FFFE00000007F80001FFFE00000003F80001FFFE00000003F80001FFF E00000001F80001FFFE00000001F80001FFFE0007E001F80001FFFE0007E001F80001FFFE0007E 001F80001FFFE0007E000FC0001FFFE0007E000FC0001FFFE0007E000FC0001FFFE000FE000FC0 001FFFE000FE000000001FFFE000FE000000001FFFE001FE000000001FFFE003FE000000001FFF E01FFE000000001FFFFFFFFE000000001FFFFFFFFE000000001FFFFFFFFE000000001FFFFFFFFE 000000001FFFFFFFFE000000001FFFFFFFFE000000001FFFE01FFE000000001FFFE003FE000000 001FFFE001FE000000001FFFE000FE000000001FFFE000FE0000FC001FFFE000FE0000FC001FFF E0007E0000FC001FFFE0007E0001F8001FFFE0007E0001F8001FFFE0007E0001F8001FFFE0007E 0001F8001FFFE0007E0001F8001FFFE000000003F8001FFFE000000003F0001FFFE000000003F0 001FFFE000000007F0001FFFE000000007F0001FFFE00000000FF0001FFFE00000000FE0001FFF E00000001FE0001FFFE00000001FE0001FFFE00000003FE0001FFFE00000007FE0001FFFE00000 01FFE0001FFFE0000003FFC0001FFFE000001FFFC0001FFFE00001FFFFC0FFFFFFFFFFFFFFFFC0 FFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFF80FFFFFF FFFFFFFFFF8046467CC54E>I73 D78 D<0003FFFE000000003FFFFFE0000000FFFFFFF8000001FFFFFFFE000003FFFFFFFF800007FF80 3FFFC0000FFFC007FFE0000FFFC003FFF0000FFFC001FFF0000FFFC000FFF8000FFFC000FFF800 0FFFC0007FFC0007FF80007FFC0007FF80007FFC0003FF00007FFC0000FC00007FFC0000000000 7FFC00000000007FFC00000000FFFFFC0000003FFFFFFC000007FFFFFFFC00003FFFFFFFFC0000 FFFFFF7FFC0003FFFF807FFC0007FFF8007FFC000FFFE0007FFC001FFF80007FFC003FFF00007F FC007FFE00007FFC007FFC00007FFC00FFFC00007FFC00FFF800007FFC00FFF800007FFC00FFF8 00007FFC00FFF800007FFC00FFF80000FFFC00FFFC0000FFFC007FFC0001FFFC007FFE0003FFFC 003FFF800FFFFF001FFFE07FDFFFF80FFFFFFF9FFFFC07FFFFFE0FFFFC01FFFFFC07FFFC007FFF F003FFFC0007FF0000FFF8362E7DAD3A>97 D<007FE00000000000FFFFE00000000000FFFFE000 00000000FFFFE00000000000FFFFE00000000000FFFFE00000000000FFFFE0000000000003FFE0 000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FF E0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001 FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE00000000000 01FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE007FF8000 0001FFE07FFFF0000001FFE1FFFFFE000001FFE7FFFFFF000001FFFFFFFFFFC00001FFFFF80FFF E00001FFFFC001FFF00001FFFF0000FFF80001FFFC00007FFC0001FFF800003FFC0001FFF00000 3FFE0001FFF000001FFF0001FFF000001FFF0001FFF000001FFF0001FFF000000FFF8001FFF000 000FFF8001FFF000000FFF8001FFF000000FFFC001FFF000000FFFC001FFF000000FFFC001FFF0 00000FFFC001FFF000000FFFC001FFF000000FFFC001FFF000000FFFC001FFF000000FFFC001FF F000000FFFC001FFF000000FFFC001FFF000000FFFC001FFF000000FFF8001FFF000000FFF8001 FFF000000FFF8001FFF000001FFF8001FFF000001FFF0001FFF000001FFF0001FFF000001FFE00 01FFF800003FFE0001FFF800007FFC0001FFFC00007FF80001FFFF0000FFF00001FFFF8003FFE0 0001FFBFF01FFFC00001FF8FFFFFFF800001FF07FFFFFF000001FE01FFFFFC000001FC007FFFE0 000001F8000FFE0000003A487DC742>I<00001FFF80000001FFFFF8000007FFFFFE00001FFFFF FF00007FFFFFFF8000FFFC03FFC001FFF007FFE003FFC007FFE007FF8007FFE00FFF8007FFE01F FF0007FFE01FFF0007FFE03FFE0003FFC03FFE0003FFC07FFE0001FF807FFC00007E007FFC0000 00007FFC00000000FFFC00000000FFFC00000000FFFC00000000FFFC00000000FFFC00000000FF FC00000000FFFC00000000FFFC00000000FFFC00000000FFFC000000007FFC000000007FFE0000 00007FFE000000007FFE000000003FFE000000003FFF000001F81FFF000001F81FFF800003F80F FFC00003F007FFC00007F003FFF0000FE001FFFC003FC000FFFF80FF80007FFFFFFF00001FFFFF FE000007FFFFF8000001FFFFE00000001FFF00002D2E7CAD35>I<00000000007FE00000000000 FFFFE00000000000FFFFE00000000000FFFFE00000000000FFFFE00000000000FFFFE000000000 00FFFFE0000000000003FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000 000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE00000 00000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE000 0000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0 0000003FFC01FFE0000001FFFFC1FFE000000FFFFFF1FFE000003FFFFFFDFFE000007FFFFFFFFF E00000FFFE03FFFFE00001FFF0007FFFE00003FFC0001FFFE00007FF80000FFFE0000FFF800003 FFE0001FFF000003FFE0001FFE000003FFE0003FFE000003FFE0003FFE000003FFE0007FFE0000 03FFE0007FFC000003FFE0007FFC000003FFE000FFFC000003FFE000FFFC000003FFE000FFFC00 0003FFE000FFFC000003FFE000FFFC000003FFE000FFFC000003FFE000FFFC000003FFE000FFFC 000003FFE000FFFC000003FFE000FFFC000003FFE000FFFC000003FFE000FFFC000003FFE0007F FC000003FFE0007FFC000003FFE0007FFC000003FFE0003FFE000003FFE0003FFE000003FFE000 1FFE000003FFE0001FFF000007FFE0000FFF00000FFFE0000FFF80001FFFE00007FFC0003FFFE0 0003FFE000FFFFF00001FFFC07FFFFFFC000FFFFFFFFFFFFC0003FFFFFF3FFFFC0000FFFFFE3FF FFC00003FFFF03FFFFC000003FF803FFFFC03A487CC742>I<00001FFE00000001FFFFE0000007 FFFFF800001FFFFFFE00007FFFFFFF0000FFFC0FFF8001FFE001FFC003FFC000FFE007FF80007F F00FFF80003FF81FFF00003FF81FFF00001FF83FFE00001FFC3FFE00001FFC7FFE00000FFC7FFC 00000FFE7FFC00000FFEFFFC00000FFEFFFC00000FFEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFF FEFFFFFFFFFFFEFFFFFFFFFFFCFFFC00000000FFFC00000000FFFC00000000FFFC00000000FFFC 000000007FFC000000007FFE000000007FFE000000003FFE000000003FFF0000003C1FFF000000 7E1FFF800000FE0FFF800000FE07FFC00001FC03FFE00003FC01FFF8000FF800FFFF807FF0003F FFFFFFE0001FFFFFFF800007FFFFFE000000FFFFF80000000FFF80002F2E7DAD36>I<00000000 003F8000007FF800FFC00007FFFF83FFE0001FFFFFE7FFF0007FFFFFFFFFF800FFFFFFFFFFF801 FFF03FFF1FF803FFC00FFF1FF807FF0003FF9FF807FF0003FF8FF00FFF0003FFCFF00FFE0001FF C7E01FFE0001FFE0001FFE0001FFE0001FFE0001FFE0001FFE0001FFE0001FFE0001FFE0001FFE 0001FFE0001FFE0001FFE0001FFE0001FFE0001FFE0001FFE0000FFE0001FFC0000FFF0003FFC0 0007FF0003FF800007FF0003FF800003FFC00FFF000001FFF03FFE000000FFFFFFFC000001FFFF FFF8000003FFFFFFE0000003E7FFFF80000007E07FF800000007E0000000000007E00000000000 07E0000000000007F0000000000007F8000000000007FC000000000007FFFFFFF8000007FFFFFF FF800007FFFFFFFFF00003FFFFFFFFF80003FFFFFFFFFE0001FFFFFFFFFF0001FFFFFFFFFF8000 FFFFFFFFFFC003FFFFFFFFFFC00FFFFFFFFFFFE01FFFFFFFFFFFE03FFC00001FFFE07FF0000001 FFF07FE00000007FF0FFC00000007FF0FFC00000003FF0FFC00000003FF0FFC00000003FF0FFC0 0000003FF0FFE00000007FF07FF0000000FFE07FF8000001FFE03FFC000003FFC01FFF00000FFF 800FFFF000FFFF0003FFFFFFFFFC0001FFFFFFFFF800007FFFFFFFE000000FFFFFFF000000007F FFE0000035447DAE3B>103 D<007FE00000000000FFFFE00000000000FFFFE00000000000FFFF E00000000000FFFFE00000000000FFFFE00000000000FFFFE0000000000003FFE0000000000001 FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE00000000000 01FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE000000000 0001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000 000001FFE0000000000001FFE0000000000001FFE0000000000001FFE001FFC0000001FFE00FFF F8000001FFE03FFFFE000001FFE0FFFFFF000001FFE1FFFFFF800001FFE3FE0FFFC00001FFE7F0 07FFE00001FFEFC003FFE00001FFFF8003FFE00001FFFF0001FFF00001FFFE0001FFF00001FFFC 0001FFF00001FFFC0001FFF00001FFF80001FFF00001FFF80001FFF00001FFF80001FFF00001FF F00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001 FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF000 01FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF0 0001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FF F00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF000FFFFFFE0FF FFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0 FFFFFFE03B487CC742>I<007E000001FF000007FFC0000FFFE0000FFFE0001FFFF0001FFFF000 1FFFF0001FFFF0001FFFF0001FFFF0001FFFF0000FFFE0000FFFE00007FFC00001FF0000007E00 000000000000000000000000000000000000000000000000000000000000000000000000000000 0000003FE000FFFFE000FFFFE000FFFFE000FFFFE000FFFFE000FFFFE00003FFE00001FFE00001 FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE000 01FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE0 0001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FF E00001FFE000FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF8019497CC821>I<007F E000FFFFE000FFFFE000FFFFE000FFFFE000FFFFE000FFFFE00003FFE00001FFE00001FFE00001 FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE000 01FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE0 0001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FF E00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001 FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE000 01FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE000FFFFFFC0FFFFFFC0FFFFFF C0FFFFFFC0FFFFFFC0FFFFFFC01A487CC721>108 D<007FE001FFE00000FFF00000FFFFE00FFF FC0007FFFE0000FFFFE03FFFFF001FFFFF8000FFFFE07FFFFF803FFFFFC000FFFFE1FFFFFFC0FF FFFFE000FFFFE3FE07FFE1FF03FFF000FFFFE7F003FFF3F801FFF80003FFEFC001FFF7E000FFF8 0001FFFF8001FFFFC000FFF80001FFFF0000FFFF80007FFC0001FFFE0000FFFF00007FFC0001FF FC0000FFFE00007FFC0001FFFC0000FFFE00007FFC0001FFF80000FFFC00007FFC0001FFF80000 FFFC00007FFC0001FFF80000FFFC00007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800 007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC 0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC0001FF F00000FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000 FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800 007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC 0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC0001FF F00000FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC00FFFFFFE07F FFFFF03FFFFFF8FFFFFFE07FFFFFF03FFFFFF8FFFFFFE07FFFFFF03FFFFFF8FFFFFFE07FFFFFF0 3FFFFFF8FFFFFFE07FFFFFF03FFFFFF8FFFFFFE07FFFFFF03FFFFFF85D2E7CAD66>I<007FE001 FFC00000FFFFE00FFFF80000FFFFE03FFFFE0000FFFFE0FFFFFF0000FFFFE1FFFFFF8000FFFFE3 FE0FFFC000FFFFE7F007FFE00003FFEFC003FFE00001FFFF8003FFE00001FFFF0001FFF00001FF FE0001FFF00001FFFC0001FFF00001FFFC0001FFF00001FFF80001FFF00001FFF80001FFF00001 FFF80001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF000 01FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF0 0001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FF F00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001 FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF000 01FFF000FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFF E0FFFFFFE0FFFFFFE0FFFFFFE03B2E7CAD42>I<00000FFF0000000000FFFFF000000007FFFFFE 0000001FFFFFFF8000003FFFFFFFC00000FFFC03FFF00001FFE0007FF80003FFC0003FFC0007FF 80001FFE000FFF00000FFF000FFE000007FF001FFE000007FF803FFE000007FFC03FFC000003FF C03FFC000003FFC07FFC000003FFE07FFC000003FFE07FFC000003FFE0FFFC000003FFF0FFFC00 0003FFF0FFFC000003FFF0FFFC000003FFF0FFFC000003FFF0FFFC000003FFF0FFFC000003FFF0 FFFC000003FFF0FFFC000003FFF0FFFC000003FFF07FFC000003FFE07FFC000003FFE07FFC0000 03FFE07FFC000003FFE03FFE000007FFC03FFE000007FFC01FFE000007FF801FFF00000FFF800F FF00000FFF0007FF80001FFE0003FFC0003FFC0001FFE0007FF80000FFFC03FFF000007FFFFFFF E000001FFFFFFF80000007FFFFFE00000000FFFFF0000000000FFF000000342E7DAD3B>I<007F E007FF800000FFFFE07FFFF00000FFFFE1FFFFFE0000FFFFE7FFFFFF0000FFFFFFFFFFFFC000FF FFFFF81FFFE000FFFFFFC003FFF00001FFFF0001FFF80001FFFC0000FFFC0001FFF800007FFC00 01FFF000007FFE0001FFF000003FFF0001FFF000003FFF0001FFF000001FFF0001FFF000001FFF 8001FFF000001FFF8001FFF000001FFF8001FFF000000FFFC001FFF000000FFFC001FFF000000F FFC001FFF000000FFFC001FFF000000FFFC001FFF000000FFFC001FFF000000FFFC001FFF00000 0FFFC001FFF000000FFFC001FFF000000FFFC001FFF000000FFFC001FFF000001FFF8001FFF000 001FFF8001FFF000001FFF8001FFF000001FFF8001FFF000003FFF0001FFF000003FFF0001FFF0 00003FFE0001FFF800007FFE0001FFF80000FFFC0001FFFC0000FFF80001FFFF0003FFF00001FF FF8007FFE00001FFFFF03FFFC00001FFFFFFFFFF800001FFF7FFFFFF000001FFF1FFFFFC000001 FFF07FFFE0000001FFF00FFE00000001FFF0000000000001FFF0000000000001FFF00000000000 01FFF0000000000001FFF0000000000001FFF0000000000001FFF0000000000001FFF000000000 0001FFF0000000000001FFF0000000000001FFF0000000000001FFF0000000000001FFF0000000 000001FFF00000000000FFFFFFE000000000FFFFFFE000000000FFFFFFE000000000FFFFFFE000 000000FFFFFFE000000000FFFFFFE0000000003A427DAD42>I<007FC03FC000FFFFC0FFF800FF FFC3FFFC00FFFFC7FFFE00FFFFCFFFFF00FFFFDFE7FF80FFFFDF8FFFC003FFFF0FFFC001FFFE0F FFC001FFFC0FFFC001FFFC0FFFC001FFF80FFFC001FFF807FF8001FFF007FF8001FFF003FF0001 FFF000FC0001FFF000000001FFE000000001FFE000000001FFE000000001FFE000000001FFE000 000001FFE000000001FFE000000001FFE000000001FFE000000001FFE000000001FFE000000001 FFE000000001FFE000000001FFE000000001FFE000000001FFE000000001FFE000000001FFE000 000001FFE000000001FFE000000001FFE000000001FFE000000001FFE0000000FFFFFFF00000FF FFFFF00000FFFFFFF00000FFFFFFF00000FFFFFFF00000FFFFFFF000002A2E7DAD31>114 D<000FFF81E000FFFFF7E003FFFFFFE007FFFFFFE00FFFFFFFE01FFC01FFE03FE0003FE07FC000 0FE07F80000FE07F800007E0FF800007E0FF800007E0FFC00007E0FFE0000000FFF8000000FFFF C00000FFFFFE00007FFFFFE0007FFFFFF8003FFFFFFE003FFFFFFF001FFFFFFFC00FFFFFFFE007 FFFFFFE001FFFFFFF0007FFFFFF8001FFFFFF80000FFFFFC000007FFFC0000007FFC7C00001FFC FC00000FFCFC00000FFCFE000007FCFE000007FCFF000007FCFF800007F8FF80000FF8FFE0000F F0FFF0003FF0FFFE00FFE0FFFFFFFFC0FFFFFFFF80FEFFFFFE00FC3FFFF800F003FFC000262E7C AD2F>I<0001F800000001F800000001F800000001F800000001F800000001F800000003F80000 0003F800000003F800000007F800000007F800000007F80000000FF80000000FF80000001FF800 00003FF80000003FF80000007FF8000001FFF8000003FFF800000FFFFFFFC0FFFFFFFFC0FFFFFF FFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC000FFF8000000FFF8000000FFF8000000FFF8000000FF F8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000 FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF80000 00FFF8000000FFF8000000FFF803F000FFF803F000FFF803F000FFF803F000FFF803F000FFF803 F000FFF803F000FFF803F000FFF803F000FFF807F0007FFC07E0007FFC0FE0003FFF1FC0001FFF FF80000FFFFF000007FFFE000001FFFC0000003FF00024427EC12E>I<003FF000003FF000FFFF F000FFFFF000FFFFF000FFFFF000FFFFF000FFFFF000FFFFF000FFFFF000FFFFF000FFFFF000FF FFF000FFFFF00003FFF00003FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF000 01FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF0 0001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FF F00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001 FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF000 01FFF00001FFF00001FFF00001FFF00001FFF00001FFF00003FFF00001FFF00003FFF00001FFF0 0007FFF00001FFF00007FFF00001FFF0000FFFF00000FFF0001FFFF00000FFF8007FFFF800007F FE01FEFFFFE0003FFFFFFCFFFFE0001FFFFFF0FFFFE0000FFFFFE0FFFFE00003FFFF80FFFFE000 007FFC00FFFFE03B2E7CAD42>II<7FFFFFC03FFFFF00 7FFFFFC03FFFFF007FFFFFC03FFFFF007FFFFFC03FFFFF007FFFFFC03FFFFF007FFFFFC03FFFFF 00007FFE0003FC0000003FFF0007F80000001FFF800FF00000000FFF800FE00000000FFFC01FE0 00000007FFE03FC000000003FFF07F8000000001FFF8FF0000000000FFF9FE0000000000FFFFFC 00000000007FFFF800000000003FFFF800000000001FFFF000000000000FFFE000000000000FFF C0000000000007FFE0000000000003FFF0000000000001FFF8000000000001FFF8000000000003 FFFC000000000007FFFE00000000000FFFFF00000000001FFFFF80000000001FCFFF8000000000 3FCFFFC0000000007F87FFE000000000FF03FFF000000001FE01FFF800000003FC00FFF8000000 07F800FFFC00000007F0007FFE0000000FF0003FFF0000001FE0001FFF8000003FC0000FFF8000 FFFFFC007FFFFFC0FFFFFC007FFFFFC0FFFFFC007FFFFFC0FFFFFC007FFFFFC0FFFFFC007FFFFF C0FFFFFC007FFFFFC03A2E7EAD3F>120 D<7FFFFFE001FFFF807FFFFFE001FFFF807FFFFFE001 FFFF807FFFFFE001FFFF807FFFFFE001FFFF807FFFFFE001FFFF8000FFFC00001FC00000FFFC00 001FC000007FFC00001F8000007FFE00003F8000003FFE00003F0000003FFF00007F0000001FFF 00007E0000001FFF8000FE0000000FFF8000FC0000000FFFC001FC0000000FFFC001FC00000007 FFE001F800000007FFE003F800000003FFE003F000000003FFF007F000000001FFF007E0000000 01FFF80FE000000000FFF80FC000000000FFFC1FC000000000FFFC1FC0000000007FFE3F800000 00007FFE3F80000000003FFE3F00000000003FFF7F00000000001FFF7E00000000001FFFFE0000 0000000FFFFC00000000000FFFFC000000000007FFF8000000000007FFF8000000000007FFF800 0000000003FFF0000000000003FFF0000000000001FFE0000000000001FFE0000000000000FFC0 000000000000FFC00000000000007F800000000000007F800000000000007F800000000000007F 000000000000007F000000000000007E00000000000000FE000000000F8000FC000000003FE001 FC000000007FF001F8000000007FF003F800000000FFF803F000000000FFF807F000000000FFF8 0FE000000000FC000FE000000000FE003FC0000000007E007F80000000007F81FF00000000003F FFFE00000000003FFFFC00000000000FFFF0000000000007FFC0000000000000FE000000000000 39427EAD3F>I E /Fu 17 118 df<70F8F8F87005057D840C>46 D<70F8F8F870000000000000 000070F8F8F87005127D910C>58 D<003F800000FFE00003C0780007001C000C000600181E0300 383F83803071C18060E0C0C061E078C061E078C0C3C07860C3C07860C3C07860C3C07860C3C078 60C3C07860C3C0786061E0786061E0784060E0F8C03071F8C0383FBF80181E1F000C0000000700 01E003C01F8000FFFE00003FE0001B1D7E9C20>64 D73 D<1FE0003FF8007C3C007C1E007C1E00381E00001E0007FE001FFE003C1E0078 1E00F01E00F01E60F01E60F03E60787FE03FFFC00F8F8013127F9115>97 D<003F80003F8000078000078000078000078000078000078000078000078000078003E7800FFF 801E1F80380780780780700780F00780F00780F00780F00780F00780F00780700780780780380F 801E1F800FF7F007E7F0141D7F9C17>100 D<03E00FF01C38381C781E700EFFFEFFFEF000F000 F000F000700078063C061E0C0FF803E00F127F9112>I<1C003E003E003E001C00000000000000 000000000000FE00FE001E001E001E001E001E001E001E001E001E001E001E001E001E001E00FF C0FFC00A1D809C0B>105 D107 D109 DI<03F0000FFC001E1E0038070078078070 0380F003C0F003C0F003C0F003C0F003C0F003C07003807807803807001E1E000FFC0003F00012 127F9115>II114 D<1FB03FF07070E030E030F000FE007FC07FE01FF0 07F80078C038C038E038F070FFE08F800D127F9110>I<06000600060006000E000E001E003E00 FFE0FFE01E001E001E001E001E001E001E001E001E301E301E301E301E300E600FE003C00C1A7F 9910>II E /Fv 1 50 df<06001E00FE00EE000E000E000E000E000E000E000E000E000E000E000E000E000E007FE0 7FE00B137E9211>49 D E /Fw 14 118 df<03E0003FC0003FC00003C00003C000078000078000 0780000780000F00000F00000F00000F00001E00001E78001FFE001F8F003E0F003C07803C0780 3C0780780F80780F80780F80780F80F01F00F01F00F01F00F01E00F03C00703C0070780038F000 3FC0000F000011237BA216>98 D<003F0000FF8003C1C00783C00F07C01E07C03E03803C00007C 00007C00007C0000F80000F80000F80000F800007800807801803807003C1E001FF80007E00012 157C9416>I<00001F0001FE0001FE00001E00001E00003C00003C00003C00003C000078000078 0000780000780000F0007CF001FEF003C7F00703E00F01E01E01E03E01E03C03C07C03C07C03C0 7C03C0F80780F80780F80788F8078CF80F18780F18781F183C77301FE7E00F81C018237CA219> I<007C03FE07870F031E033C037C06781CFFF8FFC0F800F000F000F000F000F001F003780E383C 1FF00FC010157B9416>I<00F8000FF0000FF00000F00000F00001E00001E00001E00001E00003 C00003C00003C00003C000078000078F8007BFC007F1E00FC0F00F80F00F00F00F00F01E01E01E 01E01E01E01E01E03C03C03C03C03C03C43C078678078C780F0C780F18780738F007F06001C017 237DA219>104 D<006000F001F001F000C000000000000000000000000000000F001F8033C063 C0C3C0C780C78007800F000F000F001E001E001E203C303C60786078C039C03F800E000D217CA0 0F>I<01F01FE01FE001E001E003C003C003C003C007800780078007800F000F000F000F001E00 1E001E001E003C003C003C003C007800780079007980F300F300F30073007E001C000C237CA20C >108 D<1E07E03E003F1FF0FF0067B879C78067E03F03C0C7C03E03C0C7803C03C0C7803C03C0 0F007807800F007807800F007807800F007807801E00F00F001E00F00F001E00F00F101E00F01E 183C01E01E303C01E03C303C01E03C603C01E01CE07803C01FC0300180070026157C9428>I<1E 07C0003F1FE00067B8F00067E07800C7C07800C7807800C78078000F00F0000F00F0000F00F000 0F00F0001E01E0001E01E0001E01E2001E03C3003C03C6003C0786003C078C003C039C007803F8 003000E00019157C941B>I<003F0000FFC003E1E00780F00F00F01E00F83E00F83C00F87C00F8 7C00F87C00F8F801F0F801F0F801E0F803E07803C0780780380F003C1E001FFC0007E00015157C 9419>I<01E0F80003F3FC00067F0E00067E0F000C7C07000C7807800C780F8000F00F8000F00F 8000F00F8000F00F8001E01F0001E01F0001E01F0001E03E0003C03C0003E0380003E0780003F1 E00007BFC000079F000007800000078000000F0000000F0000000F0000000F0000001E0000001E 000000FFE00000FFE00000191F809419>I<007C0001FF000383800703800E07800E07800E0200 0F80000FF8000FFC0007FE0001FF00001F00300F00780F00F80E00F80E00F01C007038003FF000 1FC00011157D9414>115 D<00E001E001E001E001E003C003C003C003C00780FFF8FFF807800F 000F000F000F001E001E001E001E003C003C003C103C1878307830786038C03F800F000D1F7C9E 10>I<0F00301F807833C07863C0F0C3C0F0C780F0C780F00781E00F01E00F01E00F01E01E03C0 1E03C01E03C41E03C61E078C1E078C1E0F8C0E1B980FF3F003E0E018157C941A>I E /Fx 47 122 df45 D<3C7EFFFFFFFF7E3C08087C8710 >I<00180000780003F800FFF800FFF800FFF80003F80003F80003F80003F80003F80003F80003 F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003 F80003F80003F80003F8007FFFE07FFFE07FFFE013207C9F1C>49 D<03FC001FFF003FFF807C3F E0FE0FE0FF07F0FF07F0FF07F8FF03F87E03F81803F80007F80007F00007F0000FE0000FC0001F 80003F00003E0000780000F03801E03803C0380780380F00781FFFF81FFFF03FFFF07FFFF0FFFF F0FFFFF0FFFFF015207D9F1C>I<00FE0003FF800FFFE01F07F01F87F03FC3F83FC3F83FC3F83F C3F81F87F80F07F0000FE0001FC001FF8001FE0001FFC00007F00003F80001FC0001FC3E01FE7F 01FEFF81FEFF81FEFF81FEFF81FCFF01FC7F03F83E07F01FFFE00FFFC001FE0017207E9F1C>I< 0001E00003E00007E00007E0000FE0001FE0003FE0003FE0007FE000FFE001EFE003CFE0038FE0 078FE00F0FE01E0FE01C0FE03C0FE0780FE0F00FE0FFFFFEFFFFFEFFFFFE000FE0000FE0000FE0 000FE0000FE0000FE001FFFE01FFFE01FFFE17207E9F1C>I<3000603C01E03FFFE03FFFC03FFF 803FFF003FFE003FF80039000038000038000038000039FC003BFF003FFFC03E0FE03C07E03807 F00007F00007F80007F83C07F87E07F8FE07F8FF07F8FF07F0FE07F07C0FE07C1FC03FFF801FFF 0007F80015207D9F1C>I<001F8000FFE003FFF007F0700FC1F81F83F83F03F83F03F87E03F87E 01F07E0000FE1F80FE7FE0FEFFF0FFC1F8FF80F8FF00FCFF00FCFE00FEFE00FEFE00FEFE00FE7E 00FE7E00FE7E00FE3E00FC3E00FC1F00F80F83F007FFE003FFC000FF0017207E9F1C>I<700000 7C00007FFFFE7FFFFE7FFFFE7FFFFC7FFFF87FFFF0FFFFF0F000E0E001C0E00380E00700E00E00 000E00001C00003C00003C00007C00007C0000F80000F80001F80001F80001F80001F80003F800 03F80003F80003F80003F80003F80001F00000E00017227DA11C>I<00FE0003FFC007FFE00F83 F01E01F01E00F83E00F83E00F83F80F83FC0F83FF1F03FFFF01FFFE01FFF800FFFE007FFF00FFF F81FFFFC3E3FFC7C0FFE7C03FEF801FEF8007EF8003EF8003EF8003C7C003C7E00783F01F01FFF E00FFFC001FE0017207E9F1C>I<00FE0007FF800FFFE01F83F03F01F07E00F87E00F8FE00FCFE 00FCFE00FCFE00FEFE00FEFE00FEFE00FE7E01FE7E01FE3E03FE3F07FE1FFEFE0FFCFE03F0FE00 00FC1F00FC3F80FC3F81F83F81F83F81F03F03E01E0FC00FFF8007FE0003F80017207E9F1C>I< 00007000000000F800000000F800000000F800000001FC00000001FC00000003FE00000003FE00 000003FE00000007FF00000007FF0000000FFF8000000E7F8000000E7F8000001E7FC000001C3F C000001C3FC00000381FE00000381FE00000781FF00000700FF00000700FF00000E00FF80000FF FFF80001FFFFFC0001FFFFFC0001C003FC0003C003FE00038001FE00038001FE00070000FF00FF F01FFFF8FFF01FFFF8FFF01FFFF825227EA12A>65 DI<0003FE0180001FFF838000FFFFE78001FF00FF8003F8003F8007F0001F800FE0000F80 1FC0000F803F800007803F800007807F800003807F000003807F00000380FF00000000FF000000 00FF00000000FF00000000FF00000000FF00000000FF00000000FF000000007F000000007F0000 03807F800003803F800003803F800007801FC00007000FE0000F0007F0001E0003F8003C0001FF 00F80000FFFFF000001FFFC0000003FE000021227DA128>IIII73 D78 D<0007FC0000003FFF800000FFFFE00003FC07F80007F001FC000FE000FE001FC0007F001FC000 7F003F80003F803F80003F807F80003FC07F00001FC07F00001FC0FF00001FE0FF00001FE0FF00 001FE0FF00001FE0FF00001FE0FF00001FE0FF00001FE0FF00001FE0FF00001FE07F00001FC07F 80003FC07F80003FC03F80003F803FC0007F801FC0007F000FE000FE0007F803FC0003FE0FF800 00FFFFE000003FFF80000007FC000023227DA12A>II82 D<01FC0C07FF9C1FFFFC3F03FC3E00FC7C007C7C003CFC001CFC001CFE001CFE0000FF8000FFFC 007FFFC07FFFE03FFFF01FFFF80FFFFC07FFFE01FFFE000FFF0000FF00007F00007FE0003FE000 3FE0003FF0003EF0003EFC007CFF00FCFFFFF8E7FFE0C0FF8018227DA11F>I<7FFFFFFF807FFF FFFF807FFFFFFF807E07F81F807807F807807807F807807007F80380F007F803C0F007F803C0E0 07F801C0E007F801C0E007F801C0E007F801C00007F800000007F800000007F800000007F80000 0007F800000007F800000007F800000007F800000007F800000007F800000007F800000007F800 000007F800000007F800000007F800000007F800000007F800000007F8000007FFFFF80007FFFF F80007FFFFF80022227EA127>I86 D89 D<07FC001FFF803FFFC07F0FE07F07E07F 03F03E03F01C03F00003F001FFF00FFFF03FE3F07F83F07F03F0FE03F0FE03F0FE03F0FE07F07F 0FF03FFDFF1FF8FF0FC07F18167E951B>97 DI<00FF0007FFC00FFFE01F87F03F07F07F07F07E03E07E01C0FE0000FE00 00FE0000FE0000FE0000FE00007E00007F00007F00703F80701FC1E00FFFC007FF8000FE001416 7E9519>I<0003FE000003FE000003FE0000007E0000007E0000007E0000007E0000007E000000 7E0000007E0000007E0000007E0000007E0001FC7E0007FF7E001FFFFE003F81FE003F007E007E 007E007E007E00FE007E00FE007E00FE007E00FE007E00FE007E00FE007E00FE007E00FE007E00 7E007E007E007E003F00FE003F83FE001FFFFFC007FF7FC001F87FC01A237EA21F>I<00FE0007 FF800FFFC01F87E03F03F07E01F07E01F8FE01F8FFFFF8FFFFF8FFFFF8FE0000FE0000FE00007E 00007E00007F00383F00781FC0F00FFFE003FFC000FE0015167E951A>I<01FC1E0007FF7F001F FFFF803F07EF803E03E7007E03F2007E03F0007E03F0007E03F0007E03F0003E03E0003F07E000 1FFFC0001FFF000039FC000038000000380000003C0000003FFFE0003FFFF8001FFFFE001FFFFF 003FFFFF007C003F80F8000F80F8000F80F8000F80F8000F807C001F003F007E001FFFFC000FFF F80001FFC00019217F951C>103 D<0E003F003F807F807F803F803F000E000000000000000000 00000000FF80FF80FF801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F 801F80FFF0FFF0FFF00C247FA30F>105 D107 DIII<00FE0007FFC00FFFE01F83F03F01F87E00FC7E00FC7E00FCFE00FEFE00 FEFE00FEFE00FEFE00FEFE00FEFE00FE7E00FC7E00FC3F01F81F83F00FFFE007FFC000FE001716 7E951C>II<01FC070007FF0F000FFFCF001FC1FF00 3F807F007F007F007F003F00FE003F00FE003F00FE003F00FE003F00FE003F00FE003F00FE003F 00FE003F007F003F007F003F003F80FF001FC1FF001FFFFF0007FF3F0001FC3F0000003F000000 3F0000003F0000003F0000003F0000003F0000003F000001FFE00001FFE00001FFE01B207E951E >II<07F300 1FFF007FFF00780F00F00700F00700F00000FE0000FFF0007FFC003FFE001FFF0007FF00007F80 000F80E00780E00780F00780FC0F00FFFE00FFFC00C7F00011167E9516>I<01C00001C00001C0 0001C00003C00003C00007C00007C0000FC0003FC000FFFF00FFFF00FFFF000FC0000FC0000FC0 000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC3800FC3800FC3800FC3800FC3800FE7 0007FF0003FE0001F80011207F9F16>III120 DI E /Fy 12 58 df<0180030006000C001C00180038 0030007000700060006000E000E000E000E000E000E000E000E000E000E0006000600070007000 3000380018001C000C0006000300018009227E980E>40 DI<07C01FF03C78783C701C701CF01EF01EF01E F01EF01EF01EF01EF01EF01E701C701C783C3C781FF007C00F157F9412>48 D<03000F00FF00F700070007000700070007000700070007000700070007000700070007000700 7FF07FF00C157E9412>I<1F803FE071F0F8F0F878F87870780078007800F000E001C003800700 0E000C18181830387FF0FFF0FFF00D157E9412>I<0FC01FF03078783C783C783C103C007800F0 07E007E00078003C001E701EF81EF81EF83C70383FF00FC00F157F9412>I<007000F000F001F0 03F0077006700E701C70187030707070E070FFFEFFFE007000700070007003FE03FE0F157F9412 >I<60307FF07FE07F8060006000600060006F807FC070E06070007800786078F078F078F07060 E03FC01F000D157E9412>I<01F007F80E1C1C3C383C70187000F080F7F0FFF8F81CF81CF01EF0 1EF01E701E701E381C3C381FF007C00F157F9412>I<60007FFE7FFE7FFCE018C018C030006000 C001800180038003000700070007000F000F000F000F000F0006000F167E9512>I<07C01FF038 38701C701C701C7C1C3F383FF00FE01FF83DFC70FCE03EE00EE00EE00E700C78383FF00FC00F15 7F9412>I<07C01FF038387038F01CF01CF01EF01EF01E703E703E3FFE1FDE021E001C301C7838 783870F03FC01F800F157F9412>I E /Fz 45 124 df<78FCFCFEFE7E0606060C0C1C18307060 07107C850E>44 D<78FCFCFCFC7806067C850E>46 D<01F00007FC000F1E001E0F003C07803803 807803C07803C07803C07803C0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803 E0F803E0F803E0F803E0F803E0F803E07803C07803C07803C07803C03C07803C07801E0F000F1E 0007FC0001F00013227EA018>48 D<00C001C007C0FFC0FBC003C003C003C003C003C003C003C0 03C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C0FF FFFFFF10217CA018>I<03F0000FFC001C3F00300F80600F806007C0F807C0FC07E0FC03E0FC03 E07803E03007E00007E00007C00007C0000F80000F00001E00003E00003C0000700000E00001C0 000180000300600600600C00601800E03800C03FFFC07FFFC0FFFFC0FFFFC013217EA018>I<00 0700000700000F00001F00001F00003F00003F00006F0000EF0000CF00018F00018F00030F0007 0F00060F000C0F001C0F00180F00380F00300F00600F00E00F00FFFFF8FFFFF8000F00000F0000 0F00000F00000F00000F00000F0001FFF801FFF815217FA018>52 D<1000801C07801FFF001FFE 001FFC001FF8001FC00018000018000018000018000018000019F8001BFC001F0F001C07001807 801803C00003C00003E00003E00003E00003E07803E0F803E0F803E0F803C0F003C06007C06007 80300F001C1E000FFC0003F00013227EA018>I<01F00007FC000E0F001807803803803001C070 01C07001C07001C07801C07C03803E03803F87001FEE000FFC0007FC0003FE000FFF001C7F8038 1FC0700FC07003E0E001E0E001E0E000E0E000E0E000E0E000C07001C07001803803801E0F000F FC0003F00013227EA018>56 D<01F00007FC000E0E001C07003C0780780380780380F803C0F803 C0F803C0F803E0F803E0F803E0F803E0F803E07803E07807E07807E03C07E01C0FE00FFBE007F3 E00003C00003C00003C00007803807807C07007C0F00780E00301C003838001FF00007C0001322 7EA018>I<000180000003C0000003C0000003C0000007E0000007E0000007E000000FF000000D F000000DF000001DF8000018F8000018F8000038FC0000307C0000307C0000607E0000603E0000 603E0000C03F0000C01F0000C01F0001801F8001FFFF8001FFFF80030007C0030007C0030007C0 060003E0060003E0060003E00E0001F01F0003F0FFC01FFFFFC01FFF20237EA225>65 DI<000FE010003FF83000FC0E70 01F007F003C003F0078001F00F8000F01F0000F01E0000703E0000703E0000707E0000307C0000 307C000030FC000030FC000000FC000000FC000000FC000000FC000000FC000000FC0000007C00 00307C0000307E0000303E0000303E0000601E0000601F0000600F8000C0078000C003C0018001 F0030000FC0E00003FFC00000FE0001C247DA223>II73 D75 D77 DI<00 0FE000007FFC0000F83E0003E00F8007C007C00F8003E00F0001E01F0001F03E0000F83E0000F8 7E0000FC7C00007C7C00007C7C00007CFC00007EFC00007EFC00007EFC00007EFC00007EFC0000 7EFC00007EFC00007EFC00007E7C00007C7E0000FC7E0000FC3E0000F83F0001F81F0001F00F80 03E00F8003E007C007C003E00F8000F83E00007FFC00000FE0001F247DA226>II<03F0200FFC601E0EE03803E07801E07001E070 00E0F000E0F00060F00060F00060F80000F800007E00007FC0003FFC001FFF000FFF8007FFC000 FFC0000FE00003E00001F00001F00000F0C000F0C000F0C000F0C000F0E000E0E001E0F001C0F8 03C0EF0780C7FF0081FC0014247DA21B>83 D<7FFFFFF87FFFFFF87C07C0F87007C0386007C018 6007C018E007C01CE007C00CC007C00CC007C00CC007C00CC007C00C0007C0000007C0000007C0 000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007 C0000007C0000007C0000007C0000007C0000007C0000007C0000007C00003FFFF8003FFFF801E 227EA123>II<1FE000 3FF8007C3C007C1E007C0F00380F00000F00000F0003FF000FFF003F0F007C0F007C0F00F80F00 F80F18F80F18F80F18781F187C3FB83FE7F00F83C015157E9418>97 D<0F0000FF0000FF00001F 00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F1F800F7FE00F E1F00F80780F00780F003C0F003C0F003E0F003E0F003E0F003E0F003E0F003E0F003E0F003C0F 003C0F00780F80F00EE1F00E7FC00C1F0017237FA21B>I<01FE0007FF000F0F801E0F803C0F80 7C0700780000F80000F80000F80000F80000F80000F80000F800007C00007C00C03C00C01E0180 0F830007FE0001F80012157E9416>I<0001E0001FE0001FE00003E00001E00001E00001E00001 E00001E00001E00001E00001E00001E00001E003F1E007FDE01F07E03E03E03C01E07801E07801 E0F801E0F801E0F801E0F801E0F801E0F801E0F801E07801E07801E03C01E03C03E01F0FF00FFD FE03F1FE17237EA21B>I<01FC0007FF000F0F801E07C03C03C07C03E07801E0FFFFE0FFFFE0F8 0000F80000F80000F80000F800007800007C00603C00601E00C00F838007FF0000FC0013157F94 16>I<001E00007F0001E78001CF8003CF80078700078000078000078000078000078000078000 078000078000FFF800FFF800078000078000078000078000078000078000078000078000078000 0780000780000780000780000780000780000780000780007FFC007FFC00112380A20F>I<0000 F003F1F80FFFB81E1E383C0F303C0F007C0F807C0F807C0F807C0F803C0F003C0F001E1E001FFC 0033F0003000003000003800003FFE003FFFC01FFFE03FFFF07801F0700078E00038E00038E000 38E000387000703800E01E03C00FFF8001FC0015217F9518>I<0F0000FF0000FF00001F00000F 00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F1F800F7FC00FE1E00F C0F00F80F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F 00F00F00F00F00F0FFF3FFFFF3FF18237FA21B>I<0E001F003F003F001F000E00000000000000 00000000000000000F00FF00FF001F000F000F000F000F000F000F000F000F000F000F000F000F 000F000F000F00FFE0FFE00B2280A10D>I<0F0000FF0000FF00001F00000F00000F00000F0000 0F00000F00000F00000F00000F00000F00000F00000F0FFC0F0FFC0F03E00F03800F07000F0E00 0F1C000F38000F78000FFC000FBE000F1E000F1F000F0F800F07800F07C00F03C00F03E00F03F0 FFE7FEFFE7FE17237FA21A>107 D<0F00FF00FF001F000F000F000F000F000F000F000F000F00 0F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F 000F00FFF0FFF00C2380A20D>I<0F0FC07E00FF3FE1FF00FFE0F707801FC07E03C00F807C03C0 0F007803C00F007803C00F007803C00F007803C00F007803C00F007803C00F007803C00F007803 C00F007803C00F007803C00F007803C00F007803C00F007803C00F007803C0FFF3FF9FFCFFF3FF 9FFC26157F9429>I<0F1F80FF7FC0FFE1E01FC0F00F80F00F00F00F00F00F00F00F00F00F00F0 0F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F0FFF3FFFFF3FF18157F941B> I<01FC0007FF000F07801E03C03C01E07800F07800F0F800F8F800F8F800F8F800F8F800F8F800 F8F800F87800F07C01F03C01E01E03C00F078007FF0001FC0015157F9418>I<0F1F80FF7FE0FF E1F00F80F80F00780F007C0F007C0F003E0F003E0F003E0F003E0F003E0F003E0F003E0F007C0F 007C0F00780F80F00FE1F00F7FC00F1F000F00000F00000F00000F00000F00000F00000F00000F 0000FFF000FFF000171F7F941B>I<0F7CFFFEFFDF1F9F0F9F0F0E0F000F000F000F000F000F00 0F000F000F000F000F000F000F00FFF8FFF810157F9413>114 D<0FD83FF870786018E018E018 F000FC007FC03FE01FF00FF8007CC03CC01CE01CE01CF018F838FFF08FC00E157E9413>I<0300 0300030003000700070007000F001F003F00FFF8FFF80F000F000F000F000F000F000F000F000F 000F000F0C0F0C0F0C0F0C0F0C0F0C079803F001E00E1F7F9E13>I<0F00F0FF0FF0FF0FF01F01 F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F01 F00F01F00787F803FEFF01F8FF18157F941B>III121 D123 D E /FA 6 124 df<00000300000000000780000000000780000000000780000000000FC0000000000FC0000000 000FC0000000001FE0000000001FE0000000001FE00000000037F00000000033F00000000033F0 0000000061F80000000061F80000000061F800000000C0FC00000000C0FC00000001C0FE000000 01807E00000001807E00000003807F00000003003F00000003003F00000007003F80000006001F 80000006001F8000000C001FC000000C000FC000000C000FC0000018000FE000001FFFFFE00000 1FFFFFE000003FFFFFF00000300003F00000300003F00000600001F80000600001F80000600001 F80000C00000FC0000C00000FC0001C00000FE00018000007E00018000007E00038000007F0007 8000003F000FC000007F80FFF80007FFFCFFF80007FFFCFFF80007FFFC2E327EB132>65 D68 D70 D82 D<7FFFFFFFFFE07FFFFFFFFFE07FFFFFFFFFE07F001F800FE07C001F8003E070001F 8000E070001F8000E060001F80006060001F800060E0001F800070E0001F800070C0001F800030 C0001F800030C0001F800030C0001F800030C0001F800030C0001F80003000001F80000000001F 80000000001F80000000001F80000000001F80000000001F80000000001F80000000001F800000 00001F80000000001F80000000001F80000000001F80000000001F80000000001F80000000001F 80000000001F80000000001F80000000001F80000000001F80000000001F80000000001F800000 00001F80000000001F80000000001F80000000001F80000000001F80000000001F80000000001F 80000000003FC00000001FFFFF8000001FFFFF8000001FFFFF80002C317EB030>84 D123 D E /FB 25 121 df<00000F000000003F000000 007F00000003FF0000001FFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFEFFF0000 000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF00 00000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF 0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000F FF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF000000 0FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000 000FFF00007FFFFFFFC07FFFFFFFC07FFFFFFFC07FFFFFFFC07FFFFFFFC0223779B631>49 D<000FFF000000FFFFE00003FFFFFC000FFFFFFE001FFFFFFF803FE07FFFC07FE00FFFE07FF007 FFF0FFF003FFF0FFF801FFF8FFF800FFF8FFF800FFF8FFF8007FFCFFF8007FFCFFF8007FFC7FF0 007FFC3FE0007FFC1FC0007FFC0000007FFC0000007FFC000000FFF8000000FFF8000000FFF000 0001FFF0000001FFE0000003FFC0000007FF80000007FF0000000FFE0000001FF80000001FF000 00003FE00000007F80000000FF00000001FE00000003F8007C0007F0007C000FE0007C001FC000 F8003F8000F8007E0000F800FC0000F801F80001F801FFFFFFF803FFFFFFF807FFFFFFF00FFFFF FFF01FFFFFFFF03FFFFFFFF07FFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFE0FFFFFFFFE0FFFF FFFFE026377BB631>I<0003FF8000001FFFF800007FFFFE0001FFFFFF8003FE07FFC007F801FF E00FF801FFF00FFC00FFF01FFE00FFF81FFF00FFF81FFF00FFF81FFF00FFF81FFF00FFF81FFF00 FFF81FFF00FFF80FFE00FFF007FC01FFF003F801FFF0004001FFE0000003FFC0000007FF800000 0FFF0000003FFE00000FFFF800000FFFE000000FFFF800000FFFFF00000007FFC0000001FFE000 0000FFF00000007FF80000007FFC0000007FFE0000003FFE0000003FFE0300003FFF1FE0003FFF 3FF0003FFF7FF8003FFFFFFC003FFFFFFC003FFFFFFC003FFFFFFC003FFFFFFC003FFEFFFC007F FEFFFC007FFC7FF8007FFC7FF000FFF83FE001FFF01FFC07FFE00FFFFFFFC007FFFFFF8001FFFF FE00007FFFF8000007FF800028377CB631>I<00000007E0000000000FE0000000001FE0000000 003FE0000000003FE0000000007FE000000000FFE000000001FFE000000003FFE000000003FFE0 00000007FFE00000000FFFE00000001FFFE00000003FFFE00000003EFFE00000007CFFE0000000 FCFFE0000001F8FFE0000003F0FFE0000007E0FFE0000007C0FFE000000F80FFE000001F80FFE0 00003F00FFE000007E00FFE000007C00FFE00000F800FFE00001F800FFE00003F000FFE00007E0 00FFE0000FC000FFE0000F8000FFE0001F8000FFE0003F0000FFE0007E0000FFE000FC0000FFE0 00FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0000001FFE0000000 01FFE000000001FFE000000001FFE000000001FFE000000001FFE000000001FFE000000001FFE0 00000001FFE0000007FFFFFFC00007FFFFFFC00007FFFFFFC00007FFFFFFC00007FFFFFFC02A37 7DB631>I<00000001F80000000000000001F80000000000000003FC0000000000000003FC0000 000000000007FE0000000000000007FE0000000000000007FE000000000000000FFF0000000000 00000FFF000000000000001FFF800000000000001FFF800000000000001FFF800000000000003F FFC00000000000003FFFC00000000000007FFFE00000000000007FFFE00000000000007FFFE000 0000000000FFFFF0000000000000F9FFF0000000000001F9FFF8000000000001F0FFF800000000 0001F0FFF8000000000003F0FFFC000000000003E07FFC000000000007E07FFE000000000007C0 3FFE00000000000FC03FFF00000000000F803FFF00000000000F801FFF00000000001F801FFF80 000000001F000FFF80000000003F000FFFC0000000003E000FFFC0000000003E0007FFC0000000 007E0007FFE0000000007C0003FFE000000000FC0003FFF000000000F80003FFF000000000F800 01FFF000000001FFFFFFFFF800000001FFFFFFFFF800000003FFFFFFFFFC00000003FFFFFFFFFC 00000003FFFFFFFFFC00000007E000007FFE00000007C000003FFE0000000FC000003FFF000000 0F8000001FFF0000001F8000001FFF8000001F0000001FFF8000001F0000000FFF8000003F0000 000FFFC000003E00000007FFC000007E00000007FFE000FFFFFC0007FFFFFFF0FFFFFC0007FFFF FFF0FFFFFC0007FFFFFFF0FFFFFC0007FFFFFFF0FFFFFC0007FFFFFFF0443B7DBA4B>65 DI<0000001FFF000070000003FFFFF000F000001FFFFFFC01F00000FF FFFFFF07F00003FFFFFFFFCFF00007FFFF007FFFF0001FFFF0000FFFF0003FFF800003FFF0007F FE000001FFF000FFFC0000007FF001FFF00000003FF003FFE00000001FF007FFC00000001FF007 FFC00000000FF00FFF800000000FF01FFF8000000007F01FFF0000000007F03FFF0000000003F0 3FFE0000000003F03FFE0000000003F07FFE0000000001F07FFE0000000001F07FFC0000000001 F07FFC000000000000FFFC000000000000FFFC000000000000FFFC000000000000FFFC00000000 0000FFFC000000000000FFFC000000000000FFFC000000000000FFFC000000000000FFFC000000 000000FFFC000000000000FFFC0000000000007FFC0000000000007FFC0000000000007FFE0000 000001F07FFE0000000001F03FFE0000000001F03FFE0000000001F03FFF0000000003F01FFF00 00000003F01FFF8000000003E00FFF8000000007E007FFC000000007E007FFC00000000FC003FF E00000001FC001FFF00000001F8000FFFC0000003F00007FFE000000FE00003FFF800001FC0000 1FFFF00007F8000007FFFF007FF0000003FFFFFFFFE0000000FFFFFFFF800000001FFFFFFE0000 000003FFFFF800000000001FFF8000003C3B7BBA47>I<0003FF800380003FFFF8078000FFFFFE 0F8001FFFFFF9F8007FFFFFFFF800FFF00FFFF801FF8001FFF801FE00007FF803FE00001FF803F C00000FF807F8000007F807F8000003F80FF8000003F80FF8000001F80FF8000001F80FFC00000 1F80FFC000000F80FFE000000F80FFF800000F80FFFC00000000FFFFC00000007FFFFE0000007F FFFFE000007FFFFFFE00003FFFFFFFC0003FFFFFFFF0001FFFFFFFF8000FFFFFFFFC0007FFFFFF FE0003FFFFFFFF0001FFFFFFFF80007FFFFFFF80001FFFFFFFC00003FFFFFFE000003FFFFFE000 0001FFFFE00000001FFFF000000003FFF000000000FFF0000000007FF0F80000007FF0F8000000 3FF0F80000003FF0F80000001FF0FC0000001FF0FC0000001FF0FC0000001FE0FE0000001FE0FF 0000003FE0FF8000003FC0FFC000007FC0FFF00000FF80FFFC0001FF00FFFFC00FFE00FFFFFFFF FC00FCFFFFFFF800F83FFFFFF000F007FFFF8000E0007FFC00002C3B7BBA37>83 D<3FFFFFFFFFFFFFC03FFFFFFFFFFFFFC03FFFFFFFFFFFFFC03FFFFFFFFFFFFFC03FFFFFFFFFFF FFC03FFC00FFF803FFC07FE000FFF8007FE07FC000FFF8003FE07F8000FFF8000FE07F0000FFF8 000FE07E0000FFF80007E07E0000FFF80007E07C0000FFF80003E07C0000FFF80003E07C0000FF F80003E07C0000FFF80003E07C0000FFF80003E0F80000FFF80001F0F80000FFF80001F0F80000 FFF80001F0F80000FFF80001F0F80000FFF80001F0000000FFF8000000000000FFF80000000000 00FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF800000000 0000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000 000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF80000 00000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF800 0000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8 000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000001FFFFF FFFFC000001FFFFFFFFFC000001FFFFFFFFFC000001FFFFFFFFFC000001FFFFFFFFFC0003C3A7C B945>I<001FFF80000001FFFFF8000003FFFFFE000007FFFFFF00000FFC07FFC0001FFE01FFE0 001FFE00FFE0001FFE007FF0001FFE007FF0001FFE003FF8001FFE003FF8000FFC003FF80007F8 003FF80001E0003FF8000000003FF80000001FFFF8000007FFFFF800007FFFFFF80001FFFFFFF8 0007FFF03FF8000FFF803FF8001FFE003FF8003FFC003FF8007FF8003FF8007FF0003FF800FFE0 003FF800FFE0003FF800FFE0003FF800FFE0003FF800FFE0007FF800FFF0007FF8007FF000FFF8 007FF803FFFC003FFE0FDFFFF01FFFFF9FFFF00FFFFF0FFFF003FFFC07FFF0007FE001FFF02C26 7DA530>97 D<0001FFF000000FFFFF00003FFFFF8000FFFFFFC001FFE07FE007FF00FFF00FFE00 FFF00FFC00FFF01FFC00FFF03FF800FFF03FF800FFF07FF8007FE07FF0003FC07FF0000F00FFF0 000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FF F0000000FFF00000007FF00000007FF80000007FF80000003FF80000003FFC0000F81FFE0000F8 0FFE0001F80FFF0003F007FFC007E003FFF81FC000FFFFFF80003FFFFF00000FFFFC000001FFE0 0025267DA52C>99 D<000000001FE0000000003FFFE0000000003FFFE0000000003FFFE0000000 003FFFE0000000003FFFE00000000001FFE00000000000FFE00000000000FFE00000000000FFE0 0000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE000000000 00FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE000 00000000FFE0000001FFC0FFE000001FFFF8FFE000007FFFFEFFE00001FFFFFFFFE00003FFE03F FFE00007FF800FFFE0000FFE0003FFE0001FFC0001FFE0001FFC0000FFE0003FF80000FFE0003F F80000FFE0007FF80000FFE0007FF00000FFE0007FF00000FFE000FFF00000FFE000FFF00000FF E000FFF00000FFE000FFF00000FFE000FFF00000FFE000FFF00000FFE000FFF00000FFE000FFF0 0000FFE000FFF00000FFE000FFF00000FFE0007FF00000FFE0007FF00000FFE0007FF00000FFE0 003FF80000FFE0003FF80000FFE0001FF80001FFE0001FFC0003FFE0000FFE0007FFE00007FF00 1FFFF00003FFC07FFFFF8001FFFFFFFFFF80007FFFFCFFFF80001FFFF0FFFF800003FF80FFFF80 313C7DBB37>I<0001FFC000001FFFF800007FFFFE0000FFFFFF0003FFC1FF8007FF007FC00FFE 003FE00FFC001FF01FF8001FF03FF8000FF83FF8000FF87FF0000FF87FF0000FFC7FF00007FCFF F00007FCFFFFFFFFFCFFFFFFFFFCFFFFFFFFFCFFFFFFFFFCFFF0000000FFF0000000FFF0000000 FFF0000000FFF00000007FF00000007FF00000007FF80000003FF800007C3FF800007C1FFC0000 FC0FFE0000F807FF0001F803FF8007F001FFF01FE000FFFFFFC0003FFFFF00000FFFFC000000FF E00026267DA52D>I<007F8000000000FFFF8000000000FFFF8000000000FFFF8000000000FFFF 8000000000FFFF800000000007FF800000000003FF800000000003FF800000000003FF80000000 0003FF800000000003FF800000000003FF800000000003FF800000000003FF800000000003FF80 0000000003FF800000000003FF800000000003FF800000000003FF800000000003FF8000000000 03FF800000000003FF803FF8000003FF81FFFE000003FF87FFFF800003FF8FFFFFC00003FF9F83 FFC00003FFBE00FFE00003FFF800FFE00003FFF0007FF00003FFE0007FF00003FFE0007FF00003 FFC0007FF00003FFC0007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007F F00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF 80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF0 0003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80 007FF000FFFFFE1FFFFFC0FFFFFE1FFFFFC0FFFFFE1FFFFFC0FFFFFE1FFFFFC0FFFFFE1FFFFFC0 323C7DBB37>104 D<00F80003FE0007FF000FFF000FFF801FFF801FFF801FFF801FFF800FFF80 0FFF0007FF0003FE0000F800000000000000000000000000000000000000000000000000000000 007F80FFFF80FFFF80FFFF80FFFF80FFFF8007FF8003FF8003FF8003FF8003FF8003FF8003FF80 03FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF80 03FF8003FF8003FF8003FF8003FF8003FF8003FF80FFFFFCFFFFFCFFFFFCFFFFFCFFFFFC163D7D BC1C>I<007F80FFFF80FFFF80FFFF80FFFF80FFFF8007FF8003FF8003FF8003FF8003FF8003FF 8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF 8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF 8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF8003FF 8003FF8003FF8003FF8003FF80FFFFFEFFFFFEFFFFFEFFFFFEFFFFFE173C7DBB1C>108 D<00FF003FF80007FF0000FFFF01FFFE003FFFC000FFFF07FFFF80FFFFF000FFFF0FFFFFC1FFFF F800FFFF1F83FFC3F07FF800FFFF3E00FFE7C01FFC0007FF7800FFEF001FFC0003FFF0007FFE00 0FFE0003FFE0007FFC000FFE0003FFE0007FFC000FFE0003FFC0007FF8000FFE0003FFC0007FF8 000FFE0003FF80007FF0000FFE0003FF80007FF0000FFE0003FF80007FF0000FFE0003FF80007F F0000FFE0003FF80007FF0000FFE0003FF80007FF0000FFE0003FF80007FF0000FFE0003FF8000 7FF0000FFE0003FF80007FF0000FFE0003FF80007FF0000FFE0003FF80007FF0000FFE0003FF80 007FF0000FFE0003FF80007FF0000FFE0003FF80007FF0000FFE0003FF80007FF0000FFE0003FF 80007FF0000FFE0003FF80007FF0000FFE0003FF80007FF0000FFE0003FF80007FF0000FFE0003 FF80007FF0000FFE0003FF80007FF0000FFE00FFFFFE1FFFFFC3FFFFF8FFFFFE1FFFFFC3FFFFF8 FFFFFE1FFFFFC3FFFFF8FFFFFE1FFFFFC3FFFFF8FFFFFE1FFFFFC3FFFFF84D267DA554>I<00FF 003FF80000FFFF01FFFE0000FFFF07FFFF8000FFFF0FFFFFC000FFFF1F83FFC000FFFF3E00FFE0 0007FF7800FFE00003FFF0007FF00003FFE0007FF00003FFE0007FF00003FFC0007FF00003FFC0 007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF000 03FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF8000 7FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003 FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF000FFFFFE1FFF FFC0FFFFFE1FFFFFC0FFFFFE1FFFFFC0FFFFFE1FFFFFC0FFFFFE1FFFFFC032267DA537>I<0000 FFC00000000FFFFC0000003FFFFF000000FFFFFFC00001FFC0FFE00007FE001FF80007FC000FF8 000FF80007FC001FF80007FE003FF80007FF003FF00003FF007FF00003FF807FF00003FF807FF0 0003FF807FF00003FF80FFF00003FFC0FFF00003FFC0FFF00003FFC0FFF00003FFC0FFF00003FF C0FFF00003FFC0FFF00003FFC0FFF00003FFC0FFF00003FFC07FF00003FF807FF00003FF807FF0 0003FF803FF80007FF003FF80007FF001FF80007FE000FFC000FFC000FFC000FFC0007FF003FF8 0003FFC0FFF00000FFFFFFC000003FFFFF0000000FFFFC00000001FFE000002A267DA531>I<00 7F80FFE00000FFFF8FFFFC0000FFFFBFFFFF8000FFFFFFFFFFC000FFFFFF03FFE000FFFFF800FF F00003FFE0007FF80003FFC0003FFC0003FF80001FFC0003FF80001FFE0003FF80000FFE0003FF 80000FFF0003FF80000FFF0003FF80000FFF0003FF800007FF8003FF800007FF8003FF800007FF 8003FF800007FF8003FF800007FF8003FF800007FF8003FF800007FF8003FF800007FF8003FF80 0007FF8003FF800007FF8003FF80000FFF0003FF80000FFF0003FF80000FFF0003FF80001FFE00 03FF80001FFE0003FF80003FFC0003FFC0003FFC0003FFF0007FF80003FFF801FFF00003FFFF07 FFE00003FFFFFFFF800003FFBFFFFF000003FF8FFFFC000003FF80FFC0000003FF800000000003 FF800000000003FF800000000003FF800000000003FF800000000003FF800000000003FF800000 000003FF800000000003FF800000000003FF800000000003FF800000000003FF8000000000FFFF FE00000000FFFFFE00000000FFFFFE00000000FFFFFE00000000FFFFFE0000000031377EA537> I<00FF03FC00FFFF0FFF00FFFF1FFFC0FFFF3FFFE0FFFF7E3FE0FFFF7C7FF007FFF87FF003FFF0 7FF003FFE07FF003FFE07FF003FFC03FE003FFC01FC003FFC00F8003FFC0000003FF80000003FF 80000003FF80000003FF80000003FF80000003FF80000003FF80000003FF80000003FF80000003 FF80000003FF80000003FF80000003FF80000003FF80000003FF80000003FF80000003FF800000 03FF80000003FF800000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF000024267EA5 29>114 D<007FF83803FFFFF80FFFFFF81FFFFFF83FE01FF83F8003F87F0001F87E0001F8FE00 00F8FE0000F8FF0000F8FFC00000FFFC0000FFFFF000FFFFFE007FFFFF807FFFFFE03FFFFFF01F FFFFF80FFFFFFC03FFFFFE00FFFFFE001FFFFF00007FFF000007FFF80001FFF80000FFFC00007F FC00007FFE00007FFE00007EFF0000FEFFC001FCFFF00FF8FFFFFFF0FFFFFFE0F8FFFF80E01FFC 0020267DA527>I<000F8000000F8000000F8000000F8000000F8000001F8000001F8000001F80 00001F8000003F8000003F8000007F8000007F800000FF800001FF800003FF800007FF80001FFF FFF0FFFFFFF0FFFFFFF0FFFFFFF0FFFFFFF003FF800003FF800003FF800003FF800003FF800003 FF800003FF800003FF800003FF800003FF800003FF800003FF800003FF800003FF800003FF8000 03FF800003FF800003FF800003FF807C03FF807C03FF807C03FF807C03FF807C03FF807C03FF80 7C03FF807C01FFC0F801FFC0F800FFE3F000FFFFF0007FFFE0001FFF800003FE001E377EB626> I<007F80000FF000FFFF801FFFF000FFFF801FFFF000FFFF801FFFF000FFFF801FFFF000FFFF80 1FFFF00007FF8000FFF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF000 03FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF8000 7FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003 FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF8000FF F00003FF8000FFF00003FF8001FFF00003FF8001FFF00003FF8003FFF00001FF800FFFF80001FF E03F7FFFC000FFFFFE7FFFC0007FFFFC7FFFC0001FFFF07FFFC00003FFC07FFFC032267DA537> I120 D E end %%EndProlog %%BeginSetup %%Feature: *Resolution 300dpi TeXDict begin %%EndSetup %%Page: 0 1 0 0 bop 263 762 a FB(A)33 b(T)-8 b(utorial)32 b(on)i(Action)f(Seman)m(tics) 778 963 y FA({)22 b(DRAFT)f({)771 1163 y Fz(P)o(eter)15 b(D.)h(Mosses)1115 1145 y Fy(1)625 1227 y Fz(Computer)g(Science)g(Departmen)o(t)760 1291 y(Aarh)o(us)g(Univ)o(ersit)o(y)683 1355 y(Ny)g(Munk)o(egade)g(Bldg.)g (540)632 1419 y(DK{8000)i(Aarh)o(us)f(C,)f(Denmark)810 1545 y(Octob)q(er)h(1992)459 1652 y Fx(N.B.)e Fz(This)i(draft)g(is)g Fw(inc)n(omplete)k Fz(and)c Fw(unp)n(olishe)n(d)5 b Fz(.)238 1759 y(It)16 b(is)h Fw(not)h(to)f(b)n(e)h(c)n(opie)n(d)j Fz(without)d(the)e (written)g(p)q(ermission)i(of)f(the)f(author.)64 2774 y Fv(1)83 2789 y Fu(In)o(ternet:)j(p)q(dmosses@daimi.aau.dk)p eop %%Page: 1 2 1 1 bop -42 357 a Ft(Con)m(ten)m(ts)-42 630 y Fs(1)43 b(In)o(tro)q(duction) 1507 b(1)27 693 y Fr(1.1)45 b(Motiv)m(ation)f Fq(:)22 b(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)75 b Fr(1)27 755 y(1.2)45 b(Requiremen)o(ts)26 b Fq(:)d(:)f(:)h(:)f(:)g(:)h(:)f(:) g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)75 b Fr(2)27 817 y(1.3)45 b(F)l(eatures)24 b Fq(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:) h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)75 b Fr(3)-42 924 y Fs(2)43 b(Concepts)1585 b(5)27 986 y Fr(2.1)45 b(Syn)o(tax)19 b Fq(:)j(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)h(:)f(:)h(:)75 b Fr(5)131 1048 y(2.1.1)51 b(Concrete)15 b(Syn)o(tax)35 b Fq(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)75 b Fr(6)131 1111 y(2.1.2)51 b(Abstract)14 b(Syn)o(tax)39 b Fq(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)75 b Fr(6)131 1173 y(2.1.3)51 b(Con)o(text-Sensitiv)o(e)14 b(Syn)o(tax)39 b Fq(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)75 b Fr(7)27 1235 y(2.2)45 b(Seman)o(tics)28 b Fq(:)22 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)75 b Fr(8)131 1297 y(2.2.1)51 b(Seman)o(tic)13 b(F)l(unctions)f Fq(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h (:)f(:)h(:)75 b Fr(8)131 1359 y(2.2.2)51 b(Seman)o(tic)13 b(En)o(tities)i Fq(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)75 b Fr(9)27 1421 y(2.3)45 b(Pragmatics)37 b Fq(:)22 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)52 b Fr(11)-42 1529 y Fs(3)43 b(An)17 b(Illustrativ)o(e)e(Exampl)o(e)1214 b(13)27 1591 y Fr(3.1)45 b(Abstract)15 b(Syn)o(tax)42 b Fq(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)52 b Fr(14)131 1653 y(3.1.1)f(Expressions)26 b Fq(:)c(:)g(:)h(:)f(:)g(:)h(:)f(:) g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)52 b Fr(15)131 1715 y(3.1.2)f(Statemen)o(ts)36 b Fq(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)52 b Fr(16)131 1777 y(3.1.3)f(Declarations)10 b Fq(:)22 b(:)g(:)h(:)f(:)g(:)h(:) f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)52 b Fr(16)131 1839 y(3.1.4)f(Programs)30 b Fq(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)52 b Fr(17)27 1901 y(3.2)45 b(Seman)o(tic)14 b(F)l(unctions)i Fq(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)52 b Fr(17)131 1963 y(3.2.1)f(Expressions)26 b Fq(:)c(:)g(:)h(:)f(:)g(:)h(:)f(:) g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)52 b Fr(19)131 2025 y(3.2.2)f(Statemen)o(ts)36 b Fq(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)52 b Fr(23)131 2088 y(3.2.3)f(Declarations)10 b Fq(:)22 b(:)g(:)h(:)f(:)g(:)h(:) f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)52 b Fr(26)131 2150 y(3.2.4)f(Programs)30 b Fq(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)52 b Fr(30)-42 2257 y Fs(4)43 b(Conclusion)1518 b(32)-42 2365 y(A)29 b(An)17 b(Illustrativ)o(e)e(Exampl)o(e,)f(ctd.)1098 b(33)-42 2472 y(B)32 b(Action)17 b(Notation)1397 b(38)-42 2580 y(C)31 b(Data)18 b(Notation)1439 b(49)897 2914 y Fr(i)p eop %%Page: 0 3 0 2 bop 853 189 a Fs(Abstract)79 301 y Fr(F)l(ormal)11 b(seman)o(tics)g(is)h (a)h(topic)g(of)f(ma)s(jor)f(imp)q(ortance)g(in)i(the)h(study)f(of)f (programming)e(languages.)18 b(Its)8 363 y(applications)d(include)h(do)q (cumen)o(ting)e(language)h(design,)g(establishing)g(standards)g(for)g (implemen)o(tatio)o(ns,)8 425 y(reasoning)g(ab)q(out)g(programs,)d(and)k (generating)e(compilers.)79 487 y(This)i(tutorial)f(is)h(ab)q(out)g Fp(action)i(semantics)t Fr(,)d(a)h(recen)o(tly-dev)o(elop)q(ed)i(framew)o (ork)c(for)i(formal)e(seman-)8 549 y(tics.)28 b(The)18 b(primary)e(aim)g(of)h (action)g(seman)o(tics)f(is)i(to)f(allo)o(w)f Fp(useful)22 b Fr(seman)o(tic)17 b(descriptions)g(of)g Fp(r)n(e)n(alistic)8 611 y Fr(programming)12 b(languages.)79 673 y(Action)k(seman)o(tics)f(com)o (bines)g(formalit)o(y)f(with)i(man)o(y)f(go)q(o)q(d)h(pragmatic)f(features.) 24 b(Regarding)16 b(com-)8 735 y(prehensibilit)o(y)c(and)h(accessibilit)o(y)l (,)e(for)h(instance,)g(action)g(seman)o(tic)f(descriptions)h(comp)q(ete)g (with)g(informal)8 797 y(language)i(descriptions.)19 b(Action)14 b(seman)o(tic)f(descriptions)h(scale)g(up)h(smo)q(othly)e(from)g(small)f (example)h(lan-)8 860 y(guages)f(to)f(full-blo)o(wn)g(practical)f(languages.) 18 b(The)12 b(addition)f(of)h(new)g(constructs)f(to)g(a)h(describ)q(ed)h (language)8 922 y(do)q(es)i(not)f(require)h(reform)o(ulation)c(of)k(the)f (already-giv)o(en)g(description.)19 b(An)c(action)f(seman)o(tic)f (description)8 984 y(of)g(one)h(language)f(can)h(mak)o(e)e(widespread)h (reuse)h(of)f(that)g(of)g(another,)g(related)g(language.)19 b(All)13 b(these)g(prag-)8 1046 y(matic)g(features)i(are)f(highly)g (desirable.)20 b(Action)14 b(seman)o(tics)f(is,)h(ho)o(w)o(ev)o(er,)f(the)i Fp(only)k Fr(seman)o(tic)12 b(framew)o(ork)8 1108 y(that)j(enjo)o(ys)g(them!) 79 1170 y(Action)d(seman)o(tics)f(is)h Fp(c)n(omp)n(ositional)5 b Fr(,)12 b(lik)o(e)g(denotational)f(seman)o(tics.)18 b(The)13 b(main)e(di\013erence)i(b)q(et)o(w)o(een)8 1232 y(action)j(seman)o(tics)e (and)i(denotational)f(seman)o(tics)g(concerns)h(the)h(univ)o(erse)f(of)g (seman)o(tic)e(en)o(tities:)21 b(action)8 1294 y(seman)o(tics)c(uses)h(en)o (tities)f(called)h Fp(actions)t Fr(,)g(rather)g(than)g(the)g(higher-order)g (functions)g(used)h(with)e(deno-)8 1356 y(tational)f(seman)o(tics.)26 b(Actions)18 b(are)g(inheren)o(tly)f(more)g(op)q(erational)f(than)i (functions:)25 b(when)18 b Fp(p)n(erforme)n(d)5 b Fr(,)8 1418 y(actions)15 b(pro)q(cess)g(information)d Fp(gr)n(adual)r(ly)t Fr(.)79 1481 y(Primitiv)o(e)k(actions,)j(and)h(the)f(v)m(arious)g(w)o(a)o(ys) g(of)f(com)o(bining)g(actions,)h(corresp)q(ond)h(to)f(fundamen)o(tal)8 1543 y(concepts)14 b(of)f(information)d(pro)q(cessing.)19 b(Action)13 b(seman)o(tics)e(pro)o(vides)i(a)f(particular)g(notation)g(for)h(express-)8 1605 y(ing)19 b(actions.)32 b(The)20 b(sym)o(b)q(ols)e(of)h(action)g (notation)f(are)h(suggestiv)o(e)g(w)o(ords,)g(rather)g(than)h(cryptic)f (signs,)8 1667 y(whic)o(h)i(mak)o(es)e(it)h(p)q(ossible)g(to)g(get)g(a)g (broad)h(impression)d(of)i(an)h(action)f(seman)o(tic)e(description)j(from)d (a)8 1729 y(sup)q(er\014cial)e(reading,)e(ev)o(en)i(without)e(previous)i(exp) q(erience)g(of)f(action)g(seman)o(tics.)j(The)e(action)e Fp(c)n(ombina-)8 1791 y(tors)t Fr(,)19 b(a)g(notable)f(feature)g(of)h(action)f(notation,)f(ob) q(ey)j(desirable)e(algebraic)f(la)o(ws)h(that)g(can)h(b)q(e)g(used)h(for)8 1853 y(reasoning)15 b(ab)q(out)g(seman)o(tic)e(equiv)m(alence.)79 1915 y(This)21 b(tutorial)e(pro)o(vides)i(a)g(quic)o(k)g(\(half-da)o(y\))f (in)o(tro)q(duction)h(to)f(action)h(seman)o(tics.)37 b(It)21 b(should)g(b)q(e)8 1977 y(accessible)c(to)f(senior)h(undergraduates,)g(and)g (to)g(professional)e(programmers.)22 b(No)17 b(previous)g(kno)o(wledge)8 2039 y(of)h(formal)e(seman)o(tics)g(is)h(assumed.)28 b(F)l(or)17 b(further)h(study)l(,)h(a)f(full)f(exp)q(osition)g(of)h(the)g(framew)o(ork)e (and)i(an)8 2102 y(extended)e(example)f(are)f(pro)o(vided)h(in)g([Mos92)o(].) 79 2164 y(Chapter)c(1)h(sk)o(etc)o(hes)g(the)g(bac)o(kground)g(for)f(action)g (seman)o(tics,)f(motiv)m(ating)g(the)i(formal)d(description)i(of)8 2226 y(programming)i(languages)j(b)o(y)h(considering)g(the)f(requiremen)o(ts) g(of)g(v)m(arious)g(p)q(oten)o(tial)g(users.)25 b(Chapter)16 b(2)8 2288 y(recalls)j(the)g(notions)g(of)g(abstract)g(syn)o(tax)f(and)i (comp)q(ositional)d(seman)o(tics,)h(and)i(in)o(tro)q(duces)f(the)h(no)o(v)o (el)8 2350 y(concept)d(of)f Fp(actions)j Fr(as)d(used)h(in)f(action)f(seman)o (tics.)21 b(Chapter)16 b(3)f(tak)o(es)h(a)g(w)o(alk)f(through)g(an)i (illustrativ)o(e)8 2412 y(description,)12 b(explaining)e(all)h(the)g (notation)g(that)f(it)h(uses.)19 b(Chapter)11 b(4)g(assesses)h(the)f (pragmatic)e(qualities)h(of)8 2474 y(action)h(seman)o(tic)e(descriptions,)i (and)h(compares)d(the)j(framew)o(ork)d(to)h(VDM)h(and)g(RAISE.)h(The)g(App)q (endices)8 2536 y(pro)o(vide)20 b(a)h(full)f(algebraic)f(sp)q(eci\014cation)i (of)f(the)g(sp)q(ecial)h(notation)e(used,)j(together)e(with)g(an)h(informal)8 2598 y(summary)13 b(of)i(the)g(standard)g(notation.)p eop %%Page: 1 4 1 3 bop -42 334 a FB(Chapter)35 b(1)-42 554 y Ft(In)m(tro)s(duction)-42 782 y Fr(This)12 b(c)o(hapter)g(pro)o(vides)g(some)f(bac)o(kground)h(for)g (the)g(topic)g(of)g(this)g(tutorial,)e(namely)h(the)i(action)e(seman)o(tic) -42 844 y(description)i(of)f(programming)e(languages.)18 b(W)l(e)13 b(start)f(b)o(y)g(iden)o(tifying)g(some)g(imp)q(ortan)o(t)e(uses)k(for)e (descrip-)-42 906 y(tions)f(of)h(programmi)o(ng)d(languages.)18 b(Although)11 b(v)m(arious)h(uses)g(require)f(di\013eren)o(t)g(features)h(of) f(descriptions,)-42 968 y(these)j(requiremen)o(ts)e(are)g(not)h(necessarily)g (con\015icting.)18 b(F)l(ormalit)o(y)10 b(is)j(a)g(particularly)e(imp)q (ortan)o(t)g(feature.)-42 1128 y Fo(1.1)70 b(Motiv)l(ation)-42 1237 y Fr(Programming)12 b(languages)j(are)h(arti\014cial)e(languages.)21 b(Programs)13 b(written)i(in)h(them)e(are)i(used)g(to)g(con)o(trol)-42 1299 y(the)j(execution)g(of)f(computers.)29 b(There)18 b(are)h(man)o(y)e (programmi)o(ng)f(languages)h(in)i(existence.)30 b(Some)18 b(are)-42 1361 y(simple,)13 b(in)o(tended)h(for)f(sp)q(ecial)h(purp)q(oses;)g (others)g(are)f(complex)g(and)h(general-purp)q(ose,)g(for)f(use)h(in)g(a)f (wide)-42 1423 y(v)m(ariet)o(y)i(of)g(applications.)29 1485 y(Ev)o(en)j(though)f(programmi)o(ng)d(languages)j(lac)o(k)g(man)o(y)e(of)i (the)h(features)f(of)g(natural)f(languages,)h(suc)o(h)-42 1547 y(as)f(v)m(agueness,)g(it)f(is)g(not)h(at)f(all)f(easy)i(to)f(giv)o(e)g (accurate,)g(comprehensiv)o(e)g(descriptions)h(of)f(them.)20 b(Whic)o(h)-42 1610 y(applications)c(require)h(descriptions)g(of)g(programmi) o(ng)d(languages|and)k(hence)g(motiv)m(ate)d(the)i(study)h(of)-42 1672 y(appropriate)d(framew)o(orks)d(for)j(suc)o(h)g(descriptions?)29 1734 y(First,)e(there)h(is)f(the)i(programm)o(ing)c(language)i Fp(design)k Fr(pro)q(cess.)j(Designers)13 b(need)i(to)e(record)i(decisions) -42 1796 y(ab)q(out)f(particular)e(language)h(constructs,)h(esp)q(ecially)f (when)h(the)g(design)g(is)f(a)g(team)f(e\013ort.)19 b(This)13 b(amoun)o(ts)-42 1858 y(to)j(giving)f(a)h(partial)e(description)i(of)f(the)i (language.)k(A)o(t)16 b(a)g(later)f(stage,)g(the)h(form)o(ulation)d(of)j(a)f (complete)-42 1920 y(language)f(description)g(ma)o(y)f(b)q(e)i(useful)g(for)f (dra)o(wing)f(atten)o(tion)h(to)f(neglected)i(details,)f(and)g(for)g(rev)o (ealing)-42 1982 y(irregularities)f(in)i(the)h(o)o(v)o(erall)d(design.)29 2044 y(Once)g(a)f(language)g(has)g(b)q(een)i(designed,)f(it)e(usually)h(gets) g Fp(implemente)n(d)5 b Fr(,)11 b(although)h(in)g(practice,)g(design)-42 2106 y(and)22 b(implemen)o(tati)o(on)d(are)i(often)g(in)o(terlea)o(v)o(ed)f (and)i(iterated.)37 b(A)22 b(comprehensiv)o(e)e(description)h(of)g(the)-42 2168 y(language)e(is)f(needed)j(to)d(con)o(v)o(ey)h(the)g(in)o(ten)o(tions)f (of)g(the)h(language)g(designers)f(to)h(the)g(implemen)o(tors|)-42 2231 y(unless)f(the)g(designer)f(and)h(the)g(implemen)o(tor)c(are)j(the)h (same)e(p)q(erson,)i(of)f(course.)27 b(It)17 b(is)h(also)e(needed)j(for)-42 2293 y(setting)14 b(a)f(de\014nitiv)o(e)h Fp(standar)n(d)19 b Fr(for)13 b(implemen)o(tati)o(ons,)e(so)j(that)f(programs)f(can)i(b)q(e)g (transp)q(orted)g(b)q(et)o(w)o(een)-42 2355 y(di\013eren)o(t)h(implemen)o (tati)o(ons)d(that)j(conform)e(to)i(the)g(standard,)g(without)f(mo)q (di\014cation.)29 2417 y(A)j(programmer)d(needs)j(a)g(description)f(of)g(an)o (y)h(new)g(language)f(in)h(order)f(to)g(relate)g(it)h(to)f(previously-)-42 2479 y(kno)o(wn)g(ones,)g(and)g(to)g(understand)g(it)f(in)h(terms)f(of)g (familiar)e(concepts.)23 b(The)16 b(programmer)d(also)i(needs)i(a)-42 2541 y(description)f(as)g(a)g(basis)f(for)h Fp(r)n(e)n(asoning)i Fr(ab)q(out)e(the)h(correctness)f(of)f(particular)g(programs)f(in)i(relation) f(to)-42 2603 y(their)g(sp)q(eci\014cations,)g(and)g(for)g(justifying)f (program)f(transformatio)o(ns.)29 2665 y(Finally)l(,)18 b(theoreticians)f (can)h(obtain)g(new)h Fp(insight)j Fr(in)o(to)17 b(the)i(general)e(nature)i (of)f(programmi)o(ng)d(lan-)-42 2727 y(guages)h(b)o(y)g(dev)o(eloping)g (descriptions)f(of)h(them.)22 b(This)15 b(insigh)o(t)g(can)i(then)f(b)q(e)h (exploited)e(in)h(the)h(design)f(of)-42 2789 y(new,)g(and)f(p)q(erhaps)h (more)e(elegan)o(t,)f(programming)f(languages.)892 2914 y(1)p eop %%Page: 2 5 2 4 bop 8 -137 a Fr(2)1181 b Fn(CHAPTER)15 b(1.)35 b(INTR)o(ODUCTION)79 12 y Fr(So)17 b(w)o(e)g(see)g(that)g(there)g(are)g(plen)o(t)o(y)f(of)h (applications)f(for)g(descriptions)h(of)g(programmi)o(ng)d(languages.)8 74 y(But)e(not)g(all)f(kinds)h(of)g(description)g(are)f(suitable)h(for)f(all) g(purp)q(oses.)20 b(The)12 b(v)m(arious)g(applications)e(men)o(tioned)8 136 y(ab)q(o)o(v)o(e)15 b(require)g(di\013eren)o(t)g(prop)q(erties)f(of)h (descriptions,)f(as)h(w)o(e)g(consider)g(next.)8 317 y Fo(1.2)70 b(Requiremen)n(ts)8 430 y Fr(Whic)o(h)15 b(prop)q(erties)g(migh)o(t)d (language)j(designers)f(require)h(of)g(language)f(descriptions?)20 b(W)l(ell,)14 b(design)h(is)f(an)8 492 y(iterativ)o(e)d(pro)q(cess,)h(so)g (to)f(start)g(with,)h(designers)f(need)i Fp(p)n(artial)k Fr(descriptions)12 b(that)f(can)h(easily)f(b)q(e)i(extended)8 554 y(and)21 b(mo)q(di\014ed.)35 b(They)21 b(also)e(need)j(descriptions)e(that)f(pro)o(vide)h(clear)g(and)h (concise)g(do)q(cumen)o(tation)d(of)8 616 y(individual)13 b(language)f (design)i(decisions.)19 b(F)l(or)12 b(econom)o(y)g(of)h(e\013ort,)f(they)i (migh)o(t)d(w)o(an)o(t)h(to)h(b)q(e)h(able)f(to)g(reuse)8 678 y(parts)k(of)g(descriptions)f(of)h(existing)f(languages)g(in)h(the)h (description)e(of)h(a)g(new)g(language.)26 b(Finally)l(,)16 b(their)8 740 y(completed)d(language)h(description)f(should)i(pro)o(vide)e (an)h(appropriate)g(basis)f(for)h(con)o(v)o(eying)f(the)i(design)f(to)8 802 y(the)i(implemen)o(tor)o(s,)c(and)k(for)e(setting)g(standards.)79 864 y(The)20 b(implemen)o(tors)d(of)j(a)g(language)f(require)h(a)g Fp(c)n(omplete)j Fr(and)d(unam)o(biguous)f(description)h(of)f(it|)8 926 y(except)k(that)e(certain)g(features,)i(suc)o(h)f(as)g(the)g(order)g(of)f (sub)q(expression)i(ev)m(aluation,)f(ma)o(y)e(ha)o(v)o(e)i(b)q(een)8 989 y(delib)q(erately)13 b(left)f(unsp)q(eci\014ed.)21 b(Explicit)12 b(indication)g(of)h(implemen)o(tat)o(ion)d(tec)o(hniques)j(in)g(the)h (description)8 1051 y(ma)o(y)j(b)q(e)i(helpful,)h(but)e(it)g(migh)o(t)f (discourage)h(alternativ)o(e,)f(p)q(erhaps)i(more)e(e\016cien)o(t,)i (implemen)o(tatio)o(ns.)8 1113 y(Ideally)l(,)e(the)h(conformance)e(of)g(a)h (purp)q(orted)h(implemen)o(tat)o(ion)c(to)i(a)h(standard)g(imp)q(osed)f(b)o (y)h(a)g(language)8 1175 y(description)e(should)g(b)q(e)h(v)o(eri\014able.)79 1237 y(A)11 b(long-term)d(aim)h(is)h(to)g(generate)h(complete,)f(correct,)g (and)h(e\016cien)o(t)g(implemen)o(tat)o(ions)d(automatical)o(ly)8 1299 y(from)19 b(language)h(descriptions,)g(in)h(the)f(same)f(w)o(a)o(y)h (that)f(parsers)h(can)h(b)q(e)g(generated)f(from)f(grammars)o(.)8 1361 y(There)k(ha)o(v)o(e)f(already)f(b)q(een)j(some)d(encouraging)h(exp)q (erimen)o(ts)f(in)h(this)g(direction.)40 b(This)22 b(application)8 1423 y(requires)15 b(that)g(the)g(language)f(descriptions)h(can)g(b)q(e)h (directly)f(related)f(to)h(mac)o(hine)f(op)q(eration.)79 1485 y(What)i(do)g(programmers)d(require?)24 b(A)16 b(language)g(description)g (should)g(b)q(e)h(easy)f(to)g(understand,)h(and)8 1547 y(to)i(relate)f(to)h (familiar)d(programmi)o(ng)g(concepts,)k(without)f(a)f(ma)s(jor)f(in)o(v)o (estmen)o(t)g(of)i(e\013ort)f(in)h(learning)8 1610 y(ab)q(out)14 b(the)h(description)f(tec)o(hnique)g(itself.)19 b(It)14 b(should)g(supp)q (ort)h(program)d(v)o(eri\014cation.)18 b(And)d(it)e(shouldn't)8 1672 y(tak)o(e)i(up)g(to)q(o)g(m)o(uc)o(h)f(space)i(on)f(the)g(shelf)g Fq(:)8 b(:)g(:)79 1734 y Fr(Theoreticians)15 b(ma)o(y)g(require)h(clear)g (and)g(elegan)o(t)g(foundations)f(for)h(the)g(exploited)g(description)g(tec)o (h-)8 1796 y(nique,)f(to)e(supp)q(ort)h(tractable)f(reasoning)g(ab)q(out)h (equiv)m(alence)h(and)g(other)e(program)f(features.)19 b(They)c(ma)o(y)8 1858 y(tak)o(e)g(a)f Fp(pr)n(escriptive)k Fr(view)d(of)g(language)f (description,)g(considering)g(only)h(a)g(restricted)f(class)g(of)h(program-)8 1920 y(ming)d(languages|those)h(amenable)g(to)g(their)g(fa)o(v)o(ourite)f (description)h(tec)o(hnique|in)i(the)e(hop)q(e)i(that)e(this)8 1982 y(will)19 b(prev)o(en)o(t)h(the)g(design)f(of)h(`big,)g(bad,)h(and)f (ugly')f(languages.)33 b(Or)20 b(they)g(ma)o(y)e(tak)o(e)h(a)h(more)e(lib)q (eral,)8 2044 y Fp(descriptive)k Fr(view,)e(requiring)e(a)g(univ)o(ersal)g (description)h(tec)o(hnique)g(that)f(can)h(cop)q(e)h(with)e(an)o(y)h (conceiv-)8 2106 y(able)i(programming)d(language,)j(and)g(hoping)g(that)g(p)q (o)q(or)g(language)f(design)h(will)f(b)q(e)h(eviden)o(t)g(from)f(its)8 2168 y(description.)79 2231 y(It)13 b(seems)e(highly)i(unlik)o(ely)e(that)h (all)g(the)h(ab)q(o)o(v)o(e)f(requiremen)o(ts)f(can)i(b)q(e)h(fully)e (satis\014ed)g(sim)o(ultaneously)l(.)8 2293 y(Certainly)k(none)h(of)f(the)h (previously)f(a)o(v)m(ailable)f(framew)o(orks)f(app)q(ears)j(to)f(b)q(e)h (suitable)f(for)g(use)h(in)f(all)g(the)8 2355 y(ab)q(o)o(v)o(e)g (applications.)23 b(This)16 b(has)g(led)h(to)e(the)i(prop)q(osal)f(of)g (so-called)g Fp(c)n(omplementary)k Fr(language)c(descrip-)8 2417 y(tions,)g(where)h(sev)o(eral)f(di\013eren)o(t)g(tec)o(hniques)h(are)f (used)h(to)f(giv)o(e)g(indep)q(enden)o(t,)i(but)f(hop)q(efully)g(relatable,)8 2479 y(descriptions)e(of)g(`the)g(same')e(language.)79 2541 y(The)i(topic)f(of)g(this)g(tutorial,)f(action)h(seman)o(tics,)e(a)o(v)o (oids)h(the)i(need)h(for)e(complemen)o(tary)e(descriptions)8 2603 y(b)o(y)22 b(making)f(a)g Fp(c)n(ompr)n(omise)26 b Fr(b)q(et)o(w)o(een)c (the)g(ab)q(o)o(v)o(e)g(requiremen)o(ts.)39 b(An)22 b(action)f(seman)o(tic)g (description)8 2665 y(is)d(extremely)e(mo)q(dular,)g(pro)o(viding)h(the)h (high)f(degree)h(of)g(extensibilit)o(y)l(,)e(mo)q(di\014abilit)o(y)l(,)g(and) i(reusabilit)o(y)8 2727 y(required)g(b)o(y)f(language)g(designers.)27 b(It)17 b(is)g(also)g(strongly)f(suggestiv)o(e)g(of)h(an)h(op)q(erational)e (understanding)8 2789 y(of)e(the)g(describ)q(ed)h(language,)f(and)g(it)g(has) g(b)q(een)h(found)f(to)g(b)q(e)h(v)o(ery)f(w)o(ell)f(suited)h(for)f (generating)h(compilers)p eop %%Page: 3 6 3 5 bop -42 -137 a Fn(1.3.)35 b(FEA)l(TURES)1514 b Fr(3)-42 12 y(and)15 b(in)o(terpreters,)f(so)g(implemen)o(tors)e(should)i(b)q(e)i(con) o(ten)o(t.)j(Programm)o(ers)12 b(should)j(\014nd)g(action)f(seman)o(tic)-42 74 y(descriptions)i(almost)e(as)h(easy)h(to)g(read)g(as)f(the)i(usual)f (reference)g(man)o(uals,)e(without)h(m)o(uc)o(h)h(preparation.)-42 136 y(On)j(the)f(other)g(hand,)h(although)e(the)h(foundations)f(of)h(action)f (seman)o(tics)f(are)i(\014rm)f(enough,)i(the)f Fp(the)n(ory)-42 199 y Fr(for)d(reasoning)g(ab)q(out)h(actions)e(\(and)i(hence)h(ab)q(out)e (programs\))e(is)i(still)f(rather)h(w)o(eak,)g(and)h(needs)g(further)-42 261 y(dev)o(elopmen)o(t.)27 b(This)18 b(situation)e(is)h(in)h(mark)o(ed)f (con)o(trast)f(to)i(that)f(of)g(denotational)g(seman)o(tics)f([Mos90)n(],)-42 323 y(where)h(the)g(theory)299 306 y Fy(1)335 323 y Fr(is)g(strong,)e(but)i (sev)o(ere)g(pragmatic)d(di\016culties)i(hinder)h(its)f(application)g(to)g (realistic)-42 385 y(programming)c(languages.)29 447 y(Some)18 b(of)h(these)h(claims)d(for)i(the)g(virtues)g(of)g(action)g(seman)o(tic)e (descriptions)i(can)g(b)q(e)h(supp)q(orted)g(b)o(y)-42 509 y(lo)q(oking)c(at)g(an)g(example.)23 b(Let)17 b(us)g(p)q(ostp)q(one)g (consideration)e(of)h(the)h(exten)o(t)f(to)g(whic)o(h)g(action)g(seman)o (tics)-42 571 y(meets)f(the)g(stated)f(requiremen)o(ts)g(un)o(til)g(Chapter)h (4,)g(after)f(w)o(e)h(ha)o(v)o(e)g(seen)h(action)e(seman)o(tics)f Fp(in)j(action)s Fr(!)-42 739 y Fo(1.3)70 b(F)-6 b(eatures)-42 850 y Fr(One)14 b(esp)q(ecially)d(signi\014can)o(t)h(feature)g(of)g(language) f(descriptions)h(is)g(whether)g(or)g(not)g(they)g(are)g Fp(formal)5 b Fr(.)19 b(Let)-42 912 y(us)e(distinguish)f(b)q(et)o(w)o(een)g(formal)e(and) j(informal)d(descriptions)i(as)g(follo)o(ws.)22 b(Purely)16 b(formal)e(descriptions)-42 974 y(are)e(expressed)h(in)f(w)o(ell-de\014ned,)h (established)e(notation,)g(often)h(b)q(orro)o(w)o(ed)f(from)g(mathemati)o (cs.)16 b(Note)c(that)-42 1036 y(this)h(notation)f(itself)h(ma)o(y)e(ha)o(v)o (e)i(b)q(een)i(established)e(either)g(formally)l(,)e(using)i(some)f (previously-established)-42 1098 y Fp(meta-notation)s Fr(,)19 b(or)e(informally)e(\(but)i(rigorously\))e(as)j(in)f(most)f(mathemati)o(cal)e (texts.)26 b(Purely)18 b(informal)-42 1160 y(descriptions)d(are)g(expressed)h (in)f(natural)f(languages,)g(suc)o(h)i(as)e(English.)29 1223 y(Curren)o(tly)l(,)23 b(the)f(only)g(comprehensiv)o(e)g(description)g(of)f(a) h(programming)d(language)j(is)f(usually)h(its)-42 1285 y(`reference)c(man)o (ual',)e(whic)o(h)h(is)g(mainly)f(informal.)24 b(Unfortunately)l(,)17 b(exp)q(erience)i(has)f(sho)o(wn)f(that,)g(ev)o(en)-42 1347 y(when)g(carefully)d(w)o(orded,)i(suc)o(h)f(reference)i(man)o(uals)c(are)j (usually)f(incomplete)f(or)h(inconsisten)o(t,)f(or)h(b)q(oth,)-42 1409 y(and)g(op)q(en)h(to)e(misin)o(terpretatio)o(n.)j(This)e(is)f(ob)o (viously)g(undesirable,)g(esp)q(ecially)g(when)i(suc)o(h)f(descriptions)-42 1471 y(are)e(used)h(to)e(guide)h(implemen)o(tors)d(and)j(to)f(set)h (standards.)19 b(The)13 b(existence)g(of)f(pro)q(cedures)i(for)f(requesting) -42 1533 y(clari\014cation)e(of)g(in)o(ternational)f(standards,)h(whic)o(h)h (are)f(generally)g(based)h(on)g(reference)g(man)o(uals,)e(con\014rms)-42 1595 y(that)k(misin)o(terpretation)d(is)j(a)g(problem.)k(Moreo)o(v)o(er,)13 b(informal)f(descriptions)i(can)g(nev)o(er)h(pro)o(vide)f(a)g(sound)-42 1657 y(basis)h(for)g(reasoning)f(ab)q(out)h(program)e(correctness)i(or)g (equiv)m(alence.)29 1719 y(T)l(o)g(comp)q(ensate)g(for)g(the)h(v)m (aguenesses)h(of)e(an)h(informal)d(language)i(description,)g(a)g(formal)e Fp(validation)-42 1781 y(suite)25 b Fr(of)c(programs)e(is)h(sometimes)e(used) k(as)f(the)g(\014nal)g(arbiter)f(of)h(implemen)o(tati)o(on)d(correctness.)38 b(By)-42 1844 y(itself,)16 b(ho)o(w)o(ev)o(er,)f(suc)o(h)i(a)f(v)m(alidation) g(suite)g(is)g(not)g(m)o(uc)o(h)f(use)i(as)f(a)g(language)g(description.)23 b(In)17 b(an)o(y)g(case,)-42 1906 y(the)h(correct)f(pro)q(cessing)h(of)f(a)g (v)m(alidation)f(suite)i(b)o(y)f(an)h(implemen)o(tat)o(ion)c(cannot)k(guaran) o(tee)f(analogous)-42 1968 y(p)q(erformance)e(on)g(other)g(programs.)29 2030 y(It)k(migh)o(t)d(b)q(e)j(imagined)e(that)h(informal)e(descriptions)i (should)g(b)q(e)h(easy)g(to)f(read,)g(b)q(ecause)i(they)f(are)-42 2092 y(written)13 b(in)h(a)f(natural)g(language;)g(but)h(in)g(fact)f(the)h (\(v)m(ain\))f(attempt)f(to)h(b)q(e)h(precise)g(in)g(a)f(natural)g(language) -42 2154 y(leads)g(to)f(a)h(rather)f(stilted)g(literary)f(st)o(yle)h(that)g (is)h(tedious)f(to)g(read)h(on)g(a)g(large)e(scale.)19 b(When)13 b(w)o(ell-written,)-42 2216 y(ho)o(w)o(ev)o(er,)d(informal)e(descriptions)i (can)g(pro)o(vide)g(an)g(easily-accessible)f(guide)h(to)g(the)g(fundamen)o (tal)f(concepts)-42 2278 y(underlying)16 b(a)f(programm)o(ing)d(language;)i (this)h(seems)f(to)h(b)q(e)g(their)g(only)g(real)f(strength.)29 2340 y(F)l(ormal)f(descriptions)j(ha)o(v)o(e)f(almost)e(the)j(opp)q(osite)g (qualities)e(to)h(informal)e(ones.)22 b(They)16 b(can)g(b)q(e)g(com-)-42 2402 y(plete)e(and)g(consisten)o(t,)f(and)h(can)f(b)q(e)i(giv)o(en)e(a)g (precise)h(in)o(terpretation,)e(appropriate)g(for)h(setting)g Fp(de\014nitive)-42 2465 y Fr(standards.)24 b(Questions)17 b(ab)q(out)g(their)f(consequences)i(are)e(answ)o(ered)h(b)o(y)f(the)h (theoretical)f(foundations)g(of)-42 2527 y(the)g(formal)e(notation)g(used.)22 b(F)l(ormal)13 b(descriptions)i(can)h(b)q(e)g(used)g(as)g(the)g(basis)f(for)g (systematic)e(dev)o(elop-)-42 2589 y(men)o(t)i(and)h(automatic)d(generation)i (of)g(implemen)o(tati)o(ons.)k(And)d(it)f(is)g(one)h(of)f(their)h(main)e (strengths)h(that)-42 2651 y(they)h(can)f(pro)o(vide)g(a)g(basis)f(for)h (sound)g(reasoning)g(ab)q(out)g(program)e(correctness)i(and)g(equiv)m (alence.)p -42 2747 756 2 v 10 2774 a Fm(1)28 2789 y Fl(at)e(least)f(for)h (dealing)g(with)g(deterministic,)f(sequen)o(tial)i(programs)p eop %%Page: 4 7 4 6 bop 8 -137 a Fr(4)1181 b Fn(CHAPTER)15 b(1.)35 b(INTR)o(ODUCTION)79 12 y Fr(On)22 b(the)g(other)f(hand,)i(it)e(is)g(often)g(di\016cult)g(to)g (relate)g(a)g(formal)e(description)i(of)g(a)h(programm)o(ing)8 74 y(language)g(to)f(fundamen)o(tal)f(concepts,)k(and)e(to)g(grasp)f(the)h (implications)d(of)j(the)g(description)g(for)f(the)8 136 y(implemen)o(tatio)o (n)11 b(of)j(programs.)j(P)o(o)q(or)c(notation,)f(or)i(excessiv)o(ely)f (large)g(and)h(complex)e(form)o(ulae)g(can)i(also)8 199 y(lead)e(to)g (obscurit)o(y)l(.)18 b(Inferior)12 b(formal)e(descriptions)i(can)g(b)q(e)h (unin)o(ten)o(tionally)e(am)o(biguous)f(or)i(incomplete|)8 261 y(ev)o(en)k(inconsisten)o(t!)j(The)c(mere)f(use)i(of)f(formalit)n(y)e(do) q(es)i Fp(not)k Fr(ensure)d(success.)79 323 y(One)g(could)f(consider)g(the)g (text)g(of)f(a)h Fp(c)n(ompiler)5 b Fr(,)15 b(or)f(of)h(an)g(in)o(terpreter,) f(as)h(a)g(formal)d(de\014nition)j(of)g(the)8 385 y(language)d(that)f(it)g (implemen)o(ts.)16 b(The)d(language)e(used)h(for)g(writing)e(it)i(should)g (already)f(ha)o(v)o(e)h(a)f(w)o(ell-de\014ned)8 447 y(in)o(terpretation,)i (of)h(course:)19 b(a)c(so-called)f Fp(meta-cir)n(cular)20 b Fr(in)o(terpreter,)13 b(written)h(using)g(the)g(language)g(itself)8 509 y(b)q(eing)g(in)o(terpreted,)e(do)q(esn't)h(formally)e(de\014ne)j(an)o (ything)e(at)h(all!)18 b(Unfortunately)l(,)12 b(practical)g(compilers)g(for)8 571 y(realistic)j(programming)e(languages)j(are)g(somewhat)f(un)o(wieldy)h (ob)s(jects,)g(and)h(demand)f(familiarit)n(y)e(with)8 633 y(particular)h (target)g(co)q(des.)23 b(In)o(terpreters)15 b(are)h(generally)f(more)g (accessible,)h(but)g(still)e(tend)j(to)e(ha)o(v)o(e)g(man)o(y)8 695 y(details)f(that)h(are)g(inciden)o(tal)f(to)h(the)g(implemen)o(ted)e (language.)79 757 y(So)i(m)o(uc)o(h)f(for)h(the)g(bac)o(kground)g(of)g (formal)e(descriptions.)p eop %%Page: 5 8 5 7 bop -42 334 a FB(Chapter)35 b(2)-42 554 y Ft(Concepts)-42 782 y Fr(This)22 b(c)o(hapter)f(explains)h(the)g(concepts)g(underlying)f (action)g(seman)o(tic)f(descriptions)i(of)f(programmi)o(ng)-42 844 y(languages.)33 b(It)19 b(considers)h(the)f(factorization)f(of)h (language)f(descriptions)h(in)o(to)g(syn)o(tax)g(and)g(seman)o(tics,)-42 906 y(and)e(discuss)f(the)f(pragmatic)f(issue)i(of)f(setting)g(standards)g (for)h(programmi)o(ng)d(languages.)21 b(Readers)16 b(who)-42 968 y(are)i(already)f(familiar)d(with)j(other)g(seman)o(tic)f(description)h (framew)o(orks,)e(e.g.,)i(denotational)f(seman)o(tics,)-42 1031 y(ma)o(y)e(skip)h(to)f(Section)i(2.2.2.)29 1093 y(In)h(programming)c (linguistics,)i(as)i(in)f(the)h(study)g(of)f(natural)f(languages,)h(it)g(is)g (useful)h(to)f(distinguish)-42 1155 y(b)q(et)o(w)o(een)g Fp(syntax)21 b Fr(and)16 b Fp(semantics)t Fr(.)j(The)d(syn)o(tax)e(of)i(a)f(programmi)o (ng)e(language)h(is)h(concerned)i(only)e(with)-42 1217 y(the)21 b Fp(form)k Fr(of)c(programs:)29 b(whic)o(h)20 b(programs)f(are)h(`legal')5 b(?)36 b(what)20 b(are)h(the)g(connections)g(and)g(relations)-42 1279 y(b)q(et)o(w)o(een)f(the)f(sym)o(b)q(ols)f(and)h(phrases)h(that)e(o)q (ccur)i(in)f(them?)32 b(Seman)o(tics)18 b(deals)h(with)f(the)h Fp(me)n(aning)k Fr(of)-42 1341 y(legal)15 b(programs.)29 1403 y(Ideally)l(,)k(a)f(comprehensiv)o(e)g(description)g(of)g(a)h(programmi)o(ng) d(language)i(in)o(v)o(olv)o(es)f(the)h(sp)q(eci\014cation)-42 1465 y(of)f Fp(syntactic)f(entities)t Fr(,)f(of)i Fp(semantic)f(entities)t Fr(,)f(and)i(of)f(a)g Fp(semantic)h(function)j Fr(that)15 b(maps)h(the)g (former)f(to)-42 1527 y(the)i(latter.)k(The)16 b(syn)o(tactic)f(en)o(tities)g (include)h(the)g(legal)f(programs)f(of)i(the)g(language,)f(and)h(the)g(seman) o(tic)-42 1589 y(en)o(tities)21 b(include)i(represen)o(tations)e(of)h(the)g (in)o(tended)g(b)q(eha)o(viours)g(of)g(these)g(programs.)38 b(T)l(o)22 b(facilitate)-42 1652 y(reasoning)10 b(ab)q(out)h(parts)f(of)h (programs,)e(the)i(seman)o(tic)e(function)h(should)h(giv)o(e)f(seman)o(tics)f (not)h(only)h(to)f(en)o(tire)-42 1714 y(programs)g(but)h(also)g(to)f(their)h (comp)q(onen)o(t)g(phrases;)h(and)g(it)f(should)g(preferably)g(b)q(e)h Fp(c)n(omp)n(ositional)5 b Fr(,)11 b(so)g(that)-42 1776 y(the)17 b(seman)o(tics)d(of)i(a)g(comp)q(ound)g(phrase)h(is)f(determined)f(purely)i (b)o(y)f(the)h(seman)o(tics)d(of)i(its)g(comp)q(onen)o(ts,)-42 1838 y(indep)q(enden)o(tly)h(of)d(their)h(other)g(features.)29 1900 y(Most)i(framew)o(orks)e(for)i(language)g(description)g(unfortunately)g (do)h(not)f(pro)o(vide)h(a)f(clear)g(separation)-42 1962 y(b)q(et)o(w)o(een)g (syn)o(tactic)d(and)i(seman)o(tic)e(en)o(tities,)h(nor)g(do)h(they)g(exploit) f(comp)q(ositional)e(seman)o(tic)h(functions.)-42 2024 y(A)i(notable)e (exception)i(is)e Fp(denotational)j(semantics)t Fr(,)c(from)g(whic)o(h)j (action)e(seman)o(tics)f(w)o(as)i(dev)o(elop)q(ed.)29 2086 y(The)20 b(distinction)e(b)q(et)o(w)o(een)h(the)h(syn)o(tax)e(and)i(the)f (seman)o(tics)f(of)h(a)g(language)f(is)h(dep)q(enden)o(t)i(on)e(the)-42 2148 y(division)g(in)o(to)g(structure)h(and)g(b)q(eha)o(viour.)33 b(A)o(t)19 b(one)h(extreme,)g(structure)f(could)h(b)q(e)g(trivial|arbitrary) -42 2210 y(strings)14 b(o)o(v)o(er)g(an)h(alphab)q(et)f(of)g(sym)o(b)q (ols|and)g(then)h(the)g(usual)f(notion)g(of)g(program)f(legalit)o(y)g(w)o (ould)h(ha)o(v)o(e)-42 2273 y(to)22 b(b)q(e)h(considered)g(as)f(a)g(comp)q (onen)o(t)f(of)h(b)q(eha)o(viour.)41 b(A)o(t)22 b(the)g(other)g(extreme,)h(b) q(eha)o(viour)f(could)h(b)q(e)-42 2335 y(incorp)q(orated)18 b(in)o(to)f(a)g(dynamic)g(notion)g(of)h(structure.)28 b(F)l(or)17 b(comprehensiv)o(e)g(language)g(descriptions,)h(it)-42 2397 y(is)d(b)q(est)h(to)f(\014nd)h(a)f(compromise)e(suc)o(h)j(that)f(separate)g (descriptions)f(of)i(syn)o(tax)e(and)i(seman)o(tics)e(pro)o(vide)h(a)-42 2459 y(useful)h(factorization)d(of)i(the)g(en)o(tire)g(description)f(in)o(to) g(parts)h(with)f(a)h(simple)f(in)o(terface.)-42 2618 y Fo(2.1)70 b(Syn)n(tax)-42 2727 y Fr(The)17 b(syn)o(tax)f(of)h(a)f(programmi)o(ng)e (language)i(determines)g(the)g(set)h(of)f(its)g(legal)g(programs,)e(and)j (the)g(rela-)-42 2789 y(tionship)e(b)q(et)o(w)o(een)g(the)h(sym)o(b)q(ols)d (and)j(phrases)f(o)q(ccurring)g(in)g(them.)892 2914 y(5)p eop %%Page: 6 9 6 8 bop 8 -137 a Fr(6)1297 b Fn(CHAPTER)15 b(2.)35 b(CONCEPTS)79 12 y Fr(W)l(e)14 b(ma)o(y)e(divide)h(syn)o(tax)g(in)o(to)g Fp(c)n(oncr)n(ete)j Fr(and)e Fp(abstr)n(act)k Fr(syn)o(tax.)g(Concrete)c(syn) o(tax)f(in)o(v)o(olv)o(es)f Fp(analysis)t Fr(:)8 74 y(the)f(recognition)f(of) g(legal)g(programs)f(from)g(texts)h(\(i.e.,)g(sequences)i(of)e(c)o (haracters\))g(and)h(their)f(unam)o(biguous)8 136 y Fp(p)n(arsing)22 b Fr(in)o(to)17 b(phrases.)30 b(Abstract)17 b(syn)o(tax)h(deals)g(only)g (with)g(the)g(comp)q(ositional)e Fp(structur)n(e)22 b Fr(of)c(phrases)8 199 y(of)f(programs,)e(ignoring)h(ho)o(w)h(that)g(structure)g(migh)o(t)e(ha)o (v)o(e)i(b)q(een)h(determined.)25 b(In)18 b(general,)f(it)g(is)g(easier)8 261 y(to)f(de\014ne)h(the)g(seman)o(tics)d(of)i(programs)e(on)j(the)f(basis)g (of)g(their)g(abstract)f(syn)o(tax,)g(rather)h(than)g(on)h(their)8 323 y(concrete)f(syn)o(tax.)79 385 y(F)l(or)11 b(comprehensiv)o(e)h(language) f(descriptions,)h(b)q(oth)h(kinds)f(of)g(syn)o(tax)f(are)h(needed|together)h (with)f(an)8 447 y(indication)k(of)g(ho)o(w)f(they)i(are)f(related.)23 b(Here,)17 b(w)o(e)f(are)g(mainly)e(concerned)k(with)d(seman)o(tic)g (descriptions,)8 509 y(so)i(w)o(e)f(emphasize)g(abstract)g(syn)o(tax,)g (giving)f(only)h(a)h(cursory)f(explanation)g(of)g(concrete)h(syn)o(tax)f(and) h(its)8 571 y(relation)d(to)h(abstract)f(syn)o(tax.)8 716 y Fx(2.1.1)56 b(Concrete)18 b(Syn)n(tax)8 811 y Fr(Con)o(v)o(en)o(tionally)l(,) 13 b(concrete)i(syn)o(tax)f(is)g(separated)h(in)o(to)f Fp(lexic)n(al)k Fr(analysis)c(and)h Fp(phr)n(ase-structur)n(e)k Fr(analysis.)8 873 y(The)c(task)f(of)f(lexical)h(analysis)f(is)h(to)g(group)g(the)g(c)o (haracters)g(of)g(a)g(program)e(text)i(in)o(to)f(a)h Fp(se)n(quenc)n(e)i Fr(of)e(legal)8 935 y Fp(symb)n(ols)t Fr(,)h(or)h Fp(lexemes)t Fr(.)22 b(That)16 b(of)g(phrase-structure)g(analysis)f(is)h(to)g(group)g (these)g(sym)o(b)q(ols)f(in)o(to)g(phrases,)8 997 y(thereb)o(y)h (constructing)e(a)h Fp(p)n(arse)h(tr)n(e)n(e)s Fr(,)f(or)f Fp(derivation)j(tr)n(e)n(e)s Fr(,)d(with)h(the)g(sym)o(b)q(ols)f(as)h(lea)o (v)o(es.)79 1059 y(The)e(parse)g(tree)g(pro)q(duced)h(b)o(y)e (phrase-structure)h(analysis)f(of)h(a)f(program)f(represen)o(ts)i(the)g (recognized)8 1121 y(comp)q(onen)o(t)22 b(relation)e(b)q(et)o(w)o(een)j(its)e (phrases.)41 b(It)22 b(ma)o(y)f(also)g(represen)o(t)h(ho)o(w)g(the)g(phrases) g(ha)o(v)o(e)g(b)q(een)8 1184 y(classi\014ed.)79 1246 y(Both)c(lexical)f(and) i(phrase-structure)f(analysis)f(are)h(required)g(to)g(b)q(e)h Fp(unambiguous)t Fr(:)26 b(a)18 b(sequence)h(of)8 1308 y(c)o(haracters)d (making)e(up)j(a)f(legal)g(program)e(m)o(ust)h(determine)g(a)h(unique)h (sequence)g(of)f(sym)o(b)q(ols,)f(whic)o(h)h(in)8 1370 y(turn)i(m)o(ust)e (determine)h(a)g(unique)h(parse)g(tree.)27 b(In)19 b(the)e(case)h(of)f(am)o (biguit)o(y)l(,)f(the)h(programmer)e(is)i(left)g(in)8 1432 y(doubt)f(ab)q(out)f(the)g(recognized)g(structure)g(of)g(the)g(program.)8 1577 y Fx(2.1.2)56 b(Abstract)18 b(Syn)n(tax)8 1672 y Fr(Abstract)c(syn)o (tax)g(pro)o(vides)f(an)i(appropriate)e(in)o(terface)h(b)q(et)o(w)o(een)h (concrete)f(syn)o(tax)g(and)g(seman)o(tics.)k(It)d(is)8 1734 y(usually)g(obtained)g(simply)f(b)o(y)i(ignoring)e(those)h(details)g(of)g (parse)g(tree)h(structure)f(whic)o(h)g(ha)o(v)o(e)g(no)h(seman-)8 1796 y(tic)21 b(signi\014cance|lea)o(ving)g Fp(abstr)n(act)h(syntax)f(tr)n(e) n(es)j Fr(that)d(represen)o(t)g(just)g(the)h(essen)o(tial)e(comp)q(ositional) 8 1858 y(structure)15 b(of)g(programs.)79 1920 y(F)l(or)g(instance,)g(in)g (concrete)h(syn)o(tax)e(one)i(usually)f(sub-classi\014es)g(comp)q(ound)g (arithmetic)e(expressions)8 1982 y(in)o(to)f(terms)g(and)h(factors,)f(in)h (order)g(to)g(a)o(v)o(oid)f(am)o(biguous)f(parsing)h(of)h(sequences)h(suc)o (h)g(as)e Fk(a+b*c)p Fr(.)20 b(F)l(actors)8 2044 y(are)13 b(more)e (restricted)h(than)g(terms,)f(in)i(that)e(an)o(y)i(additions)e(that)h(o)q (ccur)h(in)f(factors)g(ha)o(v)o(e)g(to)g(b)q(e)h(enclosed)g(in)8 2106 y(grouping)g(paren)o(theses,)h(whereas)f(the)h(paren)o(theses)g(are)f (optional)f(when)i(additions)f(o)q(ccur)h(in)f(terms.)18 b(The)8 2168 y(term)12 b Fk(a+b)h Fr(is)f(not)h(classi\014ed)f(as)h(a)f(factor,)g(so) g(the)h(only)f(p)q(ossible)h(parsing)f(for)g Fk(a+b*c)i Fr(is)e(the)h(one)g (where)g Fk(b*c)8 2231 y Fr(is)h(group)q(ed)g(together.)19 b(But)14 b(the)g(only)g(seman)o(tically)d(relev)m(an)o(t)j(features)f(of)h (an)g(arithmetic)d(expression)j(are)8 2293 y(its)f(sub)q(expressions)i(and)f (its)f(op)q(erator,)f(so)i(for)f(abstract)g(syn)o(tax)g(w)o(e)g(can)h(ignore) f(whether)h(the)g(expression)8 2355 y(is)h(classi\014ed)g(as)g(a)g(term)e(or) i(as)g(a)g(factor.)79 2417 y(The)g(sym)o(b)q(ols)f(used)i(for)e(lab)q(eling)h (the)g(no)q(des)h(in)f(an)g(abstract)g(syn)o(tax)f(tree)h(ma)o(y)f(b)q(e)i (the)f(same)f(as)h(the)8 2479 y(lexical)f(sym)o(b)q(ols)f(of)h(the)g(corresp) q(onding)h(concrete)g(syn)o(tax.)k(This)14 b(is)g(not)g(essen)o(tial,)f (though,)h(as)g(the)h(sym-)8 2541 y(b)q(ols)d(are)g(needed)h(only)f(to)g (distinguish)f(no)q(des)i(for)e(di\013eren)o(t)g(constructs.)19 b(F)l(or)11 b(instance,)h(while-statemen)o(ts)8 2603 y(and)17 b(if-then-statemen)o(ts)d(usually)i(b)q(oth)h(ha)o(v)o(e)e(t)o(w)o(o)h(comp)q (onen)o(ts:)21 b(a)16 b(condition)g(and)g(a)g(statemen)o(t;)f(extra)8 2665 y(sym)o(b)q(ols)j(are)h(required)g(to)f(lab)q(el)h(them)f(distinctly)l (,)h(but)g(these)h(can)f(b)q(e)h(c)o(hosen)f(arbitrarily)l(.)30 b(Similarly)l(,)8 2727 y(when)17 b(ev)o(ery)f(statemen)o(t)e(is)i(terminated) e(b)o(y)i(a)g(semicolon)f(in)h(concrete)g(syn)o(tax,)f(the)i(semicolons)d(ma) o(y)g(b)q(e)8 2789 y(omitted)k(in)h(the)h(corresp)q(onding)g(abstract)f(syn)o (tax,)g(as)h(they)f(ha)o(v)o(e)h(no)f(distinguishing)g(e\013ect.)33 b(On)20 b(the)p eop %%Page: 7 10 7 9 bop -42 -137 a Fn(2.1.)35 b(SYNT)l(AX)1571 b Fr(7)-42 12 y(other)17 b(hand,)h(the)g(lexical)e(sym)o(b)q(ols)g(from)f(the)i(concrete)h (syn)o(tax)f(do)g(ha)o(v)o(e)g(considerable)g(suggestiv)o(e)f(and)-42 74 y(mnemonic)e(v)m(alue.)23 b(By)16 b(retaining)f(them)g(as)g(lab)q(els)h (in)f(abstract)g(syn)o(tax)h(trees|in)g(the)g(same)e(order)i(that)-42 136 y(they)d(o)q(ccur)f(in)g(the)g(corresp)q(onding)g(parse)g(trees|m)o(uc)o (h)g(of)f(the)i(relation)d(b)q(et)o(w)o(een)j(concrete)f(and)g(abstract)-42 199 y(syn)o(tax)j(can)g(b)q(e)h(made)e(self-eviden)o(t.)29 261 y(Another)j(w)o(a)o(y)e(of)i(abstracting)e(details)g(of)i(parse)f(tree)h (structure)f(is)g(to)g(ignore)g(the)h Fp(or)n(der)22 b Fr(of)16 b(comp)q(o-)-42 323 y(nen)o(ts,)j(when)g(this)f(is)f(seman)o(tically)f (insigni\014can)o(t.)28 b(F)l(or)17 b(instance,)i(the)f(order)g(in)g(whic)o (h)g(the)h(cases)f(of)g(a)-42 385 y(case-statemen)o(t)g(are)h(written)f(in)i (the)f(program)e(text)i(ma)o(y)f(b)q(e)i(irrelev)m(an)o(t;)g(then)g(one)g (could)f(tak)o(e)g(a)g Fp(set)-42 447 y Fr(of)e(cases,)g(rather)g(than)g(an)g (ordered)g(list.)24 b(Similarly)l(,)15 b(one)i(migh)o(t)e(let)i(declarations) e(b)q(e)j(\(\014nite\))e(maps)g(on)-42 509 y(iden)o(ti\014ers,)d(instead)f (of)g(lists)f(of)h(pairs|thereb)o(y)g(re\015ecting)h(also)e(that)h(an)g(iden) o(ti\014er)g(is)g(not)g(to)g(b)q(e)h(declared)-42 571 y(t)o(wice)18 b(in)f(the)h(same)f(sequence)i(of)e(declarations.)27 b(This)17 b(seems)g(app)q(ealing,)h(but)g(on)f(closer)h(in)o(v)o(estigation)-42 633 y(turns)13 b(out)g(to)g(ha)o(v)o(e)f(gone)h Fp(to)n(o)i(far)j Fr(in)13 b(abstraction,)f(at)g(least)g(from)g(a)h(pragmatic)d(p)q(oin)o(t)j (of)f(view,)h(as)g(it)f(com-)-42 695 y(plicates)17 b(the)g(de\014nition)h(of) e(seman)o(tic)g(functions)h(on)g(abstract)f(syn)o(tax.)26 b(In)18 b(general,)f(ho)o(w)o(ev)o(er,)g(ignoring)-42 757 y(seman)o(tically)11 b(irrelev)m(an)o(t)h(details)g(of)g(parse)h(tree)g(structure)g(tends)g(to)g (simplify)d(the)k(de\014nition)e(of)h(seman)o(tic)-42 820 y(functions.)29 882 y(It)k(can)h(happ)q(en)g(that)e(the)i(comp)q(ositional)c(structure)j(of)g (programs)e(deriv)o(ed)i(from)e(a)i(giv)o(en)g(concrete)-42 944 y(syn)o(tax)g(has)g(a)g(nesting)g(that)f(is)h(incon)o(v)o(enien)o(t)g (for)f(a)h(comp)q(ositional)d(seman)o(tics.)24 b(W)l(e)18 b(ma)o(y)d(then)j (use)f(an)-42 1006 y(abstract)c(syn)o(tax)h(that)f(corresp)q(onds)h(to)g(a)f (rearrangemen)o(t)f(of)i(the)g(original)e(structure,)h(pro)o(vided)h(that)f (w)o(e)-42 1068 y(are)j(prepared)h(to)e(sp)q(ecify)h(the)h(map)d(from)h (parse)h(trees)f(to)h(abstract)f(syn)o(tax)g(trees.)22 b(But)16 b(when)h(this)e(map)-42 1130 y(is)g(complicated,)e(the)j(comprehensibilit)o (y)d(of)h(the)i(language)e(description)h(su\013ers)g(considerably)l(.)29 1192 y(Some)k Fp(pr)n(o)n(gr)n(amming)h(envir)n(onments)i Fr(pro)o(vide)d (templates)f(for)h(constructing)g(and)h(editing)f(abstract)-42 1254 y(syn)o(tax)e(trees,)f(and)h(for)g(viewing)f(them)g(graphically)l(,)f (thereb)o(y)i(allo)o(wing)e(the)i(use)g(of)g(concrete)g(syn)o(tax)f(to)-42 1316 y(b)q(e)22 b(a)o(v)o(oided.)35 b(Although)21 b(this)f(do)q(es)h(not)f (justify)g(ignoring)f(concrete)i(syn)o(tax)f(altogether)f(when)i(giving)-42 1379 y(a)e(comprehensiv)o(e)f(description)g(of)g(a)g(programming)d(language,) k(it)f(do)q(es)h(underline)g(the)f(imp)q(ortance)g(of)-42 1441 y(abstract)12 b(syn)o(tax,)g(and)g(further)g(motiv)m(ates)e(that)i(seman)o (tics)e(should)j(b)q(e)g(de\014ned)g(on)g(the)f(basis)g(of)g(abstract,)-42 1503 y(rather)j(than)g(concrete,)g(syn)o(tax.)-42 1640 y Fx(2.1.3)56 b(Con)n(text-Sensitiv)n(e)18 b(Syn)n(tax)-42 1734 y Fr(Con)o(text-)p Fp(fr)n(e)n(e)f Fr(syn)o(tax)e(deals)f(with)h(those)g(asp)q(ects)g(of)f (structure)h(that)g(can)g(b)q(e)h(describ)q(ed)g(b)o(y)f(con)o(text-free)-42 1796 y(grammars,)i(suc)o(h)i(as)g(those)g(written)f(in)i(the)f(p)q(opular)g Fj(BNF)h Fr(formalism)o(.)29 b(Asp)q(ects)19 b(whic)o(h)h(fall)e(outside)-42 1858 y(con)o(text-free)k(syn)o(tax)f(are)h(called)g(con)o(text-)p Fp(sensitive)h Fr(and)f(include)g(`declaration)f(of)g(iden)o(ti\014ers)h(b)q (efore)-42 1920 y(use')f(and)f(`w)o(ell-t)o(yp)q(edness)f(of)h(expressions'.) 34 b(Characteristic)19 b(for)g(them)g(is)h(that)f(they)i(in)o(v)o(olv)o(e)d (a)i(kind)-42 1982 y(of)i(matc)o(hing)e(b)q(et)o(w)o(een)j(distan)o(t)e (parts)g(of)h(programs)e(that)h(is)h(inheren)o(tly)g(more)e(complex)h(than)h (mere)-42 2044 y(`paren)o(thesis-matc)o(hing'.)29 2106 y(The)17 b(description)e(of)h(con)o(text-sensitiv)o(e)f(syn)o(tax)h(can,)g(in)g (principle,)g(b)q(e)h(accomplished)e(b)o(y)h(use)h(of)e(so-)-42 2168 y(called)j Fp(attribute)h(gr)n(ammars)t Fr(.)27 b(Unfortunately)l(,)17 b(these)g(are)g(not)g(alw)o(a)o(ys)f(as)h(p)q(erspicuous)h(as)g(con)o (text-free)-42 2231 y(grammars.)36 b(Moreo)o(v)o(er,)21 b(con)o (text-sensitiv)o(e)f(abstract)g(syn)o(tax)h(mak)o(es)f(a)h(more)f (complicated)g(in)o(terface)-42 2293 y(b)q(et)o(w)o(een)j(concrete)g(syn)o (tax)f(and)h(seman)o(tics)d(than)j(con)o(text-free)f(abstract)g(syn)o(tax)f (do)q(es.)43 b(Of)23 b(course,)-42 2355 y(this)c(is)g(to)f(b)q(e)i(exp)q (ected,)h(b)q(ecause)f(the)f(former)f(generally)g(captures)h(more)f (information)e(than)j(the)g(lat-)-42 2417 y(ter.)24 b(A)o(ttribute)16 b(grammars)d(cannot)k(cop)q(e)g(straigh)o(tforw)o(ardl)o(y)d(with)i (so-called)g Fp(dynamic)i(sc)n(op)n(e)f(rules)j Fr(for)-42 2479 y(declarations)14 b(in)h(programs.)29 2541 y(An)25 b(alternativ)o(e)d(w) o(a)o(y)h(of)h(de\014ning)g(con)o(text-sensitiv)o(e)f(syn)o(tax)h(is)f(b)o(y) i(giving)e Fp(infer)n(enc)n(e)f(rules)28 b Fr(for)-42 2603 y(w)o(ell-formed)16 b(phrases.)26 b(W)l(ell-formedness)16 b(is)h(usually)g (de\014ned)i(as)e(a)g(binary)g(relation)f(b)q(et)o(w)o(een)i(con)o(text-)-42 2665 y(dep)q(enden)o(t)d(information)10 b(and)j(phrases,)g(and)g(the)f(w)o (ell-formedness)f(of)i(a)f(comp)q(ound)h(phrase)g(ma)o(y)e(dep)q(end)-42 2727 y(on)j(the)g(w)o(ell-formedness)e(of)i(its)f(subphrases)h(with)f(mo)q (di\014ed)h(con)o(text-dep)q(enden)o(t)g(information.)j(As)d(with)-42 2789 y(attribute)h(gramma)o(rs,)d(this)i(tec)o(hnique)i(is)f(not)f (applicable)h(when)h(scop)q(e)g(rules)f(are)f(dynamic.)p eop %%Page: 8 11 8 10 bop 8 -137 a Fr(8)1297 b Fn(CHAPTER)15 b(2.)35 b(CONCEPTS)79 12 y Fr(Here,)18 b(let)e(us)i(k)o(eep)f(abstract)g(syn)o(tax)f Fp(c)n(ontext-fr)n(e)n(e)s Fr(,)h(and)g(describ)q(e)h(con)o(text-sensitiv)o (e)e(asp)q(ects)i(sepa-)8 74 y(rately)l(.)26 b(This)17 b(amoun)o(ts)e(to)i (treating)f(con)o(text-sensitiv)o(e)g(syn)o(tax)h(as)g(a)g(kind)g(of)g Fp(semantics)t Fr(,)f(called)h Fp(static)8 136 y Fr(seman)o(tics,)i(b)q (ecause)h(it)f(dep)q(ends)i(only)e(on)h(the)g(program)d(structure,)j(and)g (do)q(es)g(not)f(in)o(v)o(olv)o(e)f(program)8 199 y(input.)i(The)14 b(input-dep)q(enden)o(t)i(b)q(eha)o(viour)d(of)h(a)f(program)f(is)h(referred) i(to)e(as)g(its)g Fp(dynamic)k Fr(seman)o(tics|or)8 261 y(simply)d(as)i(its)f (seman)o(tics,)f(when)i(this)f(do)q(esn't)h(lead)g(to)f(confusion.)22 b(Note)15 b(that)g(static)g(seman)o(tics)f(is)h(just)8 323 y(as)i(essen)o(tial)g(an)g(ingredien)o(t)g(in)h(a)f(comprehensiv)o(e)g (language)f(description)h(as)h(dynamic)e(seman)o(tics,)g(and)8 385 y(that)d(there)g(are)g(signi\014can)o(t)f(problems)f(with)i(program)e(p)q (ortabilit)o(y)g(due)i(to)g(inconsisten)o(t)f(implemen)o(tat)o(ion)8 447 y(of)h(static)g(seman)o(tics)e(b)o(y)j(compiler)d(fron)o(t-ends.)20 b(In)14 b(this)f(tutorial,)e(ho)o(w)o(ev)o(er,)i(w)o(e)g(are)g(primarily)e (concerned)8 509 y(with)k(dynamic)f(seman)o(tics.)8 661 y Fo(2.2)70 b(Seman)n(tics)8 768 y Fr(Consider)11 b(an)h(en)o(tire)e(program)g(in)h(some) f(programmi)o(ng)f(language.)18 b(What)10 b(is)h(the)h(nature)f(of)g(its)f (seman)o(tics?)79 830 y(Let)17 b(us)g(restrict)e(our)i(atten)o(tion)e(to)h (programs)f(in)h(high-lev)o(el)g(programming)d(languages,)j(whic)o(h)h(gen-)8 892 y(erally)e(den)o(y)i(the)f(program)f(direct)g(con)o(trol)g(o)o(v)o(er)h (the)g(details)f(of)h(ph)o(ysical)g(b)q(eha)o(viour.)23 b(The)16 b(appropriate)8 955 y(seman)o(tics)e(of)g(these)i(programs)d(is)i Fp(implementation-indep)n(endent)t Fr(,)f(consisting)g(of)h(just)g(those)g (features)f(of)8 1017 y(program)g(execution)h(that)g(are)g(common)e(to)i(all) f(implemen)o(tatio)o(ns.)k(This)d(usually)g(includes)h(termination)8 1079 y(prop)q(erties,)f(but)g(ignores)g(e\016ciency)g(considerations.)79 1141 y(Th)o(us)10 b(the)g(seman)o(tics)e(of)i(a)g(program)e(is)i(an)g (\(abstract\))e(en)o(tit)o(y)h(that)h(mo)q(dels)f(the)h(program's)d(implemen) o(tation-)8 1203 y(indep)q(enden)o(t)17 b(b)q(eha)o(viour.)k(The)15 b(seman)o(tics)f(of)h(a)g(programming)d(language)j(consists)f(of)h(the)h (seman)o(tics)d(of)8 1265 y(all)h(its)h(programs.)8 1394 y Fx(2.2.1)56 b(Seman)n(tic)19 b(F)-5 b(unctions)8 1485 y Fr(The)12 b(seman)o(tics)d(of)i(a)g(programmi)o(ng)e(language)h(can)h(b)q(e)h(captured) g(b)o(y)f(a)g Fp(semantic)h(function)i Fr(that)d(maps)f(the)8 1547 y(abstract)15 b(syn)o(tax)g(of)h(eac)o(h)g(program)e(to)h(the)h(seman)o (tic)e(en)o(tit)o(y)h(represen)o(ting)h(its)f(b)q(eha)o(viour.)22 b(Ho)o(w)15 b(ab)q(out)8 1610 y(the)e(seman)o(tics)f(of)g Fp(p)n(arts)17 b Fr(of)12 b(programs,)f(i.e.,)h(of)h(phrases)g(suc)o(h)g(as)g(statemen)o (ts,)e(declarations,)h(expressions,)8 1672 y(etc.?)79 1734 y(W)l(ell,)23 b(one)f(could)g(sa)o(y)f(that)h(the)g(seman)o(tics)e(of)i(a)f (phrase)i(is)e(already)h Fp(implicit)k Fr(in)c(the)g(seman)o(tics)8 1796 y(of)f(all)g(the)h(programs)d(in)i(whic)o(h)h(it)f(o)q(ccurs.)39 b(Th)o(us)21 b(t)o(w)o(o)g(phrases)g(ha)o(v)o(e)g(the)h(same)e(seman)o(tics)g (if)h(they)8 1858 y(are)e Fp(inter)n(change)n(able)h Fr(in)e(an)o(y)g (program)f(con)o(text,)h(i.e.,)g(when)h(replacing)f(the)h(one)g(phrase)f(b)o (y)h(the)f(other)8 1920 y(nev)o(er)d(a\013ects)e(the)h(b)q(eha)o(viour)g(of)f (the)i(whole)e(program.)18 b(F)l(or)13 b(example,)g(t)o(w)o(o)f(pro)q (cedures)j(that)f(implemen)o(t)8 1982 y(di\013eren)o(t)f(algorithms)e(for)i (sorting)f(ha)o(v)o(e)h(the)h(same)f(seman)o(tics,)e(pro)o(vided)j(that)f (program)e(b)q(eha)o(viour)j(do)q(es)8 2044 y(not)i(tak)o(e)g(accoun)o(t)g (of)g(e\016ciency)l(.)24 b(An)o(y)16 b(comp)q(ositional)e(seman)o(tics)h(for) g(phrases)i(that)e(has)i(this)e(prop)q(ert)o(y)8 2106 y(is)g(called)g Fp(ful)r(ly)h(abstr)n(act)t Fr(.)79 2168 y(F)l(or)g(reasoning)g(ab)q(out)g (phrases|their)h(seman)o(tic)d(equiv)m(alence,)k(for)e(instance|it)g(is)g (undesirable)h(to)8 2231 y(ha)o(v)o(e)j(to)f(consider)g(all)g(p)q(ossible)h (programs)d(con)o(taining)i(them,)g(so)g(w)o(e)h(insist)f(on)g Fp(explicit)24 b Fr(de\014nition)19 b(of)8 2293 y(seman)o(tics)h(for)g(all)g (phrases.)39 b(When)21 b(the)h(seman)o(tics)d(of)i(a)g(comp)q(ound)g(phrase)g (dep)q(ends)i(only)e(on)g(the)8 2355 y(seman)o(tics)e(of)h(its)g(subphrases,) j(not)d(on)h(other)f(features)g(\(suc)o(h)h(as)f(their)h(structure\))f(the)h (seman)o(tics)e(is)8 2417 y(called)13 b Fp(c)n(omp)n(ositional)5 b Fr(.)18 b(This)13 b(guaran)o(tees)f(that)g(whenev)o(er)i(t)o(w)o(o)d (phrases)i(ha)o(v)o(e)g(the)g(same)f(seman)o(tics,)f(they)8 2479 y(are)17 b(indeed)h(in)o(terc)o(hangeable.)25 b(But)17 b(when)h(they)f(ha)o(v)o(e)g(di\013eren)o(t)f(seman)o(tics,)g(they)h(ma)o(y)e (or)i(ma)o(y)f(not)g(b)q(e)8 2541 y(in)o(terc)o(hangeable:)j(a)c(comp)q (ositional)e(seman)o(tics)g(is)i(not)f(necessarily)h(fully)g(abstract.)79 2603 y(Action)21 b(seman)o(tics,)g(follo)o(wing)e(denotational)h(seman)o (tics,)g(insists)h(on)g(comp)q(ositionalit)n(y)l(,)f(with)h(the)8 2665 y(seman)o(tic)c(function)i(mapping)e(not)i(only)f(en)o(tire)g(programs)f (but)i(also)f(all)g(their)g(comp)q(onen)o(t)g(phrases)h(to)8 2727 y(seman)o(tic)f(en)o(tities.)31 b(The)20 b(seman)o(tics)d(of)i(a)g (phrase)h(th)o(us)f(en)o(tirely)g(represen)o(ts)g(the)g Fp(c)n(ontribution)k Fr(of)c(the)8 2789 y(phrase)d(to)e(program)f(seman)o(tics.)p eop %%Page: 9 12 9 11 bop -42 -137 a Fn(2.2.)35 b(SEMANTICS)1488 b Fr(9)29 12 y(The)13 b(seman)o(tic)d(en)o(tities)i(pro)o(viding)f(the)i(seman)o(tics)d (of)i(parts)g(of)g(programs)e(are)j(usually)e(more)g(complex)-42 74 y(than)21 b(those)g(represen)o(ting)g(the)g(b)q(eha)o(viour)g(of)g(en)o (tire)f(programs.)36 b(F)l(or)20 b(example,)h(the)h(seman)o(tics)d(of)i(a)-42 136 y(statemen)o(t)e(not)h(only)g(has)h(to)e(represen)o(t)i(its)f(direct)g (con)o(tribution)f(to)h(observ)m(able)h(program)d(seman)o(tics)-42 199 y(\(suc)o(h)f(as)e(the)i(relation)d(b)q(et)o(w)o(een)j(input)f(and)g (output\))g(but)g(also)f(its)g Fp(indir)n(e)n(ct)20 b Fr(con)o(tribution)15 b(b)o(y)h(means)f(of)-42 261 y(assignmen)o(ts)f(to)g(v)m(ariables,)g(etc.)29 323 y(Unfortunately)l(,)e(full)g(abstractness)g(is)g(often)g(di\016cult)g(to) g(obtain,)g(at)g(least)g(when)h(seman)o(tics)e(is)h(de\014ned)-42 385 y(explicitly)l(.)19 b(In)c(fact)f(it)f(has)h(b)q(een)i(sho)o(wn)e Fp(imp)n(ossible)i Fr(to)e(giv)o(e)g(fully)f(abstract)h Fp(denotational)k Fr(seman)o(tics)13 b(for)-42 447 y(some)d(rather)h(simple)f(programmi)o(ng)e (languages)j([Plo77)n(,)g(Sto88)o(].)18 b(In)12 b(an)o(y)f(case,)h(a)f (less-than-fully)f(abstract)-42 509 y(seman)o(tics)h(can)i(b)q(e)g(m)o(uc)o (h)f(simpler)f(to)g(sp)q(ecify)l(,)j(and)e(the)h(seman)o(tic)e(equiv)m (alence)i(that)f(it)g(pro)o(vides)g(b)q(et)o(w)o(een)-42 571 y(phrases)i(ma)o(y)e(b)q(e)j(adequate)f(for)f(most)f(purp)q(oses.)20 b(F)l(or)13 b(instance,)h(a)f(seman)o(tics)f(that)h(is)h(not)f(fully)g (abstract)-42 633 y(sets)k(exactly)f(the)h(same)f(standard)g(for)g(implemen)o (tatio)o(ns)e(as)j(one)g(that)f(is)g(fully)h(abstract,)e(pro)o(vided)i(the) -42 695 y(seman)o(tics)12 b(of)g(en)o(tire)h(programs)d(is)j(the)g(same,)f (since)h(requiremen)o(ts)e(on)i(implemen)o(tatio)o(ns)d(do)j(not)g(directly) -42 757 y(in)o(v)o(olv)o(e)h(the)i(seman)o(tics)e(of)h(phrases)g(suc)o(h)h (as)f(statemen)o(ts)e(and)j(expressions.)k(So)15 b(let)g(us)h(not)f(demand)g (full)-42 820 y(abstractness)g(at)g(all.)-42 961 y Fx(2.2.2)56 b(Seman)n(tic)19 b(En)n(tities)-42 1056 y Fr(Seman)o(tic)13 b(en)o(tities)f(are)h(used)i(to)d(represen)o(t)i(the)g(implemen)o(tati)o (on-indep)q(enden)o(t)e(b)q(eha)o(viour)i(of)f(programs,)-42 1118 y(as)j(w)o(ell)e(as)i(the)f(con)o(tributions)g(that)g(parts)f(of)i (programs)d(mak)o(e)h(to)h(o)o(v)o(erall)f(b)q(eha)o(viour.)21 b(There)16 b(are)f(three)-42 1180 y(kinds)i(of)f(seman)o(tic)f(en)o(tit)o(y)g (used)j(in)e(action)g(seman)o(tics:)21 b Fp(actions)t Fr(,)15 b Fp(data)s Fr(,)j(and)f Fp(yielders)t Fr(.)23 b(The)17 b(main)e(kind)-42 1242 y(is,)e(of)f(course,)h(actions;)g(data)f(and)h(yielders)f(are)h (subsidiary)l(.)18 b(The)13 b(notation)f(used)h(in)g(action)f(seman)o(tics)f (for)-42 1304 y(sp)q(ecifying)j(actions)e(and)i(the)g(subsidiary)f(seman)o (tic)e(en)o(tities)i(is)g(called,)g(unsurprisingly)l(,)g Fp(action)h (notation)s Fr(.)29 1366 y(Actions)23 b(are)g(essen)o(tially)f(dynamic,)i Fp(c)n(omputational)k Fr(en)o(tities.)44 b(The)23 b Fp(p)n(erformanc)n(e)k Fr(of)c(an)g(action)-42 1428 y(directly)16 b(represen)o(ts)g(information)e (pro)q(cessing)i(b)q(eha)o(viour)g(and)h(re\015ects)f(the)h(gradual,)e (step-wise)h(nature)-42 1491 y(of)h(computation.)22 b(Items)15 b(of)h(data)g(are,)h(in)f(con)o(trast,)f(essen)o(tially)g(static,)h Fp(mathematic)n(al)21 b Fr(en)o(tities,)16 b(repre-)-42 1553 y(sen)o(ting)c(pieces)g(of)f(information,)f(e.g.,)h(particular)f(n)o(um)o(b)q (ers.)18 b(Of)13 b(course)e(actions)g(are)h(`mathemati)o(cal')c(to)q(o,)-42 1615 y(in)19 b(the)g(sense)g(that)f(they)h(are)g(abstract,)f (formally-de\014ned)g(en)o(tities,)g(analogous)f(to)i(abstract)e(mac)o(hines) -42 1677 y(as)g(de\014ned)i(in)d(automata)f(theory)l(.)25 b(A)17 b(yielder)g(represen)o(ts)g(an)g Fp(unevaluate)n(d)22 b Fr(item)15 b(of)i(data,)f(whose)h(v)m(alue)-42 1739 y(dep)q(ends)k(on)f(the)f Fp(curr)n(ent)h(information)s Fr(,)h(i.e.,)e(the)h(previously-computed)e(and) i(input)f(v)m(alues)h(that)f(are)-42 1801 y(a)o(v)m(ailable)d(to)h(the)g(p)q (erformance)f(of)h(the)g(action)f(in)h(whic)o(h)g(the)g(yielder)g(o)q(ccurs.) 25 b(F)l(or)17 b(example,)f(a)h(yielder)-42 1863 y(migh)o(t)g(alw)o(a)o(ys)g (ev)m(aluate)h(to)g(the)g(datum)f(curren)o(tly)h(stored)g(in)h(a)f (particular)f(cell,)h(whic)o(h)h(could)f(c)o(hange)-42 1925 y(during)e(the)f(p)q(erformance)f(of)h(an)g(action.)-42 2065 y Fs(Actions)-42 2160 y Fr(A)h(p)q(erformance)e(of)h(an)g(action,)f(whic)o(h) h(ma)o(y)f(b)q(e)h(part)g(of)g(an)g(enclosing)g(action,)f(either:)27 2268 y Fi(\017)22 b Fp(c)n(ompletes)t Fr(,)14 b(corresp)q(onding)i(to)f (normal)e(termination)g(\(the)j(p)q(erformance)e(of)h(the)h(enclosing)f (action)72 2330 y(pro)q(ceeds)h(normally\);)c(or)27 2442 y Fi(\017)22 b Fp(esc)n(ap)n(es)t Fr(,)9 b(corresp)q(onding)i(to)e(exceptional) h(termination)d(\(parts)j(of)f(the)i(enclosing)e(action)h(are)f(skipp)q(ed)72 2504 y(un)o(til)14 b(the)i(escap)q(e)g(is)e(trapp)q(ed\);)h(or)27 2616 y Fi(\017)22 b Fp(fails)t Fr(,)g(corresp)q(onding)f(to)g(abandoning)g (the)g(p)q(erformance)g(of)f(an)i(action)e(\(the)h(enclosing)g(action)72 2678 y(p)q(erforms)14 b(an)h(alternativ)o(e)f(action,)g(if)g(there)i(is)e (one,)h(otherwise)g(it)f(fails)g(to)q(o\);)g(or)27 2789 y Fi(\017)22 b Fp(diver)n(ges)t Fr(,)14 b(corresp)q(onding)h(to)g(non)o(termination)d (\(the)j(enclosing)g(action)f(also)g(div)o(erges\).)p eop %%Page: 10 13 10 12 bop 8 -137 a Fr(10)1274 b Fn(CHAPTER)15 b(2.)35 b(CONCEPTS)8 12 y Fr(Actions)18 b(can)g(b)q(e)h(used)g(to)e(represen)o(t)h(the)h(seman)o (tics)d(of)i(programs:)23 b(action)17 b(p)q(erformances)h(corresp)q(ond)8 74 y(to)k(p)q(ossible)g(program)f(b)q(eha)o(viours.)41 b(F)l(urthermore,)22 b(actions)g(can)g(represen)o(t)h(the)f(\(p)q(erhaps)h(indirect\))8 136 y(con)o(tribution)13 b(that)g Fp(p)n(arts)18 b Fr(of)13 b(programs,)f(suc)o(h)i(as)f(statemen)o(ts)f(and)i(expressions,)f(mak)o(e)g (to)g(the)h(seman)o(tics)8 199 y(of)h(en)o(tire)g(programs.)79 261 y(An)f(action)f(ma)o(y)g(b)q(e)i(nondeterministic,)d(ha)o(ving)h (di\013eren)o(t)g(p)q(ossible)h(p)q(erformances)f(for)h(the)g(same)e(ini-)8 323 y(tial)i(information.)k(Nondeterminism)13 b(represen)o(ts)i(implemen)o (tati)o(on-dep)q(endence,)g(where)h(the)f(b)q(eha)o(viour)8 385 y(of)c(a)f(program)f(\(or)h(the)h(con)o(tribution)f(of)h(a)f(part)h(of)f (it\))g(ma)o(y)f(v)m(ary)i(b)q(et)o(w)o(een)h(di\013eren)o(t)e(implemen)o (tati)o(ons|or)8 447 y(ev)o(en)k(b)q(et)o(w)o(een)g(di\013eren)o(t)f(instan)o (ts)f(of)h(time)f(on)h(the)h(same)e(implemen)o(tati)o(on.)17 b(Note)c(that)g(nondeterminism)8 509 y(do)q(es)k(not)g(imply)e(actual)h (randomness:)22 b(eac)o(h)17 b(implemen)o(tati)o(on)d(of)j(a)f (nondeterministic)f(b)q(eha)o(viour)i(ma)o(y)8 571 y(b)q(e)f(absolutely)e (deterministic.)79 633 y(The)i(information)d(pro)q(cessed)k(b)o(y)f(action)f (p)q(erformance)g(ma)o(y)g(b)q(e)h(classi\014ed)g(according)f(to)h(ho)o(w)f (far)h(it)8 695 y(tends)g(to)e(b)q(e)i(propagated,)e(as)h(follo)o(ws:)76 787 y Fi(\017)23 b Fp(tr)n(ansient)t Fr(:)c(tuples)c(of)g(data,)f(corresp)q (onding)h(to)g(in)o(termediate)e(results;)76 883 y Fi(\017)23 b Fp(sc)n(op)n(e)n(d)5 b Fr(:)19 b(bindings)c(of)f(tok)o(ens)h(to)g(data,)f (corresp)q(onding)h(to)g(sym)o(b)q(ol)e(tables;)76 979 y Fi(\017)23 b Fp(stable)s Fr(:)d(data)14 b(stored)h(in)g(cells,)f(corresp)q(onding)h(to)g (the)g(v)m(alues)h(assigned)e(to)h(v)m(ariables;)76 1075 y Fi(\017)23 b Fp(p)n(ermanent)t Fr(:)d(data)14 b(comm)o(unicated)f(b)q(et)o(w) o(een)i(distributed)g(actions.)8 1166 y(T)l(ransien)o(t)j(information)d(is)j (made)g(a)o(v)m(ailable)f(to)h(an)g(action)g(for)f(immediate)f(use.)30 b(Scop)q(ed)19 b(information,)8 1229 y(in)e(con)o(trast,)e(ma)o(y)g (generally)h(b)q(e)h(referred)g(to)f(throughout)g(an)g(en)o(tire)g(action,)g (although)g(it)g(ma)o(y)f(also)g(b)q(e)8 1291 y(hidden)21 b(temp)q(orarily)l (.)34 b(Stable)20 b(information)d(can)k(b)q(e)g(c)o(hanged,)g(but)g(not)f (hidden,)i(in)e(the)g(action,)h(and)8 1353 y(it)d(p)q(ersists)g(un)o(til)g (explicitly)f(destro)o(y)o(ed.)29 b(P)o(ermanen)o(t)17 b(informatio)o(n)f (cannot)i(ev)o(en)h(b)q(e)g(c)o(hanged,)g(merely)8 1415 y(augmen)o(ted.)79 1477 y(When)e(an)f(action)g(is)g(p)q(erformed,)g(transien)o(t)f(information)f (is)i(giv)o(en)g(only)g(on)h(completion)e(or)h(escap)q(e,)8 1539 y(and)i(scop)q(ed)h(information)c(is)j(pro)q(duced)h(only)e(on)h (completion.)27 b(In)18 b(con)o(trast,)f(c)o(hanges)h(to)f(stable)h(infor-)8 1601 y(mation)13 b(and)i(extensions)g(to)f(p)q(ermanen)o(t)g(information)f (are)h(made)g Fp(during)19 b Fr(action)14 b(p)q(erformance,)g(and)h(are)8 1663 y(una\013ected)h(b)o(y)f(subsequen)o(t)h(div)o(ergence,)f(failure,)f(or) g(escap)q(e.)79 1725 y(The)19 b(di\013eren)o(t)g(kinds)g(of)g(information)e (giv)o(e)i(rise)f(to)h(so-called)g Fp(fac)n(ets)j Fr(of)d(actions,)g(fo)q (cusing)h(on)f(the)8 1787 y(pro)q(cessing)c(of)g(at)g(most)e(one)i(kind)h(of) e(information)f(at)h(a)h(time:)76 1879 y Fi(\017)23 b Fr(the)15 b Fp(b)n(asic)i Fr(facet,)e(pro)q(cessing)g(indep)q(enden)o(tly)h(of)f (information)d(\(con)o(trol)i(\015o)o(ws\);)76 1975 y Fi(\017)23 b Fr(the)15 b Fp(functional)20 b Fr(facet,)14 b(pro)q(cessing)h(transien)o(t) f(information)e(\(actions)i(are)h Fp(given)j Fr(and)e Fp(give)i Fr(data\);)76 2071 y Fi(\017)23 b Fr(the)11 b Fp(de)n(clar)n(ative)j Fr(facet,)e(pro)q(cessing)f(scop)q(ed)h(information)c(\(actions)i Fp(r)n(e)n(c)n(eive)k Fr(and)d Fp(pr)n(o)n(duc)n(e)k Fr(bindings\);)76 2167 y Fi(\017)23 b Fr(the)15 b Fp(imp)n(er)n(ative)j Fr(facet,)c(pro)q (cessing)h(stable)f(information)e(\(actions)i Fp(r)n(eserve)j Fr(and)f Fp(unr)n(eserve)h Fr(cells)d(of)122 2229 y(storage,)g(and)h Fp(change)j Fr(the)d(data)g(stored)g(in)g(cells\);)f(and)76 2326 y Fi(\017)23 b Fr(the)10 b Fp(c)n(ommunic)n(ative)j Fr(facet,)e(pro)q (cessing)f(p)q(ermanen)o(t)f(information)e(\(actions)i Fp(send)14 b Fr(messages,)c Fp(r)n(e)n(c)n(eive)122 2388 y Fr(messages)k(in)h (bu\013ers,)f(and)i(o\013er)e Fp(c)n(ontr)n(acts)k Fr(to)d Fp(agents)t Fr(\).)8 2479 y(These)d(facets)f(of)g(actions)g(are)g(indep)q (enden)o(t.)20 b(F)l(or)11 b(instance,)g(c)o(hanging)g(the)h(data)e(stored)h (in)h(a)f(cell|or)g(ev)o(en)8 2541 y(unreserving)16 b(the)g(cell|do)q(es)g (not)g(a\013ect)f(an)o(y)g(bindings.)22 b(There)16 b(are,)f(ho)o(w)o(ev)o (er,)g(some)g Fp(dir)n(e)n(ctive)j Fr(actions,)8 2603 y(whic)o(h)13 b(pro)q(cess)g(a)g(mixture)e(of)i(scop)q(ed)h(and)f(stable)f(information,)e (so)j(as)f(to)h(pro)o(vide)f(\014nite)h(represen)o(tations)8 2665 y(of)f(self-referen)o(tial)f(bindings.)19 b(There)12 b(are)g(also)f (some)g Fp(hybrid)18 b Fr(primitiv)o(e)9 b(actions)j(and)g(com)o(binators,)e (whic)o(h)8 2727 y(in)o(v)o(olv)o(e)16 b(more)f(than)h(one)h(kind)g(of)f (information)e(at)i(once,)h(suc)o(h)f(as)h(an)f(action)g(that)g(b)q(oth)h (reserv)o(es)f(a)g(cell)8 2789 y(of)f(storage)f(and)h(giv)o(es)g(it)f(as)h (transien)o(t)f(data.)p eop %%Page: 11 14 11 13 bop -42 -137 a Fn(2.3.)35 b(PRA)o(GMA)l(TICS)1426 b Fr(11)29 12 y(The)13 b(standard)f(notation)f(for)h(sp)q(ecifying)h(actions)e(consists) h(of)g(action)g Fp(primitives)t Fr(,)g(whic)o(h)h(ma)o(y)e(in)o(v)o(olv)o(e) -42 74 y(yielders,)k(and)g(action)g Fp(c)n(ombinators)t Fr(,)f(whic)o(h)h(op) q(erate)g(on)g(one)g(or)g(t)o(w)o(o)f Fp(sub)n(actions)t Fr(.)-42 210 y Fs(Data)-42 303 y Fr(The)g(information)c(pro)q(cessed)k(b)o(y)f (actions)g(consists)f(of)h(items)e(of)i Fp(data)s Fr(,)i(organized)d(in)i (structures)e(that)h(giv)o(e)-42 366 y(access)i(to)f(the)h(individual)f (items.)k(Data)13 b(can)i(include)g(v)m(arious)f(familiar)e(mathemati)o(cal)f (en)o(tities,)j(suc)o(h)h(as)-42 428 y(truth-v)m(alues,)f(n)o(um)o(b)q(ers,)e (c)o(haracters,)h(strings,)f(lists,)g(sets,)h(and)h(maps.)k(It)13 b(can)h(also)e(include)i(en)o(tities)e(suc)o(h)-42 490 y(as)18 b(tok)o(ens,)f(cells,)g(and)h(agen)o(ts,)f(used)h(for)f(accessing)h(other)f (items,)f(and)i(some)e(comp)q(ound)h(en)o(tities)g(with)-42 552 y(data)g(comp)q(onen)o(ts,)g(suc)o(h)g(as)g(messages)f(and)i(con)o (tracts.)25 b(Actions)17 b(themselv)o(es)f(are)h(not)g(data,)g(but)g(they)-42 614 y(can)i(b)q(e)f(incorp)q(orated)g(in)g(so-called)f Fp(abstr)n(actions)t Fr(,)g(whic)o(h)h(are)g(data,)g(and)g(subsequen)o(tly)g Fp(enacte)n(d)k Fr(bac)o(k)-42 676 y(in)o(to)13 b(actions.)18 b(\(Abstraction)12 b(and)h(enaction)g(are)g(a)f(sp)q(ecial)h(case)h(of)e(so-called)h Fp(r)n(ei\014c)n(ation)i Fr(and)f Fp(r)n(e\015e)n(ction)s Fr(.\))-42 738 y(New)i(kinds)f(of)g(data)f(can)i(b)q(e)f(in)o(tro)q(duced)h Fp(ad)h(ho)n(c)s Fr(,)d(for)h(represen)o(ting)f(sp)q(ecial)h(pieces)h(of)f (information.)-42 874 y Fs(Yielders)-42 967 y Fp(Yielders)20 b Fr(are)c(en)o(tities)f(that)h(can)h(b)q(e)g Fp(evaluate)n(d)k Fr(to)16 b(yield)g(data)g(during)h(action)e(p)q(erformance.)23 b(The)17 b(data)-42 1029 y(yielded)d(ma)o(y)f(dep)q(end)i(on)f(the)g(curren)o (t)f(information,)e(i.e.,)i(the)h(giv)o(en)f(transien)o(ts,)g(the)h(receiv)o (ed)g(bindings,)-42 1091 y(and)23 b(the)e(curren)o(t)h(state)f(of)h(the)g (storage)e(and)i(bu\013er.)40 b(In)23 b(fact)e(action)g(notation)f(pro)o (vides)i(primitiv)o(e)-42 1154 y(yielders)d(that)e(ev)m(aluate)i(to)e(comp)q (ound)i(data)e(\(tuples,)i(maps,)e(lists\))g(represen)o(ting)h(en)o(tire)g (slices)g(of)g(the)-42 1216 y(curren)o(t)f(information,)c(suc)o(h)k(as)f(the) g(curren)o(t)h(state)e(of)h(storage.)23 b(Ev)m(aluation)15 b(cannot)h(a\013ect)g(the)g(curren)o(t)-42 1278 y(information.)29 1340 y(Comp)q(ound)i(yielders)g(can)h(b)q(e)g(formed)f(b)o(y)g(the)h (application)e(of)h(data)g(op)q(erations)g(to)g(yielders.)30 b(The)-42 1402 y(data)17 b(yielded)g(b)o(y)f(ev)m(aluating)g(a)h(comp)q(ound) f(yielder)h(are)f(the)h(result)f(of)h(applying)f(the)h(op)q(eration)f(to)g (the)-42 1464 y(data)i(yielded)g(b)o(y)h(ev)m(aluating)e(the)h(op)q(erands.) 30 b(F)l(or)17 b(instance,)i(one)f(can)g(form)f(the)h(sum)f(of)h(t)o(w)o(o)f (n)o(um)o(b)q(er)-42 1526 y(yielders.)27 b(Items)17 b(of)g(data)g(are)g(a)g (sp)q(ecial)h(case)f(of)g(data)g(yielders,)h(and)g(alw)o(a)o(ys)d(yields)j (themselv)o(es)e(when)-42 1588 y(ev)m(aluated.)-42 1749 y Fo(2.3)70 b(Pragmatics)-42 1858 y Fr(Let)16 b(us)g(conclude)g(this)f(c)o(hapter)g(b)o (y)h(considering)f(the)g(use)h(of)f(comprehensiv)o(e)g(language)g (descriptions)g(for)-42 1920 y(setting)g Fp(standar)n(ds)j Fr(for)d(implemen)o(tati)o(ons.)29 1982 y(The)k(syn)o(tax)e(of)h(a)g (programming)d(language)j(de\014nes)h(the)g(set)f(of)g(legal)f(programs,)g (and)i(the)f(seman-)-42 2044 y(tics)i(of)g(eac)o(h)g(program)e(giv)o(es)h(a)h (represen)o(tation)f(of)h(its)f(implemen)o(tati)o(on-indep)q(enden)o(t)g(b)q (eha)o(viour.)34 b(A)-42 2106 y(standard)15 b(for)f(a)g(programming)d (language)j(relates)g(its)g(syn)o(tax)g(and)h(seman)o(tics)e(to)h(prop)q (erties)h(of)f(ph)o(ysical)-42 2168 y(implemen)o(tations,)f(de\014ning)k(the) g(class)f(of)g Fp(c)n(onforming)k Fr(implemen)o(tatio)o(ns.)i(Th)o(us)16 b(it)g(is)g(concerned)i(with)-42 2231 y(the)e Fp(pr)n(agmatics)j Fr(of)c(the)g(language.)29 2293 y(With)f(syn)o(tax)g(a)g(standard)h(ma)o(y)l (,)e(for)h(instance,)g(require)h(implemen)o(tat)o(ions)d(to)i(reject)g (\(with)g(an)h(infor-)-42 2355 y(mativ)o(e)h(error)i(message\))e(illegal)g (programs,)g(and)i(p)q(erhaps)h(allo)o(w)d(them)h(also)g(to)h(reject)g(legal) e(programs)-42 2417 y(whose)f(pro)q(cessing)g(exceeds)h(the)g(a)o(v)m (ailable)d(resources.)20 b(It)15 b(ma)o(y)f(allo)o(w)f(national)h(or)g(t)o (yp)q(ographical)g(v)m(aria-)-42 2479 y(tions)h(in)g(the)g(c)o(haracters)g (used)g(to)g(write)f(programs.)29 2541 y(It)j(is)g(imp)q(ortan)o(t)d(to)j (realize)f(in)h(connection)g(with)f(seman)o(tics)g(that)g(the)h(actual)f(b)q (eha)o(viour)h(of)g(a)f(par-)-42 2603 y(ticular)e(program)e(ma)o(y)h(b)q(e)i (allo)o(w)o(ed)e(to)h(v)m(ary)g(b)q(et)o(w)o(een)h(implemen)o(tati)o(ons|ev)o (en)e(b)q(et)o(w)o(een)h(di\013eren)o(t)g(runs)-42 2665 y(on)19 b(the)f(same)f(implemen)o(tati)o(on!)26 b(This)18 b(v)m(ariation)f(ma)o(y)f (b)q(e)j(represen)o(ted)g(in)f(the)g(seman)o(tics)f(b)o(y)h(lo)q(osely-)-42 2727 y(sp)q(eci\014ed)f(en)o(tities,)d(i.e.,)g(parameters,)f(or)h(b)o(y)h(a)g (nondeterministic)f(relation)g(b)q(et)o(w)o(een)h(input)g(and)h(output.)-42 2789 y(A)i(standard)f(ma)o(y)f(require)h(certain)g(parameters)e(to)i(b)q(e)h Fp(implementation-de\014ne)n(d)5 b Fr(;)17 b(the)h(remaining)d(ones)p eop %%Page: 12 15 12 14 bop 8 -137 a Fr(12)1274 b Fn(CHAPTER)15 b(2.)35 b(CONCEPTS)8 12 y Fr(are)16 b(left)g Fp(unde\014ne)n(d)5 b Fr(,)15 b(and)h(an)g(implemen)o (tatio)o(n)e(is)i(free)g(to)g(c)o(ho)q(ose.)23 b(In)17 b Fj(Ad)o(a)p Fr(,)f(for)g(instance,)g(the)g(v)m(alue)g(of)8 74 y Fk(MAX)p 111 74 14 2 v 17 w(INT)d Fr(is)g(implemen)o(tati)o(on-de\014ned,)f(whereas)i (the)f(order)g(of)g(expression)h(ev)m(aluation)e(is)h(generally)g(left)8 136 y(unde\014ned.)79 199 y(Finally)l(,)h(note)i(that)f(although)g(it)g(ma)o (y)f(b)q(e)i(feasible)g(for)f(a)g(standard)h(to)f Fp(de\014ne)j Fr(a)d(class)h(of)f(implemen-)8 261 y(tations)h(on)g(the)h(basis)f(of)h(syn)o (tactic)e(and)i(seman)o(tic)e(descriptions,)i(one)f(ma)o(y)f(still)h(not)g(b) q(e)h(able)g(to)f Fp(verify)8 323 y Fr(that)g(a)g(particular)f(implemen)o (tat)o(ion)e(b)q(elongs)j(to)g(that)g(class.)22 b(In)17 b(practice,)f(it)f (is)h(feasible)f(to)h(v)o(erify)f(only)8 385 y(those)h(implemen)o(tatio)o(ns) e(that)h(ha)o(v)o(e)h(b)q(een)h(dev)o(elop)q(ed)g(systematically)c(from)h (language)i(descriptions.)22 b(A)8 447 y Fp(validation)f(suite)j Fr(for)c(a)g(language)f(is)h(a)g(particular)f(set)h(of)g(programs)e(that)i (an)g(implemen)o(tati)o(on)e(m)o(ust)8 509 y(pro)q(cess)13 b(`correctly')f(so)g(as)h(to)f(b)q(e)h(regarded)g(as)f(v)m(alid.)19 b(The)13 b(use)g(of)g(v)m(alidation)e(suites)i(to)f(test)g(conformance)8 571 y(to)j(standards)g(is)f(a)h(rather)g(w)o(eak)f(appro)o(ximation)f(to)h(v) o(eri\014cation.)p eop %%Page: 13 16 13 15 bop -42 334 a FB(Chapter)35 b(3)-42 554 y Ft(An)40 b(Illustrativ)m(e)f (Example)-42 782 y Fr(No)o(w)21 b(that)g(w)o(e)g(ha)o(v)o(e)h(considered)g (the)f(main)f(concepts)i(underlying)f(action)g(seman)o(tics,)g(let)g(us)h (tak)o(e)f(a)-42 844 y(w)o(alk)14 b(through)g(an)h(illustrativ)o(e)d (description,)i(explaining)g(all)f(the)i(notation)e(that)h(it)g(uses)h(as)f (w)o(e)h(go)f(along.)-42 906 y(Summaries)f(of)i(the)g(standard)f(action)h (notation)e(and)j(data)e(notation)g(used)h(in)g(the)g(description)g(are)g (giv)o(en)-42 968 y(in)h(the)f(App)q(endices.)29 1031 y(The)i(language)e (used)i(here)f(to)g(illustrate)e(action)i(seman)o(tic)e(descriptions)i(is)g (a)g(medium-scale,)e(`ideal')-42 1093 y(programming)c(language.)18 b(Syn)o(tactically)l(,)12 b(it)h(is)f(a)h(sublanguage)g(of)g Fj(Ad)o(a)p Fr(.)19 b(Ho)o(w)o(ev)o(er,)12 b(the)i(sp)q(eci\014ed)g(action) -42 1155 y(seman)o(tics)h(for)i(the)g(constructs)f(do)q(es)h(not)g(alw)o(a)o (ys)e(corresp)q(ond)i(exactly)f(to)h(the)g(seman)o(tics)e(describ)q(ed)i(in) -42 1217 y(the)i Fj(Ad)o(a)g Fr(Reference)h(Man)o(ual.)30 b(F)l(or)18 b(instance,)h(parameter)e(passing)h(mo)q(des)g(are)h(left)f(implemen)o(tat)o (ion-)-42 1279 y(dep)q(enden)o(t)f(in)e Fj(Ad)o(a)p Fr(,)g(but)h(not)e(here.) 29 1341 y(The)19 b(language)f(is)h(a)f(cut-do)o(wn)h(v)o(ersion)f(of)h(that)f (describ)q(ed)i(in)f([Mos92)n(,)g(App)q(endix)h(A].)f(The)g(main)-42 1403 y(constructs)h(omitted)e(here,)j(for)e(simplicit)o(y)l(,)f(are:)28 b(comp)q(ound)20 b(v)m(alues,)g(v)m(ariables,)g(and)g(t)o(yp)q(es;)i(p)q(oin) o(ters)-42 1465 y(\(`accesses')12 b(in)g Fj(Ad)o(a)g Fr(terminology\);)e(pac) o(k)m(ages;)i(named)f(actual)h(parameters;)f(separate)g(subprogram)g(b)q(o)q (dy)-42 1527 y(de\014nitions;)k(en)o(try)g(selection)f(statemen)o(ts;)f(and)j (function)f(de\014nitions.)29 1589 y(The)f(mo)q(dular)e(structure)i(of)f(our) h(illustrativ)o(e)d(action)i(seman)o(tic)f(description)h(is)h(formally)d(sp)q (eci\014ed)k(as)-42 1652 y(follo)o(ws.)-42 1756 y Fs(Abstract)j(Syn)o(tax)49 1840 y(Expressions)216 b Fk(.)49 1906 y Fs(Statemen)o(ts)228 b(needs:)30 b(Expressions,)14 b(Declarations.)49 1972 y(Declarations)201 b(needs:)30 b(Expressions,)14 b(Statemen)o(ts.)49 2037 y(Program)o(s)262 b(needs:)30 b(Expressions,)14 b(Declarations.)-42 2187 y(Seman)o(tic)h(F)l (unctions)39 b(needs:)30 b(Abstract)17 b(Syn)o(tax,)g(Sem)o(an)o(tic)e(En)o (tities.)49 2271 y(Expressions)216 b Fk(.)49 2336 y Fs(Statemen)o(ts)228 b(needs:)30 b(Expressions,)14 b(Declarations.)49 2402 y(Declarations)201 b(needs:)30 b(Expressions,)14 b(Statemen)o(ts.)49 2467 y(Program)o(s)262 b(needs:)30 b(Expressions,)14 b(Declarations.)-42 2617 y(Seman)o(tic)h(En)o (tities)83 b Fk(.)-42 2727 y Fr(An)15 b(action)f(seman)o(tic)e(description)i (consists)g(of)g(three)g(main)f(parts,)h(concerned)h(with)f(sp)q(ecifying)g (abstract)-42 2789 y(syn)o(tax,)i(seman)o(tic)e(functions,)h(and)i(seman)o (tic)d(en)o(tities.)21 b(W)l(e)16 b(sp)q(ecify)g(these)h(parts)e(as)h (separate)f Fp(mo)n(dules)t Fr(,)881 2914 y(13)p eop %%Page: 14 17 14 16 bop 8 -137 a Fr(14)856 b Fn(CHAPTER)15 b(3.)35 b(AN)15 b(ILLUSTRA)l(TIVE)j(EXAMPLE)8 12 y Fr(whic)o(h)d(ma)o(y)e(themselv)o(es)h(b)q (e)i(divided)f(in)o(to)f Fp(submo)n(dules)t Fr(,)g(just)g(as)h(w)o(e)g (normally)d(divide)j(tec)o(hnical)f(rep)q(orts)8 74 y(and)i(textb)q(o)q(oks)f (in)o(to)f(sections)g(and)i(subsections.)79 136 y(Let)e(us)g(adopt)g(the)g (follo)o(wing)d(discipline)j(in)f(our)h(mo)q(dular)e(sp)q(eci\014cations:)19 b(eac)o(h)14 b(mo)q(dule)f(has)h(to)f(ha)o(v)o(e)8 199 y(a)i Fp(title)s Fr(,)f(and)h(it)f(has)g(to)g(b)q(e)h Fp(self-c)n(ontaine)n(d)5 b Fr(,)13 b(in)h(the)h(sense)g(that)f(all)f(the)i(notation)e(used)i(in)g(a)f (mo)q(dule)g(m)o(ust)8 261 y(b)q(e)j(sp)q(eci\014ed)f(there)g(to)q(o.)21 b(Of)15 b(course,)h(when)g(some)e(mo)q(dule)h Fp(M)23 b Fr(uses)16 b(notation)e(that)h(is)g(already)g(sp)q(eci\014ed)8 323 y(in)h(another)f(mo)q (dule)g Fp(M)438 306 y Fh(0)450 323 y Fr(,)g(there)h(is)f(no)h(p)q(oin)o(t)f (in)g(rep)q(eating)h(all)e(of)i Fp(M)1243 306 y Fh(0)1270 323 y Fr(literally)e(in)h Fp(M)7 b Fr(:)21 b(it)15 b(is)g(su\016cien)o(t)h(to)8 385 y Fp(r)n(efer)i Fr(to)12 b Fp(M)219 368 y Fh(0)244 385 y Fr(from)f Fp(M)c Fr(,)13 b(using)g(its)f(title.)18 b(Similarly)l(,)10 b(when)k(the)f(submo)q(dules)f Fp(M)1392 392 y Fg(i)1419 385 y Fr(of)g(a)h(mo)q(dule)f Fp(M)20 b Fr(use)13 b(some)8 447 y(common)e(notation,)h(w)o(e)g(ma)o(y)g(as)g(w)o(ell)g(sp)q(ecify)i(that)e (notation)g(just)g(once,)i(at)e(the)h(lev)o(el)f(of)h Fp(M)7 b Fr(,)13 b(letting)f(it)g(b)q(e)8 509 y Fp(inherite)n(d)20 b Fr(b)o(y)15 b(eac)o(h)g Fp(M)408 516 y Fg(i)422 509 y Fr(.)k(A)c(reference) h(to)f(a)f(mo)q(dule)g Fp(M)23 b Fr(th)o(us)14 b(pro)o(vides)h(not)g(only)f (the)h(notation)f(sp)q(eci\014ed)8 571 y(directly)h(in)h Fp(M)22 b Fr(and)16 b(its)f(submo)q(dules,)g(but)g(also)g(that)g(whic)o(h)g(is)g(sp)q (eci\014ed)i(in)e(mo)q(dules)g(referenced)h(b)o(y)g Fp(M)8 633 y Fr(and)g(in)f(sup)q(ermo)q(dules)g(enclosing)f Fp(M)7 b Fr(.)79 695 y(W)l(e)16 b(write)f(titles)g(of)g(mo)q(dules)g(using)h (initially)d(capitalized)i(w)o(ords)h(in)f Fs(This)j(Bold)g(F)l(on)o(t)p Fr(.)k(The)16 b(sp)q(ec-)8 757 y(i\014cation)h(ab)q(o)o(v)o(e)g(has)h(three)g (mo)q(dules,)f(with)g(the)h(ob)o(vious)f(titles.)26 b(W)l(e)18 b(could)g(giv)o(e)f(a)g(title)f(to)i(the)f(whole)8 820 y(sp)q(eci\014cation,) 23 b(if)e(w)o(e)g(wished;)j(here)e(let)f(us)h(simply)d(inherit)i(the)h(title) e(of)h(the)h(presen)o(t)f(c)o(hapter.)39 b(The)8 882 y(abstract)14 b(syn)o(tax)h(mo)q(dule)f(and)h(the)h(seman)o(tic)d(en)o(tities)h(mo)q(dule)g (are)h(self-con)o(tained,)f(and)h(could)h(b)q(e)f(used)8 944 y(indep)q(enden)o(tly)l(.)35 b(On)21 b(the)f(other)f(hand,)i(the)f(seman)o (tic)e(functions)i(mo)q(dule)f Fp(ne)n(e)n(ds)j Fr(the)e(notation)e(in)o (tro-)8 1006 y(duced)g(b)o(y)e(b)q(oth)h(the)f(other)g(mo)q(dules,)f(so)h (its)g(use)h(implies)d(their)i(use)h(to)q(o.)23 b(Our)16 b(notation)f(for)h (indicating)8 1068 y(mo)q(dular)g(structure)i(is)f(in)o(tended)h(to)f(b)q(e)i (unobtrusiv)o(e,)e(and)h(most)e(of)h(the)h(time)e(w)o(e)h(shall)g(disregard)g (the)8 1130 y(mo)q(dularization)c(and)i(fo)q(cus)h(on)f(what)f(is)h(sp)q (eci\014ed)h(in)f(the)h(b)q(o)q(dies)f(of)g(the)g(mo)q(dules.)79 1192 y(W)l(e)g(allo)o(w)f(mo)q(dules)g(to)h(b)q(e)h Fp(mutual)r(ly)k Fr(dep)q(enden)o(t,)d(and)e(the)g(order)g(in)h(whic)o(h)f(w)o(e)g(presen)o(t) g(mo)q(dules)g(is)8 1254 y(immateria)o(l.)h(In)e(abstract)f(syn)o(tax,)f(for) h(instance,)g(the)h(sp)q(eci\014cation)f(of)g(pro)q(cedure)h(declarations)f (in)o(v)o(olv)o(es)8 1316 y(statemen)o(ts,)k(and)h(that)g(of)f(blo)q(c)o(k)h (statemen)o(ts)f(in)o(v)o(olv)o(es)f(declarations,)i(so)f(the)i(corresp)q (onding)f(mo)q(dules)8 1379 y(ha)o(v)o(e)j(to)f(b)q(e)h(m)o(utually)e(dep)q (enden)o(t;)24 b(similarly)18 b(for)i(the)h(corresp)q(onding)g(parts)f(of)g (the)h(seman)o(tic)e(equa-)8 1441 y(tions.)g(Most)11 b(previous)i(framew)o (orks)d(for)i(mo)q(dules)g(insist)f(on)i(a)f(strict)g(hierarc)o(h)o(y)l(,)g (th)o(us)h(forbidding)f(m)o(utual)8 1503 y(dep)q(endence.)79 1565 y(A)j(related)g(p)q(oin)o(t)f(is)h(that)g(w)o(e)g(are)f(free)i(to)e (presen)o(t)i(mo)q(dules)e(in)h(whatev)o(er)f(order)h(is)g(most)e(con)o(v)o (enien)o(t)8 1627 y(for)i(the)h(reader.)22 b(In)16 b(seman)o(tic)e (descriptions,)h(it)g(is)h(preferable)f(to)g(presen)o(t)h(the)g(sp)q (eci\014cation)g(of)f(abstract)8 1689 y(syn)o(tax)e(\014rst,)g(follo)o(w)o (ed)e(b)o(y)j(the)f(seman)o(tic)e(functions,)j(lea)o(ving)e(the)h(seman)o (tic)f(en)o(tities)g(to)g(the)i(end.)20 b(This)13 b(is)8 1751 y(assuming)i(that)g(the)h(notation)e(for)i(seman)o(tic)e(en)o(tities)h(is)g (w)o(ell)g(c)o(hosen,)h(and)g(its)f(in)o(tended)i(in)o(terpretation)8 1813 y(strongly)11 b(suggested)h(b)o(y)g(the)g(sym)o(b)q(ols)e(used.)19 b(When)13 b(seman)o(tic)d(en)o(tities)h(are)g(presen)o(ted)i(b)q(efore)f(the) g(seman-)8 1875 y(tic)g(functions,)g(it)f(can)i(b)q(e)f(di\016cult)g(to)f (appreciate)h(them,)g(indep)q(enden)o(tly)h(of)e(their)h(usage.)19 b(Ho)o(w)o(ev)o(er,)11 b(there)8 1937 y(is)17 b(no)g(need)h(for)e(us)i(to)e (b)q(e)i(dogmatic)d(ab)q(out)i(suc)o(h)g(matters,)e(b)q(ecause)j(the)f(order) g(in)g(whic)o(h)g(mo)q(dules)f(are)8 2000 y(written)f(has)g(no)g(e\013ect)g (at)f(all)g(on)h(what)g(they)g(sp)q(ecify)l(.)79 2062 y(Finally)l(,)10 b(w)o(e)g(use)h(v)m(arious)f(devices)h(to)f(indicate)g(that)g(mo)q(dules)g (are)g(submo)q(dules)g(of)g(other)g(mo)q(dules.)18 b(F)l(or)8 2124 y(small)c(sp)q(eci\014cations,)h(suc)o(h)i(as)e(that)g(of)h(the)g(o)o(v) o(erall)e(mo)q(dular)g(structure)i(ab)q(o)o(v)o(e,)f(inden)o(tation)g (\(formally)8 2186 y(equiv)m(alen)o(t)i(to)f(putting)h(grouping)f(paren)o (theses)h(around)g(the)g(inden)o(ted)h(part\))e(is)h(adequate)g(for)f(sho)o (wing)8 2248 y(nesting)e(structure.)20 b(F)l(or)14 b(larger)f(sp)q (eci\014cations)i(w)o(e)f(use)h(n)o(um)o(b)q(ered)f(titles)f Fp(m)1367 2255 y Fy(1)1387 2248 y Fs(.)p Fi(\001)8 b(\001)g(\001)n Fs(.)p Fp(m)1507 2255 y Fg(n)1547 2248 y Fp(M)f Fr(,)14 b(as)g(in)h(ordinary) 8 2310 y(tec)o(hnical)g(do)q(cumen)o(ts.)8 2490 y Fo(3.1)70 b(Abstract)23 b(Syn)n(tax)8 2603 y Fr(No)o(w)17 b(let)g(us)g(consider)h(ho)o (w)f(to)g(sp)q(ecify)g(abstract)g(syn)o(tax.)25 b(Reference)19 b(man)o(uals)d(for)h(programm)o(ing)d(lan-)8 2665 y(guages)g(generally)g(use) g(formal)e(con)o(text-free)i Fp(gr)n(ammars)t Fr(,)g(augmen)o(ted)f(b)o(y)i (some)e(form)f(of)i(regular)g(expres-)8 2727 y(sions,)h(to)h(sp)q(ecify)g Fp(c)n(oncr)n(ete)i Fr(syn)o(tax.)k(A)16 b(formal)d(grammar)g(consists)i(of)h (a)f(set)h(of)f Fp(pr)n(o)n(ductions)t Fr(,)h(in)o(v)o(olving)8 2789 y Fp(terminal)h Fr(sym)o(b)q(ols,)12 b(whic)o(h)g(ma)o(y)f(b)q(e)j(c)o (haracters)e(or)g(strings,)g(as)g(w)o(ell)g(as)h(auxiliary)e Fp(nonterminal)16 b Fr(sym)o(b)q(ols.)p eop %%Page: 15 18 15 17 bop -42 -137 a Fn(3.1.)35 b(ABSTRA)o(CT)15 b(SYNT)l(AX)1277 b Fr(15)-42 12 y(F)l(ormal)12 b(grammar)o(s)f(ha)o(v)o(e)j(excellen)o(t)f (pragmatic)f(prop)q(erties,)h(suc)o(h)h(as)g(readabilit)o(y)e(and)i(mo)q (di\014abilit)o(y;)d(let)-42 74 y(us)16 b(adapt)f(them)f(for)g(sp)q(ecifying) h(abstract)g(syn)o(tax.)29 136 y(The)d(grammar-li)o(k)o(e)d(sp)q (eci\014cation)k(giv)o(en)e(b)q(elo)o(w)h(consists)f(mainly)g(of)g(a)h(set)g (of)g(\(n)o(um)o(b)q(ered\))f(equations.)-42 199 y(Ignoring)h(the)h(double)f (brac)o(k)o(ets)g([)-6 b([)11 b Fq(:)d(:)g(:)18 b Fr(])-6 b(],)12 b(equations)g(ha)o(v)o(e)f(the)i(same)e(form)f(as)i Fp(pr)n(o)n(ductions)k Fr(in)d(a)f(particular)-42 261 y(v)m(arian)o(t)f(of)h Fj(BNF)g Fr(gramma)o(r|one)e(that)h(is)g(commonly)e(used)j(for)f(sp)q(ecifying)h (concrete)g(syn)o(tax)f(in)g(reference)-42 323 y(man)o(uals,)16 b(suc)o(h)i(as)f(the)g Fj(ISO)h Fr(standard)f(for)f Fj(P)l(ascal)p Fr(,)h(di\013ering)f(a)h(little)f(from)g(the)h(v)m(arian)o(t)f(used)i(in)f (the)-42 385 y Fj(Ad)o(a)22 b Fr(reference)g(man)o(ual.)37 b(T)l(erminal)20 b(sym)o(b)q(ols)g(are)h(written)g(as)g(quoted)g(strings)g (of)g(c)o(haracters,)h(suc)o(h)-42 447 y(as)g Fk(\\\(")e Fr(and)i Fk(\\o)o(r")p Fr(.)38 b(The)22 b(use)g(of)f(ordinary)g(lexical)f(sym)o(b)q (ols)g(as)h(terminal)f(sym)o(b)q(ols)g(in)h(the)h(gramma)o(r)-42 509 y(sp)q(ecifying)15 b(abstract)e(syn)o(tax)h(mak)o(es)f(it)g(rather)h (easy)g(to)g(imagine)e(a)i(corresp)q(onding)h(concrete)f(syn)o(tax)g(\(up)-42 571 y(to)h(disam)o(biguation)d(of)j(grouping,)f(at)h(least\).)29 633 y(Non)o(terminal)f(sym)o(b)q(ols)h(are)h(written)f(as)h(unquoted)h(w)o (ords,)f(suc)o(h)h(as)f Fk(Exp)o(ression)p Fr(,)h(and)g(w)o(e)f(adopt)g(the) -42 695 y(con)o(v)o(en)o(tion)d(that)g(they)h(generally)f(start)g(with)g(a)g (capital)g(letter,)g(to)g(a)o(v)o(oid)f(confusing)i(them)f(with)g(sym)o(b)q (ols)-42 757 y(for)j(seman)o(tic)e(functions)i(and)h(en)o(tities,)e(whic)o(h) h(w)o(e)g(write)f(using)h(lo)o(w)o(er)f(case)h(letters.)22 b(\(Suc)o(h)16 b(con)o(v)o(en)o(tions)-42 820 y(ha)o(v)o(e)11 b(no)g(formal)e(signi\014cance,)j(and)f(ma)o(y)f(b)q(e)h(v)m(aried)h(as)e (desired.\))19 b(The)11 b(alternativ)o(es)f(for)g(eac)o(h)h(non)o(terminal) -42 882 y(sym)o(b)q(ol)j(are)h(started)f(b)o(y)h Fk(=)p Fr(,)h(separated)f(b) o(y)p 756 890 5 40 v 54 w(,)g(and)g(terminated)f(b)o(y)h(a)g(p)q(erio)q(d.) -42 977 y Fs(gramm)m(ar:)-42 1043 y(closed)p Fk(.)-42 1144 y Fr(There)k(is)f(a)g(precise)g(formal)e(in)o(terpretation)h(of)g(a)h (grammar)d(as)j(an)g Fp(algebr)n(aic)h(sp)n(e)n(ci\014c)n(ation)e(of)i(sorts) g(of)-42 1206 y(tr)n(e)n(es)t Fr(;)14 b(in)o(terested)i(readers)f(ma)o(y)f (consult)h([Mos92)n(].)21 b(Here,)15 b(it)g(is)g(enough)h(to)f(kno)o(w)g (that)f(o)q(ccurrences)j(of)e([)-6 b([)-42 1268 y Fq(:)8 b(:)g(:)18 b Fr(])-6 b(])11 b(indicate)g(the)h(construction)f(of)g(no)q(des)i(of)e (trees.)18 b(\(In)12 b(denotational)f(seman)o(tics)e(suc)o(h)k(brac)o(k)o (ets)e(merely)-42 1331 y(separate)i(abstract)f(syn)o(tax)h(from)e(seman)o (tic)h(notation,)g(and)h(cannot)g(b)q(e)h(nested.\))19 b(W)l(e)14 b(mak)o(e)d(a)i(distinction)-42 1393 y(b)q(et)o(w)o(een)j(a)f(c)o(haracter,)f (suc)o(h)i(as)f Fk(`0')p Fr(,)f(and)h(the)g(string)g(consisting)f(of)h(just)g (that)f(c)o(haracter,)g Fk(\\0")p Fr(,)g(follo)o(wing)-42 1455 y(most)f(programming)e(languages.)19 b(\(Actually)l(,)13 b(strings)h(are)g (simply)f(no)q(des)i(whose)f(branc)o(hes)h(are)f(all)g(single)-42 1517 y(c)o(haracters.\))19 b(W)l(e)13 b(write)f Fs(gramm)l(ar:)k Fr(to)c(ensure)i(this)f(in)o(terpretation)e(of)i(the)g(subsequen)o(t)h (equations.)k(W)l(e)-42 1579 y(also)d(write)f Fs(closed)h Fr(in)g(a)g(gramma) o(r)d(mo)q(dule)j(when)g(all)f(the)i(pro)q(ductions)f(are)g(b)q(eing)g(giv)o (en)g(in)g(full.)-42 1705 y Fx(3.1.1)56 b(Expressions)-42 1791 y Fy(\(1\))45 b Fk(Identi\014er)17 b(=)e Fr([)-6 b([)15 b Fk(letter)g (\(letter)p 566 1799 V 40 w(digit\))690 1774 y Ff(*)725 1791 y Fr(])-6 b(])14 b Fk(.)-42 1856 y Fy(\(2\))45 b Fk(Literal)62 b(=)15 b Fr([)-6 b([)15 b Fk(digit)401 1840 y Ff(+)446 1856 y Fr(])-6 b(])p 498 1865 V 68 w([)g([)15 b Fk(digit)653 1840 y Ff(+)698 1856 y Fk(`.')k(digit)840 1840 y Ff(+)885 1856 y Fr(])-6 b(])14 b Fk(.)-42 1958 y Fr(The)i(standard)g(non)o(terminals)d Fk(digit)j Fr(and)g Fk(letter)g Fr(are)g(alw)o(a)o(ys)e(implicitly)f(a)o(v)m (ailable)h(in)h(our)h(grammar)o(s,)d(for)-42 2020 y(con)o(v)o(enience)f(when) g(sp)q(ecifying)f(the)g(lexical)f(syn)o(tax)g(of)h(iden)o(ti\014ers)g(and)g (n)o(umerals.)17 b(The)11 b(terminal)e(sym)o(b)q(ols)-42 2082 y(that)15 b(they)g(generate)g(are)g(single)g(c)o(haracters,)f(rather)g(than)h (strings)f(of)h(c)o(haracters.)29 2138 y(The)f(equations)f(ab)q(o)o(v)o(e)g (in)o(v)o(olv)o(e)f(so-called)h Fp(r)n(e)n(gular)i(expr)n(essions)t Fr(.)i(In)d(our)g(notation,)e(a)h(regular)g(expres-)-42 2195 y(sion)e(is)g(either)g(a)g(single)g(sym)o(b)q(ol,)f(or)h(it)f(consists)h(of)g (a)g Fp(se)n(quenc)n(e)i Fi(h)p Fq(R)1112 2202 y Fy(1)1138 2195 y Fq(:)8 b(:)g(:)e(R)1234 2202 y Fg(n)1257 2195 y Fi(i)p Fr(,)11 b(a)g(group)q(ed)h(set)f(of)g Fp(alternatives)-42 2251 y Fk(\()p Fp(R)9 2258 y Fy(1)p 47 2260 V 69 2251 a Fq(:)d(:)g(:)p 147 2260 V 45 w Fp(R)202 2258 y Fg(n)226 2251 y Fk(\))p Fr(,)15 b(an)g Fp(optional)20 b Fr(part)15 b Fp(R)648 2235 y Ff(?)667 2251 y Fr(,)g(an)g Fp(optional)i(r)n(ep)n(e)n(atable)h Fr(part)d Fp(R)1279 2235 y Ff(*)1299 2251 y Fr(,)g(or)g(an)g Fp(obligatory)i(r)n(ep)n (e)n(atable)-42 2308 y Fr(part)c Fp(R)90 2291 y Ff(+)120 2308 y Fr(.)19 b(W)l(e)14 b(do)f(not)h(use)f(the)h(rather)f(inelegan)o(t)g (notation)f(for)h(optional)f(and)i(rep)q(etitiv)o(e)e(parts)h(pro)o(vided)-42 2364 y(b)o(y)j(so-called)e Fj(Extended)k(BNF)d Fr(\()p Fj(EBNF)p Fr(\),)g(despite)g(its)f(familiarit)n(y)e(from)i(reference)h(man)o(uals,)e(b) q(ecause)-42 2421 y(w)o(e)h(ha)o(v)o(e)f(a)g(b)q(etter)h(use)g(for)e(the)i (brac)o(k)o(ets)f(it)g(uses)g(for)g(optional)f(parts)h Fk([)p Fp(R)r Fk(])p Fr(,)h(and)g(its)e Fi(f)p Fp(R)r Fi(g)h Fr(is)g(hardly)g (sugges-)-42 2477 y(tiv)o(e)j(of)f(ordered)h(rep)q(etition!)21 b(Moreo)o(v)o(er,)15 b Fj(EBNF)h Fr(requires)f Fp(R)j Fi(f)p Fp(R)r Fi(g)d Fr(to)g(express)i(that)e Fp(R)j Fr(is)d(an)h Fp(obligatory)-42 2534 y Fr(rep)q(eatable)g(part,)e(whereas)h(our)g Fp(R)579 2517 y Ff(+)623 2534 y Fr(a)o(v)o(oids)f(writing)g Fp(R)j Fr(t)o(wice.)-42 2620 y Fy(\(3\))45 b Fk(Exp)o(ression)17 b(=)e(Literal)p 466 2628 V 69 w(Identi\014er)p 703 2628 V 71 w Fr([)-6 b([)14 b Fk(\\\(")h(Exp)o(ression)h(\\\)")e Fr(])-6 b(])p 1196 2628 V 313 2676 a([)g([)14 b Fk(Una)o(ry-Op)q(erato)o(r)i(Exp)o (ression)g Fr(])-6 b(])p 924 2685 V 313 2733 a([)g([)14 b Fk(Exp)o(ression)j (Bina)o(ry-Op)q(erato)o(r)e(Exp)o(ression)h Fr(])-6 b(])p 1147 2741 V 313 2789 a([)g([)14 b Fk(Exp)o(ression)j(Control-Op)q(erato)o(r)e(Exp) o(ression)h Fr(])-6 b(])14 b Fk(.)p eop %%Page: 16 19 16 18 bop 8 -137 a Fr(16)856 b Fn(CHAPTER)15 b(3.)35 b(AN)15 b(ILLUSTRA)l(TIVE)j(EXAMPLE)8 12 y Fr(Note)f(that)e(literals)g(and)i(iden)o (ti\014ers)f(are)g Fp(sp)n(e)n(cial)h(c)n(ases)i Fr(of)d(expressions,)g (rather)g(than)h(merely)e(o)q(ccurring)8 74 y(as)g(comp)q(onen)o(ts)f(of)h (expressions.)79 131 y(W)l(e)d(mak)o(e)e(no)i(attempt)e(to)h(distinguish)g (syn)o(tactically)e(b)q(et)o(w)o(een)k(expressions)e(according)g(to)h(the)g (sort)e(of)8 187 y(en)o(tit)o(y)15 b(to)h(whic)o(h)g(they)h(ev)m(aluate:)k (truth-v)m(alues)c(or)e(n)o(um)o(b)q(ers.)23 b(Suc)o(h)17 b(distinctions)e(b) q(et)o(w)o(een)h(expressions)8 244 y(w)o(ould)21 b(not)g(simplify)e(the)i (seman)o(tic)e(description)i(at)g(all,)g(and)g(they)h(w)o(ould)e(in)h(an)o(y) g(case)h(b)q(e)f(con)o(text-)8 300 y(dep)q(enden)o(t.)8 402 y Fy(\(4\))45 b Fk(Exp)o(ressions)17 b(=)e Fi(h)8 b Fk(Exp)o(ression)16 b Fi(h)8 b Fk(\\,")13 b(Exp)o(ression)8 b Fi(i)940 385 y Ff(*)968 402 y Fi(i)14 b Fk(.)8 504 y Fr(As)20 b(w)o(e)f(do)g(not)g(consider)g (function)h(calls)e(or)h(arra)o(y)f(comp)q(onen)o(t)h(selections,)g (expression)g(lists)f(are)h(only)8 560 y(used)d(in)f(pro)q(cedure)h(calls,)e (and)i(could)f(b)q(e)h(just)e(as)h(w)o(ell)f(sp)q(eci\014ed)j(in)e(the)g(mo)q (dule)f(for)h(statemen)o(ts.)8 662 y Fy(\(5\))45 b Fk(Una)o(ry-Op)q(erato)o (r)f(=)16 b(\\)p Fr(+)p Fk(")p 604 670 5 40 v 69 w(\\)p Fi(\000)p Fk(")p 754 670 V 70 w(\\abs")p 932 670 V 70 w(\\not")f(.)8 736 y Fy(\(6\))45 b Fk(Bina)o(ry-Op)q(erato)o(r)34 b(=)16 b(\\)p Fr(+)p Fk(")p 604 744 V 69 w(\\)p Fi(\000)p Fk(")p 754 744 V 70 w(\\)10 b Fr(&)g Fk(")p 925 744 V 70 w(\\)p Fi(\003)p Fk(")p 1063 744 V 69 w(\\)p Fq(=)p Fk(")p 1201 744 V 68 w(\\mo)q(d")p 1399 744 V 69 w(\\rem")p 1586 744 V 490 792 a(\\)p Fr(=)p Fk(")p 604 800 V 69 w(\\)p Fq(=)5 b Fr(=)p Fk(")p 782 800 V 70 w(\\)p Fq(<)p Fk(")p 932 800 V 69 w(\\)p Fq(<)p Fr(=)p Fk(")p 1118 800 V 70 w(\\)p Fq(>)p Fk(")p 1269 800 V 70 w(\\)p Fq(>)p Fr(=)p Fk(")p 1455 800 V 490 848 a(\\and")p 637 857 V 70 w(\\o)o(r")p 789 857 V 68 w(\\xo)o(r")14 b(.)8 922 y Fy(\(7\))45 b Fk(Control-Op)q(erato)o (r)15 b(=)h Fi(h)8 b Fk(\\and")15 b(\\then")8 b Fi(i)p 832 930 V 70 w(h)g Fk(\\o)o(r")13 b(\\else")8 b Fi(i)14 b Fk(.)8 1029 y Fr(The)k(distinction)e(b)q(et)o(w)o(een)h(con)o(trol)f(op)q(erators)g (and)i(binary)f(op)q(erators)f(is)h(seman)o(tically)d(relev)m(an)o(t,)j (since)8 1091 y(the)f(in)o(tended)f(order)g(of)g(ev)m(aluation)f(of)h(their)g (op)q(erands)g(is)g(di\013eren)o(t.)8 1232 y Fx(3.1.2)56 b(Statemen)n(ts)8 1320 y Fy(\(1\))45 b Fk(Statement)17 b(=)e Fr([)-6 b([)15 b Fk(\\null")g(\\;")f Fr(])-6 b(])p 650 1328 V 69 w([)g([)14 b Fk(Identi\014er)j(\\:=")d(Exp)o(ression)i(\\;")f Fr(])-6 b(])p 1351 1328 V 361 1376 a([)g([)15 b Fk(\\if)s(")f(Exp)o(ression)i (\\then")g(Statement)1036 1360 y Ff(+)1082 1376 y Fi(h)8 b Fk(\\else")15 b(Statement)1432 1360 y Ff(+)1470 1376 y Fi(i)1488 1360 y Ff(?)1522 1376 y Fk(\\end")h(\\if)s(")e(\\;")g Fr(])-6 b(])p 1863 1385 V 361 1433 a([)g([)15 b Fi(h)8 b Fk(\\while")14 b(Exp)o(ression)8 b Fi(i)801 1416 y Ff(?)835 1433 y Fk(\\lo)q(op")15 b(Statement)1172 1416 y Ff(+)1218 1433 y Fk(\\end")g(\\lo)q(op")g(\\;")f Fr(])-6 b(])p 1612 1441 V 361 1489 a([)g([)15 b Fk(\\exit")g(\\;")f Fr(])-6 b(])p 650 1498 V 361 1546 a([)g([)15 b Fi(h)8 b Fk(\\decla)o(re")13 b(Decla)o(ration)828 1529 y Ff(+)865 1546 y Fi(i)883 1529 y Ff(?)917 1546 y Fk(\\b)q(egin")i(Statement)1274 1529 y Ff(+)1320 1546 y Fk(\\end")h(\\;")e Fr(])-6 b(])p 1573 1554 V 361 1602 a([)g([)15 b Fk(Identi\014er)h Fi(h)8 b Fk(\\\(")13 b(Exp)o(ressions)k(\\\)") 8 b Fi(i)1002 1586 y Ff(?)1034 1602 y Fk(\\;")14 b Fr(])-6 b(])p 1159 1611 V 361 1659 a([)g([)15 b Fk(\\return")g(\\;")f Fr(])-6 b(])p 696 1667 V 361 1715 a([)g([)15 b Fk(Identi\014er)h(\\.")j (Identi\014er)d(\\;")f Fr(])-6 b(])p 964 1724 V 361 1772 a([)g([)15 b Fk(\\accept")h(Identi\014er)g Fi(h)8 b Fk(\\do")14 b(Statement)1088 1755 y Ff(+)1134 1772 y Fk(\\end")8 b Fi(i)1272 1755 y Ff(?)1306 1772 y Fk(\\;")14 b Fr(])-6 b(])14 b Fk(.)8 1889 y Fr(One)19 b(could)f(sa)o(v)o(e)f(some)f(e\013ort)h(b)o(y)g(regarding)g(an)h(if-then)g (statemen)o(t)d(as)j(a)f(formal)e(abbreviation)i(for)g(an)8 1945 y(if-then-else)d(statemen)o(t)d(with)h(a)h(n)o(ull)g(else)g(part;)g (similarly)l(,)e(a)h(lo)q(op)h(statemen)o(t)e(could)j(abbreviate)e(a)h (while-)8 2001 y(statemen)o(t)g(with)i(an)g(alw)o(a)o(ys-true)f(expression)h (part.)8 2103 y Fy(\(2\))45 b Fk(Blo)q(ck)16 b(=)f Fi(h)8 b Fk(Decla)o(ration)514 2087 y Ff(*)548 2103 y Fk(\\b)q(egin")16 b(Statement)906 2087 y Ff(+)952 2103 y Fk(\\end")8 b Fi(i)15 b Fk(.)8 2211 y Fr(A)e(blo)q(c)o(k)e(is)h(essen)o(tially)f(a)h(statemen)o(t)e (with)h(some)g(lo)q(cal)g(declarations.)18 b(F)l(ollo)o(wing)10 b Fj(Ad)o(a)p Fr(,)i(blo)q(c)o(ks)g(can)h(o)q(ccur)8 2273 y(directly)h(in)h (ordinary)f(statemen)o(t)f(sequences,)i(whereas)g(in)g Fj(P)l(ascal)p Fr(,)f(for)g(example,)f(they)i(can)g(only)g(o)q(ccur)8 2335 y(in)g(subprogram)f(declarations.)8 2475 y Fx(3.1.3)56 b(Declarations)8 2563 y Fy(\(1\))45 b Fk(Decla)o(ration)15 b(=)g Fr([)-6 b([)15 b Fk(Identi\014er)h(\\:")j(\\constant")e(Identi\014er)1064 2547 y Ff(?)1099 2563 y Fk(\\:=")e(Exp)o(ression)h(\\;")e Fr(])-6 b(])p 1546 2572 V 380 2620 a([)g([)15 b Fk(Identi\014er)h(\\:")j (Identi\014er)e Fi(h)8 b Fk(\\:=")14 b(Exp)o(ression)8 b Fi(i)1215 2603 y Ff(?)1249 2620 y Fk(\\;")14 b Fr(])-6 b(])p 1374 2628 V 380 2676 a([)g([)15 b Fk(\\p)o(ro)q(cedure")g(Identi\014er)i Fi(h)8 b Fk(\\\(")13 b(F)o(o)o(rmals)g(\\\)")8 b Fi(i)1199 2660 y Ff(?)1231 2676 y Fk(\\is")15 b(Blo)q(ck)h(\\;")e Fr(])-6 b(])p 1568 2685 V 380 2733 a([)g([)15 b Fk(\\task")g(Identi\014er)i(\\is")d (Entry)927 2716 y Ff(+)973 2733 y Fk(\\end")h(\\;")g Fr(])-6 b(])p 1226 2741 V 380 2789 a([)g([)15 b Fk(\\task")g(\\b)q(o)q(dy")h (Identi\014er)g(\\is")f(Blo)q(ck)h(\\;")e Fr(])-6 b(])15 b Fk(.)p eop %%Page: 17 20 17 19 bop -42 -137 a Fn(3.2.)35 b(SEMANTIC)15 b(FUNCTIONS)1201 b Fr(17)-42 12 y Fy(\(2\))45 b Fk(Entry)128 b(=)16 b Fr([)-6 b([)14 b Fk(\\entry")h(Identi\014er)h(\\;")f Fr(])-6 b(])14 b Fk(.)-42 119 y Fr(T)l(ask)20 b(heads)h(are)e(supp)q(osed)i(to)f(b)q(e)h (declared)f(b)q(efore)g(the)g(corresp)q(onding)g(b)q(o)q(dies,)i(although)d (w)o(e)h(don't)-42 176 y(b)q(other)15 b(to)e(insist)g(on)i(this)e(in)h(our)g (grammar)d(ab)q(o)o(v)o(e.)19 b(W)l(e)14 b(retain)g(the)g(en)o(tries)f(of)h (a)g(task)f(head)i(only)f(for)f(the)-42 232 y(sak)o(e)i(of)g(familiarit)n(y)l (,)d(as)j(they)g(are)g(irrelev)m(an)o(t)f(to)h(our)g(dynamic)f(seman)o(tics.) -42 326 y Fy(\(3\))45 b Fk(F)o(o)o(rmal)30 b(=)16 b Fr([)-6 b([)14 b Fk(Identi\014er)j(\\:")i(Mo)q(de)665 310 y Ff(?)699 326 y Fk(Identi\014er)e Fr(])-6 b(])14 b Fk(.)-42 392 y Fy(\(4\))45 b Fk(F)o(o)o(rmals)13 b(=)j Fi(h)8 b Fk(F)o(o)o(rmal)k Fi(h)c Fk(\\;")13 b(F)o(o)o(rmal)8 b Fi(i)691 376 y Ff(*)715 392 y Fi(i)15 b Fk(.)-42 458 y Fy(\(5\))45 b Fk(Mo)q(de)56 b(=)16 b(\\in")p 376 467 5 40 v 69 w Fi(h)8 b Fk(\\in")15 b(\\out")8 b Fi(i)p 699 467 V 69 w Fk(\\out")15 b(.)-42 558 y Fr(F)l(ollo)o(wing)j Fj(Ad)o(a)p Fr(,)i(parameterless)d(pro)q(cedures)j(omit)d(the)j(paren)o (theses)f(as)g(w)o(ell)f(as)h(the)h(formals,)d(and)j(a)-42 620 y(missing)14 b(formal)e(parameter)i(mo)q(de)g(is)h(equiv)m(alen)o(t)g(to) f(the)i(mo)q(de)e Fk(\\in")p Fr(.)-42 748 y Fx(3.1.4)56 b(Programs)-42 834 y Fy(\(1\))45 b Fk(Program)13 b(=)j Fr([)-6 b([)14 b Fk(Decla)o(ration) 529 818 y Ff(+)573 834 y Fk(Identi\014er)i Fr(])-6 b(])15 b Fk(.)-42 947 y Fr(In)d(legal)d Fj(Ad)o(a)i Fr(programs,)e(the)i(top-lev)o(el) f(declarations)f(are)i(compilation)d(units,)i(whic)o(h)h(are)f(essen)o (tially)g(just)-42 1009 y(pac)o(k)m(ages,)15 b(subprograms,)d(and)j(tasks.)k (Here)c(w)o(e)g(do)f(not)g(b)q(other)h(to)f(exclude)i(other)e(sorts)g(of)g (declaration,)-42 1071 y(suc)o(h)22 b(as)f(constan)o(t)f(and)i(v)m(ariable)f (declarations.)36 b(Let)22 b(us)f(assume)g(that)f(the)i(iden)o(ti\014er)e(of) h(a)g(program)-42 1133 y(indicates)15 b(a)g(main)f(pro)q(cedure,)h(without)g (parameters,)e(to)h(b)q(e)i(called)f(when)g(the)h(program)d(is)i(run.)29 1195 y(That)g(concludes)h(the)g(illustration)d(of)i(ho)o(w)g(to)f(sp)q(ecify) i(abstract)f(syn)o(tax)f(for)h(use)h(in)f(action)g(seman)o(tic)-42 1257 y(descriptions.)-42 1408 y Fo(3.2)70 b(Seman)n(tic)21 b(F)-6 b(unctions)-42 1516 y Fr(In)13 b(action)f(seman)o(tics,)f(w)o(e)h(sp)q (ecify)g(seman)o(tic)f(functions)h(b)o(y)g Fp(semantic)h(e)n(quations)t Fr(.)18 b(Eac)o(h)12 b(equation)g(de\014nes)-42 1578 y(the)k(seman)o(tics)d (of)i(a)g(particular)f(sort)h(of)g(phrase)g(in)h(terms)d(of)i(the)h(seman)o (tics)d(of)i(its)g(comp)q(onen)o(ts,)f(if)h(an)o(y)l(,)-42 1640 y(using)d(constan)o(ts)f(and)g(op)q(erations)g(for)g(constructing)g (seman)o(tic)f(en)o(tities.)17 b(The)12 b(required)g(comp)q(ositionalit)n(y) -42 1702 y(of)j(seman)o(tic)f(functions)h(is)f(generally)h(apparen)o(t)f (from)g(the)h(seman)o(tic)f(equations.)29 1764 y(Mathematically)l(,)f(a)j (set)g(of)g(seman)o(tic)f(equations)h(is)g(simply)e(an)i(inductiv)o(e)h (de\014nition)f(of)g(maps)f(from)-42 1826 y(syn)o(tax)g(to)g(seman)o(tics.)j (Those)d(familiar)e(with)h(algebraic)h(seman)o(tics)e(ma)o(y)h(understand)h (the)h(equations)f(as)-42 1888 y(a)i(presen)o(tation)f(of)h(a)g(target)f (algebra;)g(then)i(the)f(unique)g(homomorphism)c(to)k(the)g(target)f(algebra) g(from)-42 1950 y(the)f(initial)e(algebra)h(of)h(abstract)f(syn)o(tax)g (corresp)q(onds)h(to)f(the)h(seman)o(tic)e(functions.)20 b(Programm)o(ers)12 b(ma)o(y)-42 2012 y(prefer)17 b(to)f(regard)f(seman)o(tic)g(equations)g(as)h (a)g(de\014nition)g(of)g(m)o(utually-recursiv)o(e)e(functions)i(b)o(y)g (cases,)h(as)-42 2075 y(allo)o(w)o(ed,)d(for)g(instance,)h(in)g(the)g (functional)g(programm)o(ing)d(language)j Fj(Haskell)p Fr(.)29 2137 y(It)21 b(is)f(also)g(p)q(ossible)h(to)f(view)g(a)h(set)f(of)h(seman)o (tic)e(equations)h(as)g(merely)g(sp)q(ecifying)h(a)f Fp(tr)n(anslation)-42 2199 y Fr(from)e(programmi)o(ng)f(language)h(syn)o(tax)h(to)f Fp(notation)23 b Fr(for)c(seman)o(tic)e(en)o(tities.)31 b(But)19 b(it)g(is)g(the)g(seman)o(tic)-42 2261 y(en)o(tities)c(themselv)o(es)g(that)g (coun)o(t,)h(not)g(the)g(notation)e(in)i(whic)o(h)g(they)g(are)g(expressed:) 22 b(t)o(w)o(o)15 b(phrases)h(ma)o(y)-42 2323 y(get)f(translated)f (di\013eren)o(tly)g(y)o(et)h(still)f(ha)o(v)o(e)g(the)i(same)e(seman)o(tics.) 29 2385 y(A)j(seman)o(tic)f(function)h(alw)o(a)o(ys)f(tak)o(es)g(a)h(single,) g(syn)o(tactic)f(argumen)o(t)g(and)h(giv)o(es)g(a)g(seman)o(tic)e(en)o(tit)o (y)-42 2447 y(as)i(result.)26 b(The)17 b(sym)o(b)q(ols)f(used)i(to)e(denote)i (seman)o(tic)d(functions)i(ma)o(y)f(b)q(e)i(c)o(hosen)f(freely;)h(generally)e (the)-42 2509 y(author)k(tries)g(to)g(maximize)e(their)i(suggestiv)o(eness,)h (at)f(the)h(exp)q(ense)g(of)g(conciseness,)h(but)e(this)g(is)h(not)-42 2571 y(obligatory)l(.)d(Eac)o(h)d(sym)o(b)q(ol)f(ma)o(y)f(consist)h(of)h(sev) o(eral)f(w)o(ords,)g(e.g.,)g Fk(the)i(value)f(of)p 1386 2571 14 2 v 46 w Fr(,)g(and)g(the)g(place-holder)p -42 2633 V -13 2633 a(indicates)g(where)g(the)h(argumen)o(t)d(go)q(es.)29 2696 y(It)i(is)g(usual)g(to)g(sp)q(ecify)g(the)g Fp(functionality)k Fr(of)c(eac)o(h)g(seman)o(tic)e(function.)20 b(F)l(or)15 b(instance,)163 2789 y Fk(evaluate)p 337 2789 V 48 w(::)k(Exp)o(ression)d Fi(!)g Fk(action)f([giving)g(a)g(value])p eop %%Page: 18 21 18 20 bop 8 -137 a Fr(18)856 b Fn(CHAPTER)15 b(3.)35 b(AN)15 b(ILLUSTRA)l(TIVE)j(EXAMPLE)8 12 y Fr(asserts)e(that)g(for)g(ev)o(ery)g (abstract)g(syn)o(tax)g(tree)g Fp(E)22 b Fr(for)16 b(an)g(expression,)h(the)f (seman)o(tic)f(en)o(tit)o(y)g Fk(evaluate)j Fp(E)8 74 y Fr(is)f(an)g(action)f (whic)o(h,)i(when)f(p)q(erformed,)g(giv)o(es)f(a)h(v)m(alue.)26 b(The)17 b(actual)g(de\014nition)g(of)f Fk(evaluate)i Fp(E)23 b Fr(b)o(y)17 b(the)8 136 y(seman)o(tic)d(equations)g(is)h(then)g(required)h (to)e(b)q(e)i(consisten)o(t)f(with)f(this.)79 199 y(Eac)o(h)h(seman)o(tic)f (function)h(m)o(ust)f(b)q(e)i(de\014ned)g Fp(c)n(onsistently)i Fr(and)d Fp(c)n(ompletely)k Fr(on)c(the)h(sort)e(of)h(abstract)8 261 y(syn)o(tax)h(tree)g(for)g(whic)o(h)h(it)e(is)i(required.)23 b(Th)o(us)17 b(an)o(y)f(tree)g(of)h(that)e(sort)h(m)o(ust)f(matc)o(h)g(the)i (pattern)f(in)g(the)8 323 y(left)d(hand)g(side)g(of)g(precisely)f(one)i (seman)o(tic)d(equation)h(for)h(that)f(function.)19 b(When)13 b(the)g(righ)o(t)f(hand)i(sides)e(of)8 385 y(equations)k(in)o(v)o(olv)o(e)f (applications)h(of)g(seman)o(tic)f(functions)h(only)g(to)g(branc)o(hes)h(of)f (the)h(tree)f(matc)o(hing)f(the)8 447 y(left)d(hand)g(side,)h(w)o (ell-de\014nedness)g(is)e(ensured;)j(otherwise,)d(one)i(has)f(to)f(c)o(hec)o (k)h(that)g(no)g(direct)g(circularities)8 509 y(are)j(in)o(v)o(olv)o(ed.)79 571 y(The)e(righ)o(t)f(hand)i(sides)f(of)g(the)g(seman)o(tic)e(equations)i (in)o(v)o(olv)o(e)e(the)j(standard)e(notation)g(for)h(actions)f(and)8 633 y(data)f(pro)o(vided)h(b)o(y)f(action)g(seman)o(tics.)16 b(It)c(m)o(ust)e(b)q(e)i(emphasized)f(that)g(the)h(notation)e(is)h Fp(absolutely)h(formal)5 b Fr(!)8 695 y(The)19 b(fact)e(that)g(it)h(is)f(p)q (ossible)h(to)f(read)h(it)g(informally|and)e(reasonably)h(\015uen)o(tly|do)q (es)i(not)e(preclude)8 757 y(reading)h(it)f(formally)e(as)i(w)o(ell.)27 b(The)18 b(grouping)f(of)h(the)g(sym)o(b)q(ols)e(migh)o(t)f(not)j(b)q(e)g (completely)f(ob)o(vious)g(to)8 820 y(those)h(who)f(ha)o(v)o(e)g(not)g(seen)i (action)d(notation)h(b)q(efore,)h(but)f(it)g(is)g(in)h(fact)f(unam)o (biguous.)25 b(The)18 b(follo)o(wing)8 882 y(hin)o(ts)d(ab)q(out)g(the)g (general)g(form)e(of)i(action)g(notation)e(ma)o(y)h(b)q(e)i(helpful.)79 944 y(Action)k(notation)f(consists)g(mainly)f(of)i(action)g Fp(primitives)k Fr(and)c Fp(c)n(ombinators)t Fr(.)35 b(Eac)o(h)20 b(primitiv)o(e)e(is)8 1006 y(concerned)d(with)e(one)h(particular)f(kind)h(of) f(information)e(pro)q(cessing,)j(and)g(mak)o(es)e(no)i(con)o(tribution)f(to)g (the)8 1068 y(other)h(kinds.)19 b(Eac)o(h)14 b(com)o(binator,)d(on)j(the)g (other)g(hand,)g(expresses)g(a)g(particular)e(mixture)g(of)i(con)o(trol)f (\015o)o(w)8 1130 y(and)20 b(ho)o(w)f(the)g(v)m(arious)g(kinds)g(of)g (information)d(\015o)o(w.)32 b(Action)19 b(notation)f(w)o(as)g(designed)i (with)e(su\016cien)o(t)8 1192 y(primitiv)o(es)i(and)i(com)o(binators)d(for)j (expressing)g(most)e(common)g(patterns)h(of)h(information)d(pro)q(cessing)8 1254 y(straigh)o(tforw)o(ardly)l(,)12 b(i.e.,)i(not)g Fp(simulating)19 b Fr(one)c(kind)h(of)e(information)f(pro)q(cessing)i(b)o(y)g(another.)79 1316 y(Action)g(notation)f(also)g(incorp)q(orates)h(a)g(basic)g(notation)f (for)g Fp(data)s Fr(,)j(including)e(truth-v)m(alues,)g(rational)8 1379 y(n)o(um)o(b)q(ers,)f(lists,)g(and)h(\014nite)g(maps.)79 1441 y(The)k(standard)f(sym)o(b)q(ols)e(used)k(in)e(action)g(notation)f(are)h (ordinary)f(English)h Fp(wor)n(ds)t Fr(.)30 b(In)19 b(fact)f(action)8 1503 y(notation)i(mimics)e(natural)i(language:)31 b(terms)20 b(standing)g(for)g(actions)h(form)e(imp)q(erativ)o(e)g(v)o(erb)i(phrases)8 1565 y(in)o(v)o(olving)16 b(conjunctions)h(and)h(adv)o(erbs,)f(e.g.,)g Fk(check)i(it)e(and)i(then)g(escap)q(e)p Fr(,)g(whereas)e(terms)f(standing)h (for)8 1627 y(data)i(and)h(yielders)f(form)f(noun)i(phrases,)g(e.g.,)g Fk(the)g(items)g(of)f(the)h(given)g(list)p Fr(.)34 b(De\014nite)19 b(and)h(inde\014nite)8 1689 y(articles)h(can)h(b)q(e)h(exploited)f (appropriately)l(,)g(e.g.,)h Fk(cho)q(ose)g(a)f(cell)g(then)i(reserve)e(the)h (given)f(cell)p Fr(.)41 b(\(This)8 1751 y(feature)11 b(of)g(action)f (notation)g(is)h(reminiscen)o(t)e(of)i(Apple's)g Fj(HyperCard)i Fr(scripting)d(language)g Fj(HyperT)l(alk)8 1813 y Fr([Go)q(o87)o(],)k(and)i (of)e Fj(Cobol)p Fr(.\))79 1875 y(These)k(simple)e(principles)h(for)g(c)o (hoice)g(of)g(sym)o(b)q(ols)f(pro)o(vide)h(a)g(surprisingly)f(grammati)o(cal) e(fragmen)o(t)8 1937 y(of)j(English,)f(allo)o(wing)f(sp)q(eci\014cations)i (of)f(actions)h(to)f(b)q(e)i(made)e(\015uen)o(tly)g(readable|without)h (sacri\014cing)8 2000 y(formalit)o(y)f(at)j(all!)31 b(T)l(o)19 b(sp)q(ecify)h(grouping)e(unam)o(biguously)l(,)g(w)o(e)h(ma)o(y)f(use)i (paren)o(theses,)g(but)f(for)g(large-)8 2062 y(scale)e(grouping)f(it)h(is)f (less)h(obtrusiv)o(e)f(to)h(use)g(inden)o(tation,)g(whic)o(h)g(w)o(e)f (emphasize)h(b)o(y)g(v)o(ertical)e(rules,)i(as)8 2124 y(illustrated)d(in)h (the)g(seman)o(tic)f(equations)g(for)h(statemen)o(ts)e(giv)o(en)h(earlier.)79 2186 y(Compared)d(to)h(other)h(formalism)o(s,)c(suc)o(h)k(as)g(the)g (so-called)f Fq(\025)p Fp(-notation)s Fr(,)h(action)f(notation)f(ma)o(y)g (app)q(ear)8 2248 y(to)16 b(lac)o(k)g(conciseness:)22 b(eac)o(h)17 b(sym)o(b)q(ol)d(generally)i(consists)f(of)h(sev)o(eral)g(letters,)f(rather)h (than)g(a)g(single)g(sign.)8 2310 y(But)j(the)f(comparison)f(should)h(also)g (tak)o(e)f(in)o(to)h(accoun)o(t)g(that)f(eac)o(h)i(action)e(com)o(binator)f (usually)i(corre-)8 2372 y(sp)q(onds)13 b(to)e(a)h(complex)e(pattern)i(of)f (applications)g(and)h(abstractions)e(in)i Fq(\025)p Fr(-notation.)17 b(F)l(or)12 b(instance,)g(\(under)8 2434 y(the)18 b(simplifying)d(assumption) i(of)g(determinism!\))d(the)k(action)f(term)g Fp(A)1281 2441 y Fy(1)1318 2434 y Fk(then)i Fp(A)1453 2441 y Fy(2)1491 2434 y Fr(migh)o(t)c(corresp)q(ond)k(to)8 2496 y(something)c(lik)o(e)g Fq(\025\017)356 2503 y Fy(1)376 2496 y Fq(:\025\032:\025\024:A)553 2503 y Fy(1)570 2496 y Fq(")591 2503 y Fy(1)611 2496 y Fq(\032)p Fr(\()p Fq(\025")701 2503 y Fy(2)720 2496 y Fq(:A)767 2503 y Fy(2)786 2496 y Fq(\017)804 2503 y Fy(2)825 2496 y Fq(\032\024)p Fr(\).)22 b(In)17 b(an)o(y)f(case,)g(the)h(increased)f(length)g(of)g(eac)o(h) h(sym)o(b)q(ol)8 2558 y(seems)j(to)g(b)q(e)h(far)e(out)o(w)o(eighed)h(b)o(y)g (its)g(increased)g(p)q(erspicuit)o(y)l(.)36 b(It)20 b(w)o(ould)g(also)f(b)q (e)i(rather)f(misleading)8 2621 y(to)c(use)g(familiar)d(mathematical)g(signs) i(to)h(express)g(actions,)f(whose)h(essence)h(is)f(unashamedly)f(computa-)8 2683 y(tional.)k(F)l(or)13 b(some)g(applications,)g(ho)o(w)o(ev)o(er,)h(suc)o (h)g(as)h(formal)d(reasoning)h(ab)q(out)i(program)d(equiv)m(alence)j(on)8 2745 y(the)j(basis)e(of)h(their)g(action)f(seman)o(tics,)g(optimal)f (conciseness)i(ma)o(y)f(b)q(e)i(highly)f(desirable,)g(and)g(it)g(w)o(ould)p eop %%Page: 19 22 19 21 bop -42 -137 a Fn(3.2.)35 b(SEMANTIC)15 b(FUNCTIONS)1201 b Fr(19)-42 12 y(b)q(e)21 b(appropriate)e(to)g(use)h(abbreviations)f(for)g (our)g(v)o(erb)q(ose)h(sym)o(b)q(ols.)32 b(The)20 b(c)o(hoice)g(of)f (abbreviations)g(is)-42 74 y(left)e(to)g(the)g(discretion)g(of)g(the)g(user.) 27 b(Suc)o(h)18 b(c)o(hanges)f(of)g(sym)o(b)q(ols)f(do)h(not)g(a\013ect)g (the)g Fp(essenc)n(e)i Fr(of)e(action)-42 136 y(notation,)h(whic)o(h)h(lies)f (in)g(the)h(standard)f(primitiv)o(es)e(and)j(com)o(binators,)e(rather)h(than) g(in)h(the)g(standard)-42 199 y(v)o(erb)q(ose)d(sym)o(b)q(ols.)29 261 y(The)21 b(informal)e(app)q(earance)j(and)f(suggestiv)o(e)f(w)o(ords)g (of)h(action)f(notation)g(should)h(encourage)g(pro-)-42 323 y(grammers)15 b(to)i(read)g(it,)g(at)g(\014rst,)h(rather)e(casually)l(,)h(in) h(the)f(same)g(w)o(a)o(y)f(that)h(they)h(migh)o(t)d(read)i(reference)-42 385 y(man)o(uals.)28 b(Ha)o(ving)17 b(th)o(us)i(gained)f(a)g(broad)g (impression)f(of)g(the)i(in)o(tended)g(actions,)f(they)g(ma)o(y)f(go)h(on)g (to)-42 447 y(read)f(the)g(sp)q(eci\014cation)g(more)e(carefully)l(,)h(pa)o (ying)g(atten)o(tion)g(to)g(the)g(details.)24 b(A)17 b(more)e(cryptic)i (notation)-42 509 y(migh)o(t)d(discourage)g(programmers)e(from)h(reading)i (it)g(altogether.)29 571 y(The)j(in)o(tended)g(in)o(terpretation)e(of)h(the)h (standard)f(notation)f(for)h(actions)g(is)g(sp)q(eci\014ed)i(op)q (erationally)l(,)-42 633 y(once)12 b(and)g(for)f(all,)g(in)h([Mos92)n(,)g (App)q(endix)h(C].)e(All)f(that)h(one)h(has)g(to)f(do)g(b)q(efore)h(using)g (action)e(notation)h(is)g(to)-42 695 y(sp)q(ecify)h(the)g(information)c(that) j(is)g(to)f(b)q(e)i(pro)q(cessed)g(b)o(y)g(actions,)f(whic)o(h)g(ma)o(y)e(v)m (ary)j(signi\014can)o(tly)e(according)-42 757 y(to)16 b(the)g(programm)o(ing) d(language)i(b)q(eing)h(describ)q(ed.)23 b(This)15 b(ma)o(y)g(in)o(v)o(olv)o (e)f Fp(extending)19 b Fr(data)c(notation)g(with)-42 820 y(further)21 b(sorts)f(of)g(data,)h(and)g Fp(sp)n(e)n(cializing)i Fr(standard)d(sorts,)h (using)f(sort)g(equations.)36 b(F)l(urthermore,)20 b(it)-42 882 y(ma)o(y)h(b)q(e)h(con)o(v)o(enien)o(t)g(to)f(in)o(tro)q(duce)h(formal)e Fp(abbr)n(eviations)25 b Fr(for)c(commonly-o)q(ccurring,)f(conceptually-)-42 944 y(signi\014can)o(t)15 b(patterns)h(of)g(notation.)21 b(Extensions,)15 b(sp)q(ecializations,)f(and)j(abbreviations)d(are)i(all)f(sp)q(eci\014ed)-42 1006 y Fp(algebr)n(aic)n(al)r(ly)t Fr(,)f(as)h(illustrated)f(in)h(Section)g (A.1.)29 1068 y(No)o(w)h(let)f(us)i(b)q(egin)f(to)g(de\014ne)h(the)g(seman)o (tic)d(functions)i(for)g(our)g(illustrativ)o(e)e(language.)22 b(W)l(e)16 b(declare)-42 1130 y(the)g(sym)o(b)q(ols)d(used)j(for)f(the)g (seman)o(tic)e(functions)i(at)g(the)g(start)f(of)h(eac)o(h)g(main)f(mo)q (dule.)-42 1267 y Fx(3.2.1)56 b(Expressions)-42 1355 y Fs(in)o(tro)q(duces:)c Fk(the)17 b(tok)o(en)f(of)p 512 1355 14 2 v 46 w(,)f(the)h(value)f(of)p 811 1355 V 47 w(,)g(evaluate)p 1041 1355 V 47 w(,)263 1411 y(the)i(una)o(ry-op)q(eration-result)g(of)p 825 1411 V 46 w(,)e(the)h(bina)o (ry-op)q(eration-result)h(of)p 1454 1411 V 46 w(,)263 1468 y(mo)q(derate)p 459 1468 V 47 w(.)-42 1651 y Fs(3.2.1.1)52 b(Iden)o(ti\014ers)4 1739 y Fi(\017)22 b Fk(the)17 b(tok)o(en)f(of)p 298 1739 V 46 w(::)j(Identi\014er)e Fi(!)e Fk(tok)o(en)h(.)-42 1853 y Fr(T)l(ok)o(ens)j(ha)o(v)o(e)f(a)g(standard)g(usage)g(in)h(action)e (notation:)25 b(they)19 b(get)f(b)q(ound)h(to)f(data.)29 b(The)19 b(sort)e Fk(tok)o(en)j Fr(is)-42 1909 y(sp)q(eci\014ed)d(in)e(Section)g(A.1)g (to)f(b)q(e)i(a)f(subsort)g(of)f(strings.)-42 2038 y Fy(\(1\))45 b Fk(the)17 b(tok)o(en)f(of)e Fp(I)7 b Fk(:Identi\014er)16 b(=)g(upp)q(ercase)h Fp(I)22 b Fk(.)-42 2143 y Fr(F)l(ollo)o(wing)11 b Fj(Ad)o(a)p Fr(,)i(let)f(us)h(canonicalize)f(iden)o(ti\014ers)g(b)o(y)h (con)o(v)o(erting)f(all)f(letters)h(to)g(one)h(case.)19 b(F)l(or)12 b(languages)-42 2205 y(where)k(case)f(di\013erences)g(are)g(tak)o(en)g (seriously)l(,)f(the)h(seman)o(tic)e(function)i Fk(the)i(tok)o(en)e(of)p 1495 2205 V 47 w Fr(w)o(ould)f(simply)g(b)q(e)-42 2267 y(the)i(iden)o(tit)o (y)e(function)h(on)g(iden)o(ti\014ers,)f(and)i(then)f(w)o(e)g(could)g(omit)e (it)i(altogether.)-42 2403 y Fs(3.2.1.2)52 b(Literals)4 2490 y Fi(\017)22 b Fk(the)17 b(value)e(of)p 292 2490 V 46 w(::)20 b(Literal)14 b Fi(!)i Fk(numb)q(er)g(.)-42 2604 y Fr(The)d(sort)e Fk(numb)q(er)h Fr(is)g(sp)q(eci\014ed)h(in)e(Section)h(A.1)g(to)f(b)q(e)i(a)e (sort)g(including)h(b)q(oth)g(in)o(teger)f(and)h(\(appro)o(ximate\))-42 2661 y(real)j(n)o(um)o(b)q(ers.)-42 2789 y Fy(\(1\))45 b Fk(the)17 b(value)e(of)g Fr([)-6 b([)14 b Fp(d)5 b Fk(:digit)448 2773 y Ff(+)493 2789 y Fr(])-6 b(])14 b Fk(=)i(integer-numb)q(er)g(of)f(decimal)f Fr([)-6 b([)15 b Fp(d)20 b Fr(])-6 b(])14 b Fk(.)p eop %%Page: 20 23 20 22 bop 8 -137 a Fr(20)856 b Fn(CHAPTER)15 b(3.)35 b(AN)15 b(ILLUSTRA)l(TIVE)j(EXAMPLE)8 12 y Fy(\(2\))45 b Fk(the)16 b(value)g(of)f Fr([)-6 b([)14 b Fp(d)396 19 y Fy(1)416 12 y Fk(:digit)513 -4 y Ff(+)558 12 y Fk(`.')19 b Fp(d)639 19 y Fy(2)659 12 y Fk(:digit)756 -4 y Ff(+)800 12 y Fr(])-6 b(])15 b Fk(=)190 69 y(real-numb)q(er)g(of)g(the)h(sum)g(of)e(\(decimal)h Fr([)-6 b([)14 b Fp(d)937 76 y Fy(1)972 69 y Fr(])-6 b(])p Fk(,)281 125 y(the)16 b(p)o(ro)q(duct)h(of)e(\(decimal)f Fr([)-6 b([)14 b Fp(d)802 132 y Fy(2)837 125 y Fr(])-6 b(])p Fk(,)372 182 y(the)16 b(exp)q(onent)i(of)c(\(decimal)h(\\10",)e(the)k(negation)f(of)e (the)j(count)f(of)f Fp(d)1557 189 y Fy(2)1577 182 y Fk(\)\)\))f(.)8 254 y Fr(The)j(op)q(eration)g Fk(decimal)f Fr(is)g(a)h(standard)g(data)f(op)q (eration)g(on)h(strings;)f(similarly)e Fk(count)k Fr(is)e(the)h(standard)8 316 y(data)11 b(op)q(eration)f(that)g(returns)g(the)h(n)o(um)o(b)q(er)g(of)f (comp)q(onen)o(ts)g(in)h(an)o(y)f(sort)g(of)h(tuple.)18 b(W)l(e)11 b(could)g(de\014ne)h(these)8 378 y(op)q(erations)18 b(as)h(seman)o(tic)e (functions,)i(but)f(it)h(w)o(ouldn't)e(b)q(e)j(v)o(ery)e(exciting,)h(so)f(w)o (e)h(tak)o(e)f(this)g(short-cut.)8 440 y(F)l(ormally)l(,)12 b(w)o(e)j(are)f(regarding)g(a)g(digit)g(sequence)i(as)e(its)g(o)o(wn)g(seman) o(tics,)f(i.e.,)g(a)i(string!)j(No)d(abstractness)8 502 y(is)f(lost,)g (though,)g(b)q(ecause)h(leading)f(zeros)h(in)f(digit)g(sequences)h Fp(ar)n(e)j Fr(signi\014can)o(t)c(in)g(the)h(fractional)e(parts)g(of)8 564 y(real)i(n)o(um)o(b)q(ers.)79 627 y(The)h(use)h(of)f([)-6 b([)15 b Fq(:)8 b(:)g(:)22 b Fr(])-6 b(])15 b(in)h(the)g(righ)o(t)f(hand)i (sides)f(of)g(the)g(seman)o(tic)f(equations)g(ab)q(o)o(v)o(e)h(is)g(at)o (ypical.)21 b(It)c(is)8 689 y(needed)g(b)q(ecause)f Fk(decimal)f Fr(exp)q(ects)h(its)e(argumen)o(t)f(to)i(b)q(e)h(a)f(string,)e(not)i(a)g (tuple)g(of)g(c)o(haracters.)8 811 y Fs(3.2.1.3)52 b(Ev)m(aluating)18 b(Expressions)54 897 y Fi(\017)k Fk(evaluate)p 273 897 14 2 v 48 w(::)d(Exp)o(ression)d Fi(!)g Fk(action)190 953 y([giving)f(a)g(value]) 190 1010 y([using)h(current)g(bindings)p 640 1018 5 40 v 42 w(current)g(sto)o(rage])e(.)8 1091 y Fr(Let)k(us)f(b)q(e)h(con)o(ten)o(t)f (here)h(with)e(an)h(informal)e(reading)i(of)g(suc)o(h)g(indications)g(of)f (the)i(sorts)e(of)h(actions,)f(as)8 1148 y(a)f(thorough)f(explanation)f(in)o (v)o(olv)o(es)g(considering)i(op)q(erations)f(that)f(can)i(b)q(e)h(applied)e (to)g(en)o(tire)g(sorts.)19 b(But)8 1204 y(note)c(that)g(failure)f(is)h Fp(always)k Fr(an)c(implicit)d(p)q(ossibilit)o(y)l(.)8 1298 y Fy(\(1\))45 b Fk(evaluate)16 b Fp(L)p Fk(:Literal)e(=)h(give)g(the)h(value) g(of)f Fp(L)f Fk(.)8 1374 y Fr(The)i(primitiv)o(e)c(action)j Fk(give)g Fp(Y)23 b Fr(completes,)14 b(giving)g(the)h(data)g(yielded)g(b)o(y) g(ev)m(aluating)g(the)g(yielder)g Fp(Y)8 b Fr(.)8 1450 y Fy(\(2\))45 b Fk(evaluate)16 b Fp(I)7 b Fk(:Identi\014er)16 b(=)190 1506 y(give)f(the)h(entit)o(y)g(b)q(ound)i(to)d(the)h(tok)o(en)g(of)f Fp(I)22 b Fk(then)p 196 1636 1 113 v 221 1563 a(give)15 b(the)h(given)g (value)f(o)o(r)221 1619 y(give)g(the)h(value)g(assigned)h(to)e(the)h(given)f (va)o(riable)g(.)8 1692 y Fr(The)f(functional)f(action)g(com)o(bination)e Fp(A)738 1699 y Fy(1)771 1692 y Fk(then)k Fp(A)902 1699 y Fy(2)936 1692 y Fr(represen)o(ts)e(ordinary)g(functional)g(comp)q(osition)e(of)j Fp(A)1879 1699 y Fy(1)8 1754 y Fr(and)g Fp(A)129 1761 y Fy(2)148 1754 y Fr(:)19 b(the)13 b(transien)o(ts)f(giv)o(en)h(to)f(the)i(whole)f (action)f(are)h(propagated)f(only)h(to)g Fp(A)1466 1761 y Fy(1)1485 1754 y Fr(,)g(the)h(transien)o(ts)e(giv)o(en)8 1816 y(b)o(y)j Fp(A)105 1823 y Fy(1)138 1816 y Fr(on)g(completion)d(are)i(giv)o(en)g(only)g (to)g Fp(A)813 1823 y Fy(2)832 1816 y Fr(,)h(and)f(only)g(the)g(transien)o (ts)g(giv)o(en)g(b)o(y)g Fp(A)1546 1823 y Fy(2)1580 1816 y Fr(are)g(giv)o(en)g(b)o(y)g(the)8 1878 y(whole)h(action.)k(Regarding)c(con)o (trol)f(\015o)o(w,)g Fp(A)803 1885 y Fy(1)838 1878 y Fk(then)j Fp(A)971 1885 y Fy(2)1005 1878 y Fr(sp)q(eci\014es)f(normal)e(left-to-righ)o (t)f(sequencing.)79 1940 y(The)i(primitiv)o(e)e(action)h Fk(give)h Fp(Y)24 b Fr(fails)13 b(when)j Fp(Y)24 b Fr(yields)14 b(nothing.)20 b(The)15 b(yielder)g Fk(the)h(entit)o(y)g(b)q(ound)h(to)e Fp(T)8 2002 y Fr(refers)f(to)g(the)h(curren)o(t)f(binding)g(for)g(the)g(particular)f (tok)o(en)h Fp(T)6 b Fr(,)14 b(pro)o(vided)g(that)g(there)g(is)g(one,)g (otherwise)g(it)8 2064 y(yields)h Fk(nothing)p Fr(,)h(causing)f(the)g(giving) f(action)h(to)f(fail.)79 2126 y(The)j(yielder)g Fk(given)g Fp(Y)25 b Fr(yields)17 b(all)f(the)h(data)f(giv)o(en)h(to)f(its)g(ev)m (aluation,)g(pro)o(vided)h(that)f(this)h(is)f(of)h(the)8 2188 y(data)j(sort)e Fp(Y)9 b Fr(.)34 b(F)l(or)19 b(instance)h Fk(the)h(given)f (value)g Fr(\(where)g(`)p Fk(the)p Fr(')g(is)f(optional\))g(yields)g(a)h (single)f(individual)8 2250 y(of)f(sort)f Fk(value)p Fr(,)h(if)f(suc)o(h)h (is)f(giv)o(en.)28 b(Otherwise)17 b(it)g(yields)h Fk(nothing)p Fr(,)h(and)f Fk(give)f(the)i(given)f(value)g Fr(fails.)26 b(This)8 2313 y(causes)17 b(the)g(alternativ)o(e)e(curren)o(tly)h(b)q(eing)h(p)q (erformed)e(to)h(b)q(e)i(abandoned)f(and,)g(if)f(p)q(ossible,)g(some)f(other) 8 2375 y(alternativ)o(e)f(to)g(b)q(e)i(p)q(erformed)f(instead,)f(i.e.,)g Fp(b)n(ack-tr)n(acking)t Fr(.)79 2431 y(The)c(action)g Fp(A)333 2438 y Fy(1)363 2431 y Fk(o)o(r)f Fp(A)444 2438 y Fy(2)474 2431 y Fr(represen)o(ts)h(implemen)o(tatio)o(n-dep)q(enden)o(t)g(c)o(hoice)g (b)q(et)o(w)o(een)h(alternativ)o(e)d(actions,)8 2488 y(although)19 b(here)g Fp(A)338 2495 y Fy(1)358 2488 y Fr(,)g Fp(A)424 2495 y Fy(2)463 2488 y Fr(are)f(suc)o(h)i(that)e(one)h(or)g(the)g(other)g(of)f (them)g(is)h(alw)o(a)o(ys)e(b)q(ound)j(to)f(fail,)f(so)h(the)8 2544 y(c)o(hoice)c(is)g(deterministic.)j(The)d(yielder)g Fk(the)h(value)g (assigned)h(to)e Fp(Y)24 b Fr(refers)15 b(to)f(the)h(curren)o(t)g(storage)f (for)h(the)8 2600 y(particular)c(v)m(ariable)h(yielded)h(b)o(y)f Fp(Y)d Fr(,)j(analogously)f(to)h Fk(the)i(entit)o(y)f(b)q(ound)h(to)f Fp(T)6 b Fr(.)18 b(If)13 b Fp(I)19 b Fr(is)12 b(curren)o(tly)g(b)q(ound)i(to) 8 2657 y(an)g(en)o(tit)o(y)f(that)h(is)g(neither)g(a)g(v)m(alue)g(nor)g(a)g (v)m(ariable)f(\(e.g.,)g(a)h(pro)q(cedure\))h(b)q(oth)f(alternativ)o(es)f (fail,)f(causing)8 2713 y(their)j(com)o(bination)e(to)h(fail)g(as)h(w)o(ell.) 8 2789 y Fy(\(3\))45 b Fk(evaluate)16 b Fr([)-6 b([)15 b Fk(\\\(")f Fp(E)5 b Fk(:Exp)o(ression)16 b(\\\)")e Fr(])-6 b(])14 b Fk(=)i(evaluate)g Fp(E)k Fk(.)p eop %%Page: 21 24 21 23 bop -42 -137 a Fn(3.2.)35 b(SEMANTIC)15 b(FUNCTIONS)1201 b Fr(21)-42 12 y Fy(\(4\))45 b Fk(evaluate)16 b Fr([)-6 b([)15 b Fp(O)t Fk(:Una)o(ry-Op)q(erato)o(r)g Fp(E)5 b Fk(:Exp)o(ression)16 b Fr(])-6 b(])14 b Fk(=)140 69 y(evaluate)i Fp(E)21 b Fk(then)16 b(give)f(the)i(una)o(ry-op)q(eration-result)g(of)d Fp(O)20 b Fk(.)-42 135 y Fy(\(5\))45 b Fk(evaluate)16 b Fr([)-6 b([)15 b Fp(E)286 142 y Fy(1)305 135 y Fk(:Exp)o(ression)h Fp(O)t Fk(:Bina)o(ry-Op)q(erato)o(r)f Fp(E)935 142 y Fy(2)955 135 y Fk(:Exp)o(ression)g Fr(])-6 b(])15 b Fk(=)p 146 208 1 57 v 171 192 a(evaluate)h Fp(E)373 199 y Fy(1)408 192 y Fk(and)g(evaluate)g Fp(E)694 199 y Fy(2)140 248 y Fk(then)h(give)e(the)h(bina)o(ry-op)q (eration-result)h(of)e Fp(O)k Fk(.)-42 339 y Fr(The)f(action)f Fp(A)227 346 y Fy(1)264 339 y Fk(and)h Fp(A)384 346 y Fy(2)421 339 y Fr(represen)o(ts)g(implemen)o(tati)o(on-dep)q(enden)o(t)e(order)i(of)f (p)q(erformance)g(of)g(the)g(indi-)-42 401 y(visible)d(subactions)g(of)h Fp(A)406 408 y Fy(1)425 401 y Fr(,)f Fp(A)486 408 y Fy(2)506 401 y Fr(.)20 b(When)15 b(these)f(subactions)h(cannot)f(`in)o(terfere')f (with)h(eac)o(h)h(other,)f(as)g(here,)-42 463 y(it)j(indicates)g(that)g (their)g(order)g(of)g(p)q(erformance)g(is)f(simply)g(irrelev)m(an)o(t.)26 b(Left-to-righ)o(t)16 b(order)h(of)g(ev)m(alua-)-42 525 y(tion)f(can)h(b)q(e) h(sp)q(eci\014ed)g(b)o(y)e(using)h(the)g(com)o(binator)d Fp(A)926 532 y Fy(1)962 525 y Fk(and)k(then)g Fp(A)1182 532 y Fy(2)1218 525 y Fr(instead)e(of)h Fp(A)1464 532 y Fy(1)1500 525 y Fk(and)g Fp(A)1619 532 y Fy(2)1656 525 y Fr(ab)q(o)o(v)o(e.)24 b(In)-42 587 y(b)q(oth)18 b(cases,)g(the)g(v)m(alues)g(giv)o(en)f(b)o(y)g(the)h (subactions)f(get)g(tupled,)h(and)g(subsequen)o(tly)g(passed)g(on)g(b)o(y)f (the)-42 649 y(com)o(binator)c Fp(A)231 656 y Fy(1)266 649 y Fk(then)k Fp(A)399 656 y Fy(2)418 649 y Fr(.)29 706 y(The)i(ev)m(aluation)e (of)h(an)g(expression)g(ma)o(y)e(giv)o(e)i(an)o(y)g(individual)f(of)h(sort)f Fk(value)p Fr(.)29 b(W)l(e)19 b(lea)o(v)o(e)e(it)h(to)f(the)-42 762 y(seman)o(tics)g(of)i(op)q(erators,)f(sp)q(eci\014ed)i(b)q(elo)o(w,)f(to) f(insist)g(on)h(individuals)f(of)g(particular)g(sorts|n)o(um)o(b)q(ers,)-42 819 y(for)i(instance.)34 b(F)l(or)20 b(simplicit)o(y)l(,)e(w)o(e)h(do)h(not)g (b)q(other)g(with)g(precise)g(error)f(messages)g(in)h(case)g(the)g(giv)o(en) -42 875 y(op)q(erands)15 b(are)e Fp(not)18 b Fr(of)c(the)g(righ)o(t)f(sort)g (for)g(a)h(particular)e(op)q(erator:)18 b(w)o(e)c(merely)f(let)g(the)h (application)f(of)g(the)-42 932 y(corresp)q(onding)j(op)q(eration)g(yield)f Fk(nothing)p Fr(,)i(so)f(that)f(the)h(action)f(whic)o(h)h(giv)o(es)f(it)h(m)o (ust)e(fail.)21 b(In)c(an)o(y)f(case,)-42 988 y(errors)h(arising)g(due)h(to)f (wrong)g(sorts)f(of)i(op)q(erands)g(are)f(statically)e(detectable)j(in)f (most)f(languages,)h(and)-42 1044 y(should)g(therefore)f(b)q(e)h(the)f (concern)h(of)f(a)g(static)f(seman)o(tic)f(description,)i(not)g(of)g(the)g (dynamic)f(seman)o(tics)-42 1101 y(that)g(w)o(e)g(are)g(dev)o(eloping)g (here.)-42 1196 y Fy(\(6\))45 b Fk(evaluate)16 b Fr([)-6 b([)15 b Fp(E)286 1203 y Fy(1)305 1196 y Fk(:Exp)o(ression)h(\\o)o(r")e(\\else")h Fp(E)789 1203 y Fy(2)808 1196 y Fk(:Exp)o(ression)h Fr(])-6 b(])15 b Fk(=)140 1252 y(evaluate)h Fp(E)342 1259 y Fy(1)377 1252 y Fk(then)p 146 1438 1 170 v 177 1325 1 57 v 203 1308 a(check)g(the)g(given)g(truth-value)h(then)g(give)d(true)171 1365 y(o)o(r)p 177 1438 V 203 1421 a(check)i(not)g(the)g(given)g(truth-value) h(then)f(evaluate)g Fp(E)1114 1428 y Fy(2)1149 1421 y Fk(.)-42 1488 y Fy(\(7\))45 b Fk(evaluate)16 b Fr([)-6 b([)15 b Fp(E)286 1495 y Fy(1)305 1488 y Fk(:Exp)o(ression)h(\\and")f(\\then")i Fp(E)836 1495 y Fy(2)855 1488 y Fk(:Exp)o(ression)f Fr(])-6 b(])14 b Fk(=)140 1544 y(evaluate)i Fp(E)342 1551 y Fy(1)377 1544 y Fk(then)p 146 1730 1 170 v 177 1618 1 57 v 203 1601 a(check)g(the)g(given)g(truth-value)h(then)g(evaluate)e Fp(E)1036 1608 y Fy(2)171 1657 y Fk(o)o(r)p 177 1730 V 203 1714 a(check)h(not)g(the)g (given)g(truth-value)h(then)f(give)f(false)h(.)-42 1804 y Fr(The)21 b(action)f Fk(check)i Fp(Y)30 b Fr(requires)20 b Fp(Y)29 b Fr(to)20 b(yield)h(a)f(truth-v)m(alue;)j(it)d(completes)g(when)h(the)g(v)m (alue)f(is)h(true,)-42 1866 y(otherwise)13 b(it)g(fails.)19 b(It)13 b(is)h(used)g(for)f(guarding)g(alternativ)o(es.)18 b(F)l(or)13 b(instance,)g Fk(\(check)i Fp(Y)22 b Fk(then)16 b Fp(A)1623 1873 y Fy(1)1642 1866 y Fk(\))e(o)o(r)e(\(check)-42 1929 y(not)i Fp(Y)22 b Fk(then)14 b Fp(A)220 1936 y Fy(2)240 1929 y Fk(\))f Fr(expresses)g(a)g(deterministic)e(c)o(hoice)i(b)q(et)o(w)o (een)g Fp(A)1112 1936 y Fy(1)1145 1929 y Fr(and)g Fp(A)1265 1936 y Fy(2)1284 1929 y Fr(,)g(dep)q(ending)i(on)e(the)g(condition)-42 1991 y Fp(Y)c Fr(.)-42 2118 y Fs(3.2.1.4)52 b(Op)q(erating)18 b(Unary)f(Op)q(erators)4 2204 y Fi(\017)22 b Fk(the)17 b(una)o(ry-op)q (eration-result)g(of)p 611 2204 14 2 v 46 w(::)i(Una)o(ry-Op)q(erato)o(r)d Fi(!)f Fk(yielder)140 2260 y([of)g(value])h([using)g(given)f(value])h(.)-42 2367 y Fr(Assuming)i(that)f(applications)h(of)g(op)q(erators)f(to)h(op)q (erands)h(should)f(nev)o(er)h(div)o(erge)f(or)g(escap)q(e,)i(w)o(e)e(ma)o(y) -42 2424 y(represen)o(t)f(the)g(seman)o(tics)e(of)h(an)h(op)q(erator)f(as)g (a)h(yielder.)24 b(Otherwise,)17 b(w)o(e)f(could)h(use)g(actions)f(here)h(to) q(o.)-42 2480 y(But)c(note)g(that)f(w)o(e)g(cannot)h(let)f(the)h(seman)o (tics)e(of)h(an)h(op)q(erator)e(b)q(e)j(simply)d(an)h(algebraic)g(op)q (eration,)g(since)-42 2537 y(our)j(meta-notation)e(is)i(\014rst-order.)-42 2657 y Fy(\(1\))45 b Fk(the)17 b(una)o(ry-op)q(eration-result)g(of)d(\\)p Fr(+)p Fk(")h(=)h(the)g(given)f(numb)q(er)h(.)-42 2723 y Fy(\(2\))45 b Fk(the)17 b(una)o(ry-op)q(eration-result)g(of)d(\\)p Fi(\000)p Fk(")h(=)h(the)g(negation)g(of)f(the)h(given)f(numb)q(er)h(.)-42 2789 y Fy(\(3\))45 b Fk(the)17 b(una)o(ry-op)q(eration-result)g(of)d(\\abs")i (=)f(the)h(absolute)h(of)e(the)h(given)f(numb)q(er)h(.)p eop %%Page: 22 25 22 24 bop 8 -137 a Fr(22)856 b Fn(CHAPTER)15 b(3.)35 b(AN)15 b(ILLUSTRA)l(TIVE)j(EXAMPLE)8 12 y Fy(\(4\))45 b Fk(the)16 b(una)o(ry-op)q(eration-result)h(of)e(\\not")g(=)h(not)g(the)g(given)f (truth-value)i(.)8 115 y Fr(Numerical)e(op)q(erations)h(suc)o(h)g(as)g Fk(negation)h Fr(and)g Fk(absolute)h Fr(are)e(sp)q(eci\014ed)i(\(lo)q (osely\))c(in)j(Section)f(A.1.)23 b(The)8 177 y(truth-v)m(alues)17 b(are)g(the)g(standard)f(ones)h(from)f(data)g(notation,)g(equipp)q(ed)i(with) e(the)h(usual)g(logical)e(op)q(era-)8 239 y(tions,)f(suc)o(h)i(as)f Fk(not)p Fr(.)8 369 y Fs(3.2.1.5)52 b(Op)q(erating)18 b(Binary)e(Op)q (erators)54 456 y Fi(\017)22 b Fk(the)16 b(bina)o(ry-op)q(eration-result)h (of)p 672 456 14 2 v 47 w(::)i(Bina)o(ry-Op)q(erato)o(r)c Fi(!)h Fk(yielder)190 512 y([of)f(value])h([using)g(given)f(\(value,value\)])g(.)8 608 y Fy(\(1\))45 b Fk(the)16 b(bina)o(ry-op)q(eration-result)h(of)e(\\)p Fr(+)p Fk(")g(=)190 664 y(the)h(sum)g(of)e(\(the)i(given)g(numb)q(er#1,)f (the)h(given)f(numb)q(er#2\))g(.)8 774 y Fr(The)d(yielder)f Fk(given)g Fp(Y)e Fk(#)p Fp(n)14 b Fr(yields)d(the)g Fp(n)s Fr('th)g(individual)f(comp)q(onen)o(t)g(of)h(a)g(giv)o(en)g(tuple,)g(for)g Fq(n)i(>)g Fr(0,)e(pro)o(vided)8 831 y(that)k(this)f(comp)q(onen)o(t)h(is)f (of)h(sort)g Fp(Y)8 b Fr(.)8 927 y Fy(\(2\))45 b Fk(the)16 b(bina)o(ry-op)q(eration-result)h(of)e(\\)p Fi(\000)p Fk(")g(=)190 984 y(the)h(di\013erence)g(of)f(\(the)h(given)f(numb)q(er#1,)g(the)h(given)g (numb)q(er#2\))f(.)8 1052 y Fy(\(3\))45 b Fk(the)16 b(bina)o(ry-op)q (eration-result)h(of)e(\\)10 b Fr(&)g Fk(")15 b(=)190 1109 y(the)h(concatenation)h(of)e(\(the)h(given)f(a)o(rra)o(y#1,)e(the)j(given)g (a)o(rra)o(y#2\))c(.)8 1177 y Fy(\(4\))45 b Fk(the)16 b(bina)o(ry-op)q (eration-result)h(of)e(\\)p Fi(\003)p Fk(")f(=)190 1234 y(the)i(p)o(ro)q (duct)h(of)e(\(the)h(given)f(numb)q(er#1,)g(the)h(given)g(numb)q(er#2\))f(.)8 1302 y Fy(\(5\))45 b Fk(the)16 b(bina)o(ry-op)q(eration-result)h(of)e(\\)p Fq(=)p Fk(")f(=)190 1358 y(the)i(quotient)i(of)c(\(the)i(given)g(numb)q (er#1,)f(the)h(given)f(numb)q(er#2\))g(.)8 1427 y Fy(\(6\))45 b Fk(the)16 b(bina)o(ry-op)q(eration-result)h(of)e(\\mo)q(d")f(=)190 1483 y(the)i(mo)q(dulo)f(of)g(\(the)h(given)f(numb)q(er#1,)g(the)h(given)g (numb)q(er#2\))f(.)8 1552 y Fy(\(7\))45 b Fk(the)16 b(bina)o(ry-op)q (eration-result)h(of)e(\\rem")e(=)190 1608 y(the)j(remainder)f(of)g(\(the)g (given)h(numb)q(er#1,)f(the)h(given)f(numb)q(er#2\))g(.)8 1677 y Fy(\(8\))45 b Fk(the)16 b(bina)o(ry-op)q(eration-result)h(of)e(\\)p Fr(=)p Fk(")g(=)190 1733 y(the)h(given)g(value#1)f(is)g(the)i(given)e (value#2)g(.)8 1802 y Fy(\(9\))45 b Fk(the)16 b(bina)o(ry-op)q (eration-result)h(of)e(\\)p Fq(=)5 b Fr(=)p Fk(")15 b(=)190 1858 y(not)h(\(the)g(given)f(value#1)g(is)h(the)g(given)f(value#2\))g(.)8 1926 y Fy(\(10\))27 b Fk(the)16 b(bina)o(ry-op)q(eration-result)h(of)e(\\)p Fq(<)p Fk(")g(=)190 1983 y(the)h(given)g(numb)q(er#1)f(is)h(less)g(than)g (the)g(given)g(numb)q(er#2)f(.)8 2051 y Fy(\(11\))27 b Fk(the)16 b(bina)o(ry-op)q(eration-result)h(of)e(\\)p Fq(<)p Fr(=)p Fk(")g(=)190 2108 y(not)h(\(the)g(given)f(numb)q(er#1)h(is)f(greater)g(than)h(the)g(given) g(numb)q(er#2\))f(.)8 2176 y Fy(\(12\))27 b Fk(the)16 b(bina)o(ry-op)q (eration-result)h(of)e(\\)p Fq(>)p Fk(")g(=)190 2233 y(the)h(given)g(numb)q (er#1)f(is)h(greater)e(than)i(the)h(given)e(numb)q(er#2)g(.)8 2301 y Fy(\(13\))27 b Fk(the)16 b(bina)o(ry-op)q(eration-result)h(of)e(\\)p Fq(>)p Fr(=)p Fk(")g(=)190 2358 y(not)h(\(the)g(given)f(numb)q(er#1)h(is)f (less)h(than)g(the)h(given)e(numb)q(er#2\))g(.)8 2426 y Fy(\(14\))27 b Fk(the)16 b(bina)o(ry-op)q(eration-result)h(of)e(\\and")g(=)190 2482 y(b)q(oth)i(of)d(\(the)i(given)g(truth-value#1,)g(the)g(given)g (truth-value#2\))g(.)8 2551 y Fy(\(15\))27 b Fk(the)16 b(bina)o(ry-op)q (eration-result)h(of)e(\\o)o(r")f(=)190 2607 y(either)i(of)f(\(the)h(given)f (truth-value#1,)h(the)h(given)e(truth-value#2\))h(.)8 2676 y Fy(\(16\))27 b Fk(the)16 b(bina)o(ry-op)q(eration-result)h(of)e(\\xo)o(r")f (=)190 2732 y(not)i(\(the)g(given)f(truth-value#1)i(is)e(the)h(given)g (truth-value#2\))g(.)p eop %%Page: 23 26 23 25 bop -42 -137 a Fn(3.2.)35 b(SEMANTIC)15 b(FUNCTIONS)1201 b Fr(23)-42 12 y Fs(3.2.1.6)52 b(Mo)q(derating)17 b(Expressions)4 98 y Fi(\017)22 b Fk(mo)q(derate)p 245 98 14 2 v 47 w(::)d(Exp)o(ressions)e Fi(!)e Fk(action)140 155 y([giving)g(a)o(rgument)459 138 y Ff(+)p 506 163 5 40 v 528 155 a Fk(sto)o(ring])140 211 y([using)i(given)e(mo) q(de)484 195 y Ff(+)p 531 219 V 553 211 a Fk(current)h(bindings)p 876 219 V 41 w(current)g(sto)o(rage])f(.)-42 297 y Fr(The)k(ev)m(aluation)e (of)h(actual)f(parameter)f(expressions)i(in)g(pro)q(cedure)h(calls)f(is)f (dep)q(enden)o(t)j(on)e(the)g(mo)q(des)-42 354 y(of)d(the)g(corresp)q(onding) h(formals)c(in)j(pro)q(cedure)h(declarations.)j(The)c(seman)o(tic)f(en)o (tities)g(corresp)q(onding)h(to)-42 410 y(syn)o(tactic)g(mo)q(des)f(are)h(sp) q(eci\014ed)h(in)f(Section)g(A.1.)-42 509 y Fy(\(1\))45 b Fk(mo)q(derate)15 b Fp(I)7 b Fk(:Identi\014er)16 b(=)140 566 y(give)f(the)h(\014rst)g(of)f(the) h(given)g(mo)q(de)739 549 y Ff(+)783 566 y Fk(then)p 146 808 1 226 v 177 695 1 113 v 203 622 a(check)g(either)g(\(it)f(is)h(the)g (reference-mo)q(de,)f(it)g(is)h(the)g(cop)o(y-mo)q(de\))f(then)203 678 y(give)g(the)h(va)o(riable)e(b)q(ound)j(to)f(the)g(tok)o(en)g(of)f Fp(I)171 735 y Fk(o)o(r)p 177 808 1 57 v 203 791 a(check)h(\(it)f(is)h(the)g (constant-mo)q(de\))h(then)f(evaluate)g Fp(I)22 b Fk(.)-42 863 y Fr(The)16 b(tuple)g(selector)f(op)q(eration)g Fk(\014rst)i Fr(is)e(standard)g(in)h(data)f(notation,)f(as)i(is)f Fk(rest)h Fr(b)q(elo)o(w.)21 b(The)16 b(yielder)g(`)p Fk(it)p Fr(')-42 919 y(formally)d(abbreviates)h Fk(the)j(given)e(datum)p Fr(;)g(here,)g(w)o(e) g(could)h(also)e(write)g Fk(the)i(given)g(mo)q(de)p Fr(.)-42 999 y Fy(\(2\))45 b Fp(E)16 b Fr(&)10 b Fk(Identi\014er)17 b(=)e(nothing)32 b Fi(\))49 1056 y Fk(mo)q(derate)15 b Fp(E)5 b Fk(:Exp)o(ression)16 b(=)140 1112 y(give)f(the)h(\014rst)g(of)f(the)h (given)g(mo)q(de)739 1095 y Ff(+)783 1112 y Fk(then)140 1168 y(check)h(\(it)e(is)g(the)i(constant-mo)q(de\))f(then)h(evaluate)f Fp(E)k Fk(.)-42 1240 y Fr(Here)c(w)o(e)f(collapse)f(the)h(uniform)f(seman)o (tic)f(equations)i(for)f(the)h(remaining)f Fk(Exp)o(ression)i Fr(constructs)e(in)o(to)h(a)-42 1297 y(single)c(conditional)f(equation)h (whose)g(condition)g(holds)g(when)g Fp(E)17 b Fr(is)11 b(abstract)f(syn)o (tax)h Fp(not)k Fr(of)c(sort)f Fk(Identi\014er)p Fr(.)-42 1376 y Fy(\(3\))45 b Fk(mo)q(derate)15 b Fi(h)8 b Fp(E)299 1383 y Fy(1)318 1376 y Fk(:Exp)o(ression)16 b(\\,")e Fp(E)648 1383 y Fy(2)668 1376 y Fk(:Exp)o(ressions)8 b Fi(i)15 b Fk(=)140 1433 y(mo)q(derate)g Fp(E)364 1440 y Fy(1)399 1433 y Fk(and)p 146 1506 V 171 1489 a(give)g(the)i(rest)e(of)g(the)h(given)g(mo)q(de)766 1473 y Ff(+)810 1489 y Fk(then)h(mo)q(derate)e Fp(E)1133 1496 y Fy(2)1183 1489 y Fk(.)-42 1565 y Fr(Whereas)20 b(the)h(data)e(\015o)o(w)h (in)g Fp(A)533 1572 y Fy(1)573 1565 y Fk(then)i Fp(A)711 1572 y Fy(2)750 1565 y Fr(is)e(analogous)f(to)g(that)h(in)g(ordinary)f(function)h (comp)q(osition)-42 1627 y Fq(g)8 b Fi(\016)f Fq(f)18 b Fr(\(at)13 b(least)f(when)i(the)g(functions)f(are)g(strict\))f(the)h(data)g(\015o)o(w)g (in)g Fp(A)1187 1634 y Fy(1)1222 1627 y Fk(and)j Fp(A)1340 1634 y Fy(2)1373 1627 y Fr(is)d(analogous)f(to)h(so-called)-42 1689 y Fp(tar)n(get-tupling)k Fr(of)12 b(functions,)h(sometimes)c(written)j ([)p Fq(f)r(;)c(g)r Fr(])j(and)h(de\014ned)i(b)o(y)f([)p Fq(f)r(;)8 b(g)r Fr(]\()p Fq(x)p Fr(\))i(=)j(\()p Fq(f)5 b Fr(\()p Fq(x)p Fr(\))p Fq(;)j(g)r Fr(\()p Fq(x)p Fr(\)\).)16 b(That)-42 1751 y(is,)e(b)q(oth)g Fp(A)156 1758 y Fy(1)189 1751 y Fr(and)g Fp(A)310 1758 y Fy(2)343 1751 y Fr(are)g(giv)o(en)f(the)h(same)f(transien)o (t)g(data)g(as)g(the)h(com)o(bination.)j(Note)d(that)f(the)h(tupling)-42 1813 y(of)h(the)h(data)e(giv)o(en)h(b)o(y)g Fp(A)408 1820 y Fy(1)443 1813 y Fr(and)g Fp(A)565 1820 y Fy(2)600 1813 y Fr(is)f(asso)q (ciativ)o(e.)-42 1938 y Fx(3.2.2)56 b(Statemen)n(ts)-42 2024 y Fs(in)o(tro)q(duces:)c Fk(execute)p 423 2024 14 2 v 49 w(.)-42 2177 y Fs(3.2.2.1)g(Executing)17 b(Statemen)o(ts)4 2263 y Fi(\017)22 b Fk(execute)p 209 2263 V 49 w(::)d(Statement)478 2246 y Ff(+)524 2263 y Fi(!)d Fk(action)140 2319 y([completing)p 378 2328 5 40 v 40 w(escaping)g(with)g(an)g(escap)q(e-reason)p 1011 2328 V 41 w(diverging)p 1222 2328 V 39 w(sto)o(ring)p 1389 2328 V 40 w(communicating])140 2376 y([using)h(current)f(bindings)p 590 2384 V 41 w(current)g(sto)o(rage)p 915 2384 V 39 w(current)g(bu\013er])f (.)-42 2460 y Fy(\(1\))45 b Fk(execute)17 b Fi(h)8 b Fp(S)258 2467 y Fy(1)277 2460 y Fk(:Statement)16 b Fp(S)527 2467 y Fy(2)546 2460 y Fk(:Statement)754 2444 y Ff(+)792 2460 y Fi(i)f Fk(=)h(execute)g Fp(S)1058 2467 y Fy(1)1093 2460 y Fk(and)g(then)g(execute)h Fp(S)1458 2467 y Fy(2)1493 2460 y Fk(.)-42 2552 y Fr(The)i(basic)g(action)f (com)o(bination)e Fp(A)609 2559 y Fy(1)647 2552 y Fk(and)j(then)i Fp(A)871 2559 y Fy(2)909 2552 y Fr(com)o(bines)c(the)i(actions)f Fp(A)1382 2559 y Fy(1)1401 2552 y Fr(,)h Fp(A)1467 2559 y Fy(2)1505 2552 y Fr(in)o(to)f(a)g(comp)q(ound)-42 2614 y(action)c(that)g(represen)o(ts) h(their)f(normal,)f(left-to-righ)o(t)f(sequencing,)j(p)q(erforming)e Fp(A)1432 2621 y Fy(2)1467 2614 y Fr(only)h(when)h Fp(A)1718 2621 y Fy(1)1752 2614 y Fr(com-)-42 2677 y(pletes.)29 2733 y(Note)f(that)f(the)h(seman)o(tics)e(of)i(a)f(statemen)o(t)f(is)i(w)o (ell-de\014ned,)g(b)q(ecause)h(the)f(ab)q(o)o(v)o(e)g(seman)o(tic)e(equation) -42 2789 y(can)k(only)f(matc)o(h)e(a)i(statemen)o(t)e(sequence)k(in)e(one)g (w)o(a)o(y)l(.)p eop %%Page: 24 27 24 26 bop 8 -137 a Fr(24)856 b Fn(CHAPTER)15 b(3.)35 b(AN)15 b(ILLUSTRA)l(TIVE)j(EXAMPLE)8 12 y Fy(\(2\))45 b Fk(execute)17 b Fr([)-6 b([)14 b Fk(\\null")i(\\;")e Fr(])-6 b(])14 b Fk(=)i(complete)f(.)8 103 y Fr(The)h(primitiv)o(e)c(action)j Fk(complete)g Fr(is)g(the)g(unit)g (for)g Fp(A)942 110 y Fy(1)976 103 y Fk(and)h(then)h Fp(A)1193 110 y Fy(2)1212 103 y Fr(.)8 193 y Fy(\(3\))45 b Fk(execute)17 b Fr([)-6 b([)14 b Fp(I)7 b Fk(:Identi\014er)16 b(\\:=")f Fp(E)5 b Fk(:Exp)o(ression)16 b(\\;")e Fr(])-6 b(])14 b Fk(=)p 196 266 1 57 v 221 249 a(give)h(the)h(va)o(riable)f(b)q(ound)i(to)e(the)i(tok)o (en)e(of)g Fp(I)22 b Fk(and)16 b(evaluate)g Fp(E)190 306 y Fk(then)h(assign)f(the)g(given)f(value#2)h(to)f(the)h(given)f(va)o(riable#1)g (.)8 388 y Fr(The)h(action)e Fk(assign)i Fp(Y)401 395 y Fy(1)436 388 y Fk(to)f Fp(Y)524 395 y Fy(2)559 388 y Fr(is)f(sp)q(eci\014ed)j(in)e (Section)g(A.1.)8 479 y Fy(\(4\))45 b Fk(execute)17 b Fr([)-6 b([)14 b Fk(\\if)7 b(")15 b Fp(E)5 b Fk(:Exp)o(ression)16 b(\\then")h Fp(S)5 b Fk(:Statement)1029 462 y Ff(+)1074 479 y Fk(\\end")16 b(\\if)s(")e(\\;")h Fr(])-6 b(])14 b Fk(=)190 535 y(evaluate)i Fp(E)21 b Fk(then)p 196 721 1 170 v 227 608 1 57 v 253 592 a(check)16 b(the)g(given)g(truth-value)h(and)f(then)g(execute)h Fp(S)221 648 y Fk(o)o(r)p 227 721 V 253 704 a(check)f(not)g(the)g(given)f (truth-value)i(.)8 791 y Fr(Since)e Fk(check)h Fp(D)j Fr(do)q(esn't)c(giv)o (e)f(an)o(y)g(data,)g(and)h Fk(execute)h Fp(S)j Fr(do)q(esn't)c(refer)f(to)g (giv)o(en)g(data,)g(it)g(do)q(esn't)h(mak)o(e)8 853 y(an)o(y)g(di\013erence)h (whether)f(w)o(e)g(use)g Fp(A)651 860 y Fy(1)686 853 y Fk(and)h(then)h Fp(A)903 860 y Fy(2)937 853 y Fr(or)e Fp(A)1027 860 y Fy(1)1062 853 y Fk(then)h Fp(A)1194 860 y Fy(2)1229 853 y Fr(to)f(com)o(bine)f(them)g (ab)q(o)o(v)o(e.)79 910 y(It)h(is)g(imp)q(ortan)o(t)d(not)j(to)f(omit)f(`)p Fk(o)o(r)h(check)i(not)g(the)g(given)f(truth-value)p Fr(')i(ab)q(o)o(v)o(e,)d (for)g(then)i(the)f(execution)8 966 y(of)g(an)g(if-then)g(statemen)o(t)f (with)g(a)h(false)f(condition)h(w)o(ould)g(fail,)e(rather)i(than)g(simply)e (completing.)8 1056 y Fy(\(5\))45 b Fk(execute)17 b Fr([)-6 b([)14 b Fk(\\if)7 b(")15 b Fp(E)5 b Fk(:Exp)o(ression)16 b(\\then")h Fp(S)816 1063 y Fy(1)835 1056 y Fk(:Statement)1043 1040 y Ff(+)1088 1056 y Fk(\\else")f Fp(S)1244 1063 y Fy(2)1263 1056 y Fk(:Statement)1471 1040 y Ff(+)1517 1056 y Fk(\\end")f(\\if)s(")g(\\;")f Fr(])-6 b(])15 b Fk(=)190 1113 y(evaluate)h Fp(E)21 b Fk(then)p 196 1299 1 170 v 227 1186 1 57 v 253 1169 a(check)16 b(the)g(given)g(truth-value) h(and)f(then)g(execute)h Fp(S)1151 1176 y Fy(1)221 1226 y Fk(o)o(r)p 227 1299 V 253 1282 a(check)f(not)g(the)g(given)f(truth-value)i(and)f(then)h (execute)g Fp(S)1229 1289 y Fy(2)1263 1282 y Fk(.)8 1348 y Fy(\(6\))45 b Fk(execute)17 b Fr([)-6 b([)14 b Fk(\\lo)q(op")h Fp(S)5 b Fk(:Statement)671 1331 y Ff(+)717 1348 y Fk(\\end")15 b(\\lo)q(op")g(\\;")f Fr(])-6 b(])15 b Fk(=)p 196 1478 1 113 v 221 1404 a(unfolding)p 227 1478 1 57 v 253 1461 a(execute)h Fp(S)k Fk(and)c(then)h(unfold)190 1517 y(trap)p 196 1703 1 170 v 227 1590 1 57 v 253 1573 a(check)f(there)g(is)f(given)h(an)f(exit)221 1630 y(o)o(r)p 227 1703 V 253 1686 a(check)h(there)g(is)f(given)h(a)f(p)o(ro) q(cedure-return)i(and)f(then)g(escap)q(e)h(with)f(it)f(.)8 1773 y Fr(The)21 b(action)f(com)o(bination)f Fk(unfolding)j Fp(A)e Fr(p)q(erforms)g Fp(A)g Fr(but)h(whenev)o(er)g(it)f(reac)o(hes)h(the)g (dumm)o(y)e(action)8 1835 y Fk(unfold)p Fr(,)h(it)d(p)q(erforms)g Fp(A)h Fr(instead.)28 b(It)18 b(is)g(mostly)e(used)i(in)g(the)g(seman)o(tics) f(of)g(iterativ)o(e)g(constructs,)h(with)8 1897 y Fk(unfold)e Fr(o)q(ccurring)f(exactly)g(once)g(in)h Fp(A)p Fr(,)e(but)h(it)g(can)g(also)f (b)q(e)i(used)g(with)f(sev)o(eral)f(o)q(ccurrences)i(of)f Fk(unfold)p Fr(.)79 1959 y(The)i(action)f Fp(A)346 1966 y Fy(1)382 1959 y Fk(trap)h Fp(A)510 1966 y Fy(2)547 1959 y Fr(sets)f Fp(A)671 1966 y Fy(2)707 1959 y Fr(as)h(the)g(trap)f(action)g(to)g(b)q(e)i(p)q (erformed)e(when)h Fp(A)1577 1966 y Fy(1)1614 1959 y Fr(escap)q(es.)25 b(Once)8 2021 y(an)15 b(escap)q(e)h(has)f(b)q(een)i(trapp)q(ed,)e(normal)e (sequencing)j(is)f(resumed.)79 2078 y(The)g(primitiv)o(e)d(action)i Fk(escap)q(e)i(with)g Fp(Y)23 b Fr(terminates)13 b(abnormally)l(,)f(giving)i (the)h(data)f(yielded)h(b)o(y)f Fp(Y)24 b Fr(to)8 2134 y(the)15 b(action)e(that)h(traps)f(the)i(escap)q(e)g(\(if)e(an)o(y\).)19 b(An)c Fk(exit)g Fr(is)e(simply)g(a)h(data)g(item,)e(as)i(is)g(a)g Fk(p)o(ro)q(cedure-return)p Fr(.)8 2191 y(The)i(data)e(op)q(eration)h Fk(there)h(is)f Fp(d)20 b Fr(results)15 b(in)g Fk(true)h Fr(when)f Fp(d)20 b Fr(is)15 b(a)g(data)f(item)g(other)h(than)g Fk(nothing)p Fr(.)8 2281 y Fy(\(7\))45 b Fk(execute)17 b Fr([)-6 b([)14 b Fk(\\while")h Fp(E)5 b Fk(:Exp)o(ression)17 b(\\lo)q(op")d Fp(S)5 b Fk(:Statement)1090 2265 y Ff(+)1136 2281 y Fk(\\end")16 b(\\lo)q(op")e(\\;")g Fr(])-6 b(])15 b Fk(=)p 196 2580 1 283 v 221 2337 a(unfolding)p 227 2580 1 226 v 253 2394 a(evaluate)g Fp(E)21 b Fk(then)p 258 2580 1 170 v 289 2467 1 57 v 315 2450 a(check)16 b(the)h(given)e(truth-value)i(and)f(then)h(execute)f Fp(S)21 b Fk(and)16 b(then)g(unfold)284 2507 y(o)o(r)p 289 2580 V 315 2563 a(check)g(not)g(the)g(given)g(truth-value)190 2620 y(trap)p 196 2806 1 170 v 227 2693 1 57 v 253 2676 a(check)g(there)g(is) f(given)h(an)f(exit)221 2733 y(o)o(r)p 227 2806 V 253 2789 a(check)h(there)g(is)f(given)h(a)f(p)o(ro)q(cedure-return)i(and)f(then)g (escap)q(e)h(.)p eop %%Page: 25 28 25 27 bop -42 -137 a Fn(3.2.)35 b(SEMANTIC)15 b(FUNCTIONS)1201 b Fr(25)-42 12 y Fy(\(8\))45 b Fk(execute)17 b Fr([)-6 b([)15 b Fk(\\exit")g(\\;")f Fr(])-6 b(])14 b Fk(=)i(escap)q(e)g(with)g(an)g(exit)f (.)-42 78 y Fy(\(9\))45 b Fk(execute)17 b Fr([)-6 b([)15 b Fk(\\b)q(egin")g Fp(S)5 b Fk(:Statement)642 61 y Ff(+)688 78 y Fk(\\end")16 b(\\;")e Fr(])-6 b(])14 b Fk(=)i(execute)g Fp(S)21 b Fk(.)-42 143 y Fy(\(10\))27 b Fk(execute)17 b Fr([)-6 b([)15 b Fk(\\decla)o(re")f Fp(B)5 b Fk(:)p Fi(h)j Fk(Decla)o(ration)724 127 y Ff(+)767 143 y Fk(\\b)q(egin")16 b(Statement)1125 127 y Ff(+)1171 143 y Fk(\\end")8 b Fi(i)15 b Fk(\\;")f Fr(])-6 b(])14 b Fk(=)140 200 y(execute)j Fp(B)j Fk(.)-42 280 y Fr(A)c(declare)g (statemen)o(t)e(is)h(a)g(blo)q(c)o(k.)22 b(Some)15 b(languages,)f Fj(P)l(ascal)i Fr(for)f(instance,)g(don't)g(allo)o(w)f(suc)o(h)i(anon)o(y-) -42 336 y(mous)d(blo)q(c)o(ks)h(to)g(o)q(ccur)g(in)h(the)f(middle)f(of)h(a)f (statemen)o(t)g(sequence,)i(only)e(directly)h(in)g(other)g(declarations,)-42 393 y(but)i(the)f(extra)g(generalit)o(y)e(here)j(do)q(esn't)f(complicate)e (the)j(seman)o(tic)d(description)i(noticeably)l(.)-42 472 y Fy(\(11\))27 b Fk(execute)17 b Fr([)-6 b([)15 b Fp(I)7 b Fk(:Identi\014er)15 b(\\;")f Fr(])-6 b(])15 b Fk(=)140 529 y(enact)i(the)f(p)o(ro)q (cedure-abstraction)h(of)231 585 y(the)f(pa)o(rameterless)f(p)o(ro)q(cedure)h (b)q(ound)i(to)d(the)h(tok)o(en)g(of)f Fp(I)22 b Fk(.)-42 661 y Fr(The)e(action)f Fk(enact)i Fp(Y)28 b Fr(p)q(erforms)19 b(the)h(action)f(incorp)q(orated)g(in)g(the)h(abstraction)e(yielded)i(b)o(y)g Fp(Y)9 b Fr(.)33 b(The)-42 723 y(p)q(erformance)22 b(of)f(the)h(incorp)q (orated)f(action)g(is)h(not)f(giv)o(en)h(an)o(y)f(transien)o(t)g(data,)h(nor) g(do)q(es)g(it)f(receiv)o(e)-42 786 y(an)o(y)h(bindings.)40 b(Ho)o(w)o(ev)o(er,)22 b(transien)o(ts)f(and/or)h(bindings)f(ma)o(y)g(ha)o(v) o(e)g(already)g(b)q(een)j(supplied)e(to)f(the)-42 848 y(incorp)q(orated)15 b(action,)f(using)h(the)g(notation)f(for)h(yielders)g(explained)g(later.)29 904 y(The)d(notation)e(for)h(constructing)g(pro)q(cedure)i(en)o(tities)e (from)f(abstractions)g(is)h(sp)q(eci\014ed)i(in)f(Section)f(A.1.)-42 984 y Fy(\(12\))27 b Fk(execute)17 b Fr([)-6 b([)15 b Fp(I)7 b Fk(:Identi\014er)15 b(\\\(")g Fp(E)5 b Fk(:Exp)o(ressions)16 b(\\\)")e(\\;")g Fr(])-6 b(])15 b Fk(=)140 1040 y(give)g(the)h(p)o(ro)q (cedure)g(b)q(ound)i(to)d(the)h(tok)o(en)g(of)f Fp(I)22 b Fk(then)p 146 1227 1 170 v 171 1097 a(give)15 b(the)i(p)o(ro)q(cedure-abstraction)g(of) e(the)h(given)f(p)o(ro)q(cedure)h(and)p 177 1227 1 113 v 203 1153 a(give)f(the)h(fo)o(rmal-mo)q(des)d(of)i(the)h(given)f(pa)o(rameterized) g(p)o(ro)q(cedure)h(then)203 1210 y(mo)q(derate)f Fp(E)140 1266 y Fk(then)i(enact)f(the)h(application)f(of)f(the)h(given)f (abstraction#1)356 1323 y(to)h(the)g(a)o(rgument)665 1306 y Ff(+)709 1323 y Fk(yielded)g(b)o(y)g(the)g(rest)g(of)e(the)j(given)e(data)h (.)-42 1394 y Fr(Supp)q(ose)f(that)f Fp(Y)267 1401 y Fy(1)300 1394 y Fr(yields)f Fk(abstraction)i(of)f Fp(A)p Fr(,)f(and)h(that)f Fp(Y)979 1401 y Fy(2)1013 1394 y Fr(yields)g(data)g Fp(d)5 b Fr(.)19 b(Then)c(the)f(yielder)f Fk(application)-42 1451 y Fp(Y)-8 1458 y Fy(1)27 1451 y Fk(to)i Fp(Y)115 1458 y Fy(2)150 1451 y Fr(ev)m(aluates)g(to)g Fk(abstraction)h(of)f(\(give)f Fp(d)20 b Fk(then)d Fp(A)p Fk(\))p Fr(.)-42 1531 y Fy(\(13\))27 b Fk(execute)17 b Fr([)-6 b([)15 b Fk(\\return")g(\\;")f Fr(])-6 b(])14 b Fk(=)i(escap)q(e)h(with)f(a)f(p)o(ro)q(cedure-return)h(.)-42 1596 y Fy(\(14\))27 b Fk(execute)17 b Fr([)-6 b([)15 b Fp(I)259 1603 y Fy(1)278 1596 y Fk(:Identi\014er)h(\\.")j Fp(I)569 1603 y Fy(2)588 1596 y Fk(:Identi\014er)d(\\;")e Fr(])-6 b(])15 b Fk(=)140 1653 y(give)g(the)h(task-agent)h(b)q(ound)g(to)f(the)g(tok)o(en)g (of)f Fp(I)970 1660 y Fy(1)1004 1653 y Fk(then)p 146 1839 1 170 v 171 1709 a(send)i(a)e(message)g([to)h(the)g(given)f(task-agent])i ([containing)g(entry)f(of)e(the)j(tok)o(en)e(of)g Fp(I)1613 1716 y Fy(2)1632 1709 y Fk(])171 1766 y(and)h(then)171 1822 y(receive)g(a)f(message)g([from)e(the)k(given)e(task-agent])i([containing)f (the)h(done-signal])f(.)-42 1898 y Fr(The)j(primitiv)o(e)d(action)i Fk(send)i Fp(Y)9 b Fr(,)19 b(where)g Fp(Y)27 b Fr(yields)18 b(a)g Fp(sort)23 b Fr(of)18 b(message,)g(initiates)f(the)i(transmission)d(of) -42 1960 y(a)21 b(message.)37 b(The)21 b(usual)g(form)e(of)i Fp(Y)30 b Fr(is)20 b Fk(a)15 b(message)g([to)h Fp(Y)1033 1967 y Fy(1)1052 1960 y Fk(])f([containing)i Fp(Y)1339 1967 y Fy(2)1358 1960 y Fk(])p Fr(,)23 b(where)e Fp(Y)1578 1967 y Fy(1)1619 1960 y Fr(and)g Fp(Y)1747 1967 y Fy(2)1788 1960 y Fr(are)-42 2022 y(individuals.)35 b(The)20 b(sort)g(yielded)g(b)o(y)h Fp(Y)28 b Fr(is)20 b(implicitly)e(restricted)h(to)h(messages)f(from)f(the)j (p)q(erforming)-42 2084 y(agen)o(t,)15 b(with)f(the)h(next)h(lo)q(cal)e (serial)g(n)o(um)o(b)q(er,)g(and)i(this)e(should)h(determine)g(an)g (individual)f(message.)29 2147 y(The)k(action)f Fk(receive)i Fp(Y)26 b Fr(w)o(aits)17 b(inde\014nitely)g(for)h(a)g(message)e(of)i(the)g (sort)f(sp)q(eci\014ed)i(b)o(y)f Fp(Y)26 b Fr(to)18 b(arriv)o(e,)-42 2209 y(remo)o(v)o(es)c(it)g(from)g(the)h(bu\013er,)g(and)g(giv)o(es)g(it.)29 2265 y(The)i(notation)f(for)g(en)o(tries)g(and)i(signals)d(that)i(are)f(con)o (tained)h(in)g(the)g(messages)e(is)i(sp)q(eci\014ed)h(in)e(Sec-)-42 2322 y(tion)f(A.1.)-42 2401 y Fy(\(15\))27 b Fk(execute)17 b Fr([)-6 b([)15 b Fk(\\accept")h Fp(I)7 b Fk(:Identi\014er)15 b(\\end")h(\\;")e Fr(])-6 b(])15 b Fk(=)140 2458 y(receive)h(a)f(message)g ([from)e(any)j(task-agent])h([containing)f(entry)g(of)f(the)h(tok)o(en)g(of)f Fp(I)7 b Fk(])15 b(then)140 2514 y(send)i(a)e(message)g([to)h(the)g(sender)g (of)f(the)h(given)g(message])f([containing)h(the)h(done-signal])f(.)-42 2580 y Fy(\(16\))27 b Fk(execute)17 b Fr([)-6 b([)15 b Fk(\\accept")h Fp(I)7 b Fk(:Identi\014er)15 b(\\do")g Fp(S)5 b Fk(:Statement)989 2563 y Ff(+)1035 2580 y Fk(\\end")15 b(\\;")g Fr(])-6 b(])14 b Fk(=)140 2636 y(receive)i(a)f(message)g([from)e(any)j(task-agent])h ([containing)f(entry)g(of)f(the)h(tok)o(en)g(of)f Fp(I)7 b Fk(])15 b(then)p 146 2766 1 113 v 171 2693 a(execute)i Fp(S)j Fk(and)c(then)171 2749 y(send)h(a)e(message)g([to)h(the)g(sender)g(of)f(the)i (given)e(message])g([containing)h(the)h(done-signal])f(.)p eop %%Page: 26 29 26 28 bop 8 -137 a Fr(26)856 b Fn(CHAPTER)15 b(3.)35 b(AN)15 b(ILLUSTRA)l(TIVE)j(EXAMPLE)8 12 y Fs(3.2.2.2)52 b(Executing)17 b(Blo)q(c)o(ks)54 98 y Fi(\017)22 b Fk(execute)p 259 98 14 2 v 49 w(::)d(Blo)q(ck)d Fi(!)f Fk(action)190 155 y([escaping)i(with)f(an)f (escap)q(e-reason)p 815 163 5 40 v 41 w(diverging)p 1025 163 V 40 w(sto)o(ring)p 1192 163 V 39 w(communicating])190 211 y([using)h(current)g(bindings)p 640 219 V 42 w(current)g(sto)o(rage)p 965 219 V 39 w(current)g(bu\013er])f(.)8 294 y Fy(\(1\))45 b Fk(execute)17 b Fi(h)8 b Fk(\\b)q(egin")15 b Fp(S)5 b Fk(:Statement)683 277 y Ff(+)729 294 y Fk(\\end")j Fi(i)15 b Fk(=)g(execute)i Fp(S)j Fk(.)8 359 y Fy(\(2\))45 b Fk(execute)17 b Fi(h)8 b Fp(D)t Fk(:Decla)o(ration)549 343 y Ff(+)593 359 y Fk(\\b)q(egin")15 b Fp(S)5 b Fk(:Statement)994 343 y Ff(+)1040 359 y Fk(\\end")j Fi(i)15 b Fk(=)190 416 y(furthermo)o(re)f(elab)q(o)o(rate)h Fp(D)20 b Fk(hence)p 196 602 1 170 v 227 489 1 57 v 253 472 a(synchronize)c Fp(D)k Fk(and)15 b(then)i(execute)g Fp(S)j Fk(and)c(then)h(relinquish)g Fp(D)221 529 y Fk(trap)p 227 602 V 253 585 a(relinquish)f Fp(D)k Fk(and)c(then)h(escap)q(e)g(with)f(the)g (given)f(escap)q(e-reason)i(.)8 660 y Fr(The)d(action)f Fk(furthermo)o(re)g Fp(A)h Fr(pro)q(duces)g(the)g(same)f(bindings)g(as)h Fp(A)p Fr(,)f(together)g(with)h(an)o(y)f(receiv)o(ed)h(bindings)8 722 y(that)i Fp(A)g Fr(do)q(esn't)g(o)o(v)o(erride.)21 b(In)c(other)f(w)o (ords,)f(it)h(o)o(v)o(erla)o(ys)e(the)i(receiv)o(ed)g(bindings)g(with)g (those)g(pro)q(duced)8 785 y(b)o(y)f Fp(A)p Fr(.)79 847 y(The)j(com)o (bination)d Fp(A)470 854 y Fy(1)507 847 y Fk(hence)k Fp(A)666 854 y Fy(2)703 847 y Fr(lets)e(the)h(bindings)g(pro)q(duced)g(b)o(y)g Fp(A)1355 854 y Fy(1)1392 847 y Fr(b)q(e)g(receiv)o(ed)g(b)o(y)g Fp(A)1733 854 y Fy(2)1752 847 y Fr(,)g(whic)o(h)8 909 y(limits)11 b(their)i(scop)q(e|unless)i(they)e(get)g(repro)q(duced)i(b)o(y)e Fp(A)1030 916 y Fy(2)1049 909 y Fr(.)20 b(It)13 b(is)g(analogous)f(to)h (functional)g(comp)q(osition.)8 971 y(The)f(comp)q(ound)g(com)o(bination)d Fk(furthermo)o(re)h Fp(A)838 978 y Fy(1)870 971 y Fk(hence)j Fp(A)1023 978 y Fy(2)1054 971 y Fr(\(recall)d(that)h(pre\014xes)i(ha)o(v)o(e) e(higher)g(precedence)8 1033 y(than)18 b(in\014xes!\))29 b(corresp)q(onds)19 b(to)e(ordinary)g(blo)q(c)o(k)h(structure,)h(with)e Fp(A)1274 1040 y Fy(1)1312 1033 y Fr(b)q(eing)h(the)h(blo)q(c)o(k)f(head)g(and)h Fp(A)1879 1040 y Fy(2)8 1095 y Fr(the)d(blo)q(c)o(k)f(b)q(o)q(dy:)21 b(nonlo)q(cal)15 b(bindings,)g(receiv)o(ed)h(b)o(y)f(the)h(com)o(bination,)c (are)k(also)e(receiv)o(ed)i(b)o(y)f Fp(A)1744 1102 y Fy(2)1779 1095 y Fr(unless)8 1157 y(they)h(are)e(o)o(v)o(erridden)h(b)o(y)g(the)h(lo)q (cal)e(bindings)h(pro)q(duced)h(b)o(y)f Fp(A)1136 1164 y Fy(1)1156 1157 y Fr(.)79 1219 y(The)g(use)h(of)f Fk(synchronize)h Fp(D)k Fr(here)15 b(is)g(concerned)h(with)f(task)f(initialization,)e(considered)k (later.)79 1281 y(Whereas)22 b(bindings)g(pro)q(duced)i(b)o(y)e(declarations) f(automatically)e(disapp)q(ear)j(at)g(the)h(end)g(of)f(their)8 1343 y(scop)q(e,)13 b(lo)q(cally-declared)e(v)m(ariables)f(are)i(not)f (thereb)o(y)h(automatical)o(ly)d Fp(r)n(elinquishe)n(d)c Fr(;)10 b(it)h(has)h(to)f(b)q(e)h(sp)q(eci\014ed)8 1406 y(explicitly)l(.)18 b(Notice)11 b(that)h(the)g(trap)f(is)g(needed)j(to)d(ensure)i(that)e(exits)g (and)h(pro)q(cedure)h(returns)f(do)g(not)f(ev)m(ade)8 1468 y Fk(relinquish)17 b Fp(D)t Fr(.)8 1592 y Fx(3.2.3)56 b(Declarations)8 1677 y Fs(in)o(tro)q(duces:)c Fk(elab)q(o)o(rate)p 504 1677 14 2 v 47 w(,)15 b(relinquish)p 758 1677 V 48 w(,)g(synchronize)p 1051 1677 V 48 w(,)313 1734 y(the)i(mo)q(de)d(of)p 562 1734 V 47 w(,)h(the)h(mo)q(des)f(of)p 885 1734 V 46 w(,)g(actualize)p 1125 1734 V 47 w(.)8 1869 y Fs(3.2.3.1)52 b(Elab)q(orating)18 b(Declarations)54 1955 y Fi(\017)k Fk(elab)q(o)o(rate)p 290 1955 V 47 w(::)d(Decla)o(ration)580 1938 y Ff(*)615 1955 y Fi(!)c Fk(action)190 2011 y([binding)p 359 2020 5 40 v 41 w(diverging)p 570 2020 V 39 w(sto)o(ring)p 737 2020 V 40 w(communicating])190 2068 y([using)h(current)g(bindings)p 640 2076 V 42 w(current)g(sto)o(rage)p 965 2076 V 39 w(current)g(bu\013er])f(.)8 2150 y Fy(\(1\))45 b Fk(elab)q(o)o(rate)15 b Fi(h)8 b Fp(D)347 2157 y Fy(1)367 2150 y Fk(:Decla)o(ration)14 b Fp(D)644 2157 y Fy(2)664 2150 y Fk(:Decla)o(ration)893 2134 y Ff(+)929 2150 y Fi(i)h Fk(=)h(elab)q(o)o (rate)f Fp(D)1235 2157 y Fy(1)1270 2150 y Fk(b)q(efo)o(re)g(elab)q(o)o(rate)h Fp(D)1624 2157 y Fy(2)1659 2150 y Fk(.)8 2235 y Fr(The)i(action)e Fp(A)276 2242 y Fy(1)313 2235 y Fk(b)q(efo)o(re)i Fp(A)481 2242 y Fy(2)517 2235 y Fr(represen)o(ts)g(sequencing)g(of)f(declarations.)25 b(Lik)o(e)17 b Fk(furthermo)o(re)f Fp(A)1670 2242 y Fy(1)1707 2235 y Fk(hence)j Fp(A)1866 2242 y Fy(2)1885 2235 y Fr(,)8 2297 y(it)f(lets)h Fp(A)179 2304 y Fy(2)217 2297 y Fr(receiv)o(e)g(bindings)f (from)f Fp(A)700 2304 y Fy(1)720 2297 y Fr(,)i(together)f(with)h(an)o(y)f (bindings)h(receiv)o(ed)g(b)o(y)g(the)f(whole)h(action)8 2359 y(that)e(are)g(not)g(thereb)o(y)h(o)o(v)o(erridden.)26 b(The)18 b(com)o(bination)d(pro)q(duces)j(all)f(the)g(bindings)h(pro)q(duced)h(b)o(y)e Fp(A)1866 2366 y Fy(2)1885 2359 y Fr(,)8 2421 y(as)i(w)o(ell)e(as)i(an)o(y)f (pro)q(duced)i(b)o(y)f Fp(A)615 2428 y Fy(1)653 2421 y Fr(that)f(are)h(not)f (o)o(v)o(erridden)g(b)o(y)h Fp(A)1247 2428 y Fy(2)1266 2421 y Fr(.)31 b(Th)o(us)19 b Fp(A)1463 2428 y Fy(2)1501 2421 y Fr(ma)o(y)e(rebind)i(a)f(tok)o(en)8 2484 y(that)d(w)o(as)f(b)q(ound,)i(or)e (hidden,)i(b)o(y)f Fp(A)661 2491 y Fy(1)681 2484 y Fr(.)20 b(Note)14 b(that)h(the)g(bindings)g(receiv)o(ed)g(b)o(y)h(the)f(com)o (bination)e(are)h(not)8 2546 y(repro)q(duced)j(at)d(all,)g(unless)h(one)h(of) e Fp(A)679 2553 y Fy(1)699 2546 y Fr(,)h Fp(A)761 2553 y Fy(2)795 2546 y Fr(explicitly)f(repro)q(duces)i(them.)79 2602 y(The)k(use)f(of)g(the)h (com)o(binator)d Fp(A)675 2609 y Fy(1)714 2602 y Fk(b)q(efo)o(re)i Fp(A)883 2609 y Fy(2)922 2602 y Fr(in)g(the)h(seman)o(tics)d(of)i (declaration)f(sequences)j(allo)o(ws)8 2659 y(later)16 b(declarations)g(to)h (refer)f(to)h(the)g(bindings)g(pro)q(duced)h(b)o(y)f(earlier)f (declarations|but)h(not)f(the)h(other)8 2715 y(w)o(a)o(y)d(round.)21 b(Mutually-recursiv)o(e)13 b(declarations)h(are)h(not)g(considered)h(here.)8 2789 y Fy(\(2\))45 b Fk(elab)q(o)o(rate)15 b Fi(h)g(i)g Fk(=)h(complete)f(.)p eop %%Page: 27 30 27 29 bop -42 -137 a Fn(3.2.)35 b(SEMANTIC)15 b(FUNCTIONS)1201 b Fr(27)-42 12 y Fy(\(3\))45 b Fk(elab)q(o)o(rate)16 b Fr([)-6 b([)14 b Fp(I)290 19 y Fy(1)309 12 y Fk(:Identi\014er)i(\\:")j(\\constant")e Fp(I)823 19 y Fy(2)842 12 y Fk(:Identi\014er)1021 -4 y Ff(?)1056 12 y Fk(\\:=")e Fp(E)5 b Fk(:Exp)o(ression)16 b(\\;")e Fr(])-6 b(])14 b Fk(=)140 69 y(evaluate)i Fp(E)21 b Fk(then)16 b(bind)h(the)f(tok)o (en)g(of)f Fp(I)822 76 y Fy(1)856 69 y Fk(to)h(the)g(given)f(value)h(.)-42 150 y Fr(The)h(declarativ)o(e)e(action)h Fk(bind)h Fp(T)22 b Fk(to)17 b Fp(Y)25 b Fr(pro)q(duces)17 b(the)f(binding)h(of)f(the)g(tok)o (en)g Fp(T)22 b Fr(to)16 b(the)g(bindable)h(data)-42 212 y(yielded)f(b)o(y)f Fp(Y)9 b Fr(.)19 b(It)d(do)q(es)f Fp(not)k Fr(repro)q(duce)e(an)o(y)d(of)h (the)g(receiv)o(ed)h(bindings!)29 268 y(Somewhat)h(con)o(trary)h(to)g(the)g (explanation)g(of)g Fj(Ad)o(a)h Fr(constan)o(ts)e(in)i(the)f(Reference)i(Man) o(ual,)e(w)o(e)h(let)-42 325 y(constan)o(ts)14 b(b)q(e)g(b)q(ound)h(directly) f(to)f(v)m(alues,)h(rather)f(than)h(to)g(sp)q(ecial)f(`v)m(ariables')g(that)g (cannot)h(b)q(e)h(assigned)-42 381 y(new)h(v)m(alues.)k(Th)o(us)15 b(our)g(constan)o(ts)f(resem)o(ble)g Fp(name)n(d)i(numb)n(ers)j Fr(in)c Fj(Ad)o(a)p Fr(.)-42 457 y Fy(\(4\))45 b Fk(elab)q(o)o(rate)16 b Fr([)-6 b([)14 b Fp(I)290 464 y Fy(1)309 457 y Fk(:Identi\014er)i(\\:")j Fp(I)600 464 y Fy(2)620 457 y Fk(:Identi\014er)d(\\;")e Fr(])-6 b(])14 b Fk(=)140 513 y(allo)q(cate)i(a)f(va)o(riable)f(fo)o(r)g(the)i(t)o (yp)q(e)h(b)q(ound)g(to)e(the)h(tok)o(en)g(of)f Fp(I)1187 520 y Fy(2)140 570 y Fk(then)i(bind)g(the)f(tok)o(en)g(of)e Fp(I)599 577 y Fy(1)634 570 y Fk(to)h(the)h(given)g(va)o(riable)e(.)-42 637 y Fr(The)19 b(action)f Fk(allo)q(cate)h Fp(d)24 b Fk(fo)o(r)17 b Fp(Y)27 b Fr(is)19 b Fp(ad)h(ho)n(c)s Fr(,)e(sp)q(eci\014ed)i(in)f(Section) f(A.1.)30 b(As)19 b(w)o(e)f(only)g(deal)h(with)f(simple)-42 694 y(v)m(ariables)g(in)g(this)g(tutorial,)e Fk(allo)q(cate)j(a)f(va)o (riable)f(fo)o(r)g Fp(Y)27 b Fr(merely)17 b(c)o(ho)q(oses,)h(reserv)o(es,)g (and)h(giv)o(es)e(a)h(single)-42 750 y(storage)c(cell.)-42 826 y Fy(\(5\))45 b Fk(elab)q(o)o(rate)16 b Fr([)-6 b([)14 b Fp(I)290 833 y Fy(1)309 826 y Fk(:Identi\014er)i(\\:")j Fp(I)600 833 y Fy(2)620 826 y Fk(:Identi\014er)d(\\:=")e Fp(E)5 b Fk(:Exp)o(ression)16 b(\\;")f Fr(])-6 b(])14 b Fk(=)p 146 955 1 113 v 171 882 a(allo)q(cate)i(a)f (va)o(riable)f(fo)o(r)g(the)j(t)o(yp)q(e)f(b)q(ound)h(to)e(the)h(tok)o(en)g (of)f Fp(I)1218 889 y Fy(2)171 938 y Fk(and)h(evaluate)g Fp(E)140 995 y Fk(then)p 146 1125 V 171 1051 a(bind)h(the)f(tok)o(en)g(of)f Fp(I)532 1058 y Fy(1)566 1051 y Fk(to)h(the)g(given)f(va)o(riable#1)f(and)171 1108 y(assign)i(the)h(given)e(value#2)g(to)g(the)i(given)e(va)o(riable#1)f(.) -42 1175 y Fr(The)g(basic)g(and)g(functional)e(com)o(binators,)g(suc)o(h)i (as)f Fp(A)919 1182 y Fy(1)952 1175 y Fk(and)h Fp(A)1068 1182 y Fy(2)1088 1175 y Fr(,)f(all)g(pass)g(the)h Fp(r)n(e)n(c)n(eive)n(d)j Fr(bindings)d(to)f(their)-42 1232 y(subactions)i(without)f(further)g (ado|analogously)f(to)i(the)f(w)o(a)o(y)g Fp(A)1123 1239 y Fy(1)1157 1232 y Fk(and)i Fp(A)1275 1239 y Fy(2)1309 1232 y Fr(passes)f(all)f(the)g(giv)o(en)h(data)f(to)-42 1288 y(b)q(oth)f Fp(A)97 1295 y Fy(1)128 1288 y Fr(and)g Fp(A)248 1295 y Fy(2)267 1288 y Fr(.)19 b(They)12 b(are)g(similarly)d(un)o(biased)j(when)h(it)e(comes) g(to)h(com)o(bining)e(the)i(bindings)g(pro)q(duced)-42 1345 y(b)o(y)17 b(their)e(subactions:)21 b(they)16 b(pro)q(duce)h(the)g Fp(disjoint)f(union)j Fr(of)d(the)g(bindings,)g(pro)o(viding)f(this)h(is)f (de\014ned,)-42 1401 y(otherwise)g(they)g(simply)f(fail.)-42 1477 y Fy(\(6\))45 b Fk(elab)q(o)o(rate)16 b Fr([)-6 b([)14 b Fk(\\p)o(ro)q(cedure")h Fp(I)7 b Fk(:Identi\014er)16 b(\\is")f Fp(B)5 b Fk(:Blo)q(ck)15 b(\\;")f Fr(])-6 b(])15 b Fk(=)140 1533 y(bind)i(the)f(tok)o(en)g(of)f Fp(I)22 b Fk(to)231 1589 y(pa)o(rameterless)15 b(p)o(ro)q(cedure)h(of)f(the)h(closure)g(of)f (abstraction)h(of)p 237 1719 V 262 1646 a(execute)h Fp(B)262 1702 y Fk(trap)f(check)g(there)g(is)g(given)f(a)g(p)o(ro)q(cedure-return)i(.) -42 1777 y Fr(When)f Fk(current)g(bindings)h Fr(ev)m(aluates)e(to)g Fp(b)s Fr(,)f Fk(closure)i Fp(Y)895 1784 y Fy(1)929 1777 y Fr(yields)f Fk(abstraction)h(of)f(\(p)o(ro)q(duce)h Fp(b)i Fk(hence)f Fp(A)p Fk(\))p Fr(.)29 1839 y(The)j(use)g(of)f Fk(closure)h Fr(ab)q(o)o(v)o(e)g(ensures)g(static)f(bindings:)28 b(the)20 b(execution)g(of)f(the)h(blo)q(c)o(k)g Fp(B)k Fr(when)c(the)-42 1901 y(function)f(is)e(called)h(receiv)o(es)g(the)h(same)e(bindings)h(as)g (the)g(declaration.)28 b(These)19 b(bindings,)f(ho)o(w)o(ev)o(er,)g(do)-42 1963 y(not)12 b(include)h(that)f(for)g Fp(I)19 b Fr(itself,)11 b(so)h Fp(self-r)n(efer)n(ential)5 b Fr(,)11 b(or)g Fp(r)n(e)n(cursive)s Fr(,)i(calls)e(of)h(the)h(function)f(are)g(not)g(p)q(ossible.)-42 2025 y(In)17 b(fact)f(it)g(is)f(easy)h(to)g(allo)o(w)e(self-reference:)23 b(just)16 b(c)o(hange)g(`)p Fk(bind)p Fr(')h(to)f(`)p Fk(recursively)g(bind)p Fr(')h(in)f(the)g(seman)o(tics)-42 2087 y(equations)k(for)g Fk(elab)q(o)o(rate)h Fp(D)t Fr(.)37 b(But)21 b(it)e(is)i(not)f(quite)g(so)g (straigh)o(tforw)o(ard)e(to)i(allo)o(w)f Fp(mutual)26 b Fr(reference.)-42 2149 y([Mos92)o(,)15 b(App)q(endix)h(A])f(sho)o(ws)f(ho)o(w)h(this)g(can)g(b) q(e)h(done,)f(using)g Fp(indir)n(e)n(ct)k Fr(bindings)c(\(directly!\).)29 2206 y(Notice)f(that)f(an)h(enaction)g(of)g(an)g(abstraction)e(b)q(ound)j(to) f(a)g(pro)q(cedure)h(iden)o(ti\014er)f(can)g(only)f(complete)-42 2262 y(when)k(the)f(execution)g(of)f(the)h(blo)q(c)o(k)g(escap)q(es,)h (giving)d(a)i(return.)22 b(If)16 b(the)g(execution)g(of)g(the)g(blo)q(c)o(k)g (escap)q(es)-42 2318 y(for)f(an)o(y)g(other)g(reason,)f(or)h(completes,)e (the)j(enaction)e(fails.)-42 2394 y Fy(\(7\))45 b Fk(elab)q(o)o(rate)16 b Fr([)-6 b([)14 b Fk(\\p)o(ro)q(cedure")h Fp(I)7 b Fk(:Identi\014er)16 b(\\\(")e Fp(F)6 b Fk(:F)o(o)o(rmals)13 b(\\\)")h(\\is")h Fp(B)5 b Fk(:Blo)q(ck)15 b(\\;")f Fr(])-6 b(])15 b Fk(=)140 2450 y(bind)i(the)f(tok) o(en)g(of)f Fp(I)22 b Fk(to)231 2507 y(pa)o(rameterized)15 b(mo)q(dalized)f(\(the)i(mo)q(des)g(of)e Fp(F)6 b Fk(,)322 2563 y(p)o(ro)q(cedure)16 b(of)f(the)h(closure)g(of)e(abstraction)j(of)p 328 2806 1 226 v 353 2620 a(furthermo)o(re)d(actualize)i Fp(F)21 b Fk(thence)p 359 2806 1 170 v 390 2750 1 113 v 416 2676 a(execute)c Fp(B)416 2733 y Fk(trap)e(check)i(there)f(is)f(given)g(a)g(p)o(ro)q (cedure-return)385 2789 y(and)g(then)i(cop)o(y-back)f(the)h(given)e(map)g ([tok)o(en)h(to)f(va)o(riable])g(\))f(.)p eop %%Page: 28 31 28 30 bop 8 -137 a Fr(28)856 b Fn(CHAPTER)15 b(3.)35 b(AN)15 b(ILLUSTRA)l(TIVE)j(EXAMPLE)8 12 y Fr(The)e(p)q(erformance)f(of)g Fk(actualize)h Fp(F)22 b Fr(ab)q(o)o(v)o(e)15 b(not)g(only)h Fp(pr)n(o)n(duc)n(es)j Fr(bindings)c(for)g(the)h(formal)d(parameters,)h(it)8 74 y(also)d Fp(gives)k Fr(a)c(map)g(corresp)q(onding)h(to)f(the)h(bindings)g (for)f(cop)o(y-mo)q(de)g(parameters.)17 b(This)11 b(map)g(is)h(exploited)8 136 y(to)18 b(cop)o(y)g(bac)o(k)h(the)f(\014nal)h(v)m(alues)f(of)g(the)h(lo)q (cal)e(formal)f(parameter)h(v)m(ariables)h(to)g(the)g(actual)g(parameter)8 199 y(v)m(ariables.)33 b(The)21 b(action)e Fk(cop)o(y-back)h Fp(Y)29 b Fr(is)19 b Fp(ad)i(ho)n(c)s Fr(,)f(sp)q(eci\014ed)h(in)f(Section)g (A.1.)33 b(The)20 b(com)o(bination)e Fp(A)1879 206 y Fy(1)8 261 y Fk(thence)f Fp(A)181 268 y Fy(2)216 261 y Fr(passes)e(transien)o(ts)f Fp(as)i(wel)r(l)g(as)j Fr(bindings)c(from)e Fp(A)1097 268 y Fy(1)1132 261 y Fr(to)i Fp(A)1222 268 y Fy(2)1241 261 y Fr(.)79 317 y(The)20 b(op)q(eration)f Fk(mo)q(dalized)g(\()p Fp(m)s Fk(,)i Fp(p)s Fk(\))f Fr(attac)o(hes)f(the)g(mo)q(des)g Fp(m)24 b Fr(to)19 b(a)g(pro)q(cedure)i Fp(p)s Fr(,)g(so)e(that)g Fk(fo)o(rmal-)8 374 y(mo)q(des)e(of)f Fp(p)k Fr(can)d(obtain)f(them)f(when)j(pro)q(cedure)f (call)f(statemen)o(ts)e(are)j(executed.)25 b(This)16 b(is)g(sp)q(eci\014ed)i (in)8 430 y(Section)d(A.1.)8 543 y Fy(\(8\))45 b Fk(elab)q(o)o(rate)15 b Fr([)-6 b([)15 b Fk(\\task")g Fp(I)7 b Fk(:Identi\014er)16 b(\\is")f Fp(E)5 b Fk(:Entry)921 527 y Ff(+)966 543 y Fk(\\end")16 b(\\;")e Fr(])-6 b(])14 b Fk(=)190 600 y(o\013er)g(a)h(contract)h([to)g(any)f (task-agent])i([containing)f(abstraction)h(of)e(the)h(initial)f(task-action]) 190 656 y(and)h(then)p 196 786 1 113 v 221 713 a(receive)g(a)f(message)g ([containing)h(a)f(task-agent])i(then)221 769 y(bind)g(the)f(tok)o(en)g(of)f Fp(I)22 b Fk(to)15 b(the)h(task)g(yielded)g(b)o(y)g(the)g(contents)h(of)e (the)i(given)e(message)g(.)8 878 y Fr(The)i(primitiv)o(e)c(action)i Fk(o\013er)g Fp(Y)9 b Fr(,)16 b(where)g Fp(Y)25 b Fr(yields)16 b(a)f(sort)g(of)h(con)o(tract,)f(initiates)f(the)j(arrangemen)o(t)d(of)h(a)8 940 y(con)o(tract)d(with)h(another,)f(p)q(erhaps)i(only)f(partially)e(sp)q (eci\014ed,)j(agen)o(t.)k(The)c(usual)e(form)g(of)g Fp(Y)22 b Fr(is)12 b Fk(a)h(contract)8 1003 y([to)18 b(an)f(agent])h([containing)g (abstraction)h(of)e Fp(A)p Fk(])p Fr(,)g(where)g Fp(A)g Fr(is)g(the)g(action) f(to)h(b)q(e)h(p)q(erformed)e(according)h(to)8 1065 y(the)f(con)o(tract.)79 1121 y(The)f(action)g Fk(initial)g(task-action)i Fr(is)d(de\014ned)j(in)e (Section)g(A.1.)8 1234 y Fy(\(9\))45 b Fk(elab)q(o)o(rate)15 b Fr([)-6 b([)15 b Fk(\\task")g(\\b)q(o)q(dy")h Fp(I)7 b Fk(:Identi\014er)16 b(\\is")f Fp(B)5 b Fk(:Blo)q(ck)15 b(\\;")f Fr(])-6 b(])14 b Fk(=)190 1291 y(send)j(a)e(message)g([to)g(the)i(task-agent)g(b)q(ound)g (to)e(the)h(tok)o(en)g(of)f Fp(I)7 b Fk(])281 1347 y([containing)16 b(task)g(of)f(the)h(closure)g(of)f(abstraction)h(of)f(execute)i Fp(B)5 b Fk(])15 b(.)8 1456 y Fr(Executions)23 b(of)g(task)f(blo)q(c)o(ks)h (receiv)o(e)g(all)e(the)j(bindings)e(that)h(w)o(ere)f(curren)o(t)h(where)h (their)e(b)q(o)q(dy)i(w)o(as)8 1519 y(declared.)35 b(These)20 b(ma)o(y)e(include)i(bindings)g(to)f(other)h(tasks:)29 b(a)19 b(system)g(of)g(comm)o(unicating)e(tasks)i(can)8 1581 y(b)q(e)14 b(set)f(up)h(b)o(y)g(\014rst)f(declaring)f(all)h(the)g(heads,)h(then)g(all)e (the)h(b)q(o)q(dies.)20 b(They)14 b(ma)o(y)d(also)i(include)g(bindings)h(to)8 1643 y(v)m(ariables;)e(but)e(attempts)f(to)h(assign)g(to)h(these)g(v)m (ariables,)f(or)h(to)f(insp)q(ect)h(their)f(v)m(alues,)i(alw)o(a)o(ys)d (fail,)h(b)q(ecause)8 1705 y(the)16 b(cells)f(referred)h(to)f(are)g(not)g(lo) q(cal)g(to)g(the)g(agen)o(t)g(p)q(erforming)f(the)i(action.)k(It)15 b(is)g(a)h(bit)f(complicated)f(to)8 1767 y(describ)q(e)g(the)g(action)e (seman)o(tics)g(of)h(distributed)g(tasks)f(that)h(ha)o(v)o(e)g(access)g(to)g (shared)g(v)m(ariables|the)h(task)8 1829 y(that)k(declares)f(a)h(v)m(ariable) f(has)h(to)g(act)f(as)h(a)f(serv)o(er)h(for)f(assignmen)o(ts)f(and)i(insp)q (ections|so)g(w)o(e)g(let)f(our)8 1891 y(illustrativ)o(e)c(language)h (deviate)h(from)f Fj(Ad)o(a)h Fr(in)g(this)g(resp)q(ect.)8 2047 y Fs(3.2.3.2)52 b(Relinquishing)15 b(V)l(ariable)h(Declarations)54 2139 y Fi(\017)22 b Fk(relinquish)p 297 2139 14 2 v 49 w(::)d(Decla)o(ration) 587 2123 y Ff(+)631 2139 y Fi(!)d Fk(action)190 2196 y([completing)p 428 2204 5 40 v 40 w(sto)o(ring])190 2252 y([using)g(current)g(bindings)p 640 2260 V 42 w(current)g(sto)o(rage])e(.)8 2384 y Fr(Whereas)i(bindings)h (pro)q(duced)g(b)o(y)g(declarations)e(automatical)o(ly)e(disapp)q(ear)k(at)f (the)g(end)h(of)f(their)g(scop)q(e,)8 2440 y(lo)q(cally-declared)11 b(v)m(ariables)f(are)h(not)g(thereb)o(y)g(automatically)d Fp(r)n(elinquishe)n (d)d Fr(.)17 b(Here)11 b(w)o(e)g(in)o(tro)q(duce)h(an)f(extra)8 2497 y(seman)o(tic)j(function)h(on)g(declarations)f(for)g(this)h(purp)q(ose.) 8 2648 y Fy(\(1\))45 b Fk(relinquish)17 b Fi(h)8 b Fp(D)354 2655 y Fy(1)373 2648 y Fk(:Decla)o(ration)15 b Fp(D)651 2655 y Fy(2)671 2648 y Fk(:Decla)o(ration)900 2631 y Ff(+)936 2648 y Fi(i)g Fk(=)g(relinquish)i Fp(D)1248 2655 y Fy(1)1283 2648 y Fk(and)f(relinquish)h Fp(D)1596 2655 y Fy(2)1631 2648 y Fk(.)8 2733 y Fy(\(2\))45 b Fk(relinquish)17 b Fr([)-6 b([)14 b Fp(I)7 b Fk(:Identi\014er)16 b(\\:")j Fp(I)7 b Fk(:Identi\014er)16 b Fp(X)7 b Fk(:)p Fi(h)h Fk(\\:=")13 b(Exp)o(ression)8 b Fi(i)1256 2716 y Ff(?)1291 2733 y Fk(\\;")14 b Fr(])-6 b(])14 b Fk(=)190 2789 y(disp)q(ose)j(of)e(the)h(va)o(riable)f(b)q(ound)i(to)e(the)h(tok)o(en)g (of)f Fp(I)22 b Fk(.)p eop %%Page: 29 32 29 31 bop -42 -137 a Fn(3.2.)35 b(SEMANTIC)15 b(FUNCTIONS)1201 b Fr(29)-42 12 y Fy(\(3\))45 b Fp(D)t Fk(:)21 b Fr([)-6 b([)14 b Fk(Identi\014er)i(\\:")k(\\constant")c(Identi\014er)804 -4 y Ff(?)839 12 y Fk(\\:=")f(Exp)o(ression)h(\\;")e Fr(])-6 b(])p 1286 21 5 40 v 121 69 a([)g([)14 b Fk(\\task")i(Identi\014er)g(\\is")f(Entry) 668 52 y Ff(+)713 69 y Fk(\\end")h(\\;")e Fr(])-6 b(])p 966 77 V 121 125 a([)g([)14 b Fk(\\function")i(Identi\014er)h Fi(h)8 b Fk(\\\(")13 b(F)o(o)o(rmals)g(\\\)")8 b Fi(i)909 109 y Ff(?)941 125 y Fk(\\return")16 b(Identi\014er)g(\\is")f(Blo)q(ck)h(\\;")e Fr(])-6 b(])p 1636 134 V 121 182 a([)g([)14 b Fk(\\p)o(ro)q(cedure")i (Identi\014er)g Fi(h)8 b Fk(\\\(")13 b(F)o(o)o(rmals)g(\\\)")8 b Fi(i)939 165 y Ff(?)972 182 y Fk(\\is")15 b(Blo)q(ck)g(\\;")g Fr(])-6 b(])p 1309 190 V 121 238 a([)g([)14 b Fk(\\task")i(\\b)q(o)q(dy")f (Identi\014er)i(\\is")e(Blo)q(ck)g(\\;")g Fr(])-6 b(])29 b Fi(\))49 312 y Fk(relinquish)17 b Fp(D)j Fk(=)15 b(complete)h(.)-42 500 y Fs(3.2.3.3)52 b(Sync)o(hronizing)16 b(T)l(ask)h(Declarations)4 589 y Fi(\017)22 b Fk(synchronize)p 285 589 14 2 v 48 w(::)e(Decla)o(ration) 576 572 y Ff(+)620 589 y Fi(!)15 b Fk(action)140 645 y([completing)p 378 653 5 40 v 40 w(diverging)p 588 653 V 39 w(communicating])140 701 y([using)i(current)f(bindings)p 590 710 V 41 w(current)g(bu\013er])f(.) -42 821 y Fr(The)j(action)f Fk(synchronize)i Fp(D)k Fr(is)17 b(used)h(to)f(dela)o(y)h(the)f(execution)h(of)g(the)f(statemen)o(ts)f(of)h(a) h(blo)q(c)o(k)f(un)o(til)g(all)-42 877 y(the)f(tasks)e(declared)i(in)f(the)g (blo)q(c)o(k)g(ha)o(v)o(e)g(b)q(een)h(started.)-42 1012 y Fy(\(1\))45 b Fk(synchronize)17 b Fi(h)8 b Fp(D)343 1019 y Fy(1)362 1012 y Fk(:Decla)o(ration)14 b Fp(D)639 1019 y Fy(2)659 1012 y Fk(:Decla)o(ration) 888 996 y Ff(+)925 1012 y Fi(i)g Fk(=)140 1069 y(synchronize)j Fp(D)408 1076 y Fy(1)443 1069 y Fk(and)f(synchronize)g Fp(D)794 1076 y Fy(2)829 1069 y Fk(.)-42 1144 y Fy(\(2\))45 b Fk(synchronize)17 b Fr([)-6 b([)14 b Fk(\\task")i(\\b)q(o)q(dy")f Fp(I)7 b Fk(:Identi\014er)16 b(\\is")f Fp(B)5 b Fk(:Blo)q(ck)15 b(\\;")f Fr(])-6 b(])14 b Fk(=)140 1200 y(receive)i(a)f(message)g([from)e(the)j(task-agent)h(b)q (ound)g(to)f(the)g(tok)o(en)g(of)f Fp(I)7 b Fk(])140 1257 y([containing)17 b(the)f(b)q(egin-signal])h(.)-42 1332 y Fy(\(3\))45 b Fp(D)t Fk(:)21 b Fr([)-6 b([)14 b Fk(Identi\014er)i(\\:")k(\\constant")c (Identi\014er)804 1316 y Ff(?)839 1332 y Fk(\\:=")f(Exp)o(ression)h(\\;")e Fr(])-6 b(])p 1286 1340 V 121 1388 a([)g([)14 b Fk(Identi\014er)i(\\:")k (Identi\014er)c Fi(h)8 b Fk(\\:=")14 b(Exp)o(ression)8 b Fi(i)955 1372 y Ff(?)989 1388 y Fk(\\;")14 b Fr(])-6 b(])p 1114 1397 V 121 1445 a([)g([)14 b Fk(\\task")i(Identi\014er)g(\\is")f(Entry)668 1428 y Ff(+)713 1445 y Fk(\\end")h(\\;")e Fr(])-6 b(])p 966 1453 V 121 1501 a([)g([)14 b Fk(\\function")i(Identi\014er)h Fi(h)8 b Fk(\\\(")13 b(F)o(o)o(rmals)g(\\\)")8 b Fi(i)909 1485 y Ff(?)941 1501 y Fk(\\return")16 b(Identi\014er)g(\\is")f(Blo)q(ck)h(\\;")e Fr(])-6 b(])p 1636 1510 V 121 1558 a([)g([)14 b Fk(\\p)o(ro)q(cedure")i (Identi\014er)g Fi(h)8 b Fk(\\\(")13 b(F)o(o)o(rmals)g(\\\)")8 b Fi(i)939 1541 y Ff(?)972 1558 y Fk(\\is")15 b(Blo)q(ck)g(\\;")g Fr(])-6 b(])29 b Fi(\))49 1631 y Fk(synchronize)17 b Fp(D)i Fk(=)d(complete)f(.)-42 1819 y Fs(3.2.3.4)52 b(Mo)q(des)4 1908 y Fi(\017)22 b Fk(the)17 b(mo)q(de)e(of)p 298 1908 14 2 v 46 w(::)k(Mo)q(de)479 1892 y Ff(?)514 1908 y Fi(!)c Fk(mo)q(de)g(.)-42 2015 y Fy(\(1\))45 b Fk(the)17 b(mo)q(de)e(of)f Fi(h)h(i)g Fk(=)h(the)g(constant-mo)q(de)h(.)-42 2090 y Fy(\(2\))45 b Fk(the)17 b(mo)q(de)e(of)f(\\in")h(=)h(the)g(constant-mo)q(de)h(.)-42 2165 y Fy(\(3\))45 b Fk(the)17 b(mo)q(de)e(of)f Fi(h)8 b Fk(\\in")15 b(\\out")8 b Fi(i)14 b Fk(=)i(the)g(cop)o(y-mo)q(de)f(.)-42 2241 y Fy(\(4\))45 b Fk(the)17 b(mo)q(de)e(of)f(\\out")i(=)f(the)h (reference-mo)q(de)g(.)-42 2445 y Fs(3.2.3.5)52 b(Mo)q(des)17 b(of)h(F)l(orm)n(al)d(P)o(aram)o(eters)4 2533 y Fi(\017)22 b Fk(the)17 b(mo)q(des)e(of)p 316 2533 V 46 w(::)20 b(F)o(o)o(rmals)13 b Fi(!)i Fk(mo)q(de)717 2517 y Ff(+)762 2533 y Fk(.)-42 2640 y Fy(\(1\))45 b Fk(the)17 b(mo)q(des)e(of)g Fr([)-6 b([)14 b Fp(I)365 2647 y Fy(1)384 2640 y Fk(:Identi\014er)i(\\:")k Fp(M)7 b Fk(:Mo)q(de)826 2624 y Ff(?)860 2640 y Fp(I)878 2647 y Fy(2)897 2640 y Fk(:Identi\014er)16 b Fr(])-6 b(])14 b Fk(=)i(the)g(mo)q (de)f(of)g Fp(M)22 b Fk(.)-42 2715 y Fy(\(2\))45 b Fk(the)17 b(mo)q(des)e(of)g Fi(h)8 b Fp(F)369 2722 y Fy(1)387 2715 y Fk(:F)o(o)o(rmal)13 b(\\;")h Fp(F)649 2722 y Fy(2)668 2715 y Fk(:F)o(o)o(rmals)8 b Fi(i)k Fk(=)k(\(the)g(mo)q(des)f(of)g Fp(F)1231 2722 y Fy(1)1250 2715 y Fk(,)g(the)h(mo)q(des)f(of)g Fp(F)1571 2722 y Fy(2)1591 2715 y Fk(\))f(.)p eop %%Page: 30 33 30 32 bop 8 -137 a Fr(30)856 b Fn(CHAPTER)15 b(3.)35 b(AN)15 b(ILLUSTRA)l(TIVE)j(EXAMPLE)8 12 y Fs(3.2.3.6)52 b(Actualizing)17 b(F)l(orm)n(al)e(P)o(aram)o(eters)54 98 y Fi(\017)22 b Fk(actualize)p 283 98 14 2 v 47 w(::)e(F)o(o)o(rmals)13 b Fi(!)i Fk(action)190 155 y([binding)p 359 163 5 40 v 41 w(giving)g(a)g(map)f([tok)o(en)i(to)g(va)o (riable])p 1003 163 V 39 w(sto)o(ring])190 211 y([using)g(given)g(a)o (rgument)609 195 y Ff(+)p 655 219 V 677 211 a Fk(current)g(bindings)p 1001 219 V 41 w(current)g(sto)o(rage])f(.)8 308 y Fr(The)20 b(map)e(of)h(tok)o(ens)g(to)g(v)m(ariables)g(giv)o(en)g(b)o(y)g (actualization)f(is)g(used)j(for)d(cop)o(ying-bac)o(k)h(the)h(v)m(alues)f(of) 8 365 y(cop)o(y-mo)q(de)f(parameters)e(on)i(pro)q(cedure)h(return.)28 b(Maps,)18 b(together)g(with)f(op)q(erations)g(for)h(creating)f(and)8 421 y(com)o(bining)d(them,)g(are)g(pro)o(vided)h(b)o(y)h(the)f(standard)g (data)f(notation)g(used)i(in)f(action)f(seman)o(tics.)8 531 y Fy(\(1\))45 b Fk(actualize)16 b Fr([)-6 b([)14 b Fp(I)332 538 y Fy(1)351 531 y Fk(:identi\014er)j(\\:")i Fp(M)7 b Fk(:\\in")764 514 y Ff(?)797 531 y Fp(I)815 538 y Fy(2)835 531 y Fk(:Identi\014er)16 b Fr(])-6 b(])14 b Fk(=)190 587 y(bind)j(the)f(tok)o(en)g(of)f Fp(I)551 594 y Fy(1)585 587 y Fk(to)g(the)h(value)g(yielded)g(b)o(y)g(the)g (\014rst)g(of)e(the)j(given)e(a)o(rgument)1614 571 y Ff(+)190 644 y Fk(and)h(give)f(the)h(empt)o(y-map.)8 709 y Fy(\(2\))45 b Fk(actualize)16 b Fr([)-6 b([)14 b Fp(I)332 716 y Fy(1)351 709 y Fk(:identi\014er)j(\\:")i(\\out")c Fp(I)764 716 y Fy(2)783 709 y Fk(:Identi\014er)h Fr(])-6 b(])15 b Fk(=)190 766 y(bind)i(the)f(tok)o (en)g(of)f Fp(I)551 773 y Fy(1)585 766 y Fk(to)g(the)h(va)o(riable)f(yielded) h(b)o(y)f(the)i(\014rst)f(of)e(the)j(given)e(a)o(rgument)1661 749 y Ff(+)190 822 y Fk(and)h(give)f(the)h(empt)o(y-map)f(.)8 888 y Fy(\(3\))45 b Fk(actualize)16 b Fr([)-6 b([)14 b Fp(I)332 895 y Fy(1)351 888 y Fk(:identi\014er)j(\\:")i(\\in")c(\\out")g Fp(I)859 895 y Fy(2)878 888 y Fk(:Identi\014er)h Fr(])-6 b(])15 b Fk(=)p 196 1018 1 113 v 221 944 a(give)g(the)h(va)o(riable)f(yielded)h(b)o (y)f(the)i(\014rst)f(of)e(the)j(given)e(a)o(rgument)1333 928 y Ff(+)221 1001 y Fk(and)h(allo)q(cate)g(a)f(va)o(riable)f(fo)o(r)g(the)i(t)o (yp)q(e)h(b)q(ound)g(to)e(the)h(tok)o(en)g(of)f Fp(I)1352 1008 y Fy(2)190 1057 y Fk(then)p 196 1244 1 170 v 221 1114 a(bind)i(the)f(tok)o (en)g(of)f Fp(I)582 1121 y Fy(1)616 1114 y Fk(to)g(the)i(given)e(va)o (riable#2)f(and)221 1170 y(give)h(map)g(of)g(the)h(tok)o(en)g(of)f Fp(I)724 1177 y Fy(1)758 1170 y Fk(to)g(the)h(given)g(va)o(riable#1)e(and)221 1227 y(assign)i(\(the)g(value)g(assigned)g(to)g(the)g(given)f(va)o (riable#1\))f(to)h(the)h(given)g(va)o(riable#2)e(.)8 1292 y Fy(\(4\))45 b Fk(actualize)16 b Fi(h)8 b Fp(F)336 1299 y Fy(1)354 1292 y Fk(:F)o(o)o(rmal)13 b(\\;")h Fp(F)616 1299 y Fy(2)635 1292 y Fk(:F)o(o)o(rmals)8 b Fi(i)k Fk(=)p 196 1422 1 113 v 221 1349 a(actualize)k Fp(F)432 1356 y Fy(1)466 1349 y Fk(and)p 227 1422 1 57 v 253 1405 a(give)e(the)j(rest)e(of)g(the)h(given)g(a)o (rgument)922 1389 y Ff(+)966 1405 y Fk(then)h(actualize)e Fp(F)1275 1412 y Fy(2)190 1462 y Fk(then)i(give)e(the)h(disjoint-union)i(of)c(\(the)i (given)g(map#1,)e(the)i(given)f(map#2\))f(.)8 1610 y Fx(3.2.4)56 b(Programs)8 1696 y Fs(in)o(tro)q(duces:)c Fk(run)p 394 1696 14 2 v 47 w(.)54 1784 y Fi(\017)22 b Fk(run)p 180 1784 V 47 w(::)e(Program)12 b Fi(!)k Fk(action)190 1840 y([completing)p 428 1849 5 40 v 40 w(diverging)p 638 1849 V 39 w(sto)o(ring)p 806 1849 V 39 w(communicating])190 1897 y([using)g(current)g(sto)o(rage)p 620 1905 V 39 w(current)g(bu\013er])g(.)8 1985 y Fy(\(1\))45 b Fk(run)16 b Fr([)-6 b([)14 b Fp(D)t Fk(:Decla)o(ration)478 1968 y Ff(+)523 1985 y Fp(I)7 b Fk(:Identi\014er)15 b Fr(])-6 b(])15 b Fk(=)190 2041 y(p)o(ro)q(duce)h(required-bindings)i(hence)190 2098 y(furthermo)o(re)c(elab)q(o)o(rate)h Fp(D)20 b Fk(hence)p 196 2340 1 226 v 221 2154 a(synchronize)d Fp(D)i Fk(and)d(then)p 227 2284 1 113 v 253 2210 a(give)e(the)j(p)o(ro)q(cedure)f(b)q(ound)h(to)e (the)h(tok)o(en)g(of)f Fp(I)22 b Fk(then)253 2267 y(enact)16 b(the)g(p)o(ro)q(cedure-abstraction)h(of)e(the)h(given)g(pa)o(rameterless)f (p)o(ro)q(cedure)221 2323 y(and)h(then)h(send)g(a)e(message)g([to)g(the)i (user-agent])f([containing)h(the)f(terminated-signal])g(.)8 2417 y Fr(The)g(primitiv)o(e)d(action)h Fk(p)o(ro)q(duce)i Fp(Y)24 b Fr(pro)q(duces)16 b(a)f(binding)h(for)e(eac)o(h)i(tok)o(en)f(mapp)q (ed)g(to)f(a)h(bindable)h(v)m(alue)8 2479 y(b)o(y)21 b(the)g(map)f(yielded)h (b)o(y)g Fp(Y)8 b Fr(.)37 b(See)22 b(the)f(end)g(of)g(Section)g(A.1)f(for)g (the)h(de\014nition)g(of)g(the)g(bindings)f(of)8 2541 y(required)15 b(iden)o(ti\014ers)f(in)h(our)f(illustrativ)o(e)e(language.)19 b(The)c(analogous)e(de\014nition)i(for)f(full)g Fj(Ad)o(a)g Fr(w)o(ould)g(b)q(e)8 2603 y(substan)o(tially)f(larger!)79 2665 y(The)i(termination)d(message)i(sen)o(t)h(ab)q(o)o(v)o(e)f(insists)g (that)g(the)h(user)g(should)g(b)q(e)h(able)f(to)f(notice)h(when)g(the)8 2727 y(program)j(has)j(terminated;)f(this)g(migh)o(t)e(b)q(e)j(useful)f(when) h(the)f(user)h(runs)f(the)g(program)e(on)j(a)f(remote)8 2789 y(agen)o(t.)p eop %%Page: 31 34 31 33 bop -42 -137 a Fn(3.2.)35 b(SEMANTIC)15 b(FUNCTIONS)1201 b Fr(31)29 12 y(T)l(o)19 b(complete)g(our)g(seman)o(tic)f(description)h(of)g (the)g(illustrativ)o(e)e(language,)j(w)o(e)f(ha)o(v)o(e)g(to)g(sp)q(ecify)h (the)-42 74 y(notation)13 b(that)h(is)g(used)h(in)f(the)h(seman)o(tic)d (equations)i(for)g(expressing)g(seman)o(tic)e(en)o(tities.)19 b(This)14 b(is)g(done)g(in)-42 136 y(Section)h(A.1,)f(whic)o(h)h(also)f (refers)h(to)f(the)h(standard)f(action)g(notation)g(and)h(data)f(notation)g (used)h(in)g(action)-42 199 y(seman)o(tics,)e(summarized)g(informally)g(in)i (App)q(endix)h(B)f(and)h(App)q(endix)g(C)f(resp)q(ectiv)o(ely)l(.)p eop %%Page: 32 35 32 34 bop 8 334 a FB(Chapter)35 b(4)8 554 y Ft(Conclusion)8 782 y Fn(Here,)21 b(the)e(pragmatic)e(qualities)h(of)h(action)g(seman)o(tic)e (descriptions)i(will)f(b)q(e)i(assessed,)g(and)g(compared)8 844 y(with)15 b(those)g(of)g(other)f(framew)o(orks)f(suc)o(h)j(as)e(VDM)h (and)g(RAISE.)930 2914 y Fr(32)p eop %%Page: 33 36 33 35 bop -42 334 a FB(App)s(endix)33 b(A)-42 554 y Ft(An)40 b(Illustrativ)m(e)f(Example,)e(ctd.)-42 770 y Fl(The)13 b(mo)q(dular)h (structure)g(of)e(this)h(App)q(endix)h(is)f(as)g(follo)o(ws:)-42 831 y Fe(Seman)o(tic)h(En)o(tities)49 901 y(Sorts)312 b(needs:)26 b(V)l(alues,)17 b(V)l(ariables,)h(Subprograms,)13 b(T)l(asks,)k(Escap)q(es.) 49 956 y(V)l(alues)287 b(needs:)26 b(Num)o(b)q(ers)p Fd(.)49 1010 y Fe(V)l(ariables)236 b(needs:)26 b(V)l(alues,)17 b(T)o(yp)q(es.)49 1065 y(T)o(yp)q(es)295 b Fd(.)49 1120 y Fe(Num)o(b)q(ers)233 b Fd(.)49 1175 y Fe(Subprograms)140 1234 y(Mo)q(des)284 b Fd(.)140 1289 y Fe(Argumen)o(ts)197 b(needs:)26 b(V)l(alues,)17 b(V)l(ariables.)140 1344 y(Pro)q(cedures)195 b(needs:)26 b(Mo)q(des,)16 b(Argumen)o(ts.)49 1403 y(T)l(asks)306 b Fd(.)49 1458 y Fe(Escap)q(es)261 b Fd(.)49 1513 y Fe(Required)16 b(Bindings)50 b(needs:)26 b(T)o(yp)q(es,)16 b(Num)o(b)q(ers.)-42 1664 y Fo(A.1)70 b(Seman)n(tic)21 b(En)n(tities)-42 1751 y Fl(Most)11 b(of)e(the)i(notation)f(used)h(here)f(for)g(sp)q(ecifying)g (seman)o(tic)g(en)o(tities)g(has)g(a)g(fairly)g(ob)o(vious)g(in)o (terpretation,)h(so)f(few)g(commen)o(ts)-42 1801 y(are)k(pro)o(vided.)-42 1862 y Fe(includes:)45 b([Mos92)q(]/Action)15 b(Notation)p Fd(.)-42 1990 y Fx(A.1.1)56 b(Sorts)-42 2060 y Fe(in)o(tro)q(duces:)45 b Fd(entit)o(y)12 b(.)11 2133 y Fc(\017)19 b Fd(entit)o(y)57 b(=)13 b(value)p 351 2140 4 32 v 58 w(va)o(riable)p 531 2140 V 57 w(t)o(yp)q(e)p 659 2140 V 59 w(p)o(ro)q(cedure)p 874 2140 V 59 w(task)25 b(\()p Fb(disjoint)t Fd(\))10 b(.)11 2187 y Fc(\017)19 b Fd(datum)47 b(=)13 b(entit)o(y)p 359 2194 V 57 w(escap)q(e-reason)p 638 2194 V 59 w(mo)q(de)p 785 2194 V 60 w(message)p 975 2194 V 59 w(entry)p 1116 2194 V 59 w Fa(2)g Fd(.)11 2251 y Fc(\017)19 b Fd(tok)o(en)61 b(=)13 b(string)f(of)g(\(upp)q (ercase)h(letter,)f(\(upp)q(ercase)g(letter)p 965 2258 V 33 w(digit\))1072 2235 y Ff(*)1090 2251 y Fd(\))g(.)11 2306 y Fc(\017)19 b Fd(bindable)14 b(=)f(entit)o(y)e(.)11 2360 y Fc(\017)19 b Fd(sto)o(rable)24 b(=)13 b(value)f(.)11 2415 y Fc(\017)19 b Fd(sendable)12 b(=)h(agent)p 357 2422 V 59 w(task)p 482 2422 V 59 w(entry)p 622 2422 V 58 w(signal)p 771 2422 V 57 w Fa(2)26 b Fd(.)-42 2480 y Fl(W)m(e)14 b(use)g(the)g(same)g(sym)o(b)q(ol)p 403 2487 V 48 w(for)f Fb(sort)h(union)g Fl(as)g(w)o(e)f(used)h(for)g(com)o (bining)g(alternativ)o(es)g(in)f(grammars.)20 b(Thinking)13 b(of)h(sorts)-42 2531 y(of)g(data)h(as)f Fb(sets)i Fl(\(whic)o(h)e(isn't)f (quite)h(righ)o(t,)g(but)h(close)f(enough)h(for)f(no)o(w\))g(w)o(e)f(ma)o(y)i (regard)p 1366 2538 V 63 w(as)f(ordinary)h(set)f(union;)h(it)e(is)-42 2581 y(asso)q(ciativ)o(e,)e(comm)o(utativ)o(e,)f(and)g(idemp)q(oten)o(t.)666 2565 y Fm(1)700 2581 y Fl(Although)g(sort)g(equations)h(lo)q(ok)f(a)f(bit)h (lik)o(e)f(the)g(so-called)h(domain)g(equations)-42 2631 y(used)h(in)e (denotational)h(seman)o(tics,)h(their)e(formal)g(in)o(terpretation)h(is)f (quite)h(di\013eren)o(t.)16 b(The)10 b(use)g(of)f Fa(2)h Fl(ab)q(o)o(v)o(e)g (formally)f(expresses)-42 2681 y(an)14 b(inclusion,)f(as)g(it)f(lea)o(v)o(es) h(op)q(en)h(what)f(other)g(sorts)h(migh)o(t)f(b)q(e)g(included)g(in)g Fd(datum)h Fl(and)f Fd(sendable)p Fl(.)p -42 2747 756 2 v 10 2774 a Fm(1)28 2789 y Fl(Idemp)q(otency)h(of)p 303 2789 12 2 v 329 2796 4 32 v 350 2789 12 2 v 86 w(means)g Fb(X)p 541 2796 4 32 v 38 w(X)19 b Fd(=)12 b Fb(X)6 b Fl(.)881 2914 y Fr(33)p eop %%Page: 34 37 34 36 bop 8 -137 a Fr(34)692 b Fn(APPENDIX)15 b(A.)30 b(AN)16 b(ILLUSTRA)l(TIVE)h(EXAMPLE,)e(CTD.)8 12 y Fx(A.1.2)56 b(V)-5 b(alues)8 82 y Fe(in)o(tro)q(duces:)45 b Fd(value)12 b(.)8 137 y Fe(includes:)45 b([Mos92)q(]/Data)16 b(Notation/Instan)o(t/Distinction) e Fd(\()f(value)f Fb(for)k Fd(s)c(,)p 1322 137 12 2 v 40 w(is)p 1386 137 V 38 w(\).)61 215 y Fc(\017)19 b Fd(value)12 b(=)h(truth-value)p 440 222 4 32 v 57 w(numb)q(er)26 b(\()p Fb(disjoint)t Fd(\))10 b(.)8 357 y Fx(A.1.3)56 b(V)-5 b(ariables)8 427 y Fe(in)o(tro)q(duces:)45 b Fd(va)o(riable)12 b(,)266 472 y(assign)p 377 472 12 2 v 39 w(to)p 450 472 V 39 w(,)h(the)p 564 472 V 39 w(assigned)f(to)p 782 472 V 39 w(,)h(allo)q(cate)p 968 472 V 39 w(fo)o(r)p 1051 472 V 39 w(,)f(disp)q(ose)g(of)p 1273 472 V 39 w(.)61 550 y Fc(\017)19 b Fd(assign)p 210 550 V 39 w(to)p 283 550 V 140 w(::)d(yielder)11 b([of)i(value],)f(yielder)f([of)h(va)o(riable])g Fc(!)i Fd(action)e([sto)o(ring])g(.)61 605 y Fc(\017)19 b Fd(the)p 165 605 V 39 w(assigned)12 b(to)p 383 605 V 40 w(::)k(value,)c(yielder)f([of) i(va)o(riable])e Fc(!)j Fd(yielder)c([of)j(value])g(.)61 660 y Fc(\017)19 b Fd(allo)q(cate)p 238 660 V 39 w(fo)o(r)p 320 660 V 103 w(::)d(va)o(riable,)11 b(yielder)g([of)i(t)o(yp)q(e])g Fc(!)g Fd(action)f([giving)f(a)j(va)o(riable)p 1302 667 4 32 v 32 w(sto)o(ring])e(.)61 715 y Fc(\017)19 b Fd(disp)q(ose)12 b(of)p 274 715 12 2 v 149 w(::)k(yielder)11 b([of)i(va)o(riable])f Fc(!)h Fd(action)f([sto)o(ring])g(.)8 793 y Fy(\(1\))45 b Fd(va)o(riable)12 b(=)h(cell)e(.)8 848 y Fy(\(2\))45 b Fd(assign)12 b(\()p Fb(Y)252 852 y Fm(1)269 848 y Fd(:yielder)e([of)j(value]\))f(to)h(\()p Fb(Y)661 852 y Fm(2)678 848 y Fd(:yielder)e([of)h(va)o(riable]\))g(=)190 893 y(sto)o(re)h(the)f(sto)o(rable)h(yielded)d(b)o(y)i Fb(Y)681 897 y Fm(1)711 893 y Fd(in)g(the)g(cell)g(yielded)e(b)o(y)j Fb(Y)1083 897 y Fm(2)1112 893 y Fd(.)8 948 y Fy(\(3\))45 b Fd(the)13 b(\()p Fb(v)t Fc(\024)p Fd(value\))e(assigned)h(to)h(\()p Fb(Y)7 b Fd(:yielder)j([of)j(va)o(riable]\))f(=)190 994 y(the)h(\()p Fb(v)f Fl(&)c Fd(sto)o(rable\))k(sto)o(red)h(in)f(the)g(cell)f(yielded)g(b)o (y)h Fb(Y)20 b Fd(.)8 1048 y Fy(\(4\))45 b Fd(allo)q(cate)13 b(\()p Fb(v)t Fc(\024)p Fd(va)o(riable\))e(fo)o(r)h(\()p Fb(Y)7 b Fd(:yielder)k([of)i(t)o(yp)q(e]\))f(=)190 1094 y(allo)q(cate)g(a)i(cell)d (.)8 1149 y Fy(\(5\))45 b Fd(disp)q(ose)12 b(of)g(\()p Fb(Y)7 b Fd(:yielder)k([of)i(va)o(riable]\))e(=)190 1194 y(unreserve)h(the)h(cell)e (yielded)g(b)o(y)h Fb(Y)20 b Fd(.)8 1271 y Fl(F)m(or)13 b(simplicit)o(y)e (here,)i(w)o(e)f(do)h(not)g(b)q(other)g(to)f(distinguish)h(b)q(et)o(w)o(een)g (cells)f(for)h(storing)f(di\013eren)o(t)h(sorts)g(of)f(v)n(alues,)h(so)g(the) f(t)o(yp)q(e)8 1321 y(en)o(tities)h(are)h(quite)f(redundan)o(t.)20 b(In)13 b(a)h(more)f(realistic)g(example,)g(the)h(sp)q(eci\014cation)g(of)f (v)n(ariable)h(allo)q(cation)f(and)h(assignmen)o(t)8 1371 y(can)g(b)q(ecome)f (quite)g(complex.)79 1422 y(The)i(standard)i(action)f Fd(sto)o(re)f Fb(Y)562 1426 y Fm(1)594 1422 y Fd(in)f Fb(Y)667 1426 y Fm(2)699 1422 y Fl(c)o(hanges)j(the)e(data)h(stored)g(in)g(the)f(cell)g(yielded)h(b)o (y)f Fb(Y)1525 1426 y Fm(2)1558 1422 y Fl(to)g(the)h(storable)f(data)8 1472 y(yielded)h(b)o(y)g Fb(Y)227 1476 y Fm(1)244 1472 y Fl(.)25 b(The)16 b(cell)f(concerned)i(m)o(ust)f(ha)o(v)o(e)g(b)q(een)h(previously)g (reserv)o(ed,)f(using)h Fd(reserve)e Fb(Y)7 b Fl(,)16 b(otherwise)g(the)g (storing)8 1522 y(action)d(fails.)k(Here,)12 b Fb(Y)20 b Fl(has)13 b(to)g(yield)g(a)g(particular,)g(individual)g(cell.)79 1572 y Fd(allo)q(cate)f(a)h(cell)f Fl(abbreviates)i(the)f(follo)o(wing)f(h)o (ybrid)i(action:)213 1634 y Fd(indivis)o(ib)o(ly)p 217 1739 1 92 v 243 1679 a(cho)q(ose)f(a)g(cell)f([not)h(in)e(the)i(mapp)q(ed-set)g (of)f(the)h(current)g(sto)o(rage])g(then)p 248 1739 1 46 v 274 1725 a(reserve)f(the)h(given)f(cell)f(and)i(give)f(it)f(.)8 1784 y Fl(Reserv)o(ed)j(cells)f(are)g(made)g(a)o(v)n(ailable)g(for)g(reuse)g (b)o(y)h Fd(unreserve)e Fb(Y)7 b Fl(,)12 b(where)h Fb(Y)20 b Fl(yields)13 b(an)g(individual)g(cell.)8 1900 y Fx(A.1.4)56 b(T)n(yp)r(es)8 1969 y Fe(in)o(tro)q(duces:)45 b Fd(t)o(yp)q(e)13 b(,)f(b)q(o)q(olean-t)o(yp)q(e)g(,)266 2015 y(integer-t)o(yp)q(e)g(,)g (real-t)o(yp)q(e)g(.)61 2089 y Fc(\017)19 b Fd(t)o(yp)q(e)12 b(=)h(b)q(o)q(olean-t)o(yp)q(e)p 457 2096 4 32 v 58 w(integer-t)o(yp)q(e)p 706 2096 V 57 w(real-t)o(yp)q(e)38 b(\()p Fb(individual)s Fd(\))10 b(.)8 2231 y Fx(A.1.5)56 b(Num)n(b)r(ers)8 2301 y Fe(in)o(tro)q(duces:)45 b Fd(numb)q(er)13 b(,)g(integer-numb)q(er)f(,)g(real-numb)q(er)h(,)f (min-integer)g(,)g(max-integer)h(,)266 2347 y(integer-numb)q(er)f(of)p 568 2347 12 2 v 40 w(,)g(real-numb)q(er)h(of)p 867 2347 V 39 w(,)g(negation)p 1066 2347 V 39 w(,)f(absolute)p 1261 2347 V 39 w(,)266 2392 y(sum)p 346 2392 V 40 w(,)g(di\013erence)p 562 2392 V 39 w(,)h(p)o(ro)q(duct)p 748 2392 V 39 w(,)f(quotient)p 943 2392 V 38 w(,)h(mo)q(dulo)p 1125 2392 V 39 w(,)g(remainder)p 1346 2392 V 39 w(.)61 2464 y Fc(\017)19 b Fd(numb)q(er)284 b(=)12 b(integer-numb)q(er)p 817 2471 4 32 v 59 w(real-numb)q(er)g(.)61 2519 y Fc(\017)19 b Fd(min-integer)12 b(,)g(max-integer)h(:)j(integer)c(.)61 2574 y Fc(\017)19 b Fd(integer-numb)q(er)12 b(of)p 401 2574 12 2 v 122 w(::)k(integer)c Fc(!)i Fd(integer-numb)q(er)e(\()p Fb(p)n(artial)t Fd(\))f(.)61 2629 y Fc(\017)19 b Fd(real-numb)q(er)13 b(of)p 350 2629 V 173 w(::)j(rational)c Fc(!)i Fd(real-numb)q(er)e(\()p Fb(p)n(artial)t Fd(\))f(.)61 2683 y Fc(\017)19 b Fd(negation)p 251 2683 V 39 w(,)13 b(absolute)p 446 2683 V 76 w(::)j(numb)q(er)d Fc(!)h Fd(numb)q(er)f(\()p Fb(p)n(artial)t Fd(\))d(.)61 2738 y Fc(\017)19 b Fd(sum)p 179 2738 V 40 w(,)12 b(di\013erence)p 395 2738 V 39 w(,)h(p)o(ro)q(duct)p 580 2738 V 39 w(,)f(quotient)p 776 2738 V 38 w(::)546 2789 y(numb)q(er)667 2774 y Ff(2)700 2789 y Fc(!)h Fd(numb)q(er)g(\()p Fb(p)n(artial)t Fd(\))e(.)p eop %%Page: 35 38 35 37 bop -42 -137 a Fn(A.1.)35 b(SEMANTIC)15 b(ENTITIES)1245 b Fr(35)11 12 y Fc(\017)19 b Fd(mo)q(dulo)p 183 12 12 2 v 40 w(,)12 b(remainder)p 404 12 V 69 w(::)17 b(integer-numb)q(er)741 -4 y Ff(2)772 12 y Fc(!)d Fd(integer-numb)q(er)e(\()p Fb(p)n(artial)t Fd(\))f(.)11 67 y Fc(\017)p 52 67 V 46 w Fd(is)p 115 67 V 38 w(,)p 165 67 V 39 w(is)h(less)g(than)p 382 67 V 39 w(,)p 432 67 V 39 w(is)g(greater)h(than)p 705 67 V 40 w(::)497 113 y(integer-numb)q (er,)e(integer-numb)q(er)i Fc(!)g Fd(truth-value)e(\()p Fb(total)t Fd(\))g(,)497 158 y(real-numb)q(er,)h(real-numb)q(er)h Fc(!)g Fd(truth-value)e(\()p Fb(total)t Fd(\))g(.)-42 231 y Fy(\(1\))45 b Fb(i)17 b Fd(:)f(integer)c([min)h(min-integer])f([max)h(max-integer])26 b Fc(\))g Fd(integer-numb)q(er)12 b(of)h Fb(i)j Fd(:)h(integer-numb)q(er)12 b(.)-42 286 y Fy(\(2\))45 b Fb(i)17 b Fd(:)f(integer)c([min)h(successo)o(r)f (max-integer])26 b Fc(\))g Fd(integer-numb)q(er)12 b(of)h Fb(i)j Fd(=)d(nothing)e(.)-42 341 y Fy(\(3\))45 b Fb(i)17 b Fd(:)f(integer)c([max)i (p)o(redecesso)o(r)f(min-integer])24 b Fc(\))i Fd(integer-numb)q(er)12 b(of)h Fb(i)j Fd(=)d(nothing)e(.)-42 395 y Fy(\(4\))45 b Fd(real-numb)q(er)13 b(of)g(\()p Fb(r)t Fd(:app)o(ro)o(ximation\))e(:)17 b(real-numb)q(er)c(.)-42 450 y Fy(\(5\))45 b Fd(real-numb)q(er)13 b(of)g(\()p Fb(r)t Fd(:interval)e(app)o(ro)o(ximation\))h(:)k(real-numb)q(er)d(of)g(\(app)o(ro)o (ximately)e Fb(r)t Fd(\))i(.)-42 505 y Fy(\(6\))45 b Fd(integer-numb)q(er)13 b(of)f Fb(i)17 b Fd(:)f(integer-numb)q(er)25 b Fc(\))49 575 y Fy(\(1\))45 b Fd(negation)13 b(integer-numb)q(er)f(of)h Fb(i)j Fd(=)d(integer-numb)q(er)f(of)g(negation)h Fb(i)j Fd(;)49 630 y Fy(\(2\))45 b Fd(absolute)12 b(integer-numb)q(er)g(of)h Fb(i)j Fd(=)d(integer-numb)q(er)f(of)h(absolute)f Fb(i)k Fd(.)-42 700 y Fy(\(7\))45 b Fd(integer-numb)q(er)13 b(of)f Fb(i)361 704 y Fm(1)391 700 y Fd(:)17 b(integer-numb)q(er)12 b(;)38 b(integer-numb)q(er)12 b(of)h Fb(i)1036 704 y Fm(2)1066 700 y Fd(:)k(integer-numb)q(er)25 b Fc(\))49 770 y Fy(\(1\))45 b Fd(sum)13 b(\(integer-numb)q(er)f(of)h Fb(i)545 774 y Fm(1)562 770 y Fd(,)f(integer-numb)q(er)h(of)f Fb(i)897 774 y Fm(2)914 770 y Fd(\))h(=)g(integer-numb)q(er)f(of)h(sum)g(\()p Fb(i)1390 774 y Fm(1)1407 770 y Fd(,)f Fb(i)1442 774 y Fm(2)1459 770 y Fd(\))h(;)49 825 y Fy(\(2\))45 b Fd(di\013erence)13 b(\(integer-numb)q(er)f (of)h Fb(i)633 829 y Fm(1)650 825 y Fd(,)f(integer-numb)q(er)g(of)h Fb(i)985 829 y Fm(2)1002 825 y Fd(\))g(=)f(integer-numb)q(er)h(of)f (di\013erence)h(\()p Fb(i)1565 829 y Fm(1)1582 825 y Fd(,)f Fb(i)1617 829 y Fm(2)1634 825 y Fd(\))h(;)49 879 y Fy(\(3\))45 b Fd(p)o(ro)q(duct)13 b(\(integer-numb)q(er)f(of)h Fb(i)603 883 y Fm(1)620 879 y Fd(,)f(integer-numb)q(er)g(of)h Fb(i)955 883 y Fm(2)972 879 y Fd(\))g(=)g(integer-numb)q(er)f(of)g(p)o(ro)q(duct)h(\() p Fb(i)1505 883 y Fm(1)1522 879 y Fd(,)f Fb(i)1557 883 y Fm(2)1574 879 y Fd(\))h(;)49 934 y Fy(\(4\))45 b Fd(quotient)12 b(\(integer-numb)q(er)g (of)h Fb(i)613 938 y Fm(1)630 934 y Fd(,)f(integer-numb)q(er)g(of)h Fb(i)965 938 y Fm(2)982 934 y Fd(\))g(=)231 980 y(integer-numb)q(er)f(of)h (integer-quotient)e(\()p Fb(i)826 984 y Fm(1)843 980 y Fd(,)h Fb(i)878 984 y Fm(2)895 980 y Fd(\))h(;)49 1034 y Fy(\(5\))45 b Fd(mo)q(dulo)13 b(\(integer-numb)q(er)f(of)h Fb(i)599 1038 y Fm(1)616 1034 y Fd(,)f(integer-numb)q(er)g(of)h Fb(i)951 1038 y Fm(2)968 1034 y Fd(\))g(=)231 1080 y(integer-numb)q(er)f(of)h (integer-mo)q(dulo)f(\()p Fb(i)812 1084 y Fm(1)829 1080 y Fd(,)g Fb(i)864 1084 y Fm(2)881 1080 y Fd(\))h(;)49 1135 y Fy(\(6\))45 b Fd(remainder)13 b(\(integer-numb)q(er)f(of)h Fb(i)638 1139 y Fm(1)655 1135 y Fd(,)g(integer-numb)q(er)f(of)g Fb(i)990 1139 y Fm(2)1008 1135 y Fd(\))g(=)231 1181 y(integer-numb)q(er)g(of)h (integer-remainder)f(\()p Fb(i)851 1185 y Fm(1)868 1181 y Fd(,)h Fb(i)904 1185 y Fm(2)921 1181 y Fd(\))f(.)-42 1251 y Fy(\(8\))45 b Fd(real-numb)q(er)13 b(of)g Fb(r)k Fd(:)f(real-numb)q(er)26 b Fc(\))49 1321 y Fy(\(1\))45 b Fd(negation)13 b(real-numb)q(er)f(of)h Fb(r)k Fd(=)c(real-numb)q(er)f(of)h(negation)g Fb(r)k Fd(;)49 1375 y Fy(\(2\))45 b Fd(absolute)12 b(real-numb)q(er)h(of)g Fb(r)k Fd(=)12 b(real-numb)q(er)h(of)g(absolute)f Fb(r)17 b Fd(.)-42 1445 y Fy(\(9\))45 b Fd(real-numb)q(er)13 b(of)g Fb(r)314 1449 y Fm(1)344 1445 y Fd(:)k(real-numb)q(er)12 b(;)38 b(real-numb)q(er)13 b(of)g Fb(r)890 1449 y Fm(2)920 1445 y Fd(:)k(real-numb)q(er)25 b Fc(\))49 1515 y Fy(\(1\))45 b Fd(sum)13 b(\(real-numb)q(er)g(of)f Fb(r)497 1519 y Fm(1)515 1515 y Fd(,)g(real-numb)q(er)h(of)g Fb(r)803 1519 y Fm(2)820 1515 y Fd(\))g(:)k(real-numb)q(er)12 b(of)h(sum)g(\()p Fb(r)1233 1519 y Fm(1)1250 1515 y Fd(,)g Fb(r)1290 1519 y Fm(2)1307 1515 y Fd(\))g(;)49 1570 y Fy(\(2\))45 b Fd(di\013erence)13 b(\(real-numb)q(er)f(of)h Fb(r)585 1574 y Fm(1)602 1570 y Fd(,)g(real-numb)q(er)g(of)f Fb(r)890 1574 y Fm(2)908 1570 y Fd(\))h(:)j(real-numb)q(er)d(of)g(di\013erence)f(\()p Fb(r)1408 1574 y Fm(1)1425 1570 y Fd(,)h Fb(r)1465 1574 y Fm(2)1482 1570 y Fd(\))g(;)49 1625 y Fy(\(3\))45 b Fd(p)o(ro)q(duct)13 b(\(real-numb)q(er)f(of)h Fb(r)555 1629 y Fm(1)573 1625 y Fd(,)f(real-numb)q (er)h(of)f Fb(r)860 1629 y Fm(2)878 1625 y Fd(\))h(:)j(real-numb)q(er)d(of)g (p)o(ro)q(duct)f(\()p Fb(r)1348 1629 y Fm(1)1366 1625 y Fd(,)g Fb(r)1405 1629 y Fm(2)1423 1625 y Fd(\))g(;)49 1680 y Fy(\(4\))45 b Fd(quotient)12 b(\(real-numb)q(er)g(of)h Fb(r)565 1684 y Fm(1)583 1680 y Fd(,)f(real-numb)q(er)h(of)f Fb(r)870 1684 y Fm(2)888 1680 y Fd(\))h(:)j(real-numb)q(er)d(of)g(quotient)e(\()p Fb(r)1368 1684 y Fm(1)1386 1680 y Fd(,)h Fb(r)1425 1684 y Fm(2)1442 1680 y Fd(\))h(.)-42 1750 y Fy(\(10\))27 b Fd(integer-numb)q(er)13 b(of)f Fb(i)361 1754 y Fm(1)391 1750 y Fd(:)17 b(integer-numb)q(er)12 b(;)38 b(integer-numb)q(er)12 b(of)h Fb(i)1036 1754 y Fm(2)1066 1750 y Fd(:)k(integer-numb)q(er)25 b Fc(\))49 1820 y Fy(\(1\))45 b Fd(integer-numb)q(er)12 b(of)h Fb(i)452 1824 y Fm(1)482 1820 y Fd(is)f(integer-numb)q(er)g(of)h Fb(i)831 1824 y Fm(2)860 1820 y Fd(=)g Fb(i)915 1824 y Fm(1)945 1820 y Fd(is)f Fb(i)994 1824 y Fm(2)1024 1820 y Fd(;)49 1874 y Fy(\(2\))45 b Fd(integer-numb)q(er)12 b(of)h Fb(i)452 1878 y Fm(1)482 1874 y Fd(is)f(less)f(than)i(integer-numb)q (er)f(of)h Fb(i)984 1878 y Fm(2)1014 1874 y Fd(=)f Fb(i)1068 1878 y Fm(1)1098 1874 y Fd(is)g(less)f(than)i Fb(i)1300 1878 y Fm(2)1330 1874 y Fd(;)49 1929 y Fy(\(3\))45 b Fd(integer-numb)q(er)12 b(of)h Fb(i)452 1933 y Fm(1)482 1929 y Fd(is)f(greater)h(than)g(integer-numb) q(er)f(of)h Fb(i)1040 1933 y Fm(2)1070 1929 y Fd(=)g Fb(i)1125 1933 y Fm(1)1154 1929 y Fd(is)f(greater)i(than)f Fb(i)1413 1933 y Fm(2)1442 1929 y Fd(.)-42 1999 y Fy(\(11\))27 b Fd(real-numb)q(er)13 b(of)g Fb(r)314 2003 y Fm(1)344 1999 y Fd(:)k(real-numb)q(er)12 b(;)38 b(real-numb)q(er)13 b(of)g Fb(r)890 2003 y Fm(2)920 1999 y Fd(:)k(real-numb)q(er)25 b Fc(\))49 2069 y Fy(\(1\))45 b Fd(real-numb)q(er)13 b(of)g Fb(r)405 2073 y Fm(1)435 2069 y Fd(is)f(real-numb)q(er)g(of)h Fb(r)736 2073 y Fm(2)766 2069 y Fd(=)g Fb(r)825 2073 y Fm(1)855 2069 y Fd(is)f Fb(r)908 2073 y Fm(2)938 2069 y Fd(;)49 2124 y Fy(\(2\))45 b Fd(real-numb)q(er)13 b(of)g Fb(r)405 2128 y Fm(1)435 2124 y Fd(is)f(less)f(than)i(real-numb)q(er)g (of)f Fb(r)889 2128 y Fm(2)920 2124 y Fd(=)g Fb(r)978 2128 y Fm(1)1008 2124 y Fd(is)g(less)g(than)g Fb(r)1214 2128 y Fm(2)1245 2124 y Fd(;)49 2179 y Fy(\(3\))45 b Fd(real-numb)q(er)13 b(of)g Fb(r)405 2183 y Fm(1)435 2179 y Fd(is)f(greater)h(than)g(real-numb)q(er)g(of) f Fb(r)945 2183 y Fm(2)976 2179 y Fd(=)g Fb(r)1034 2183 y Fm(1)1065 2179 y Fd(is)f(greater)j(than)f Fb(r)1327 2183 y Fm(2)1357 2179 y Fd(.)-42 2244 y Fl(The)f(sp)q(eci\014cation)h(of)f(real)f(arithmetic)h (uses)g(a)g(lo)q(osely-sp)q(eci\014ed)h(sort)f(of)g(rational)g(appro)o (ximations)h(and)f(in)o(terv)n(als,)g(to)g(a)o(v)o(oid)-42 2295 y(insisting)h(that)h(implemen)o(tations)f(should)h(b)q(e)f(exact.)k (Similarly)m(,)12 b(there)h(are)g(lo)q(osely-sp)q(eci\014ed)h(b)q(ounds)h(on) e(in)o(tegers.)-42 2408 y Fx(A.1.6)56 b(Subprograms)-42 2494 y Fs(A.1.6.1)51 b(Mo)q(des)-42 2564 y Fe(in)o(tro)q(duces:)45 b Fd(mo)q(de)14 b(,)e(constant-mo)q(de)h(,)g(reference-mo)q(de)g(,)g(cop)o (y-mo)q(de)g(.)11 2637 y Fc(\017)19 b Fd(mo)q(de)36 b(=)13 b(constant-mo)q(de)p 480 2644 4 32 v 59 w(cop)o(y-mo)q(de)p 712 2644 V 59 w(reference-mo)q(de)39 b(\()p Fb(individual)s Fd(\))10 b(.)-42 2710 y Fe(includes:)45 b(Data)16 b(Notation/Instan)o (t/Distinction)e Fd(\()e(mo)q(de)i Fb(for)i Fd(s)d(,)p 1106 2710 12 2 v 39 w(is)p 1169 2710 V 38 w(\).)-42 2765 y Fy(\(1\))45 b Fd(distinct)11 b(\(constant-mo)q(de,)h(reference-mo)q(de,)h(cop)o(y-mo)q (de\))g(=)g(true)g(.)p eop %%Page: 36 39 36 38 bop 8 -137 a Fr(36)692 b Fn(APPENDIX)15 b(A.)30 b(AN)16 b(ILLUSTRA)l(TIVE)h(EXAMPLE,)e(CTD.)8 12 y Fs(A.1.6.2)51 b(Argum)o(en)n(ts)8 83 y Fe(in)o(tro)q(duces:)45 b Fd(a)o(rgument)14 b(,)e(cop)o(y-back)p 628 83 12 2 v 39 w(.)61 167 y Fc(\017)19 b Fd(a)o(rgument)45 b(=)13 b(value)p 447 174 4 32 v 58 w(va)o(riable)e(.)61 224 y Fc(\017)19 b Fd(cop)o(y-back)p 274 224 12 2 v 39 w(::)e(map)c([tok)o(en)g (to)g(va)o(riable])f Fc(!)h Fd(action)f([completing)p 1084 231 4 32 v 32 w(sto)o(ring])g(.)8 308 y Fe(priv)n(ately)j(in)o(tro)q(duces:) 45 b Fd(cop)o(y-back)p 624 308 12 2 v 39 w(from)p 738 308 V 40 w(.)8 366 y Fy(\(1\))g Fd(cop)o(y-back)13 b(\()p Fb(Y)6 b Fd(:yielder)11 b([of)i(map)g([tok)o(en)g(to)g(va)o(riable]]\))f(=)190 412 y(cop)o(y-back)h Fb(Y)19 b Fd(from)13 b(the)g(elements)f(of)h(the)f(mapp) q(ed-set)h(of)g Fb(Y)20 b Fd(.)8 478 y Fy(\(2\))45 b Fd(cop)o(y-back)13 b(\()p Fb(Y)316 482 y Fm(1)332 478 y Fd(:yielder)e([of)i(map)g([tok)o(en)g (to)g(va)o(riable]]\))f(from)h(\()p Fb(Y)1056 482 y Fm(2)1073 478 y Fd(:yielder)d([of)j(tok)o(en)1342 462 y Ff(*)1362 478 y Fd(]\))g(=)190 523 y(check)g(\()p Fb(Y)337 527 y Fm(2)366 523 y Fd(is)f(\()h(\)\))f(o)o(r)p 195 720 1 183 v 220 569 a(assign)g(\(the)h (value)f(assigned)g(to)h(the)f(va)o(riable)g(b)q(ound)g(to)h(the)g(\014rst)f (of)g Fb(Y)1262 573 y Fm(2)1279 569 y Fd(\))311 615 y(to)h(the)g(va)o(riable) e(yielded)g(b)o(y)h(\()p Fb(Y)771 619 y Fm(1)801 615 y Fd(at)h(the)g(\014rst) f(of)g Fb(Y)1057 619 y Fm(2)1074 615 y Fd(\))h(and)g(then)220 660 y(disp)q(ose)f(of)h(the)f(va)o(riable)g(yielded)e(b)o(y)j(\()p Fb(Y)807 664 y Fm(1)836 660 y Fd(at)g(the)g(\014rst)f(of)h Fb(Y)1093 664 y Fm(2)1110 660 y Fd(\))f(and)h(then)220 706 y(cop)o(y-back)g Fb(Y)422 710 y Fm(1)452 706 y Fd(from)g(the)f(rest)h(of)g Fb(Y)747 710 y Fm(2)776 706 y Fd(.)8 843 y Fs(A.1.6.3)51 b(Pro)q(cedures)8 914 y Fe(in)o(tro)q(duces:)45 b Fd(p)o(ro)q(cedure)13 b(,)g(p)o(ro)q(cedure)g (of)p 674 914 12 2 v 39 w(,)f(p)o(ro)q(cedure-abstraction)p 1083 914 V 39 w(,)266 959 y(pa)o(rameterless)p 497 959 V 40 w(,)g(pa)o(rameterized)p 783 959 V 40 w(,)g(mo)q(dalized)p 1007 959 V 39 w(,)266 1005 y(fo)o(rmal-mo)q(des)p 498 1005 V 40 w(.)61 1085 y Fc(\017)19 b Fd(p)o(ro)q(cedure)13 b(of)p 314 1085 V 342 w(::)j(abstraction)c Fc(!)i Fd(p)o(ro)q(cedure)f(\()p Fb(p)n(artial)t Fd(\))d(.)61 1142 y Fc(\017)19 b Fd(p)o(ro)q (cedure-abstraction)p 461 1142 V 195 w(::)d(p)o(ro)q(cedure)d Fc(!)g Fd(abstraction)g(\()p Fb(total)t Fd(\))e(.)61 1200 y Fc(\017)19 b Fd(pa)o(rameterless)p 330 1200 V 40 w(,)12 b(pa)o(rameterized)p 616 1200 V 40 w(::)k(p)o(ro)q(cedure)d Fc(!)g Fd(p)o(ro)q(cedure)g(\()p Fb(p)n(artial)t Fd(\))e(.)61 1257 y Fc(\017)19 b Fd(mo)q(dalized)p 275 1257 V 380 w(::)d(\(mo)q(des,)d(p)o(ro)q(cedure\))g Fc(!)g Fd(p)o(ro)q(cedure)g(\()p Fb(p)n(artial)t Fd(\))e(.)61 1315 y Fc(\017)19 b Fd(fo)o(rmal-mo)q(des)p 331 1315 V 326 w(::)d(p)o(ro)q(cedure) d Fc(!)g Fd(mo)q(des)g(\()p Fb(p)n(artial)t Fd(\))e(.)8 1399 y Fy(\(1\))45 b Fb(a)16 b Fd(:)g(action)d([completing)p 474 1406 4 32 v 32 w(diverging)p 651 1406 V 31 w(sto)o(ring)p 792 1406 V 33 w(communicating])273 1445 y([using)e(given)h(a)o(rguments)p 656 1452 V 34 w(current)h(sto)o(rage)p 930 1452 V 33 w(current)g(bu\013er])26 b Fc(\))99 1504 y Fd(p)o(ro)q(cedure)13 b(of)g(abstraction)f(of)h Fb(a)i Fd(:)i(p)o(ro)q(cedure)c(.)8 1561 y Fy(\(2\))45 b Fb(p)15 b Fd(=)e(p)o(ro)q(cedure)g(of)f Fb(a)28 b Fc(\))e Fd(the)13 b(p)o(ro)q(cedure-abstraction)f(of)h Fb(p)r Fd(:p)o(ro)q(cedure)g(=)f Fb(a)k Fd(.)8 1619 y Fy(\(3\))45 b Fb(p)15 b Fd(=)e(p)o(ro)q(cedure)g(of)f Fb(a)28 b Fc(\))99 1664 y Fd(pa)o(rameterless)13 b Fb(p)r Fd(:p)o(ro)q (cedure)g(:)j(p)o(ro)q(cedure)d(;)38 b(pa)o(rameterized)13 b Fb(p)r Fd(:p)o(ro)q(cedure)g(:)k(p)o(ro)q(cedure)12 b(.)8 1722 y Fy(\(4\))45 b Fb(p)15 b Fd(=)e(pa)o(rameterless)f(p)o(ro)q(cedure)h (of)g Fb(a)28 b Fc(\))e Fd(the)13 b(p)o(ro)q(cedure-abstraction)f(of)h Fb(p)r Fd(:p)o(ro)q(cedure)f(=)h Fb(a)i Fd(.)8 1779 y Fy(\(5\))45 b Fb(p)15 b Fd(=)e(pa)o(rameterized)g(p)o(ro)q(cedure)g(of)f Fb(a)28 b Fc(\))e Fd(the)13 b(p)o(ro)q(cedure-abstraction)f(of)h Fb(p)r Fd(:p)o(ro)q(cedure)g(=)f Fb(a)k Fd(.)8 1837 y Fy(\(6\))45 b Fb(p)15 b Fd(=)e(pa)o(rameterized)g(mo)q(dalized)e(\()p Fb(m)s Fd(:mo)q(des,)i(p)o(ro)q(cedure)g(of)g Fb(a)s Fd(\))25 b Fc(\))99 1912 y Fy(\(1\))45 b Fd(the)13 b(p)o(ro)q(cedure-abstraction)f(of)h Fb(p)r Fd(:p)o(ro)q(cedure)f(=)h Fb(a)i Fd(;)99 1969 y Fy(\(2\))45 b Fd(the)13 b(fo)o(rmal-mo)q(des)g(of)f Fb(p)r Fd(:p)o(ro)q(cedure)h(=)g Fb(m)j Fd(.)8 2121 y Fx(A.1.7)56 b(T)-5 b(asks)8 2191 y Fe(in)o(tro)q(duces:) 45 b Fd(task-agent)13 b(,)g(task)f(,)h(task)f(of)p 696 2191 12 2 v 40 w(,)g(task-abstraction)p 1015 2191 V 39 w(,)g(initial)e (task-action)i(,)266 2237 y(signal)g(,)g(b)q(egin-signal)e(,)j(done-signal)e (,)h(terminated-signal)f(,)266 2283 y(entry)i(,)f(entry)g(of)p 525 2283 V 40 w(,)p 575 2283 V 39 w(is)g(entered)g(in)p 810 2283 V 39 w(.)61 2361 y Fc(\017)19 b Fd(task-agent)125 b Fc(\024)12 b Fd(agent)h(.)61 2418 y Fc(\017)19 b Fd(task)13 b(of)p 224 2418 V 186 w(::)j(abstraction)d Fc(!)g Fd(task)f(\()p Fb(total)t Fd(\))f(.)61 2476 y Fc(\017)19 b Fd(task-abstraction)p 370 2476 V 39 w(::)d(task)d Fc(!)g Fd(abstraction)f(\()p Fb(total)t Fd(\))f(.)61 2533 y Fc(\017)19 b Fd(signal)200 b(=)12 b(b)q(egin-signal)p 650 2540 4 32 v 56 w(done-signal)p 888 2540 V 58 w(terminated-signal)23 b(\()p Fb(individual)t Fd(\))9 b(.)61 2590 y Fc(\017)19 b Fd(initial)10 b(task-action)27 b(:)17 b(action)c(.)61 2648 y Fc(\017)19 b Fd(entry)13 b(of)p 240 2648 12 2 v 170 w(::)j(tok)o(en)d Fc(!)g Fd(entry)f(\()p Fb(total)t Fd(\))f(.)61 2705 y Fc(\017)p 102 2705 V 46 w Fd(is)h(entered)g(in)p 337 2705 V 72 w(::)k(entry)m(,)c(bu\013er) h Fc(!)g Fd(truth-value)f(\()p Fb(total)t Fd(\))f(.)8 2789 y Fy(\(1\))45 b Fb(t)16 b Fd(=)d(task)g(of)f Fb(a)28 b Fc(\))e Fd(task-abstraction)12 b Fb(t)t Fd(:task)g(=)h Fb(a)i Fd(.)p eop %%Page: 37 40 37 39 bop -42 -137 a Fn(A.1.)35 b(SEMANTIC)15 b(ENTITIES)1245 b Fr(37)-42 12 y Fy(\(2\))45 b Fd(initial)10 b(task-action)i(=)p 145 117 1 92 v 171 58 a(send)g(a)h(message)h([to)f(the)f(contracting-agent])h ([containing)f(the)g(p)q(erfo)o(rming-agent])h(and)g(then)171 104 y(receive)f(a)h(message)g([from)h(the)f(contracting-agent])f([containing) g(a)h(task])140 149 y(then)p 145 254 V 171 195 a(send)f(a)h(message)h([to)f (the)f(contracting-agent])h([containing)f(the)g(b)q(egin-signal])f(and)i (then)171 241 y(enact)g(the)f(task-abstraction)g(of)h(the)g(task)f(yielded)f (b)o(y)h(the)h(contents)f(of)h(the)f(given)g(message)h(.)-42 289 y Fy(\(3\))45 b Fd(entry)13 b(of)g Fb(k)206 293 y Fm(1)222 289 y Fd(:tok)o(en)g(is)e(entry)i(of)f Fb(k)526 293 y Fm(2)543 289 y Fd(:tok)o(en)g(=)h Fb(k)715 293 y Fm(1)745 289 y Fd(is)f Fb(k)800 293 y Fm(2)829 289 y Fd(.)-42 344 y Fy(\(4\))45 b Fb(e)s Fd(:entry)12 b(is)g(entered)g(in)g(empt)o(y-list)e(=)j(false)f(.)-42 399 y Fy(\(5\))45 b Fb(e)s Fd(:entry)12 b(is)g(entered)g(in)g(list)f(of)h Fb(m)s Fd(:message)i([containing)e(an)h(entry])f(=)h Fb(e)i Fd(is)d(the)g(contents)h(of)f Fb(m)k Fd(.)-42 454 y Fy(\(6\))45 b Fb(e)s Fd(:entry)12 b(is)g(entered)g(in)g(list)f(of)h Fb(m)s Fd(:message)i([containing)e(a)h(signal)p 1003 461 4 32 v 32 w(agent)p 1125 461 V 33 w(task])g(=)g(false)e(.)-42 508 y Fy(\(7\))45 b Fb(e)s Fd(:entry)12 b(is)g(entered)g(in)g(concatenation)h(\()p Fb(b)653 512 y Fm(1)670 508 y Fd(:bu\013er,)f Fb(b)814 512 y Fm(2)831 508 y Fd(:bu\013er\))h(=)140 554 y(either)f(\()p Fb(e)j Fd(is)d(entered)h(in)f Fb(b)519 558 y Fm(1)535 554 y Fd(,)h Fb(e)i Fd(is)d(entered)h(in)e Fb(b)819 558 y Fm(2)836 554 y Fd(\))i(.)-42 699 y Fx(A.1.8)56 b(Escap)r(es)-42 769 y Fe(in)o(tro)q(duces:)45 b Fd(escap)q(e-reason)14 b(,)e(exit)g(,)g(p)o(ro)q (cedure-return)h(.)11 849 y Fc(\017)19 b Fd(escap)q(e-reason)14 b(=)e(exit)p 411 856 V 58 w(p)o(ro)q(cedure-return)25 b(\()p Fb(individual)t Fd(\))9 b(.)-42 994 y Fx(A.1.9)56 b(Required)18 b(Bindings)-42 1064 y Fe(in)o(tro)q(duces:)45 b Fd(required-bindings)10 b(.)11 1143 y Fc(\017)19 b Fd(required-bindings)10 b(:)16 b(map)e([tok)o(en)f (to)f(value)p 700 1150 V 33 w(t)o(yp)q(e])g(.)-42 1223 y Fy(\(1\))45 b Fd(required-bindings)10 b(=)i(disjoint-union)e(of)i(\()h(map)h(of)f (\\TRUE")g(to)g(true,)679 1269 y(map)h(of)f(\\F)m(ALSE")f(to)h(false,)679 1314 y(map)h(of)f(\\BOOLEAN")g(to)g(b)q(o)q(olean-t)o(yp)q(e,)679 1360 y(map)h(of)f(\\MININT")f(to)h(integer-numb)q(er)f(min-integer,)679 1406 y(map)i(of)f(\\MAXINT")f(to)h(integer-numb)q(er)f(max-integer,)679 1451 y(map)i(of)f(\\INTEGER")f(to)h(integer-t)o(yp)q(e,)679 1497 y(map)h(of)f(\\REAL")f(to)h(real-t)o(yp)q(e)f(\))h(.)p eop %%Page: 38 41 38 40 bop 8 334 a FB(App)s(endix)33 b(B)8 554 y Ft(Action)40 b(Notation)8 782 y Fr(The)15 b(systematic)e(informal)g(description)h(of)h (\(almost)d(all)h(of)t(\))h(action)g(notation)g(summarizes)e(the)j(explana-)8 844 y(tions)e(giv)o(en)g(in)g(Chapter)g(3,)h(and)f(giv)o(es)g(further)g (details.)19 b(It)13 b(is)g(in)o(tended)h(for)f(reference.)20 b(The)14 b(usage)f(of)g(the)8 906 y(notation)h(is)h(illustrated)e(in)i(the)h (seman)o(tic)d(description)i(in)g(Chapter)g(3.)79 968 y(The)f(sym)o(b)q(ols)d (of)i(action)g(notation)f(are)h(explained)g(in)h(the)f(order)g(indicated)g(b) q(elo)o(w.)19 b(See)14 b(Section)g(2.2.2)8 1031 y(for)h(the)g(general)g (concept)h(of)e(actions.)8 1105 y Fe(Action)h(Notation)99 1191 y(Basic.)99 1246 y(F)l(unctional.)99 1300 y(Declarativ)o(e.)99 1355 y(Imp)q(erativ)o(e.)99 1410 y(Re\015ectiv)o(e.)99 1465 y(Comm)o(unicativ)o(e.)99 1519 y(Hybrid.)99 1574 y(F)l(acets)190 1637 y(Outcomes.)190 1692 y(Incomes.)190 1747 y(Actions.)190 1801 y(Yielders.)8 1980 y Fo(B.1)69 b(Basic)23 b(Action)g(Notation)8 2067 y Fl(Basic)11 b(action)h(notation)f(is)g(primarily)f(concerned)j(with)d (sp)q(ecifying)i(\015o)o(w)f(of)f(con)o(trol)i(in)e(p)q(erformances)i(of)f (actions.)17 b(It)10 b(includes)8 2117 y(basic)k(notation)f(for)g(data)g(as)g (w)o(ell,)f(see)h(App)q(endix)h(C.)8 2233 y Fx(B.1.1)55 b(Actions)80 2308 y Fc(\017)23 b Fb(A)o(l)r(l)13 b(primitive)f(b)n(asic)g(actions:)177 2385 y Fe({)23 b Fl(Giv)o(e)13 b(no)g(transien)o(ts,)g(except)h(for)f Fd(escap)q(e)p Fl(.)177 2452 y Fe({)23 b Fl(Pro)q(duce)14 b(no)f(bindings.) 177 2518 y Fe({)23 b Fl(Mak)o(e)13 b(no)h(c)o(hanges)g(to)f(storage.)177 2585 y Fe({)23 b Fl(Do)13 b(not)h(comm)o(unicate.)80 2662 y Fc(\017)23 b Fb(A)o(l)r(l)13 b(b)n(asic)f(action)f(c)n(ombinators)h(ar)n(e:) 177 2739 y Fe({)23 b Fl(F)m(unctionally)11 b(conducting)g(\(see)g(the)f (basic)g(action)h Fb(A)1007 2743 y Fm(1)1034 2739 y Fd(and)f Fb(A)1131 2743 y Fm(2)1148 2739 y Fl(\),)g(except)h(for)f Fb(A)1387 2743 y Fm(1)1414 2739 y Fd(trap)g Fb(A)1518 2743 y Fm(2)1535 2739 y Fl(,)h(whic)o(h)f(is)g(functionally)222 2789 y(comp)q(osing)k(\(see)f (the)g(functional)g(action)h Fb(A)879 2793 y Fm(1)908 2789 y Fd(then)f Fb(A)1021 2793 y Fm(2)1050 2789 y Fl(in)g(Section)g(B.2.1\).)930 2914 y Fr(38)p eop %%Page: 39 42 39 41 bop -42 -137 a Fn(B.1.)35 b(BASIC)16 b(A)o(CTION)f(NOT)l(A)l(TION)1128 b Fr(39)127 12 y Fe({)23 b Fl(Declarativ)o(ely)13 b(conducting)i(\(see)e(the) g(basic)g(action)g Fb(A)985 16 y Fm(1)1015 12 y Fd(and)g Fb(A)1115 16 y Fm(2)1131 12 y Fl(\).)30 90 y Fc(\017)23 b Fd(complete)p Fl(:)18 b(a)13 b(primitiv)o(e)g(basic)h(action.)k(Represen)o(ts)d(normal)e (termination.)19 b(Unit)13 b(for)g Fb(A)1398 94 y Fm(1)1428 90 y Fd(and)h Fb(A)1529 94 y Fm(2)1546 90 y Fl(,)f(as)g(w)o(ell)g(as)g(for)g Fb(A)1831 94 y Fm(1)72 140 y Fd(and)g(then)f Fb(A)255 144 y Fm(2)272 140 y Fl(.)127 218 y Fe({)23 b Fl(Indivisible.)17 b(Alw)o(a)o(ys)12 b(completes.)30 295 y Fc(\017)23 b Fd(escap)q(e)p Fl(:)17 b(a)c(primitiv)o(e)f(basic)i(action.)j(Represen)o(ts)d(abnormal)g (termination.)j(Unit)12 b(for)h Fb(A)1393 299 y Fm(1)1423 295 y Fd(trap)g Fb(A)1530 299 y Fm(2)1547 295 y Fl(.)127 373 y Fe({)23 b Fl(Indivisible.)17 b(Alw)o(a)o(ys)12 b(escap)q(es.)127 440 y Fe({)23 b Fl(Giv)o(es)13 b(an)o(y)h(giv)o(en)f(transien)o(ts.)30 518 y Fc(\017)23 b Fd(fail)p Fl(:)56 b(a)33 b(primitiv)o(e)g(basic)g(action.) 78 b(Represen)o(ts)34 b(ab)q(ortion)g(of)f(the)g(curren)o(t)h(alternativ)o (e.)78 b(Unit)32 b(for)72 568 y Fb(A)101 572 y Fm(1)131 568 y Fd(o)o(r)13 b Fb(A)204 572 y Fm(2)221 568 y Fl(.)127 646 y Fe({)23 b Fl(Indivisible.)17 b(Alw)o(a)o(ys)12 b(fails.)30 723 y Fc(\017)23 b Fd(commit)p Fl(:)d(a)14 b(primitiv)o(e)g(basic)h(action.) 21 b(Represen)o(ts)16 b(commitmen)o(t)e(to)h(the)f(curren)o(t)h(alternativ)o (e,)g(cutting)f(a)o(w)o(a)o(y)h(other)72 773 y(curren)o(t)f(alternativ)o(es.) 127 851 y Fe({)23 b Fl(Indivisible.)17 b(Alw)o(a)o(ys)12 b(commits)h(and)h (completes.)30 929 y Fc(\017)23 b Fd(unfold)p Fl(:)15 b(a)e(dumm)o(y)h (action,)f(standing)h(for)f(the)g(innermost)g(enclosing)h(unfolding.)30 996 y Fc(\017)23 b Fd(unfolding)13 b Fb(A)p Fl(:)20 b(Represen)o(ts)d(the)e (\(in)g(general,)g(in\014nite\))g(action)h(formed)f(b)o(y)g(con)o(tin)o (ually)h(substituting)g Fb(A)e Fl(for)h Fd(unfold)p Fl(.)72 1046 y(\(T)m(o)e(a)o(v)o(oid)g(singularities)g(in)g(pathological)g(cases,)g (substitute)h Fd(complete)e(and)h(then)g Fb(A)p Fl(,)f(rather)h(than)h(just)e Fb(A)p Fl(.\))127 1124 y Fe({)23 b Fl(P)o(erforms)13 b Fb(A)p Fl(,)f(but)i(whenev)o(er)f(the)g(dumm)o(y)h(action)f Fd(unfold)f Fl(is)g(reac)o(hed,)i Fb(A)e Fl(is)h(p)q(erformed)g(in)g(place)g(of)g Fd(unfold)p Fl(.)30 1201 y Fc(\017)23 b Fd(indivisi)o(bl)o(y)6 b Fb(A)p Fl(:)15 b(a)10 b(basic)h(com)o(bination)g(of)e(action)i Fb(A)p Fl(.)k(Represen)o(ts)c(that)g(the)f(steps)g(of)g(p)q(erforming)h Fb(A)e Fl(are)h(not)h(in)o(terlea)o(v)o(ed)72 1251 y(with)i(those)h(of)f (other)h(actions)f(p)q(erformed)h(b)o(y)g(the)g(same)f(agen)o(t.)19 b(Also)13 b(ensures)h(that)g(the)f(p)q(erformance)h(of)g Fb(A)e Fl(cannot)72 1302 y(b)q(e)h(in)o(terrupted)h(b)o(y)g(an)f(escap)q(e)h(or)f (failure)f(o)q(ccurring)i(outside)f Fb(A)p Fl(.)k(F)m(or)12 b(use)i(only)f(when)g Fb(A)g Fl(cannot)h(div)o(erge.)127 1379 y Fe({)23 b Fb(Indivisible)s Fl(:)13 b Fb(A)g Fl(is)f(p)q(erformed)i(as)f(a)g (single)g(step.)30 1457 y Fc(\017)23 b Fb(A)101 1461 y Fm(1)129 1457 y Fd(o)o(r)12 b Fb(A)201 1461 y Fm(2)218 1457 y Fl(:)k(a)c(basic)g(com)o (bination)g(of)f(actions)h Fb(A)788 1461 y Fm(1)805 1457 y Fl(,)g Fb(A)857 1461 y Fm(2)874 1457 y Fl(.)k(Represen)o(ts)d(implemen)o (tation-dep)q(enden)o(t)g(c)o(hoice;)f(sp)q(ecializes)72 1507 y(to)h(deterministic)g(c)o(hoice)g(when)g(one)h(or)f(the)g(other)g(of)g Fb(A)921 1511 y Fm(1)938 1507 y Fl(,)f Fb(A)990 1511 y Fm(2)1020 1507 y Fl(m)o(ust)h(fail.)127 1585 y Fe({)23 b Fl(P)o(erforms)15 b(either)g Fb(A)477 1589 y Fm(1)509 1585 y Fl(or)g Fb(A)587 1589 y Fm(2)603 1585 y Fl(.)23 b(When)16 b(the)f(p)q(erformed)h(alternativ)o (e)f(fails)f(without)h(committing,)g(it)f(is)g(ignored)172 1635 y(and)g(the)f(other)g(alternativ)o(e)g(is)g(p)q(erformed)h(instead.)127 1702 y Fe({)23 b Fl(All)15 b(the)g(transien)o(ts)i(giv)o(en)e(to)h(the)g(com) o(bination)g(of)f Fb(A)1003 1706 y Fm(1)1020 1702 y Fl(,)h Fb(A)1076 1706 y Fm(2)1108 1702 y Fl(are)g(giv)o(en)g(to)f(the)h(p)q (erformed)g(alternativ)o(e.)25 b(On)172 1752 y(normal)14 b(or)g(abnormal)h (termination,)e(all)h(the)g(transien)o(ts)g(giv)o(en)g(b)o(y)g(the)g(p)q (erformed)h(alternativ)o(e)f(are)g(giv)o(en)g(b)o(y)172 1803 y(the)f(com)o(bined)h(action.)127 1870 y Fe({)23 b Fl(All)14 b(the)h(bindings)h(receiv)o(ed)g(b)o(y)f(the)g(com)o(bination)h(of)f Fb(A)1030 1874 y Fm(1)1047 1870 y Fl(,)g Fb(A)1102 1874 y Fm(2)1133 1870 y Fl(are)h(receiv)o(ed)f(b)o(y)g(the)h(p)q(erformed)f(alternativ)o(e.) 172 1920 y(On)d(normal)h(termination,)f(all)f(the)h(bindings)h(pro)q(duced)h (b)o(y)e(the)h(p)q(erformed)f(alternativ)o(e)h(are)f(pro)q(duced)h(b)o(y)g (the)172 1970 y(com)o(bined)h(action.)30 2048 y Fc(\017)23 b Fb(A)101 2052 y Fm(1)133 2048 y Fd(and)16 b Fb(A)236 2052 y Fm(2)253 2048 y Fl(:)21 b(a)16 b(basic)g(com)o(bination)g(of)f(actions)h Fb(A)848 2052 y Fm(1)865 2048 y Fl(,)f Fb(A)920 2052 y Fm(2)937 2048 y Fl(.)25 b(Represen)o(ts)16 b(implemen)o(tation-dep)q(enden)o(t)i (order)e(of)f(p)q(er-)72 2098 y(formance)g(of)e(indivisible)h(subactions,)h (sp)q(ecializing)f(to)g(indep)q(enden)o(t)h(p)q(erformance)g(when)g(there)f (is)g(no)g(in)o(terference)72 2148 y(b)q(et)o(w)o(een)f Fb(A)249 2152 y Fm(1)279 2148 y Fl(and)h Fb(A)383 2152 y Fm(2)399 2148 y Fl(.)127 2226 y Fe({)23 b Fb(Basic)n(al)r(ly)13 b(interle)n(aving)s Fl(:)k(P)o(erforms)e(b)q(oth)h Fb(A)852 2230 y Fm(1)869 2226 y Fl(,)e Fb(A)923 2230 y Fm(2)940 2226 y Fl(,)h(with)f(arbitrary)h(in)o (terlea)o(ving)g(of)g(their)g(indivisible)f(steps.)172 2276 y(An)f(escap)q(e)h(or)f(a)g(failure)f(causes)i(an)o(y)g(remaining)f(parts)g (of)g(the)g(subactions)h(to)f(b)q(e)h(skipp)q(ed.)127 2343 y Fe({)23 b Fb(F)m(unctional)r(ly)9 b(c)n(onducting)s Fl(:)k(The)f(transien)o (ts)h(giv)o(en)f(to)g(the)g(com)o(bination)g(of)g Fb(A)1354 2347 y Fm(1)1371 2343 y Fl(,)f Fb(A)1422 2347 y Fm(2)1451 2343 y Fl(is)h(giv)o(en)g(to)g(b)q(oth)g Fb(A)1752 2347 y Fm(1)1769 2343 y Fl(,)g Fb(A)1821 2347 y Fm(2)1838 2343 y Fl(.)172 2394 y(On)j(normal)h(termination,)f(all)f(the)i(transien)o(ts)f(giv)o(en)h(b)o(y)f Fb(A)1082 2398 y Fm(1)1099 2394 y Fl(,)g Fb(A)1154 2398 y Fm(2)1186 2394 y Fl(is)f(collected)h(and)h(giv)o(en)g(b)o(y)f(the)g(com)o(bined)172 2444 y(action|if)e(b)q(oth)g(giv)o(e)f(one)h(or)g(more)f(items)h(of)f (transien)o(ts,)h(these)f(are)h(tupled)g(in)f(the)h(giv)o(en)g(order.)k(On)c (escap)q(e,)172 2494 y(only)g(the)h(transien)o(ts)f(giv)o(en)g(b)o(y)h(the)f (escap)q(e)h(is)e(giv)o(en)h(b)o(y)h(the)f(com)o(bined)h(action.)127 2561 y Fe({)23 b Fb(De)n(clar)n(atively)11 b(c)n(onducting)r Fl(:)k(The)f(bindings)g(receiv)o(ed)g(b)o(y)g(the)f(com)o(bination)h(of)f Fb(A)1404 2565 y Fm(1)1421 2561 y Fl(,)g Fb(A)1474 2565 y Fm(2)1504 2561 y Fl(are)h(receiv)o(ed)g(b)o(y)f(b)q(oth)172 2611 y Fb(A)201 2615 y Fm(1)218 2611 y Fl(,)f Fb(A)270 2615 y Fm(2)287 2611 y Fl(.)k(On)d(normal)g(termination,)f(all)g(the)g(bindings)i(pro)q(duced)g(b) o(y)f Fb(A)1248 2615 y Fm(1)1264 2611 y Fl(,)f Fb(A)1316 2615 y Fm(2)1346 2611 y Fl(are)g(collected)h(and)g(pro)q(duced)h(b)o(y)172 2662 y(the)f(com)o(bined)g(action|pro)o(vided)i(that)d(the)h(bindings)h(are)e (all)g(for)g(distinct)h(tok)o(ens,)g(otherwise)g(the)f(com)o(bined)172 2712 y(action)h(fails.)30 2789 y Fc(\017)23 b Fb(A)101 2793 y Fm(1)131 2789 y Fd(and)13 b(then)f Fb(A)314 2793 y Fm(2)331 2789 y Fl(:)17 b(a)c(basic)g(com)o(bination)g(of)g(actions)g Fb(A)908 2793 y Fm(1)925 2789 y Fl(,)g Fb(A)978 2793 y Fm(2)995 2789 y Fl(.)j(Represen)o(ts)e(dep)q(endency)i(on)d(normal)g(termination.)p eop %%Page: 40 43 40 42 bop 8 -137 a Fr(40)1061 b Fn(APPENDIX)15 b(B.)30 b(A)o(CTION)16 b(NOT)l(A)l(TION)177 12 y Fe({)23 b Fb(Basic)n(al)r(ly)11 b(\(normal\))h(se)n (quencing)s Fl(:)i(P)o(erforms)f Fb(A)949 16 y Fm(1)978 12 y Fl(\014rst.)18 b(If)12 b Fb(A)1140 16 y Fm(1)1170 12 y Fl(completes,)h(p)q (erforms)g Fb(A)1547 16 y Fm(2)1564 12 y Fl(.)80 92 y Fc(\017)23 b Fb(A)151 96 y Fm(1)181 92 y Fd(trap)13 b Fb(A)288 96 y Fm(2)304 92 y Fl(:)k(a)c(basic)g(action)h(com)o(bination.)j(Represen)o(ts)d(reco)o(v)o (ery)g(from)f(abnormal)g(termination.)177 172 y Fe({)23 b Fl(P)o(erforms)13 b Fb(A)414 176 y Fm(1)444 172 y Fl(\014rst.)k(If)12 b Fb(A)605 176 y Fm(1)635 172 y Fl(escap)q(es,)h(p)q(erforms)h Fb(A)971 176 y Fm(2)988 172 y Fl(.)177 241 y Fe({)23 b Fl(F)m(unctionally)13 b(comp)q(osing)h(\(see)f(the)g(functional)h(action)f Fb(A)1100 245 y Fm(1)1129 241 y Fd(then)g Fb(A)1242 245 y Fm(2)1271 241 y Fl(in)g(Section)h(B.2.1\).)80 320 y Fc(\017)23 b Fd(action)p Fl(:)16 b(the)d(sort)g(of)g(all)g(actions.)k(See)c(Section)h(B.8.3)e(for)h (notation)h(for)e(subsorts)i(of)f Fd(action)p Fl(.)8 472 y Fx(B.1.2)55 b(Yielders)80 546 y Fc(\017)23 b Fd(the)13 b Fb(d)k Fd(yielded)11 b(b)o(y)i Fb(Y)6 b Fl(:)18 b(a)c(yielder,)f(where)h Fb(d)i Fl(is)d(a)h(sort)g(of)f(data)h(and)g Fb(Y)20 b Fl(is)13 b(a)h(yielder.)k(When)d Fb(Y)20 b Fl(yields)13 b(an)h(individual,)122 597 y(it)e(yields)h(that)g(individual,)g(pro)o(vided)h(that)g(the)f (individual)g(is)g(included)g(in)g(the)g(sort,)g(otherwise)g(it)f(yields)h (nothing.)80 666 y Fc(\017)23 b Fl(Ev)o(ery)12 b Fb(data-op)n(er)n(ation)f Fl(\(i.e.,)g(op)q(eration)i(sp)q(eci\014ed)f(for)g(argumen)o(ts)h(included)g (in)f Fd(data)p Fl(\))g(is)g(extended)h(to)f(argumen)o(ts)h(of)122 716 y(sort)f Fd(yielder)p Fl(.)i(The)d(application)h(of)g(a)f(data)h(op)q (eration)g(to)g(yielders)f(yields)h(whatev)o(er)g(is)f(yielded)h(b)o(y)f (applying)i(the)e(data)122 766 y(op)q(eration)k(to)f(the)h(data)f(yielded)h (b)o(y)f(the)h(argumen)o(ts.)21 b(F)m(or)14 b(instance,)h Fd(sum)f(\()p Fb(Y)1314 770 y Fm(1)1331 766 y Fd(,)g Fb(Y)1385 770 y Fm(2)1402 766 y Fd(\))g Fl(yields)g(the)g(n)o(umerical)h(sum)f(of)122 816 y(whatev)o(er)f Fb(Y)315 820 y Fm(1)345 816 y Fl(and)h Fb(Y)449 820 y Fm(2)478 816 y Fl(yield.)80 884 y Fc(\017)23 b Fd(yielder)p Fl(:)15 b(the)e(sort)g(of)g(all)f(yielders.)17 b(See)c(Section)h(B.8.4)e(for)h(notation)h(for)f(subsorts)h(of)e Fd(yielder)p Fl(.)8 1036 y Fx(B.1.3)55 b(Data)80 1111 y Fc(\017)23 b Fd(datum)p Fl(:)16 b(a)10 b(sort.)16 b(Its)9 b(individuals)i(represen)o(t)f (items)g(of)g(data.)16 b(Left)10 b(op)q(en,)h(as)f(it)f(dep)q(ends)j(on)e (the)g(v)n(ariet)o(y)g(of)g(information)122 1161 y(pro)q(cessed)k(b)o(y)e (the)h(programs)g(of)f(a)h(programming)g(language.)18 b(Includes)13 b(generally-useful)g(sorts)f(from)g(data)h(notation)122 1211 y(\(see)g(App)q(endix)h(C\),)f(except)g(for)g(tuples.)18 b(Similarly)12 b(for)h Fd(distinct-datum)p Fl(,)e(the)i(sort)g(of)g(datum)h(whose)f (individuals)h(are)122 1261 y(distinguished)g(b)o(y)f(the)g(op)q(eration)p 648 1261 12 2 v 41 w Fd(is)p 712 1261 V 38 w Fl(.)80 1329 y Fc(\017)23 b Fd(data)p Fl(:)e(a)14 b(sort.)22 b(Its)15 b(individuals)g (represen)o(t)g(tuples,)g(i.e.,)f(ordered)i(collections)e(of)h(individuals)g (of)f(sort)h Fd(datum)p Fl(,)g(whic)o(h)122 1379 y(ma)o(y)e(also)g(b)q(e)g (pro)q(cessed)i(as)e(transien)o(t)g(information)g(\(see)g(Section)h(B.2.3\).) 80 1447 y Fc(\017)23 b Fd(a)14 b Fb(d)t Fl(:)j(the)d(same)g(data)g(as)f Fb(d)t Fl(.)18 b(Only)c(used)g(to)g(impro)o(v)o(e)g(the)f(readabilit)o(y)h (of)f(the)h(notation.)19 b(Similarly)13 b(for)g Fd(an)h Fb(d)t Fl(,)f Fd(the)g Fb(d)t Fl(,)122 1497 y Fd(of)f Fb(d)t Fl(,)g(and)h Fd(some)g Fb(d)t Fl(.)j(Th)o(us)d(an)h(application)f(of)f(an)h(op)q(eration)h Fb(op)g Fl(to)e(argumen)o(ts)i Fb(x)j Fl(can)c(b)q(e)g(written)f(as)h Fb(op)f(x)5 b Fl(,)11 b Fb(op)h Fd(of)g Fb(x)5 b Fl(,)122 1548 y(and)14 b Fd(the)f Fb(op)g Fd(of)h Fb(x)5 b Fl(.)17 b(Note)d(that)g(the)g(w) o(ords)f(`)p Fd(the)p Fl(')g(and)h(`)p Fd(of)p Fl(')f(are)h(obligatory)g (parts)g(of)f(some)h(other)g(op)q(eration)h(sym)o(b)q(ols.)122 1598 y(\(Compare)e(the)g(Hyp)q(erCard)h(scripting)f(language,)h(Hyp)q(erT)m (alk)f([Go)q(o87)q(].\))8 1773 y Fo(B.2)69 b(F)-6 b(unctional)25 b(Action)e(Notation)8 1861 y Fl(F)m(unctional)14 b(action)f(notation)g(is)g (primarily)g(concerned)h(with)e(sp)q(ecifying)i(the)f(pro)q(cessing)h(of)e (transien)o(t)i(information)f(\(data\).)8 1981 y Fx(B.2.1)55 b(Actions)80 2056 y Fc(\017)23 b Fb(A)o(l)r(l)13 b(primitive)f(functional)e (actions)s Fl(:)177 2136 y Fe({)23 b Fl(Do)13 b(not)h(commit.)177 2205 y Fe({)23 b Fl(Pro)q(duce)14 b(no)f(bindings.)177 2274 y Fe({)23 b Fl(Mak)o(e)13 b(no)h(c)o(hanges)g(to)f(storage.)177 2343 y Fe({)23 b Fl(Do)13 b(not)h(comm)o(unicate.)80 2423 y Fc(\017)23 b Fb(A)o(l)r(l)13 b(functional)d(action)i(c)n(ombinators)f(ar)n(e) s Fl(:)177 2504 y Fe({)23 b Fl(Declarativ)o(ely)13 b(conducting)h(\(see)f (the)h(basic)f(action)g Fb(A)1035 2508 y Fm(1)1065 2504 y Fd(and)f Fb(A)1164 2508 y Fm(2)1194 2504 y Fl(in)h(Section)g(B.1.1\).)80 2583 y Fc(\017)23 b Fd(give)13 b Fb(Y)6 b Fl(:)19 b(a)13 b(primitiv)o(e)g (functional)h(action,)g(where)g Fb(Y)20 b Fl(is)14 b(a)f(data)i(yielder.)k (Represen)o(ts)14 b(creating)h(a)e(piece)h(of)f(transien)o(t)122 2633 y(information.)177 2713 y Fe({)23 b Fl(Indivisible.)17 b(Completes)c(when)g Fb(Y)19 b Fl(yields)13 b(data.)18 b(F)m(ails)12 b(when)h Fb(Y)20 b Fl(yields)13 b(nothing.)177 2782 y Fe({)23 b Fl(Giv)o(es)13 b(the)g(data)h(yielded)f(b)o(y)g Fb(Y)7 b Fl(.)p eop %%Page: 41 44 41 43 bop -42 -137 a Fn(B.3.)35 b(DECLARA)l(TIVE)16 b(A)o(CTION)g(NOT)l(A)l (TION)929 b Fr(41)30 12 y Fc(\017)23 b Fd(escap)q(e)13 b(with)f Fb(Y)7 b Fl(:)17 b(a)c(primitiv)o(e)g(functional)g(action,)g(where)g Fb(Y)20 b Fl(is)12 b(a)i(data)f(yielder.)k(Represen)o(ts)d(escaping)g(with)f (a)g(piece)72 63 y(of)g(transien)o(t)g(information,)g(whic)o(h)g(ma)o(y)g(b)q (e)g(used)h(to)f(distinguish)g(di\013eren)o(t)h(reasons)g(for)f(escap)q(e.) 127 140 y Fe({)23 b Fl(Indivisible.)17 b(Escap)q(es)d(when)f Fb(Y)20 b Fl(yields)13 b(data.)k(F)m(ails)12 b(when)i Fb(Y)19 b Fl(yields)13 b(nothing.)127 208 y Fe({)23 b Fl(Giv)o(es)13 b(the)g(data)h(yielded)f(b)o(y)g Fb(Y)7 b Fl(.)30 286 y Fc(\017)23 b Fd(regive)p Fl(:)17 b(a)c(primitiv)o(e)g(functional)h(action.)k(Represen)o (ts)d(propagation)g(of)e(transien)o(t)g(information,)h(i.e.,)e(data.)18 b(Unit)13 b(for)72 336 y Fb(A)101 340 y Fm(1)131 336 y Fd(then)f Fb(A)243 340 y Fm(2)260 336 y Fl(.)127 414 y Fe({)23 b Fl(Indivisible.)17 b(Alw)o(a)o(ys)12 b(completes.)127 481 y Fe({)23 b Fl(Giv)o(es)13 b(an)o(y)h(giv)o(en)f(data.)30 559 y Fc(\017)23 b Fd(cho)q(ose)16 b Fb(Y)6 b Fl(:)22 b(a)16 b(functional)f(action,)h(where)g Fb(Y)22 b Fl(is)15 b(a)h(data)g(yielder.)24 b(Represen)o(ts)17 b(implemen)o(tation-dep)q(enden)o(t)g(c)o(hoice)72 609 y(b)q(et)o(w)o(een)c (a)g(p)q(ossibly)h(in\014nite)f(collection)g(of)g(individual)g(items)f(of)h (data.)127 687 y Fe({)23 b Fl(Indivisible.)16 b(Completes)9 b(when)h Fb(Y)17 b Fl(yields)9 b(a)h(sort)g(including)g(a)f(data)i (individual.)16 b(F)m(ails)9 b(when)h Fb(Y)16 b Fl(yields)10 b(nothing.)127 754 y Fe({)23 b Fl(Giv)o(es)13 b(an)o(y)h(individual)f(data)g (of)g(the)g(sort)g(yielded)h(b)o(y)f Fb(Y)7 b Fl(.)30 832 y Fc(\017)23 b Fd(check)9 b Fb(Y)e Fl(:)15 b(a)9 b(functional)g(action,)h (where)g Fb(Y)15 b Fl(is)9 b(a)h(truth-v)n(alue)f(yielder.)16 b(Represen)o(ts)10 b(a)g(guard)g(c)o(hec)o(king)g(that)f(a)h(condition)72 882 y(is)j(true.)127 960 y Fe({)23 b Fl(Indivisible.)17 b(Completes)c(when)g Fb(Y)20 b Fl(yields)13 b(true.)k(F)m(ails)12 b(when)h Fb(Y)20 b Fl(yields)13 b(false)f(\(or)h(nothing\).)127 1028 y Fe({)23 b Fl(Giv)o(es)13 b(no)g(data.)30 1105 y Fc(\017)23 b Fb(A)101 1109 y Fm(1)135 1105 y Fd(then)17 b Fb(A)252 1109 y Fm(2)268 1105 y Fl(:)26 b(a)17 b(functional)h(com)o(bination)g(of)f(actions)g Fb(A)960 1109 y Fm(1)977 1105 y Fl(,)h Fb(A)1035 1109 y Fm(2)1052 1105 y Fl(.)29 b(Represen)o(ts)19 b(passing)f(on)f(transien)o(t)h (information)72 1155 y(normally)m(.)127 1233 y Fe({)23 b Fl(Basically)13 b(sequencing)h(\(see)f(the)g(basic)h(action)f Fb(A)912 1237 y Fm(1)941 1233 y Fd(and)g(then)g Fb(A)1125 1237 y Fm(2)1154 1233 y Fl(in)g(Section)h(B.1.1\).)127 1301 y Fe({)23 b Fb(F)m(unctional)r(ly) 12 b(c)n(omp)n(osing)s Fl(:)17 b(The)e(transien)o(ts)g(giv)o(en)f(to)h(the)g (com)o(bination)g(of)f Fb(A)1370 1305 y Fm(1)1387 1301 y Fl(,)g Fb(A)1441 1305 y Fm(2)1472 1301 y Fl(are)h(giv)o(en)g(to)f Fb(A)1717 1305 y Fm(1)1734 1301 y Fl(.)21 b(Only)172 1351 y(the)c(transien)o (ts)f(giv)o(en)h(b)o(y)g Fb(A)611 1355 y Fm(1)644 1351 y Fl(are)f(giv)o(en)h (to)f Fb(A)894 1355 y Fm(2)927 1351 y Fl(\(pro)o(vided)h(that)f Fb(A)1218 1355 y Fm(2)1251 1351 y Fl(is)g(p)q(erformed\).)28 b(Only)16 b(the)h(transien)o(ts)172 1401 y(giv)o(en)c(b)o(y)h Fb(A)355 1405 y Fm(2)384 1401 y Fl(are)f(giv)o(en)h(b)o(y)f(the)g(com)o (bined)h(action.)-42 1548 y Fx(B.2.2)56 b(Yielders)30 1623 y Fc(\017)23 b Fd(given)10 b Fb(d)t Fl(:)15 b(a)c(data)g(yielder,)g(where)g Fb(d)j Fl(is)c(a)h(sort)g(of)g(data.)16 b(Yields)11 b(the)g(transien)o(t)g (data)g(giv)o(en)g(to)g(its)g(ev)n(aluation,)g(pro)o(vided)72 1673 y(that)i(the)g(data)h(is)f(of)f(sort)h Fb(d)t Fl(.)30 1740 y Fc(\017)23 b Fd(given)17 b Fb(d)t Fd(#)p Fb(p)r Fl(:)25 b(a)18 b(datum)g(yielder,)h(where)f Fb(d)j Fl(is)c(a)h(sort)f(of)h(datum)g (and)h Fb(p)g Fl(is)f(a)f(p)q(ositiv)o(e)h(in)o(teger.)31 b(Yields)17 b(the)h Fb(p)r Fl('th)72 1790 y(comp)q(onen)o(t)c(of)f(the)g(transien)o(t)h (data)f(giv)o(en)g(to)g(its)g(ev)n(aluation,)g(pro)o(vided)h(that)f(the)g (datum)h(is)f(of)f(sort)h Fb(d)t Fl(.)30 1857 y Fc(\017)23 b Fd(it)p Fl(:)16 b(a)d(datum)g(yielder.)k(Yields)c(the)g(single)g(datum)g (giv)o(en)h(to)f(its)f(ev)n(aluation)i(as)f(a)g(transien)o(t.)30 1924 y Fc(\017)23 b Fd(them)p Fl(:)17 b(a)c(data)h(yielder.)i(Yields)d(all)f (the)h(data)h(giv)o(en)f(to)g(its)g(ev)n(aluation)g(as)g(transien)o(ts.)-42 2071 y Fx(B.2.3)56 b(Data)30 2146 y Fc(\017)23 b Fd(data)p Fl(:)16 b(a)10 b(sort.)16 b(Its)9 b(individuals)h(represen)o(t)h(ordered)g (collections,)f(i.e.,)f(tuples,)h(of)g(individuals)g(of)f(sort)h Fd(datum)p Fl(,)h(pro)q(cessed)72 2196 y(as)i(transien)o(t)h(information.)-42 2365 y Fo(B.3)70 b(Declarativ)n(e)22 b(Action)h(Notation)-42 2452 y Fl(Declarativ)o(e)10 b(action)g(notation)h(is)e(primarily)h(concerned) h(with)e(sp)q(ecifying)h(the)g(pro)q(cessing)h(of)e(scop)q(ed)i(information)f (\(bindings\).)-42 2570 y Fx(B.3.1)56 b(Actions)30 2644 y Fc(\017)23 b Fb(A)o(l)r(l)13 b(primitive)f(de)n(clar)n(ative)f(actions)s Fl(:)127 2722 y Fe({)23 b Fl(Do)13 b(not)h(commit.)127 2789 y Fe({)23 b Fl(Giv)o(e)13 b(no)g(transien)o(ts.)p eop %%Page: 42 45 42 44 bop 8 -137 a Fr(42)1061 b Fn(APPENDIX)15 b(B.)30 b(A)o(CTION)16 b(NOT)l(A)l(TION)177 12 y Fe({)23 b Fl(Mak)o(e)13 b(no)h(c)o(hanges)g(to)f (storage.)177 79 y Fe({)23 b Fl(Do)13 b(not)h(comm)o(unicate.)80 157 y Fc(\017)23 b Fb(A)o(l)r(l)13 b(de)n(clar)n(ative)d(action)i(c)n (ombinators)f(ar)n(e)s Fl(:)177 235 y Fe({)23 b Fl(F)m(unctionally)13 b(conducting)i(\(see)e(the)g(basic)g(action)g Fb(A)1023 239 y Fm(1)1053 235 y Fd(and)g Fb(A)1153 239 y Fm(2)1182 235 y Fl(in)g(Section)g(B.1.1\).)80 313 y Fc(\017)23 b Fd(bind)16 b Fb(T)22 b Fd(to)17 b Fb(Y)7 b Fl(:)25 b(a)17 b(primitiv)o(e)g(declarativ)o (e)g(action,)h(where)f Fb(T)23 b Fl(is)16 b(a)i(tok)o(en)f(and)h Fb(Y)24 b Fl(is)17 b(a)g(yielder)g(of)g(bindable)h(data.)122 363 y(Represen)o(ts)c(creating)f(a)g(piece)g(of)g(scop)q(ed)h(information.) 177 441 y Fe({)23 b Fl(Indivisible.)17 b(Completes)c(when)g Fb(Y)19 b Fl(yields)13 b(data)h(of)f(sort)g Fd(bindable)p Fl(.)i(F)m(ails)d (otherwise.)177 508 y Fe({)23 b Fl(Pro)q(duces)14 b(the)f(binding)h(of)f(the) g(tok)o(en)g Fb(T)18 b Fl(to)13 b(the)h(bindable)f(data.)80 594 y Fc(\017)23 b Fd(unbind)10 b Fb(T)5 b Fl(:)16 b(a)c(primitiv)o(e)f (declarativ)o(e)i(action,)f(where)f Fb(T)17 b Fl(is)12 b(a)g(tok)o(en.)17 b(Represen)o(ts)c(hiding)f(a)g(piece)g(of)f(scop)q(ed)i(informa-)122 644 y(tion,)g(making)g(a)g(hole)g(in)g(its)f(scop)q(e.)177 722 y Fe({)23 b Fl(Indivisible.)17 b(Completes.)177 789 y Fe({)23 b Fl(Pro)q(duces)14 b(the)f(binding)h(of)f(the)g(tok)o(en)g Fb(T)18 b Fl(to)13 b(the)h(datum)f Fd(unkno)o(wn)p Fl(.)80 867 y Fc(\017)23 b Fd(rebind)p Fl(:)16 b(a)d(primitiv)o(e)g(declarativ)o(e)g (action.)18 b(Represen)o(ts)c(propagation)g(of)f(scop)q(ed)i(information.)i (Unit)c(for)g(the)g(declar-)122 917 y(ativ)o(e)g(action)g Fb(A)360 921 y Fm(1)390 917 y Fd(hence)f Fb(A)522 921 y Fm(2)539 917 y Fl(.)177 995 y Fe({)23 b Fl(Indivisible.)17 b(Alw)o(a)o(ys)12 b(completes.)177 1062 y Fe({)23 b Fl(Pro)q(duces)14 b(all)e(receiv)o(ed)i (bindings.)80 1139 y Fc(\017)23 b Fd(p)o(ro)q(duce)13 b Fb(Y)6 b Fl(:)17 b(a)c(primitiv)o(e)g(declarativ)o(e)g(action.)k(Represen)o(ts)d (pro)q(duction)g(of)f(rei\014ed)g(scop)q(ed)h(information.)177 1217 y Fe({)23 b Fl(Indivisible.)17 b(Completes)c(when)g Fb(Y)19 b Fl(yields)13 b(a)g(datum)h(of)f(sort)g Fd(bindings)p Fl(.)177 1284 y Fe({)23 b Fl(Pro)q(duces)14 b(the)f(bindings)h(yielded)f(b)o(y)h Fb(Y)6 b Fl(.)80 1362 y Fc(\017)23 b Fd(furthermo)o(re)14 b Fb(A)p Fl(:)19 b(a)c(declarativ)o(e)f(com)o(bination)h(of)f(the)h(action)f Fb(A)p Fl(.)20 b(Represen)o(ts)c(propagating)f(the)g(receiv)o(ed)f(bindings,) 122 1412 y(but)f(letting)g(bindings)h(pro)q(duced)g(b)o(y)g Fb(A)e Fl(tak)o(e)h(precedence)h(when)g(there)f(is)g(a)g(con\015ict.)177 1490 y Fe({)23 b Fl(Basically)13 b(as)g Fb(A)p Fl(.)177 1557 y Fe({)23 b Fl(F)m(unctionally)13 b(as)g Fb(A)p Fl(.)177 1624 y Fe({)23 b Fl(Declarativ)o(ely)13 b(as)g Fd(rebind)f(mo)o(reover)i Fb(A)p Fl(.)80 1702 y Fc(\017)23 b Fb(A)151 1706 y Fm(1)177 1702 y Fd(mo)o(reover)11 b Fb(A)362 1706 y Fm(2)379 1702 y Fl(:)k(a)10 b(declarativ)o(e)g(com)o(bination)h(of)f(actions)g Fb(A)1038 1706 y Fm(1)1055 1702 y Fl(,)g Fb(A)1105 1706 y Fm(2)1121 1702 y Fl(.)16 b(Lik)o(e)10 b Fb(A)1258 1706 y Fm(1)1284 1702 y Fd(and)g Fb(A)1381 1706 y Fm(2)1398 1702 y Fl(,)g(but)g(giv)o(es)g(priorit) o(y)g(to)g(bindings)122 1752 y(pro)q(duced)k(b)o(y)g Fb(A)372 1756 y Fm(2)389 1752 y Fl(.)177 1830 y Fe({)23 b Fl(Basically)13 b(in)o(terlea)o(ving)g(\(see)g(the)g(basic)g(action)g Fb(A)976 1834 y Fm(1)1006 1830 y Fd(and)g Fb(A)1106 1834 y Fm(2)1136 1830 y Fl(in)f(Section)i(B.1.1\).)177 1897 y Fe({)23 b Fb(De)n(clar)n (atively)11 b(overlaying)s Fl(:)16 b(The)e(bindings)h(receiv)o(ed)f(b)o(y)h (the)f(com)o(bination)h(of)e Fb(A)1451 1901 y Fm(1)1468 1897 y Fl(,)h Fb(A)1522 1901 y Fm(2)1552 1897 y Fl(are)h(receiv)o(ed)f(b)o(y)g(b)q (oth)222 1947 y Fb(A)251 1951 y Fm(1)268 1947 y Fl(,)f Fb(A)321 1951 y Fm(2)338 1947 y Fl(.)18 b(On)c(normal)g(termination)f(the)h(bindings)h (pro)q(duced)g(b)o(y)f Fb(A)1245 1951 y Fm(1)1261 1947 y Fl(,)g(o)o(v)o (erlaid)f(with)g(those)i(pro)q(duced)g(b)o(y)f Fb(A)1871 1951 y Fm(2)1887 1947 y Fl(,)222 1998 y(are)f(pro)q(duced)i(b)o(y)e(the)g(com)o (bined)h(action.)80 2084 y Fc(\017)23 b Fb(A)151 2088 y Fm(1)184 2084 y Fd(hence)17 b Fb(A)321 2088 y Fm(2)338 2084 y Fl(:)24 b(a)17 b(declarativ)o(e)g(com)o(bination)g(of)g(actions)g Fb(A)1040 2088 y Fm(1)1057 2084 y Fl(,)g Fb(A)1114 2088 y Fm(2)1131 2084 y Fl(.)28 b(Represen)o(ts)18 b(passing)f(on)g(scop)q(ed)h(information,)122 2134 y(restricting)13 b(the)g(bindings)h(receiv)o(ed)f(b)o(y)g Fb(A)755 2138 y Fm(2)772 2134 y Fl(.)177 2212 y Fe({)23 b Fl(Basically)13 b(sequencing)h(\(see)f(the)g(basic)g(action)h Fb(A)962 2216 y Fm(1)991 2212 y Fd(and)f(then)g Fb(A)1175 2216 y Fm(2)1204 2212 y Fl(in)g(Section)g(B.1.1\).)177 2279 y Fe({)23 b Fb(De)n(clar)n (atively)13 b(c)n(omp)n(osing)s Fl(:)19 b(The)c(bindings)h(receiv)o(ed)g(b)o (y)g(the)f(com)o(bination)h(of)f Fb(A)1465 2283 y Fm(1)1482 2279 y Fl(,)h Fb(A)1538 2283 y Fm(2)1570 2279 y Fl(are)f(receiv)o(ed)h(b)o(y) g Fb(A)1871 2283 y Fm(1)1887 2279 y Fl(.)222 2329 y(Only)g(the)h(bindings)g (pro)q(duced)h(b)o(y)f Fb(A)804 2333 y Fm(1)837 2329 y Fl(are)g(receiv)o(ed)g (b)o(y)g Fb(A)1142 2333 y Fm(2)1175 2329 y Fl(\(pro)o(vided)g(that)g(it)f(is) g(p)q(erformed\).)28 b(Only)17 b(the)222 2379 y(bindings)d(pro)q(duced)g(b)o (y)g Fb(A)626 2383 y Fm(2)655 2379 y Fl(are)f(pro)q(duced)i(b)o(y)e(the)g (com)o(bined)h(action.)80 2457 y Fc(\017)23 b Fb(A)151 2461 y Fm(1)181 2457 y Fd(b)q(efo)o(re)12 b Fb(A)320 2461 y Fm(2)337 2457 y Fl(:)17 b(a)c(declarativ)o(e)g(com)o(bination)h(of)e(actions)i Fb(A)1013 2461 y Fm(1)1030 2457 y Fl(,)e Fb(A)1082 2461 y Fm(2)1099 2457 y Fl(.)17 b(Represen)o(ts)d(accum)o(ulating)f(scop)q(ed)i(information.) 177 2535 y Fe({)23 b Fl(Basically)13 b(sequencing)h(\(see)f(the)g(basic)g (action)h Fb(A)962 2539 y Fm(1)991 2535 y Fd(and)f(then)g Fb(A)1175 2539 y Fm(2)1204 2535 y Fl(in)g(Section)g(B.1.1\).)177 2602 y Fe({)23 b Fb(De)n(clar)n(atively)14 b(ac)n(cumulating)s Fl(:)22 b(The)17 b(bindings)h(receiv)o(ed)f(b)o(y)g(the)h(com)o(bination)f(of)g Fb(A)1530 2606 y Fm(1)1547 2602 y Fl(,)g Fb(A)1604 2606 y Fm(2)1638 2602 y Fl(are)g(receiv)o(ed)h(b)o(y)222 2652 y Fb(A)251 2656 y Fm(1)268 2652 y Fl(.)h(The)13 b(bindings)i(receiv)o(ed)f(b)o(y)g(the)g(com) o(bined)g(action,)g(o)o(v)o(erlaid)g(with)f(the)h(bindings)g(pro)q(duced)i(b) o(y)e Fb(A)1806 2656 y Fm(1)1822 2652 y Fl(,)g(are)222 2702 y(receiv)o(ed)i(b)o(y)f Fb(A)456 2706 y Fm(2)488 2702 y Fl(\(pro)o(vided)i (that)e(it)g(is)g(p)q(erformed\).)25 b(On)16 b(normal)f(termination)h(the)f (bindings)i(pro)q(duced)g(b)o(y)222 2753 y Fb(A)251 2757 y Fm(1)268 2753 y Fl(,)12 b(o)o(v)o(erlaid)h(with)g(those)g(pro)q(duced)i(b)o (y)e Fb(A)873 2757 y Fm(2)890 2753 y Fl(,)f(are)h(pro)q(duced)i(b)o(y)e(the)h (com)o(bined)f(action.)p eop %%Page: 43 46 43 45 bop -42 -137 a Fn(B.4.)35 b(IMPERA)l(TIVE)16 b(A)o(CTION)g(NOT)l(A)l (TION)970 b Fr(43)-42 12 y Fx(B.3.2)56 b(Yielders)30 86 y Fc(\017)23 b Fd(current)13 b(bindings)p Fl(:)h(a)f(yielder)g(of)g(bindings)h(maps.)j (Yields)12 b(the)i(collection)e(of)h(bindings)h(receiv)o(ed)f(b)o(y)g(its)g (ev)n(aluation.)30 154 y Fc(\017)23 b Fd(the)13 b Fb(d)k Fd(b)q(ound)12 b(to)i Fb(T)5 b Fl(:)18 b(a)13 b(yielder)g(of)g(bindable)h(data,)g(where)f Fb(d)k Fl(is)c(a)g(sort)h(of)f(data)h(and)g Fb(T)k Fl(is)13 b(a)h(tok)o(en.)k(Yields)13 b(the)h(data)72 205 y(of)f(sort)g Fb(d)j Fl(to)d(whic)o(h)g Fb(T)18 b Fl(is)13 b(b)q(ound)h(b)o(y)f(the)h (receiv)o(ed)f(bindings,)g(if)g(an)o(y)m(.)-42 358 y Fx(B.3.3)56 b(Data)30 432 y Fc(\017)23 b Fd(bindings)p Fl(:)13 b(a)d(subsort)i(of)e Fd(map)p Fl(.)16 b(Its)10 b(individuals)h(represen)o(t)g(collections)f(of)h (asso)q(ciations)g(b)q(et)o(w)o(een)f(tok)o(ens)h(and)g(bindable)72 482 y(\(or)i Fd(unkno)o(wn)p Fl(\))f(individuals.)30 550 y Fc(\017)23 b Fd(tok)o(en)p Fl(:)16 b(a)11 b(subsort)h(of)f Fd(distinct-datum)p Fl(.)j(Left)c(unsp)q(eci\014ed,)j(as)e(it)g(dep)q(ends)h (on)g(the)f(v)n(ariet)o(y)g(of)g(iden)o(ti\014ers)h(of)e(a)h(program-)72 600 y(ming)i(language.)18 b(\(Usually)m(,)12 b(it)h(is)f(a)h(subsort)h(of)f Fd(string)p Fl(.\))30 668 y Fc(\017)23 b Fd(bindable)p Fl(:)15 b(a)d(subsort)h(of)f Fd(data)p Fl(.)17 b(Left)11 b(op)q(en,)i(as)g(it)e(dep)q (ends)j(on)e(the)h(v)n(ariet)o(y)f(of)g(scop)q(ed)h(information)f(pro)q (cessed)h(b)o(y)g(the)72 718 y(programs)h(of)f(a)g(programming)h(language.) -42 894 y Fo(B.4)70 b(Imp)r(erativ)n(e)21 b(Action)i(Notation)-42 982 y Fl(Imp)q(erativ)o(e)14 b(action)f(notation)h(is)e(primarily)h (concerned)h(with)f(sp)q(ecifying)g(the)g(pro)q(cessing)h(of)f(stable)g (information)g(\(storage\).)-42 1102 y Fx(B.4.1)56 b(Actions)30 1178 y Fc(\017)23 b Fb(A)o(l)r(l)13 b(primitive)f(imp)n(er)n(ative)g(actions) s Fl(:)127 1258 y Fe({)23 b Fl(Giv)o(e)13 b(no)g(transien)o(ts.)127 1327 y Fe({)23 b Fl(Pro)q(duce)14 b(no)f(bindings.)127 1397 y Fe({)23 b Fl(Do)13 b(not)h(comm)o(unicate.)30 1477 y Fc(\017)23 b Fb(Ther)n(e)13 b(ar)n(e)h(no)e(sp)n(e)n(cial)g(imp)n(er)n(ative)g(action)f (c)n(ombinators)s Fl(.)30 1545 y Fc(\017)23 b Fd(sto)o(re)13 b Fb(Y)191 1549 y Fm(1)220 1545 y Fd(in)f Fb(Y)291 1549 y Fm(2)308 1545 y Fl(:)k(a)d(primitiv)o(e)g(imp)q(erativ)o(e)f(action,)h(where)g Fb(Y)988 1549 y Fm(1)1018 1545 y Fl(is)f(a)h(yielder)g(of)f(storable)i(data)f (and)h Fb(Y)1593 1549 y Fm(2)1622 1545 y Fl(is)f(a)g(yielder)f(of)72 1595 y(cells.)k(Represen)o(ts)f(c)o(hanging)f(an)f(atomic)g(piece)g(of)g (stable)g(information.)127 1676 y Fe({)23 b Fl(Indivisible.)16 b(Commits)11 b(and)h(completes)f(when)h Fb(Y)911 1680 y Fm(2)939 1676 y Fl(yields)f(a)g(reserv)o(ed)h(cell)e(and)i Fb(Y)1391 1680 y Fm(1)1419 1676 y Fl(yields)f(storable)h(data.)17 b(F)m(ails)172 1726 y(otherwise.)127 1795 y Fe({)23 b Fl(Stores)14 b(the)f(storable)g (yielded)g(b)o(y)h Fb(Y)713 1799 y Fm(1)742 1795 y Fl(in)f(the)g(cell)g (yielded)g(b)o(y)g Fb(Y)1135 1799 y Fm(2)1152 1795 y Fl(.)30 1875 y Fc(\017)23 b Fd(reserve)c Fb(Y)7 b Fl(:)29 b(a)19 b(primitiv)o(e)f (imp)q(erativ)o(e)h(action,)i(where)e Fb(Y)25 b Fl(is)19 b(a)g(yielder)g(of)g (cells.)35 b(Represen)o(ts)20 b(extending)g(stable)72 1925 y(information)13 b(with)g(an)g(extra,)g(uninitialized)g(piece.)127 2006 y Fe({)23 b Fl(Indivisible.)17 b(Commits)12 b(and)i(completes)f(when)h Fb(Y)19 b Fl(yields)13 b(an)g(unreserv)o(ed)i(cell.)h(F)m(ails)c(otherwise.) 127 2075 y Fe({)23 b Fl(Reserv)o(es)14 b(the)f(cell)f(yielded)i(b)o(y)f Fb(Y)19 b Fl(and)14 b(stores)f(the)h(datum)f Fd(uninitiali)o(zed)c Fl(in)k(it.)30 2154 y Fc(\017)23 b Fd(unreserve)13 b Fb(Y)7 b Fl(:)19 b(a)14 b(primitiv)o(e)f(imp)q(erativ)o(e)h(action,)g(where)g Fb(Y)20 b Fl(is)14 b(a)g(cell)f(yielder.)20 b(Represen)o(ts)15 b(destro)o(ying)f(stable)h(infor-)72 2204 y(mation.)127 2285 y Fe({)23 b Fl(Indivisible.)17 b(Commits)12 b(and)i(completes)f(when)h Fb(Y)19 b Fl(yields)13 b(a)g(reserv)o(ed)h(cell.)i(F)m(ails)c(otherwise.)127 2354 y Fe({)23 b Fl(Unreserv)o(es)14 b(the)f(cell)f(yielded)h(b)o(y)h Fb(Y)7 b Fl(.)-42 2507 y Fx(B.4.2)56 b(Yielders)30 2581 y Fc(\017)23 b Fd(current)13 b(sto)o(rage)p Fl(:)k(a)c(yielder)g(of)g(storage)g(maps.)18 b(Yields)12 b(the)h(state)g(of)g(storage.)30 2649 y Fc(\017)23 b Fd(the)14 b Fb(d)j Fd(sto)o(red)c(in)g Fb(Y)7 b Fl(:)19 b(a)14 b(yielder)f(of)h(storable)h(data,)f(where)g Fb(d)j Fl(is)d(a)g(sort)g(of)f (data)i(and)g Fb(Y)20 b Fl(is)14 b(a)g(yielder)g(of)f(cells.)20 b(Yields)72 2700 y(the)14 b(data)g(of)f(sort)h Fb(d)j Fl(stored)d(in)f(the)h (cell)f(yielded)h(b)o(y)g Fb(Y)20 b Fl(according)14 b(to)g(the)g(curren)o(t)g (storage,)g(pro)o(vided)g(that)g(the)g(cell)72 2750 y(is)f(curren)o(tly)g (reserv)o(ed.)p eop %%Page: 44 47 44 46 bop 8 -137 a Fr(44)1061 b Fn(APPENDIX)15 b(B.)30 b(A)o(CTION)16 b(NOT)l(A)l(TION)8 12 y Fx(B.4.3)55 b(Data)80 90 y Fc(\017)23 b Fd(sto)o(rage)p Fl(:)h(a)16 b(subsort)h(of)f Fd(map)p Fl(.)28 b(Its)16 b(individuals)h(represen)o(ts)g(states)f(of)g(stable)h(information,) g(asso)q(ciating)g(cells)e(with)122 140 y(storable)e(\(or)g Fd(uninitiali)o(zed)o Fl(\))d(individuals.)80 204 y Fc(\017)23 b Fd(cell)p Fl(:)14 b(a)e(subsort)g(of)f Fd(distinct-datum)p Fl(.)j(Its)d(individuals)h(represen)o(t)g(the)g(lo)q(cations)f(of)h(pieces)f (of)g(stable)h(information.)k(Left)122 254 y(lo)q(osely-sp)q(eci\014ed,)e(as) f(the)g(details)g(are)g(implemen)o(tation-dep)q(enden)o(t.)80 317 y Fc(\017)23 b Fd(sto)o(rable)p Fl(:)18 b(a)d(subsort)g(of)f Fd(data)p Fl(.)21 b(Left)13 b(unsp)q(eci\014ed,)j(as)f(it)e(dep)q(ends)j(on)e (the)h(v)n(ariet)o(y)f(of)g(stable)g(information)h(pro)q(cessed)122 368 y(b)o(y)e(the)g(programs)h(of)f(a)g(programming)h(language.)8 520 y Fo(B.5)69 b(Re\015ectiv)n(e)21 b(Action)i(Notation)8 607 y Fl(Re\015ectiv)o(e)14 b(action)e(notation)i(is)e(concerned)i(with)e(sp) q(ecifying)h(the)g Fb(r)n(ei\014c)n(ation)g Fl(of)f(actions)h(and)h (information)e(as)h(abstractions,)8 657 y(and)h(with)e(the)i Fb(r)n(e\015e)n(ction)f Fl(of)f(abstractions)i(as)g(actions.)8 771 y Fx(B.5.1)55 b(Actions)80 848 y Fc(\017)23 b Fd(enact)15 b Fb(Y)7 b Fl(:)21 b(a)15 b(re\015ectiv)o(e)g(action,)g(where)g Fb(Y)22 b Fl(is)14 b(a)h(yielder)g(of)g(abstractions.)24 b(Represen)o(ts)16 b(p)q(erforming)g(an)f(action)g(in)g(a)122 899 y(con)o(text)e(di\013eren)o(t) h(from)f(that)g(of)g(its)f(o)q(ccurrence.)177 969 y Fe({)23 b Fl(P)o(erforms)13 b(the)g(action)g(incorp)q(orated)i(in)d(the)i (abstraction)f(yielded)h(b)o(y)f(ev)n(aluating)g Fb(Y)7 b Fl(.)177 1029 y Fe({)23 b Fl(The)c(p)q(erformance)h(of)f(the)h(incorp)q(orated)g (action)g(is)e(giv)o(en)i(no)g(data.)36 b(\(But)19 b(see)g(the)h(abstraction) g(yielder)222 1080 y Fd(application)11 b Fb(d)429 1084 y Fm(1)458 1080 y Fd(to)i Fb(d)524 1084 y Fm(2)541 1080 y Fl(.\))177 1140 y Fe({)23 b Fl(The)15 b(p)q(erformance)h(of)f(the)g(incorp)q(orated)h(action) g(receiv)o(es)f(no)g(bindings.)24 b(\(But)16 b(see)f(the)g(abstraction)h (yielder)222 1190 y Fd(closure)c Fb(d)t Fl(.\))8 1320 y Fx(B.5.2)55 b(Yielders)80 1397 y Fc(\017)23 b Fd(application)9 b Fb(d)327 1401 y Fm(1)355 1397 y Fd(to)i Fb(d)419 1401 y Fm(2)436 1397 y Fl(:)k(an)d(abstraction,)g(when)f Fb(d)842 1401 y Fm(1)870 1397 y Fl(is)g(an)g(abstraction)h(and)g Fb(d)1250 1401 y Fm(2)1278 1397 y Fl(is)f(data.)17 b(Incorp)q(orates)12 b(the)f(same)h(action)122 1448 y(as)j Fb(d)191 1452 y Fm(1)208 1448 y Fl(,)g(except)h(that)f(the)g (incorp)q(orated)h(action)g(is)e(giv)o(en)i Fb(d)1018 1452 y Fm(2)1049 1448 y Fl(as)f(transien)o(ts)h(whenev)o(er)g(the)f(abstraction)h (is)e(enacted.)122 1498 y(Represen)o(ts)g(supplying)g(transien)o(ts)g(to)f (an)g(abstraction)h(\(precluding)f(the)h(supply)g(of)e(further)h(transien)o (ts\).)122 1553 y(This)e(op)q(eration)g(extends)h(to)f(yielders)g Fb(Y)727 1557 y Fm(1)744 1553 y Fl(,)g Fb(Y)795 1557 y Fm(2)822 1553 y Fl(in)g(the)g(usual)h(w)o(a)o(y:)j(it)c(is)f(ev)n(aluated)i(b)o(y)f (applying)h(the)f(ab)q(o)o(v)o(e)h(op)q(eration)122 1603 y(to)h(the)g(data)g (yielded)h(b)o(y)f(ev)n(aluating)h Fb(Y)721 1607 y Fm(1)737 1603 y Fl(,)f Fb(Y)790 1607 y Fm(2)807 1603 y Fl(.)80 1667 y Fc(\017)23 b Fd(closure)12 b Fb(d)t Fl(:)17 b(an)c(abstraction)h(yielder,)f (where)h Fb(d)i Fl(is)d(an)g(abstraction.)19 b(Yields)13 b(an)g(abstraction)h (whic)o(h)f(incorp)q(orates)i(the)122 1717 y(same)c(action)f(as)h Fb(d)t Fl(,)f(except)h(that)g(the)f(incorp)q(orated)i(action)f(receiv)o(es)f (particular)h(bindings)g(whenev)o(er)g(the)g(abstraction)122 1767 y(is)i(enacted.)k(The)c(bindings)h(are)f(those)h(curren)o(t)f(for)g(the) g(ev)n(aluation)h(of)e Fd(closure)g Fb(d)t Fl(.)122 1823 y(This)g(op)q (eration)i(extends)g(to)f(yielders)g Fb(Y)19 b Fl(in)13 b(the)g(usual)g(w)o (a)o(y:)k(it)12 b(is)g(ev)n(aluated)i(b)o(y)f(applying)h(the)f(ab)q(o)o(v)o (e)g(op)q(eration)h(to)122 1873 y(the)f(datum)h(yielded)f(b)o(y)g(ev)n (aluating)h Fb(Y)7 b Fl(.)122 1928 y(The)j(yielder)g Fd(closure)g (abstraction)f(of)h Fb(A)g Fl(represen)o(ts)h(rei\014cation)f(of)g(an)h (action)g(as)f(an)h(abstraction)g(with)e(static)h(bindings.)122 1978 y(The)17 b(action)g Fd(enact)g(the)g(closure)f(of)h(a)g(given)f (abstraction)g Fl(represen)o(ts)i(re\015ection)g(of)e(an)i(abstraction)g (with)e(dynamic)122 2028 y(bindings)11 b(\(unless)g(static)g(bindings)g(w)o (ere)f(already)i(supplied)f(to)f(it\).)16 b(The)10 b(action)h Fd(enact)g(a)g(given)e(abstraction)h Fl(represen)o(ts)122 2079 y(re\015ection)j(of)g(an)h(abstraction)f(with)g(no)g(bindings)h(\(unless)f (static)g(bindings)h(w)o(ere)f(already)g(supplied)h(to)f(it\).)8 2208 y Fx(B.5.3)55 b(Data)80 2286 y Fc(\017)23 b Fd(abstraction)p Fl(:)e(the)15 b(sort)g(of)g(datum)h(that)f(incorp)q(orates)h(\(i.e.,)f (rei\014es\))g(an)g(action.)24 b(The)15 b(incorp)q(orated)i(action)e(is)g(p)q (er-)122 2336 y(formed)e(when)g(the)h(abstraction)f(is)g(enacted)h(\(i.e.,)d (re\015ected\).)80 2400 y Fc(\017)23 b Fd(abstraction)10 b(of)h Fb(A)p Fl(:)k(an)c(abstraction,)h(where)f Fb(A)g Fl(is)f(an)h(action.)17 b(Incorp)q(orates)12 b Fb(A)p Fl(.)k(Represen)o(ts)c(\(a)f(p)q(oin)o(ter)g (to\))g(the)g(`co)q(de')122 2450 y(implemen)o(ting)h Fb(A)p Fl(.)k(Yielders)c(o)q(ccurring)g(in)g Fb(A)g Fl(do)g Fb(not)i Fl(get)e(ev)n(aluated)h(when)f(the)h(abstraction)f(is)g(ev)n(aluated:)17 b(they)c(are)122 2500 y(left)f(for)h(ev)n(aluation)g(during)h(the)f(p)q (erformance)h(of)f(the)g(incorp)q(orated)h(action.)8 2652 y Fo(B.6)69 b(Comm)n(unicativ)n(e)20 b(Action)j(Notation)8 2739 y Fl(Comm)o(unicativ)o(e)15 b(action)f(notation)h(is)e(primarily)h(concerned) h(with)f(sp)q(ecifying)g(the)h(pro)q(cessing)g(of)f(p)q(ermanen)o(t)h (information)8 2789 y(\(comm)o(unications\).)p eop %%Page: 45 48 45 47 bop -42 -137 a Fn(B.6.)35 b(COMMUNICA)l(TIVE)16 b(A)o(CTION)f(NOT)l(A)l (TION)855 b Fr(45)-42 12 y Fx(B.6.1)56 b(Actions)30 87 y Fc(\017)23 b Fb(A)o(l)r(l)13 b(primitive)f(c)n(ommunic)n(ative)f(actions)s Fl(:)127 165 y Fe({)23 b Fl(Giv)o(e)13 b(no)g(transien)o(ts.)127 232 y Fe({)23 b Fl(Pro)q(duce)14 b(no)f(bindings.)127 299 y Fe({)23 b Fl(Mak)o(e)14 b(no)f(c)o(hanges)h(to)f(storage.)30 377 y Fc(\017)23 b Fb(Ther)n(e)13 b(is)h(only)e(a)h(unary)f(c)n(ommunic)n (ative)f(action)h(c)n(ombinator)t Fl(.)30 444 y Fc(\017)23 b Fd(send)15 b Fb(Y)7 b Fl(:)21 b(a)16 b(primitiv)o(e)f(comm)o(unicativ)o(e)h (action,)g(where)f Fb(Y)22 b Fl(yields)16 b(a)f(sort)h(of)f(message.)25 b(Represen)o(ts)17 b(initiating)e(the)72 494 y(transmission)i(of)f(a)g (message.)27 b(The)16 b(usual)h(form)f(of)g Fb(Y)22 b Fl(is)16 b Fd(a)d(message)h([to)f Fb(Y)1234 498 y Fm(1)1251 494 y Fd(])g([containing)e Fb(Y)1493 498 y Fm(2)1510 494 y Fd(])p Fl(,)17 b(where)f Fb(Y)1692 498 y Fm(1)1725 494 y Fl(and)g Fb(Y)1831 498 y Fm(2)72 545 y Fl(yield)d(individuals.)127 623 y Fe({)23 b Fl(Indivisible.)17 b(Commits)11 b(and)i(completes)f(when)g(the)g(sort)h(of)e(message)i(yielded)f (b)o(y)h Fb(Y)18 b Fl(includes)13 b(a)f(message)g(from)172 673 y(the)h(curren)o(t)h(p)q(erformer)f(\(with)g(the)g(next)g(serial)g(n)o (um)o(b)q(er\).)k(F)m(ails)c(otherwise.)127 740 y Fe({)23 b Fl(Emits)16 b(a)h(message)g(of)g(the)f(sort)h(yielded)g(b)o(y)g Fb(Y)7 b Fl(.)27 b(The)17 b(serial)f(n)o(um)o(b)q(er)h(of)g(the)f(message)i (is)e(the)h(successor)g(of)172 790 y(that)d(of)f(the)h(previous)g(message)g (sen)o(t)g(\(or)g(con)o(tract)g(o\013ered\))g(b)o(y)g(the)g(p)q(erforming)g (agen)o(t.)19 b(Message)14 b(transmis-)172 841 y(sion)i(is)f(reliable,)h(but) g(eac)o(h)g(message)g(tak)o(es)g(an)g(implemen)o(tation-dep)q(enden)o(t)i (`time')c(to)i(arriv)o(e)g(\(so)f(message)172 891 y(transmission)f(b)q(et)o (w)o(een)f(t)o(w)o(o)g(particular)g(agen)o(ts)g(is)g(not)g(necessarily)h (order-preserving\).)30 968 y Fc(\017)23 b Fd(remove)12 b Fb(Y)7 b Fl(:)16 b(a)11 b(primitiv)o(e)g(comm)o(unicativ)o(e)h(action,)f(where)h Fb(Y)18 b Fl(is)11 b(a)g(yielder)g(of)g(individual)h(messages.)17 b(Represen)o(ts)c(that)72 1019 y(a)g(particular)g(message)h(in)f(the)g (bu\013er)h(has)f(b)q(een)h(pro)q(cessed)g(and)g(is)f(to)g(b)q(e)g (discarded.)127 1097 y Fe({)23 b Fl(Indivisible.)16 b(Commits)11 b(and)h(completes)g(when)g(the)f(message)h(yielded)g(b)o(y)g Fb(Y)18 b Fl(is)11 b(in)g(the)g(bu\013er.)18 b(F)m(ails)10 b(otherwise.)127 1164 y Fe({)23 b Fl(Remo)o(v)o(es)14 b(the)f(message)h (yielded)f(b)o(y)g Fb(Y)20 b Fl(from)12 b(the)i(bu\013er.)30 1242 y Fc(\017)23 b Fd(o\013er)18 b Fb(Y)7 b Fl(:)25 b(a)18 b(primitiv)o(e)e(comm)o(unicativ)o(e)i(action,)g(where)g Fb(Y)24 b Fl(yields)17 b(sort)g(of)g(con)o(tract.)31 b(Represen)o(ts)18 b(initiating)f(the)72 1292 y(arrangemen)o(t)d(of)f(a)g(con)o(tract)h(with)e (another,)i(p)q(erhaps)g(only)f(partially)g(sp)q(eci\014ed,)h(agen)o(t.)j (The)c(usual)h(form)f(of)g Fb(Y)19 b Fl(is)13 b Fd(a)72 1342 y(contract)g([to)g(an)g(agent])g([containing)e(abstraction)h(of)h Fb(A)p Fd(])p Fl(,)f(where)g Fb(A)g Fl(is)h(the)g(action)g(to)f(b)q(e)h(p)q (erformed)h(according)f(to)g(the)72 1392 y(con)o(tract.)127 1470 y Fe({)23 b Fl(Indivisible.)e(Commits)13 b(and)i(completes)g(when)f(the) h(sort)f(of)g(con)o(tract)h(yielded)f(b)o(y)h Fb(Y)21 b Fl(includes)14 b(an)h(individual)172 1520 y(con)o(tract)f(from)e(the)h(p)q(erformer.)18 b(F)m(ails)12 b(otherwise.)127 1588 y Fe({)23 b Fl(Giv)o(es)13 b(no)g(data.)127 1655 y Fe({)23 b Fl(Requests)13 b(the)e(arrangemen)o(t)i(of) e(a)h(con)o(tract)f(of)h(the)f(sort)h(yielded)g(b)o(y)f Fb(Y)c Fl(.)16 b(O\013ered)c(con)o(tracts)h(are)e(distinguished)172 1705 y(b)o(y)j(serial)f(n)o(um)o(b)q(ers,)i(as)e(with)g(sen)o(t)h(messages.) 20 b(The)13 b(arrangemen)o(t)i(of)f(a)f(con)o(tract)h(tak)o(es)g(an)g (implemen)o(tation-)172 1755 y(dep)q(enden)o(t)e(`time',)e(whic)o(h)g(m)o (ust)h(b)q(e)f(\014nite)h(when)g(there)f(is)g(a)h(con)o(tin)o(ually)f(uncon)o (tracted)i(agen)o(t)f(of)g(the)f(sp)q(eci\014ed)172 1806 y(sort.)30 1883 y Fc(\017)23 b Fd(patiently)13 b Fb(A)p Fl(:)19 b(a)c(comm)o(unicativ)o (e)g(action,)g(where)g Fb(A)f Fl(is)g(an)h(action.)23 b(Represen)o(ts)16 b Fb(busy)d(waiting)k Fl(while)d Fb(A)g Fl(fails.)21 b(Only)72 1934 y(useful)13 b(when)g Fb(A)f Fl(refers)h(to)f(information)h(that)g(ma)o (y)g(c)o(hange)g(due)h(to)e(some)h(other)g(action,)g(for)f(instance,)h(the)g (messages)72 1984 y(in)g(the)g(bu\013er.)127 2062 y Fe({)23 b Fl(P)o(erforms)17 b Fb(A)g Fl(indivisibly)m(,)g(but)h(not)f(indivisible)g (itself.)29 b(If)16 b(the)h(p)q(erformance)i(fails)d(it)h(tries)f(again.)30 b(Th)o(us)18 b(it)172 2112 y(div)o(erges)c(when)f Fb(A)f Fl(alw)o(a)o(ys)h (fails.)127 2179 y Fe({)23 b Fl(F)m(unctionally)13 b(as)h Fb(A)p Fl(.)127 2246 y Fe({)23 b Fl(Declarativ)o(ely)13 b(as)g Fb(A)p Fl(.)-42 2393 y Fx(B.6.2)56 b(Yielders)30 2468 y Fc(\017)23 b Fd(current)13 b(bu\013er)p Fl(:)k(a)c(yielder)g(of)f(bu\013ers.)18 b(Yields)13 b(the)g(list)f(of)h(messages)g(that)h(ha)o(v)o(e)f(app)q(eared)h (in)f(the)g(bu\013er,)h(but)f(whic)o(h)72 2518 y(ha)o(v)o(e)h(not)f(y)o(et)g (b)q(een)h(remo)o(v)o(ed.)j(The)c(messages)h(are)f(listed)g(in)f(the)i(order) f(of)g(their)g(arriv)n(al)f(in)h(the)g(bu\013er.)30 2585 y Fc(\017)23 b Fd(p)q(erfo)o(rming-agent)p Fl(:)e(a)14 b(yielder)h(of)g(agen)o (ts.)23 b(Yields)14 b(\(the)h(iden)o(tit)o(y)g(of)s(\))f(the)h(agen)o(t)h (that)f(is)f(p)q(erforming)i(the)f(enclosing)72 2635 y(action.)30 2702 y Fc(\017)23 b Fd(contracting-agent)p Fl(:)e(a)15 b(yielder)f(of)h(agen) o(ts.)23 b(Yields)15 b(\(the)g(iden)o(tit)o(y)g(of)s(\))f(the)h(agen)o(t)h (that)f(o\013ered)h(the)f(con)o(tract)g(to)g(the)72 2752 y(p)q(erformer.)p eop %%Page: 46 49 46 48 bop 8 -137 a Fr(46)1061 b Fn(APPENDIX)15 b(B.)30 b(A)o(CTION)16 b(NOT)l(A)l(TION)8 12 y Fx(B.6.3)55 b(Data)80 87 y Fc(\017)23 b Fd(agent)p Fl(:)16 b(a)11 b(sort)f(of)h(datum.)16 b(An)11 b(agen)o(t)g(iden)o(ti\014es)g(a)g(p)q(oten)o(tial)g(pro)q(cess)g(of)f(p)q (erforming)i(an)f(action,)g(represen)o(ting)g(a)g(piece)122 137 y(of)i(distributed)i(pro)q(cessing.)20 b(It)13 b(is)h(lo)q(osely-sp)q (eci\014ed,)g(as)g(the)g(maxim)o(um)g(n)o(um)o(b)q(er)g(and)h(distribution)f (of)f(pro)q(cesses)i(is)122 187 y(usually)e(implemen)o(tation-dep)q(enden)o (t.)122 246 y(Eac)o(h)h(agen)o(t)g(has)h(its)e(o)o(wn)h(bu\013er)g(and)h (storage.)k(It)14 b(is)f(inactiv)o(e)h(un)o(til)f(it)g(accepts)h(a)g(con)o (tract)g(to)g(p)q(erform)g(an)g(action,)122 296 y(whereafter)f(it)f(remains)i (activ)o(e)f(for)f(ev)o(er,)h(ev)o(en)h(after)e(the)i(termination)f(of)f(the) i(con)o(tracted)f(action.)80 364 y Fc(\017)23 b Fd(user-agent)p Fl(:)e(a)15 b(distinguished)h(agen)o(t.)24 b(It)15 b(corresp)q(onds)i(to)e (the)g(en)o(vironmen)o(t)h(of)f(a)h(program,)g(pro)o(viding)g(input)f(and)122 414 y(accepting)f(output.)j(The)c(user)h(agen)o(t)f(is)g(initially)f(the)h (only)g(agen)o(t)h(with)e(a)h(con)o(tract.)80 481 y Fc(\017)23 b Fd(bu\013er)p Fl(:)17 b(a)c(sort)g(of)g(datum.)k(A)c(bu\013er)h(is)e(a)h (list)g(of)f(messages)i(sen)o(t)f(to)g(the)g(same)h(agen)o(t,)f(in)g(the)g (order)g(of)g(their)g(arriv)n(al.)80 549 y Fc(\017)23 b Fd(communication)p Fl(:)15 b(a)c(sort)f(of)g(datum.)17 b(Individual)11 b(comm)o(unications)g (represen)o(t)h(information)e(that)h(can)g(b)q(e)f(transmitted)122 599 y(b)o(y)16 b(agen)o(ts.)24 b(Comm)o(unications)16 b(ha)o(v)o(e)f(comp)q (onen)o(ts)i(indicating)e(their)h(sender,)g(receiv)o(er,)f(and)h(con)o(ten)o (ts.)24 b(Moreo)o(v)o(er,)122 649 y(eac)o(h)13 b(comm)o(unication)h(is)f (distinguished)h(b)o(y)f(a)g(serial)g(n)o(um)o(b)q(er)g(determined)h(b)o(y)f (the)g(sender.)80 717 y Fc(\017)23 b Fd(message)p Fl(:)17 b(a)c(subsort)h(of) f(comm)o(unication.)18 b(Messages)c(can)f(b)q(e)g(sen)o(t)h(directly)e(from)h (one)h(agen)o(t)f(to)g(another.)80 784 y Fc(\017)23 b Fd(sendable)p Fl(:)15 b(a)d(sort)g(of)f(data.)17 b(The)12 b(data)g(that)g(can)h(b)q(e)f (the)g(con)o(ten)o(ts)g(of)g(messages)g(sen)o(t)h(b)q(et)o(w)o(een)f(agen)o (ts.)17 b(Left)11 b(op)q(en,)i(as)122 834 y(it)d(dep)q(ends)j(on)e(the)g(v)n (ariet)o(y)g(of)f(p)q(ermanen)o(t)i(information)f(pro)q(cessed)h(b)o(y)f(the) g(programs)h(of)f(a)f(programming)i(language.)122 885 y(\(Sp)q(eci\014ed)i (to)f(include)g Fd(abstraction)g Fl(and)g Fd(agent)g Fl(to)g(allo)o(w)g(prop) q(er)g(use)h(of)e Fd(sub)q(o)o(rdinate)g Fb(Y)7 b Fl(.\))80 952 y Fc(\017)23 b Fd(contract)p Fl(:)d(a)15 b(subsort)g(of)f(comm)o (unication.)23 b(Con)o(tracts)14 b(can)h(b)q(e)g(o\013ered)g(b)o(y)g(one)g (agen)o(t)g(to)g(another)g(\(sort)g(of)s(\))f(agen)o(t.)122 1002 y(The)f(con)o(ten)o(ts)h(of)e(a)h(con)o(tract)h(is)e(the)i(abstraction)f (to)g(b)q(e)h(enacted)f(b)o(y)h(an)f(agen)o(t)h(accepting)f(the)g(con)o (tract.)80 1070 y Fc(\017)23 b Fd(contents)12 b Fb(d)t Fl(:)k(data,)d(where)h Fb(d)i Fl(is)c(a)h(comm)o(unication.)18 b(The)13 b(data)g(con)o(tained)h(in)f Fb(d)t Fl(.)80 1137 y Fc(\017)23 b Fd(sender)12 b Fb(d)t Fl(:)17 b(a)c(datum,)g(where)g Fb(d)j Fl(is)d(a)g(comm)o(unication.)k(The)c(agen)o(t) h(that)f(sends)h Fb(d)t Fl(.)80 1205 y Fc(\017)23 b Fd(receiver)12 b Fb(d)t Fl(:)k(a)d(datum,)h(where)f Fb(d)j Fl(is)c(a)h(comm)o(unication.)18 b(The)13 b(agen)o(t)g(that)h(receiv)o(es)f Fb(d)t Fl(.)80 1272 y Fc(\017)23 b Fd(serial)15 b Fb(d)t Fl(:)22 b(a)16 b(datum,)i(where)e Fb(d)j Fl(is)d(a)g(comm)o(unication.)28 b(The)16 b(serial)g(n)o(um)o(b)q(er)h (of)f Fb(d)t Fl(,)g(determined)g(lo)q(cally)g(when)h(it)e(is)122 1322 y(emitted.)80 1390 y Fc(\017)23 b Fb(d)13 b Fd([containing)c Fb(d)362 1394 y Fm(1)379 1390 y Fd(])p Fl(:)15 b(a)c(subsort)g(of)f Fd(communication)p Fl(,)f(where)i Fb(d)1012 1394 y Fm(1)1038 1390 y Fl(is)f(a)g(\(sort)h(of)s(\))e(data,)i(and)g Fb(d)i Fl(is)d(a)g(sort)h(of)e(comm)o(unication.)122 1440 y(It)k(includes)g(only)g (those)h(comm)o(unications)g(in)e Fb(d)17 b Fl(whose)c(con)o(ten)o(ts)h(is)e (\(of)h(sort\))g Fb(d)1334 1444 y Fm(1)1351 1440 y Fl(.)80 1507 y Fc(\017)23 b Fb(d)17 b Fd([from)e Fb(d)279 1511 y Fm(1)296 1507 y Fd(])p Fl(:)j(a)c(subsort)h(of)f Fd(communication)p Fl(,)f(where)h Fb(d)950 1511 y Fm(1)981 1507 y Fl(is)f(a)h(\(sort)g(of)s(\))g (agen)o(t,)g(and)h Fb(d)i Fl(is)d(a)g(sort)g(of)f(comm)o(unication.)122 1558 y(It)g(includes)g(only)g(those)h(comm)o(unications)g(in)e Fb(d)17 b Fl(whose)c(sender)h(is)e(\(of)h(sort\))g Fb(d)1302 1562 y Fm(1)1319 1558 y Fl(.)80 1625 y Fc(\017)23 b Fb(d)17 b Fd([to)d Fb(d)237 1629 y Fm(1)253 1625 y Fd(])p Fl(:)19 b(a)13 b(subsort)i(of)e Fd(communication)p Fl(,)g(where)h Fb(d)906 1629 y Fm(1)936 1625 y Fl(is)g(a)f(\(sort)h(of)s(\))f(agen)o(t,)h(and)h Fb(d)h Fl(is)e(a)f(sort)h(of)g(comm)o(unication.)19 b(It)122 1675 y(includes)13 b(only)h(those)f(comm)o(unications)h(in)f Fb(d)j Fl(whose)d(receiv)o(er)g(is)g(\(of)g(sort\))g Fb(d)1282 1679 y Fm(1)1298 1675 y Fl(.)80 1743 y Fc(\017)23 b Fb(d)16 b Fd([at)d Fb(d)234 1747 y Fm(1)251 1743 y Fd(])p Fl(:)j(a)d(subsort)g(of)g Fd(communication)p Fl(,)f(where)g Fb(d)896 1747 y Fm(1)926 1743 y Fl(is)g(a)g(\(sort)h(of)s(\))f(natural)h(n)o(um)o(b)q(er,)h(and)f Fb(d)j Fl(is)c(a)h(sort)f(of)h(comm)o(uni-)122 1793 y(cation.)k(It)c (includes)g(only)g(those)h(comm)o(unications)g(in)e Fb(d)17 b Fl(whose)c(serial)g(n)o(um)o(b)q(er)g(is)g(\(of)g(sort\))g Fb(d)1553 1797 y Fm(1)1570 1793 y Fl(.)8 1964 y Fo(B.7)69 b(Hybrid)24 b(Action)f(Notation)8 2052 y Fl(Hybrid)13 b(action)g(notation)g(consists)f (of)h(some)f(useful)h(abbreviations)g(for)g(comp)q(ound)h(actions)e(in)o(v)o (olving)h(more)g(than)g(one)f(kind)8 2102 y(of)i(information,)g(together)g (with)f(some)i(h)o(ybrid)f(com)o(binators)h(that)f(mix)f(v)n(arious)i(facets) f(of)f(the)h(other)g(com)o(binators.)21 b(There)8 2153 y(are)13 b(also)g(some)h(h)o(ybrid)f(data)h(op)q(erations.)8 2271 y Fx(B.7.1)55 b(Actions)80 2345 y Fc(\017)23 b Fd(allo)q(cate)16 b Fb(d)t Fl(:)24 b(an)18 b(imp)q(erativ)o(e)f(and)h(functional)f(action,)h (where)f Fb(d)j Fl(is)d(a)g(sort)g(of)g(cell.)28 b(Represen)o(ts)18 b(implemen)o(tation-)122 2396 y(dep)q(enden)o(t)d(c)o(hoice)e(and)g(reserv)n (ation)h(of)f(a)g(cell)f(of)h(sort)g Fb(d)t Fl(.)177 2475 y Fe({)23 b Fl(Indivisible.)17 b(Commits)12 b(and)i(completes)f(when)g(there)h (is)e(an)i(unreserv)o(ed)g(cell)e(of)h(sort)g Fb(d)t Fl(.)j(F)m(ails)d (otherwise.)177 2543 y Fe({)23 b Fl(Reserv)o(es)14 b(some)f(cell)f(of)h(sort) g Fb(d)t Fl(.)177 2611 y Fe({)23 b Fl(Giv)o(es)13 b(the)g(reserv)o(ed)h (cell.)80 2689 y Fc(\017)23 b Fd(receive)13 b Fb(Y)7 b Fl(:)18 b(a)c(comm)o(unicativ)o(e)g(and)h(functional)f(action,)g(where)g Fb(Y)20 b Fl(yields)14 b(a)g(sort)g(of)f(message.)20 b(Represen)o(ts)15 b(w)o(aiting)122 2739 y(for)g(a)h(message)h(to)e(arriv)o(e)h(in)g(the)g (bu\013er.)26 b(The)16 b(usual)g(form)f(of)h Fb(Y)22 b Fl(is)16 b(a)g(restriction)f(suc)o(h)i(as)e Fd(a)i(message)f([from)g Fb(Y)1870 2743 y Fm(1)1887 2739 y Fd(])122 2789 y([containing)c Fb(Y)341 2793 y Fm(2)357 2789 y Fd(])p Fl(,)h(where)g Fb(Y)532 2793 y Fm(1)549 2789 y Fl(,)f Fb(Y)601 2793 y Fm(2)631 2789 y Fl(ma)o(y)h(yield)g(sorts)g(or)g(individuals.)p eop %%Page: 47 50 47 49 bop -42 -137 a Fn(B.8.)35 b(F)-5 b(A)o(CETS)1549 b Fr(47)127 12 y Fe({)23 b Fl(P)o(atien)o(tly)10 b(w)o(aits)g(for)h(a)f(message)h(of)f (the)h(sort)g(yielded)f Fb(Y)18 b Fl(to)10 b(arriv)o(e,)h(then)g(commits)f (and)h(completes.)16 b(Otherwise)172 63 y(div)o(erges.)127 130 y Fe({)23 b Fl(Cho)q(oses)14 b(and)f(giv)o(es)h(an)o(y)f(receiv)o(ed)g (message)h(of)f(the)g(sort)g(yielded)g(b)o(y)h Fb(Y)6 b Fl(.)127 197 y Fe({)23 b Fl(Remo)o(v)o(es)14 b(the)f(c)o(hosen)h(message)f(from)g(the) g(bu\013er.)30 274 y Fc(\017)23 b Fb(A)101 278 y Fm(1)150 274 y Fd(thence)32 b Fb(A)316 278 y Fm(2)333 274 y Fl(:)56 b(a)32 b(declarativ)o(e)h(and)g(functional)g(h)o(ybrid)g(com)o(bination)g(of)g (actions)g Fb(A)1581 278 y Fm(1)1597 274 y Fl(,)k Fb(A)1674 278 y Fm(2)1691 274 y Fl(.)75 b(Lik)o(e)72 324 y Fb(A)101 328 y Fm(1)131 324 y Fd(then)12 b Fb(A)243 328 y Fm(2)273 324 y Fl(for)g(con)o(trol)i(and)f(transien)o(ts,)g(and)h(lik)o(e)f Fb(A)897 328 y Fm(1)926 324 y Fd(hence)g Fb(A)1059 328 y Fm(2)1088 324 y Fl(for)g(bindings.)-42 471 y Fx(B.7.2)56 b(Yielders)30 545 y Fc(\017)23 b Fb(Ther)n(e)13 b(ar)n(e)h(no)e(hybrid)h(yielders.)-42 691 y Fx(B.7.3)56 b(Data)30 766 y Fc(\017)23 b Fd(o)o(wner)13 b Fb(d)t Fl(:)j(an)e(agen)o(t,)f(where)g Fb(d)j Fl(is)d(a)g(cell)f(or)h(an)g (indirection.)k(The)c(agen)o(t)h(where)f(it)f(is)h(lo)q(cated.)30 833 y Fc(\017)23 b Fb(d)16 b Fd([on)c Fb(d)190 837 y Fm(1)207 833 y Fd(])p Fl(:)17 b(a)12 b(subsort)h(of)f Fd(cell)p Fl(,)f(where)h Fb(d)660 837 y Fm(1)689 833 y Fl(is)g(a)h(\(sort)f(of)s(\))g(agen)o(t,)h(and) g Fb(d)i Fl(is)d(a)h(sort)f(of)g(cell.)k(It)c(includes)h(only)g(those)g (cells)72 883 y(in)g Fb(d)j Fl(whose)d(o)o(wner)h(is)e(\(of)h(sort\))g Fb(d)588 887 y Fm(1)605 883 y Fl(.)j(Similarly)d(when)g Fb(d)j Fl(is)d(a)g(\(sort)g(of)s(\))f(indirection.)-42 1051 y Fo(B.8)70 b(F)-6 b(acets)-42 1139 y Fl(The)17 b(facets)g(of)g(actions)g(and)h(yielders) f(are)g(obtained)h(b)o(y)f(fo)q(cusing)g(on)h(particular)f(kinds)g(of)g (information.)29 b(The)16 b(notation)-42 1189 y(summarized)e(b)q(elo)o(w)f (is)g(used)g(for)g(expressing)h Fb(sorts)h Fl(of)d(actions)i(and)f(yielders.) -42 1306 y Fx(B.8.1)56 b(Outcomes)30 1380 y Fc(\017)23 b Fd(outcome)p Fl(:)h(a)17 b(sort)f(of)g(auxiliary)h(en)o(tities,)f(used)h(for)g(sp)q (ecifying)f(sorts)h(of)f(actions.)27 b(Sort)17 b(union)g Fb(O)1577 1384 y Fm(1)p 1612 1387 4 32 v 1633 1380 a Fb(O)1662 1384 y Fm(2)1696 1380 y Fl(com)o(bines)72 1430 y(outcomes.)h(\(The)13 b(v)n(arious)g(outcomes)h(b)q(elo)o(w)f(are)g(disjoin)o(t,)f(so)h(there)h(is) e(no)i(use)f(for)g(sp)q(ecifying)g(their)g(in)o(tersections.\))30 1497 y Fc(\017)23 b Fd(giving)13 b Fb(d)t Fl(:)20 b(allo)o(ws)14 b(normal)h(termination)g(that)g(alw)o(a)o(ys)g(giv)o(es)f(transien)o(ts)i (included)f(in)g(the)g(data)g(sort)g Fb(d)t Fl(.)21 b Fd(completing)72 1548 y Fl(abbreviates)14 b Fd(giving)d(\()i(\))p Fl(,)f(where)h Fd(\()g(\))g Fl(is)f(the)i(empt)o(y)f(tuple)g(of)g(data.)30 1615 y Fc(\017)23 b Fd(escaping)16 b(with)g Fb(d)t Fl(:)24 b(allo)o(ws)16 b(abnormal)h(termination)g(that)g(alw)o(a)o(ys)g(giv)o(es)g (transien)o(ts)g(included)g(in)g(the)g(data)g(sort)g Fb(d)t Fl(.)72 1665 y Fd(escaping)12 b Fl(abbreviates)i Fd(escaping)e(with)g(data)p Fl(.)30 1732 y Fc(\017)23 b Fd(binding)p Fl(:)f(allo)o(ws)16 b(normal)h(termination)g(that)f(optionally)h(pro)q(duces)h(some)f(bindings.) 29 b(The)16 b(union)i(outcome)f Fd(giving)72 1782 y Fb(d)p 111 1789 V 37 w Fd(binding)11 b Fl(allo)o(ws)h(normal)i(termination)f(that)g (alw)o(a)o(ys)g(giv)o(es)h(transien)o(ts)f(of)g(sort)h Fb(d)i Fl(and)e(optionally)f(pro)q(duces)i(some)72 1832 y(bindings.)j(The)13 b(use)g(of)g Fd(binding)e Fl(alone)i(implies)f Fd(completing)p Fl(.)30 1899 y Fc(\017)23 b Fd(failing)p Fl(:)f(ignored.)28 b(\(Most)17 b(comp)q(ound)h(actions)f(that)f(use)h(information)g(fail)f(when) g(that)h(information)g(is)f(not)h(made)72 1949 y(a)o(v)n(ailable)c(to)g (their)g(p)q(erformance.\))30 2016 y Fc(\017)23 b Fd(committing)p Fl(:)f(allo)o(ws)15 b(commitmen)o(t,)i(indep)q(enden)o(tly)g(of)f (termination.)26 b(Included)16 b(in)g Fd(sto)o(ring)p Fl(,)f(and)i Fd(communicating)p Fl(,)72 2067 y(whic)o(h)c(are)g(analogous.)30 2134 y Fc(\017)23 b Fd(diverging)p Fl(:)k(allo)o(ws)19 b(non)o(termination.) 36 b(Actions)19 b(without)g(this)g(sort)g(of)g(outcome)h(are)f(guaran)o(teed) h(to)f(terminate,)72 2184 y(whereas)d(those)f(with)g(this)g(outcome)h(migh)o (t)f(or)g(migh)o(t)g(not)g(terminate.)23 b(Actions)16 b(that)f(con)o(tain)g (an)o(y)h(o)q(ccurrence)g(of)72 2234 y Fd(unfolding)9 b Fl(or)i Fd(enact)h Fb(Y)18 b Fl(ha)o(v)o(e)11 b(this)h(sort)f(of)g(outcome,)h(unless) g(they)f(are)h(equiv)n(alen)o(t)f(to)h(other)f(actions)h(that)f(do)h(not)g (ha)o(v)o(e)72 2284 y(it.)-42 2430 y Fx(B.8.2)56 b(Incomes)30 2505 y Fc(\017)23 b Fd(income)p Fl(:)h(a)16 b(sort)g(of)h(auxiliary)f(en)o (tities,)h(used)g(for)f(sp)q(ecifying)h(sorts)f(of)g(actions)h(and)g (yielders.)28 b(Sort)16 b(union)h Fb(I)1761 2509 y Fm(1)p 1796 2512 V 1816 2505 a Fb(I)1831 2509 y Fm(2)72 2555 y Fl(com)o(bines)c(incomes.) k(\(The)12 b(v)n(arious)g(incomes)h(b)q(elo)o(w)f(are)g(disjoin)o(t,)g(so)g (there)g(is)g(no)g(use)h(for)f(sp)q(ecifying)g(their)g(in)o(tersec-)72 2605 y(tions.\))30 2672 y Fc(\017)23 b Fd(given)11 b Fb(d)t Fl(:)16 b(allo)o(ws)11 b(use)h(of)g(giv)o(en)g(transien)o(ts)h(of)e(the)i (data)f(sort)g Fb(d)t Fl(.)k(More)c(sp)q(eci\014cally)m(,)g(the)g(income)g Fd(given)f Fb(d)t Fd(#)p Fb(p)i Fl(sp)q(eci\014es)72 2722 y(p)q(ossible)h (use)f(of)g(the)g Fb(p)r Fl('th)f(comp)q(onen)o(t)j(of)d(the)i(giv)o(en)f (transien)o(ts,)g(this)g(b)q(eing)g(of)g(datum)h(sort)f Fb(d)t Fl(.)30 2789 y Fc(\017)23 b Fd(current)13 b(bindings)p Fl(:)h(allo)o(ws)e (use)i(of)f(receiv)o(ed)g(bindings.)p eop %%Page: 48 51 48 50 bop 8 -137 a Fr(48)1061 b Fn(APPENDIX)15 b(B.)30 b(A)o(CTION)16 b(NOT)l(A)l(TION)80 12 y Fc(\017)23 b Fd(current)13 b(sto)o(rage)p Fl(:)k(allo)o(ws)12 b(use)i(of)e(storage.)80 79 y Fc(\017)23 b Fd(current)13 b(bu\013er)p Fl(:)k(allo)o(ws)12 b(use)h(of)g(the)g(message)h (bu\013er.)8 224 y Fx(B.8.3)55 b(Actions)80 299 y Fc(\017)23 b Fd(action)p Fl(:)d(the)c(sort)f(of)f(all)h(actions.)23 b(Its)15 b(subsort)h Fd(p)o(rimitive-action)c Fl(includes)j(not)g(only)h(the)f (actions)g(describ)q(ed)h(in)f(this)122 349 y(App)q(endix)i(as)f(primitiv)o (e,)g(but)h(also)f(comp)q(ound)i(actions)e(that)g(are)h(equiv)n(alen)o(t)f (to)g(them,)h(e.g.,)f Fd(complete)f(and)h(then)122 399 y(escap)q(e)p Fl(,)d(whic)o(h)g(is)f(equiv)n(alen)o(t)i(to)e Fd(escap)q(e)p Fl(.)80 466 y Fc(\017)23 b Fb(A)16 b Fd([)p Fb(O)s Fd(])p Fl(:)25 b(a)17 b(sort)g(of)f(action,)i(where)e Fb(A)g Fl(is)h(a)f(sort)h(of)g(action) f(and)i Fb(O)i Fl(is)c(a)h(sort)g(of)f(outcome.)29 b(Restricts)17 b Fb(A)f Fl(to)g(those)122 516 y(actions)d(whic)o(h,)f(whenev)o(er)h(p)q (erformed,)g(either)g(fail)e(or)i(ha)o(v)o(e)g(an)g(outcome)g(whose)g (termination)g(prop)q(erties)g(and)g(kind)122 566 y(of)f(information)g(pro)q (cessing)i(are)e(included)h(in)f Fb(O)s Fl(.)18 b(Note)12 b(that)g Fb(A)g Fd([)p Fb(O)1133 570 y Fm(1)1151 566 y Fd(])p 1188 573 4 32 v 55 w Fb(A)f Fd([)p Fb(O)1297 570 y Fm(2)1315 566 y Fd(])h Fl(is)g(generally)h(a)f(prop)q(er)h(subsort)h(of)e Fb(A)122 617 y Fd([)p Fb(O)162 621 y Fm(1)p 195 624 V 213 617 a Fb(O)242 621 y Fm(2)259 617 y Fd(])p Fl(,)h(whereas)g Fb(A)g Fd([)p Fb(O)521 621 y Fm(1)538 617 y Fd(])22 b Fl(&)f Fb(A)12 b Fd([)p Fb(O)703 621 y Fm(2)721 617 y Fd(])h Fl(is)f(the)i(same)f(sort)g(as)g Fb(A)f Fd([)p Fb(O)1151 621 y Fm(1)1177 617 y Fl(&)d Fb(O)1245 621 y Fm(2)1262 617 y Fd(])p Fl(,)k(whic)o(h)g(can)g(also)g(b)q(e)g(written)g (as)g Fb(A)f Fd([)p Fb(O)1869 621 y Fm(1)1887 617 y Fd(])122 667 y([)p Fb(O)162 671 y Fm(2)180 667 y Fd(])p Fl(.)80 734 y Fc(\017)23 b Fb(A)14 b Fd([using)g Fb(I)6 b Fd(])p Fl(:)21 b(a)16 b(sort)f(of)g(action,)h(where)f Fb(I)21 b Fl(is)14 b(a)i(sort)f(of)g (income.)24 b(Restricts)15 b Fb(A)f Fl(to)i(those)f(actions)h(whic)o(h,)f (whenev)o(er)122 784 y(p)q(erformed,)i(p)q(erhaps)h(ev)n(aluate)e(yielders)h (that)f(refer)g(to)g(the)h(curren)o(t)f(information)h(indicated)f(b)o(y)h Fb(I)6 b Fl(.)26 b(Compare)16 b Fb(Y)122 834 y Fd([using)c Fb(I)6 b Fd(])p Fl(,)12 b(where)h Fb(Y)20 b Fl(is)12 b(a)h(sort)g(of)g (yielder,)g(b)q(elo)o(w.)8 979 y Fx(B.8.4)55 b(Yielders)80 1054 y Fc(\017)23 b Fd(yielder)p Fl(:)15 b(the)e(sort)g(of)g(all)f(yielders.) 80 1121 y Fc(\017)23 b Fb(Y)d Fd([)p Fb(d)t Fd(])p Fl(:)d(a)d(sort)f(of)g (yielder,)g(where)h Fb(Y)20 b Fl(is)13 b(a)g(sort)g(of)h(action)f(and)h Fb(d)j Fl(is)c(a)g(sort)h(of)f(data.)18 b(Restricts)c Fb(Y)20 b Fl(to)13 b(those)h(yielders)122 1171 y(whic)o(h,)d(whenev)o(er)i(ev)n (aluated,)f(yield)g(data)g(included)g(in)g Fb(d)t Fl(.)k(Note)11 b(that)h(the)g(union)g(sort)g Fb(Y)19 b Fd([)p Fb(d)1513 1175 y Fm(1)1530 1171 y Fd(])p 1565 1178 V 51 w Fb(Y)f Fd([)p Fb(d)1670 1175 y Fm(2)1687 1171 y Fd(])12 b Fl(is)g(generally)122 1221 y(a)h(prop)q(er)i(subsort)f(of)f Fb(Y)20 b Fd([)p Fb(d)537 1225 y Fm(1)p 569 1228 V 588 1221 a Fb(d)608 1225 y Fm(2)625 1221 y Fd(])p Fl(,)13 b(whereas)h Fb(Y)20 b Fd([)p Fb(d)886 1225 y Fm(1)903 1221 y Fd(])i Fl(&)g Fb(Y)e Fd([)p Fb(d)1068 1225 y Fm(2)1085 1221 y Fd(])13 b Fl(is)g(the)h(same)f(sort)h(as)f Fb(Y)20 b Fd([)p Fb(d)1516 1225 y Fm(1)1542 1221 y Fl(&)9 b Fb(d)1601 1225 y Fm(2)1618 1221 y Fd(])p Fl(,)k(whic)o(h)g(can)h(also)122 1271 y(b)q(e)f(written)g(as)g Fb(Y)19 b Fd([)p Fb(d)435 1275 y Fm(1)452 1271 y Fd(])13 b([)p Fb(d)507 1275 y Fm(2)524 1271 y Fd(])p Fl(.)80 1338 y Fc(\017)23 b Fb(Y)d Fd([of)12 b Fb(d)t Fd(])p Fl(:)17 b(equiv)n(alen)o(t)c(to)g Fb(Y)20 b Fd([)p Fb(d)t Fd(])p Fl(,)12 b(but)h Fd(a)g(yielder)e([of)i(an)g(integer])g Fl(reads)g(a)g(bit)g(more)g(naturally)g(than)h Fd(yielder)d([integer])p Fl(.)80 1405 y Fc(\017)23 b Fb(Y)d Fd([using)13 b Fb(I)6 b Fd(])p Fl(:)18 b(a)c(sort)g(of)f(yielder,)h(where)f Fb(I)20 b Fl(is)13 b(a)h(sort)g(of)f(income.)20 b(Restricts)14 b Fb(Y)20 b Fl(to)14 b(those)g(yielders)g(whic)o(h,)f(whenev)o(er)122 1455 y(ev)n(aluated,)g(refer)g(at)g(most)g(to)g(the)g(curren)o(t)h (information)f(indicated)g(b)o(y)g Fb(I)6 b Fl(.)p eop %%Page: 49 52 49 51 bop -42 334 a FB(App)s(endix)33 b(C)-42 554 y Ft(Data)40 b(Notation)-42 782 y Fn(This)15 b(App)q(endix)i(will)c(pro)o(vide)i(an)g (informal)e(summary)g(of)h(the)i(data)e(notation)g(used)i(in)f(the)g (example.)881 2914 y Fr(49)p eop %%Page: 50 53 50 52 bop 8 357 a Ft(Bibliograph)m(y)8 585 y Fr([Go)q(o87])21 b(Dann)o(y)15 b(Go)q(o)q(dman.)j Fp(The)e(Complete)g(Hyp)n(erCar)n(d)g(Handb) n(o)n(ok)p Fr(.)k(Ban)o(tam,)13 b(1987.)8 684 y([Mos90])21 b(P)o(eter)e(D.)g(Mosses.)32 b(Denotational)17 b(seman)o(tics.)31 b(In)20 b(J.)f(v)m(an)h(Leeu)o(w)o(en,)h(A.)e(Mey)o(er,)h(M.)f(Niv)m(at,)184 747 y(M.)e(P)o(aterson,)f(and)i(D.)f(P)o(errin,)g(editors,)f Fp(Handb)n(o)n(ok)i(of)h(The)n(or)n(etic)n(al)e(Computer)i(Scienc)n(e)p Fr(,)d(v)o(ol-)184 809 y(ume)f(B,)g(c)o(hapter)g(11.)f(Elsevier)g(Science)i (Publishers,)f(Amsterdam;)d(and)k(MIT)f(Press,)f(1990.)8 908 y([Mos92])21 b(P)o(eter)c(D.)h(Mosses.)27 b Fp(A)n(ction)18 b(Semantics)p Fr(.)27 b(Num)o(b)q(er)17 b(26)h(in)f(Cam)o(bridge)f(T)l(racts) h(in)h(Theoretical)184 970 y(Computer)c(Science.)i(Cam)o(bridge)d(Univ)o (ersit)o(y)h(Press,)g(1992.)8 1070 y([Plo77])37 b(Gordon)12 b(D.)g(Plotkin.)i(LCF)e(considered)h(as)f(a)g(programm)o(ing)d(language.)15 b Fp(The)n(or)n(etic)n(al)d(Computer)184 1132 y(Scienc)n(e)p Fr(,)h(5:223{255,)f(1977.)8 1231 y([Sto88])38 b(Allen)17 b(Stough)o(ton.)26 b Fp(F)m(ul)r(ly)18 b(A)o(bstr)n(act)g(Mo)n(dels)f(of)i(Pr)n(o)n(gr)n(amming) e(L)n(anguages)p Fr(.)26 b(Pitman)16 b(&)h(John)184 1293 y(Wiley)l(,)d(1988.) 930 2914 y(50)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF