|
|
DataMuseum.dkPresents historical artifacts from the history of: DANOSI |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DANOSI Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 196864 (0x30100)
Names: »RTP001.WP«
└─⟦0634bcb0f⟧ Bits:30010529 ABA: RTP syndia RC macro DVBS1.SW2114.src.2.6-7 PN 99110141
└─⟦this⟧ »RTP001.WP«
0x00000…00020 00 00 00 00 00 00 00 00 42 03 06 52 43 36 33 30 00 00 00 00 00 00 00 00 00 00 00 00 4e 00 00 00 ┆ B RC630 N ┆
0x00020…00040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆
0x00040…00060 00 00 00 00 00 00 00 04 00 2d 4c 00 00 06 00 00 00 00 02 01 41 31 00 00 00 00 00 00 00 00 00 00 ┆ -L A1 ┆
0x00060…00080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 4b 55 5f 69 73 7d 87 91 ff 04 ┆ #-7AKU_is}ЄЉ ┆
0x00080…000a0 16 6d 61 20 6e 79 66 72 6f 6e 74 20 39 39 31 31 30 31 34 31 0d 0a 52 65 66 65 72 65 6e 63 65 20 ┆ ma nyfront 99110141 Reference ┆
0x000a0…000c0 4d 61 6e 75 61 6c 0d 0a 66 6f 72 20 74 68 65 20 50 72 6f 67 72 61 6d 6d 69 6e 67 20 4c 61 6e 67 ┆Manual for the Programming Lang┆
0x000c0…000e0 75 61 67 65 0d 0a 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 0d 0a 16 6d 61 20 73 74 61 72 ┆uage Real-Time Pascal ma star┆
0x000e0…00100 74 20 22 52 54 50 20 52 65 66 65 72 65 6e 63 65 20 4d 61 6e 75 61 6c 22 0d 0a 16 6d 6b 20 73 69 ┆t "RTP Reference Manual" mk si┆
0x00100…00120 64 65 66 6f 72 6d 61 74 20 73 20 6a 61 62 61 20 69 20 31 31 0d 0a 16 73 61 0d 0a 49 4e 54 52 4f ┆deformat s jaba i 11 sa INTRO┆
0x00120…00140 44 55 43 54 49 4f 4e 0d 0a 16 73 62 0d 0a 47 6f 61 6c 73 0d 0a 54 68 65 20 70 72 69 6e 63 69 70 ┆DUCTION sb Goals The princip┆
0x00140…00160 61 6c 20 67 6f 61 6c 20 6f 66 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 69 73 20 74 ┆al goal of Real-Time Pascal is t┆
0x00160…00180 6f 20 62 65 20 61 20 70 72 6f 67 72 61 6d 80 6d 69 6e 67 20 74 6f 80 6f 6c 20 0a 70 61 72 74 69 ┆o be a programђming toђol parti┆
0x00180…001a0 63 75 6c 61 72 6c 79 20 77 65 6c 6c 2d 73 75 69 74 65 64 20 69 6e 20 73 69 80 74 75 61 74 69 6f ┆cularly well-suited in siђtuatio┆
0x001a0…001c0 6e 73 20 63 68 61 72 61 63 74 65 72 69 80 7a 65 64 20 62 79 20 74 68 65 20 66 6f 6c 6c 6f 77 69 ┆ns characteriђzed by the followi┆
0x001c0…001e0 6e 67 20 0a 74 77 6f 20 72 65 71 75 69 72 65 6d 65 6e 74 73 3a 0d 0a 0d 0a 2d 20 84 74 68 65 20 ┆ng two requirements: - ёthe ┆
0x001e0…00200 73 6f 66 74 77 61 72 65 20 6d 75 73 74 20 70 72 6f 76 69 64 65 20 72 61 70 69 64 20 72 65 73 70 ┆software must provide rapid resp┆
0x00200…00220 6f 6e 73 65 20 74 6f 20 65 78 74 65 72 6e 61 6c 20 65 76 65 6e 74 73 20 28 22 72 65 61 6c 2d 0a ┆onse to external events ("real- ┆
0x00220…00240 19 82 80 80 74 69 6d 65 22 29 2c 0d 0a 2d 20 84 70 72 6f 67 72 61 6d 6d 65 72 73 20 77 69 73 68 ┆ ѓђђtime"), - ёprogrammers wish┆
0x00240…00260 20 74 6f 20 75 74 69 6c 69 7a 65 20 74 68 65 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 20 6f 66 20 ┆ to utilize the organization of ┆
0x00260…00280 73 6f 66 74 77 61 72 65 20 69 6e 74 6f 20 70 61 72 61 6c 80 0a 19 82 80 80 6c 65 6c 20 63 6f 6f ┆software into paralђ ѓђђlel coo┆
0x00280…002a0 70 65 72 61 74 69 6e 67 20 70 72 6f 63 65 73 73 65 73 20 61 73 20 61 20 66 75 6e 64 61 6d 65 6e ┆perating processes as a fundamen┆
0x002a0…002c0 74 61 6c 20 73 74 72 75 63 74 75 72 69 6e 67 20 74 6f 80 6f 6c 2e 0d 0a 0d 0a 54 68 65 20 6d 61 ┆tal structuring toђol. The ma┆
0x002c0…002e0 6a 6f 72 20 75 73 65 20 6f 66 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 68 61 73 20 ┆jor use of Real-Time Pascal has ┆
0x002e0…00300 62 65 65 6e 2c 20 61 6e 64 20 69 73 20 66 6f 72 65 73 65 65 6e 20 74 6f 20 72 65 80 80 0a 6d 61 ┆been, and is foreseen to reђђ ma┆
0x00300…00320 69 6e 2c 20 69 6e 20 74 68 65 20 62 61 73 69 63 20 73 6f 66 74 77 61 72 65 20 6f 66 20 64 69 73 ┆in, in the basic software of dis┆
0x00320…00340 74 72 69 62 75 74 65 64 20 70 72 6f 63 65 73 73 69 6e 67 20 73 79 73 74 65 6d 73 20 61 6e 64 20 ┆tributed processing systems and ┆
0x00340…00360 64 61 74 61 20 0a 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 6e 65 74 77 6f 72 6b 20 6e 6f 64 65 ┆data communication network node┆
0x00360…00380 73 3a 0d 0a 0d 0a 2d 20 74 65 72 6d 69 6e 61 6c 20 65 6d 75 6c 61 74 69 6f 6e 2c 0d 0a 2d 20 6c ┆s: - terminal emulation, - l┆
0x00380…003a0 61 79 65 72 65 64 20 70 72 6f 74 6f 63 6f 6c 20 68 61 6e 64 6c 69 6e 67 2c 0d 0a 2d 20 6c 6f 63 ┆ayered protocol handling, - loc┆
0x003a0…003c0 61 6c 20 61 72 65 61 20 6e 65 74 77 6f 72 6b 69 6e 67 20 73 65 72 76 69 63 65 73 2e 0d 0a 0d 0a ┆al area networking services. ┆
0x003c0…003e0 49 6e 20 74 68 65 73 65 20 6b 69 6e 64 73 20 6f 66 20 73 69 74 75 61 74 69 6f 6e 73 20 74 68 65 ┆In these kinds of situations the┆
0x003e0…00400 20 74 77 6f 20 61 62 6f 76 65 2d 6d 65 6e 74 69 6f 6e 65 64 20 72 65 71 75 80 69 72 65 6d 65 6e ┆ two above-mentioned requђiremen┆
0x00400…00420 74 73 20 61 72 65 20 0a 69 6e 68 65 72 65 6e 74 6c 79 20 70 72 65 73 65 6e 74 2e 0d 0a 0d 0a 54 ┆ts are inherently present. T┆
0x00420…00440 68 65 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6f 66 20 65 6e 64 2d 75 73 65 72 20 61 70 70 6c 69 ┆he programming of end-user appli┆
0x00440…00460 63 61 74 69 6f 6e 73 2c 20 61 6e 64 20 69 6e 20 70 61 72 74 69 63 75 6c 61 72 3a 20 70 72 6f 80 ┆cations, and in particular: proђ┆
0x00460…00480 67 72 61 6d 80 0a 6d 69 6e 67 20 62 79 20 74 68 65 20 65 6e 64 20 75 73 65 72 2c 20 61 72 65 20 ┆gramђ ming by the end user, are ┆
0x00480…004a0 6e 6f 74 20 67 6f 61 6c 73 20 6f 66 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 2e 20 48 ┆not goals of Real-Time Pascal. H┆
0x004a0…004c0 69 67 68 20 6c 65 76 65 6c 20 0a 72 75 6e 2d 74 69 6d 65 20 73 75 70 70 6f 72 74 20 66 75 6e 63 ┆igh level run-time support func┆
0x004c0…004e0 74 69 6f 6e 73 2c 20 73 75 63 68 20 61 73 20 61 20 67 65 80 6e 65 72 61 6c 20 68 69 67 68 20 6c ┆tions, such as a geђneral high l┆
0x004e0…00500 65 76 65 6c 20 69 6e 70 75 74 2f 6f 75 74 70 75 74 20 0a 73 79 73 74 65 6d 2c 20 61 72 65 20 6e ┆evel input/output system, are n┆
0x00500…00520 6f 74 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 6c 61 6e 67 75 61 67 65 2e 20 48 6f 77 ┆ot included in the language. How┆
0x00520…00540 65 76 65 72 2c 20 70 72 6f 76 69 64 65 64 20 73 75 69 74 61 62 6c 65 20 0a 74 6f 6f 6c 73 20 61 ┆ever, provided suitable tools a┆
0x00540…00560 72 65 20 66 75 72 6e 69 73 68 65 64 20 61 6c 6f 6e 67 20 77 69 74 68 20 73 75 70 70 6f 72 74 20 ┆re furnished along with support ┆
0x00560…00580 66 6f 72 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 69 74 73 65 6c 66 2c 20 69 74 20 6d 61 79 20 ┆for the language itself, it may ┆
0x00580…005a0 0a 70 72 6f 76 65 20 74 6f 20 62 65 20 77 65 6c 6c 20 73 75 69 74 65 64 20 66 6f 72 20 61 70 70 ┆ prove to be well suited for app┆
0x005a0…005c0 6c 69 63 61 74 69 6f 6e 73 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 61 73 20 77 65 6c 6c 20 61 73 ┆lications programming as well as┆
0x005c0…005e0 20 73 79 80 0a 73 74 65 6d 73 20 70 72 6f 67 72 61 6d 6d 69 6e 67 2e 0d 0a 0d 0a 41 6c 74 68 6f ┆ syђ stems programming. Altho┆
0x005e0…00600 75 67 68 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 61 69 6d 73 20 61 74 20 6c 6f 77 ┆ugh Real-Time Pascal aims at low┆
0x00600…00620 20 6c 65 76 65 6c 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 69 74 20 69 73 20 76 65 80 72 79 20 0a ┆ level programming it is veђry ┆
0x00620…00640 6d 75 63 68 20 61 20 68 69 67 68 20 6c 65 76 65 6c 20 6c 61 6e 67 75 61 67 65 2e 20 54 68 69 73 ┆much a high level language. This┆
0x00640…00660 20 69 73 20 74 72 75 65 20 69 6e 20 74 65 72 6d 73 20 6f 66 20 73 79 6e 74 61 78 2c 20 69 6e 20 ┆ is true in terms of syntax, in ┆
0x00660…00680 74 65 72 6d 73 20 0a 6f 66 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 66 61 63 69 6c 69 74 69 65 73 ┆terms of programming facilities┆
0x00680…006a0 2c 20 61 6e 64 20 69 6e 20 70 61 72 74 69 80 63 75 6c 61 72 20 69 6e 20 74 65 72 6d 73 20 6f 66 ┆, and in partiђcular in terms of┆
0x006a0…006c0 20 74 68 65 20 61 6d 6f 75 6e 74 20 6f 66 20 0a 63 6f 6e 73 69 73 74 65 6e 63 79 20 65 6e 66 6f ┆ the amount of consistency enfo┆
0x006c0…006e0 72 63 65 6d 65 6e 74 20 77 68 69 63 68 20 69 73 20 65 6d 62 6f 64 69 65 64 20 69 6e 20 74 68 65 ┆rcement which is embodied in the┆
0x006e0…00700 20 6c 61 6e 67 75 61 67 65 2e 0d 0a 0d 0a 52 65 61 6c 2d 54 69 6d 65 20 50 61 63 61 6c 20 68 61 ┆ language. Real-Time Pacal ha┆
0x00700…00720 73 20 6e 6f 74 20 62 65 65 6e 20 64 65 73 69 67 6e 65 64 20 73 70 65 63 69 66 69 63 61 6c 6c 79 ┆s not been designed specifically┆
0x00720…00740 20 66 6f 72 20 61 6e 79 20 70 61 72 74 69 80 63 75 6c 61 72 20 0a 6d 61 63 68 69 6e 65 2e 20 48 ┆ for any partiђcular machine. H┆
0x00740…00760 6f 77 65 76 65 72 2c 20 74 68 65 20 66 65 61 73 69 62 69 6c 69 74 79 20 61 6e 64 20 75 73 65 66 ┆owever, the feasibility and usef┆
0x00760…00780 75 6c 6e 65 73 73 20 6f 66 20 61 6e 20 69 6d 80 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 0a 6f 6e ┆ulness of an imђplementation on┆
0x00780…007a0 20 74 68 65 20 49 6e 74 65 6c 20 69 41 50 58 6e 38 36 20 70 72 6f 63 65 73 73 6f 72 20 73 65 72 ┆ the Intel iAPXn86 processor ser┆
0x007a0…007c0 69 65 73 20 61 6e 64 20 52 43 33 35 30 32 20 68 61 80 76 65 20 62 65 65 6e 20 61 62 73 6f 6c 75 ┆ies and RC3502 haђve been absolu┆
0x007c0…007e0 74 65 20 0a 72 65 71 75 69 72 65 6d 65 6e 74 73 2e 0d 0a 16 73 62 0d 0a 4d 61 69 6e 20 46 65 61 ┆te requirements. sb Main Fea┆
0x007e0…00800 74 75 72 65 73 0d 0a 49 6e 20 6d 61 6e 79 20 72 65 73 70 65 63 74 73 20 52 65 61 6c 2d 54 69 6d ┆tures In many respects Real-Tim┆
0x00800…00820 65 20 50 61 73 63 61 6c 20 69 73 2c 20 61 73 20 6f 6e 65 20 6d 69 67 68 74 20 61 6e 74 69 63 69 ┆e Pascal is, as one might antici┆
0x00820…00840 80 70 61 74 65 2c 20 73 69 6d 69 6c 61 72 20 0a 74 6f 20 73 74 61 6e 64 61 72 64 20 50 61 73 63 ┆ђpate, similar to standard Pasc┆
0x00840…00860 61 6c 20 2f 50 61 73 63 61 6c 2c 20 49 53 4f 20 50 61 73 63 61 6c 2f 2e 20 54 68 65 20 6d 61 6a ┆al /Pascal, ISO Pascal/. The maj┆
0x00860…00880 6f 72 20 64 69 66 80 66 65 80 72 65 6e 63 65 20 69 73 20 74 68 61 74 20 0a 52 65 61 6c 2d 54 69 ┆or difђfeђrence is that Real-Ti┆
0x00880…008a0 6d 65 20 50 61 73 63 61 6c 20 69 6e 63 6c 75 64 65 73 20 66 61 80 63 69 6c 69 74 69 65 73 20 66 ┆me Pascal includes faђcilities f┆
0x008a0…008c0 6f 72 20 73 74 61 72 74 69 6e 67 20 61 6e 64 20 63 6f 6e 74 72 6f 6c 6c 69 6e 67 20 6d 75 6c 74 ┆or starting and controlling mult┆
0x008c0…008e0 69 80 0a 70 6c 65 20 70 72 6f 63 65 73 73 65 73 20 61 73 20 77 65 6c 6c 20 61 73 20 66 6f 72 20 ┆iђ ple processes as well as for ┆
0x008e0…00900 74 68 65 20 6f 72 64 65 72 6c 79 20 73 79 6e 63 68 72 6f 6e 69 7a 61 74 69 6f 6e 20 61 6e 64 20 ┆the orderly synchronization and ┆
0x00900…00920 69 6e 74 65 72 80 80 0a 63 6f 6d 6d 75 6e 69 63 61 80 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 73 ┆interђђ communicaђtion between s┆
0x00920…00940 75 63 68 20 70 72 6f 63 65 73 73 65 73 2e 20 46 65 61 74 75 72 65 73 20 77 68 69 63 68 20 61 72 ┆uch processes. Features which ar┆
0x00940…00960 65 20 62 61 73 69 63 20 74 6f 20 0a 52 65 80 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 62 75 ┆e basic to Reђal-Time Pascal bu┆
0x00960…00980 74 20 77 65 6c 6c 2d 6b 6e 6f 77 6e 20 66 72 6f 6d 20 73 74 61 6e 64 61 72 64 20 50 61 73 63 61 ┆t well-known from standard Pasca┆
0x00980…009a0 6c 20 61 72 65 20 6e 6f 74 20 64 69 73 63 75 73 80 0a 73 65 64 20 69 6e 20 74 68 69 73 20 73 65 ┆l are not discusђ sed in this se┆
0x009a0…009c0 63 74 69 6f 6e 2e 0d 0a 16 73 63 0d 0a 50 72 6f 63 65 73 73 65 73 0d 0a 16 73 6f 20 70 72 6f 67 ┆ction. sc Processes so prog┆
0x009c0…009e0 72 61 6d 0d 0a 16 73 6f 20 70 72 6f 63 65 73 73 0d 0a 16 73 6f 20 69 6e 63 61 72 6e 61 74 69 6f ┆ram so process so incarnatio┆
0x009e0…00a00 6e 0d 0a 41 73 20 69 6e 20 73 74 61 6e 64 61 72 64 20 50 61 73 63 61 6c 2c 20 61 20 52 65 61 6c ┆n As in standard Pascal, a Real┆
0x00a00…00a20 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 a0 70 72 6f 67 72 61 6d e0 20 63 6f 6e 73 69 73 74 73 20 ┆-Time Pascal аprogramЯ consists ┆
0x00a20…00a40 6f 66 20 64 65 80 63 6c 61 80 0a 72 61 74 69 6f 6e 73 20 61 6e 64 20 64 65 66 69 6e 69 74 69 6f ┆of deђclaђ rations and definitio┆
0x00a40…00a60 6e 73 20 6f 66 20 64 61 74 61 20 74 6f 20 62 65 20 6d 61 6e 69 70 75 6c 61 74 65 64 2c 20 61 6e ┆ns of data to be manipulated, an┆
0x00a60…00a80 64 20 61 20 64 65 80 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 0a 61 63 74 69 6f 6e 73 20 74 6f 20 ┆d a deђscription of actions to ┆
0x00a80…00aa0 70 65 72 66 6f 72 6d 20 74 68 65 20 64 65 73 69 72 65 64 20 6d 61 6e 69 80 70 75 6c 61 74 69 6f ┆perform the desired maniђpulatio┆
0x00aa0…00ac0 6e 73 2e 20 54 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 20 52 65 80 0a 61 6c 2d 54 69 ┆ns. The execution of a Reђ al-Ti┆
0x00ac0…00ae0 6d 65 20 50 61 73 63 61 6c 20 70 72 6f 67 72 61 6d 20 69 73 20 63 61 6c 6c 65 64 20 61 20 a0 70 ┆me Pascal program is called a аp┆
0x00ae0…00b00 72 6f 63 65 73 73 e0 2e 20 41 20 70 72 6f 63 65 73 73 20 69 73 20 73 61 69 64 20 74 6f 20 62 65 ┆rocessЯ. A process is said to be┆
0x00b00…00b20 20 61 6e 20 0a a0 69 6e 63 61 72 6e 61 74 69 6f 6e e0 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 ┆ an аincarnationЯ of the progra┆
0x00b20…00b40 6d 20 77 68 69 63 68 20 69 73 20 65 78 65 80 63 75 74 65 64 2e 0d 0a 0d 0a 52 65 61 6c 2d 54 69 ┆m which is exeђcuted. Real-Ti┆
0x00b40…00b60 6d 65 20 50 61 73 63 61 6c 20 69 73 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 63 6f 6d 70 69 6c ┆me Pascal is intended for compil┆
0x00b60…00b80 61 74 69 6f 6e 2e 20 54 68 65 20 6d 61 6a 6f 72 20 69 6e 80 67 72 65 80 80 64 69 65 6e 74 20 6f ┆ation. The major inђgreђђdient o┆
0x00b80…00ba0 66 20 0a 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 69 73 20 74 68 65 20 63 6f 6d 70 ┆f an implementation is the comp┆
0x00ba0…00bc0 69 6c 65 72 20 77 68 69 63 68 20 77 69 6c 6c 20 74 72 61 6e 73 66 6f 72 6d 20 73 6f 75 72 63 65 ┆iler which will transform source┆
0x00bc0…00be0 20 70 72 6f 80 80 0a 8c 8b 88 0a 67 72 61 6d 73 20 69 6e 74 6f 20 6f 62 6a 65 63 74 20 63 6f 64 ┆ proђђ їІѕ grams into object cod┆
0x00be0…00c00 65 2c 20 65 78 65 63 75 74 61 62 6c 65 20 6f 6e 20 73 6f 6d 65 20 74 61 72 67 65 74 20 6d 61 80 ┆e, executable on some target maђ┆
0x00c00…00c20 63 68 69 6e 65 2e 20 54 68 72 6f 75 67 68 80 0a 6f 75 74 20 74 68 69 73 20 64 6f 63 75 6d 65 6e ┆chine. Throughђ out this documen┆
0x00c20…00c40 74 20 72 65 66 65 72 65 6e 63 65 20 69 73 20 6d 61 64 65 20 74 6f 20 a0 63 6f 6d 70 69 6c 65 74 ┆t reference is made to аcompilet┆
0x00c40…00c60 69 80 6d 65 e0 2c 20 74 68 65 20 74 69 6d 65 20 77 68 65 6e 20 61 20 0a 73 6f 75 72 63 65 20 74 ┆iђmeЯ, the time when a source t┆
0x00c60…00c80 65 78 74 20 69 73 20 62 65 69 6e 67 20 6d 61 6e 69 70 75 6c 61 74 65 64 20 62 79 20 61 20 63 6f ┆ext is being manipulated by a co┆
0x00c80…00ca0 6d 80 70 69 6c 65 72 2c 20 61 6e 64 20 a0 72 75 6e 2d 74 69 6d 65 e0 2c 20 74 68 65 20 74 69 80 ┆mђpiler, and аrun-timeЯ, the tiђ┆
0x00ca0…00cc0 0a 6d 65 20 77 68 65 6e 20 61 20 64 79 6e 61 6d 69 63 20 73 79 73 74 65 6d 20 63 6f 6e 73 69 73 ┆ me when a dynamic system consis┆
0x00cc0…00ce0 74 69 6e 67 20 6f 66 20 61 20 6e 75 6d 80 62 65 72 20 6f 66 20 63 6f 6f 70 65 72 61 74 69 6e 67 ┆ting of a numђber of cooperating┆
0x00ce0…00d00 20 70 72 6f 80 0a 63 65 73 80 73 65 73 20 69 73 20 6f 70 65 72 61 74 69 76 65 2e 0d 0a 0d 0a 49 ┆ proђ cesђses is operative. I┆
0x00d00…00d20 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 6f 66 20 64 61 ┆n addition to declarations of da┆
0x00d20…00d40 74 61 20 61 6e 64 20 64 65 73 63 72 69 70 74 69 6f 6e 73 20 6f 66 20 61 63 80 74 69 6f 6e 73 20 ┆ta and descriptions of acђtions ┆
0x00d40…00d60 61 20 70 72 6f 80 0a 67 72 61 6d 20 28 61 6e 64 20 74 68 69 73 20 69 73 20 77 68 65 72 65 20 52 ┆a proђ gram (and this is where R┆
0x00d60…00d80 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 64 65 70 61 72 74 73 20 66 72 6f 6d 20 73 74 61 ┆eal-Time Pascal departs from sta┆
0x00d80…00da0 6e 64 61 72 64 20 0a 50 61 73 63 61 6c 29 20 6d 61 79 20 63 6f 6e 74 61 69 6e 20 73 75 62 2d 70 ┆ndard Pascal) may contain sub-p┆
0x00da0…00dc0 72 6f 67 72 61 6d 73 2c 20 61 6e 64 20 61 20 70 72 6f 80 63 65 73 73 20 6d 61 79 20 63 72 65 61 ┆rograms, and a proђcess may crea┆
0x00dc0…00de0 74 65 2c 20 73 74 61 72 74 20 0a 61 6e 64 20 63 6f 6e 74 72 6f 6c 20 69 6e 63 61 72 6e 61 74 69 ┆te, start and control incarnati┆
0x00de0…00e00 6f 6e 73 20 6f 66 20 73 75 62 2d 70 72 6f 80 67 72 61 6d 73 20 6f 66 20 74 68 65 20 70 72 6f 67 ┆ons of sub-proђgrams of the prog┆
0x00e00…00e20 72 61 6d 20 6f 66 20 77 68 69 63 68 20 69 74 20 0a 69 73 20 69 74 73 65 6c 66 20 61 6e 20 69 6e ┆ram of which it is itself an in┆
0x00e20…00e40 63 61 72 6e 61 74 69 6f 6e 2e 20 53 75 62 2d 70 72 6f 67 72 61 6d 73 20 6d 61 79 20 62 65 20 6e ┆carnation. Sub-programs may be n┆
0x00e40…00e60 65 73 74 65 64 20 74 6f 20 61 6e 79 20 64 65 70 74 68 2e 20 49 6e 20 0a 6f 74 68 65 72 20 77 6f ┆ested to any depth. In other wo┆
0x00e60…00e80 72 64 73 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c ┆rds a number of Real-Time Pascal┆
0x00e80…00ea0 20 70 72 6f 67 72 61 6d 73 20 6d 61 79 20 63 6f 6e 73 74 69 74 75 74 65 20 61 20 0a a0 70 72 6f ┆ programs may constitute a аpro┆
0x00ea0…00ec0 67 72 61 6d 20 74 72 65 65 e0 2e 20 54 68 65 20 65 6e 63 6c 6f 73 65 72 20 72 65 6c 61 74 69 6f ┆gram treeЯ. The encloser relatio┆
0x00ec0…00ee0 6e 20 62 65 74 77 65 65 6e 20 61 20 70 72 6f 80 80 67 72 61 6d 20 61 6e 64 20 61 20 73 75 62 2d ┆n between a proђђgram and a sub-┆
0x00ee0…00f00 70 72 6f 80 0a 67 72 61 6d 20 69 73 20 63 61 72 72 69 65 64 20 64 69 72 65 63 74 6c 79 20 6f 76 ┆proђ gram is carried directly ov┆
0x00f00…00f20 65 72 20 74 6f 20 74 68 65 20 a0 70 61 72 65 6e 74 e0 20 72 65 80 6c 61 74 69 6f 6e 20 74 68 61 ┆er to the аparentЯ reђlation tha┆
0x00f20…00f40 74 20 65 78 69 73 74 73 20 62 65 80 80 0a 74 77 65 65 6e 20 61 20 70 72 6f 63 65 73 73 20 61 6e ┆t exists beђђ tween a process an┆
0x00f40…00f60 64 20 61 20 a0 63 68 69 6c 64 e0 20 70 72 6f 63 65 73 73 20 77 68 69 63 68 20 69 74 20 68 61 73 ┆d a аchildЯ process which it has┆
0x00f60…00f80 20 63 72 65 61 74 65 64 2e 20 54 68 75 73 20 74 68 65 20 0a 64 79 6e 61 6d 69 63 20 73 65 74 20 ┆ created. Thus the dynamic set ┆
0x00f80…00fa0 6f 66 20 61 63 74 69 76 65 20 70 72 6f 63 65 73 73 65 73 20 77 69 6c 6c 20 65 78 68 69 80 62 69 ┆of active processes will exhiђbi┆
0x00fa0…00fc0 74 20 61 20 63 6f 6e 74 72 6f 6c 20 73 74 72 75 63 74 75 72 65 20 72 65 80 80 0a 66 6c 65 63 74 ┆t a control structure reђђ flect┆
0x00fc0…00fe0 69 6e 67 20 74 68 65 20 6e 65 73 74 65 64 20 73 74 72 75 63 74 75 72 65 20 6f 66 20 74 68 65 20 ┆ing the nested structure of the ┆
0x00fe0…01000 70 72 6f 67 72 61 6d 20 74 72 65 65 2e 0d 0a 0d 0a 41 6e 20 65 73 73 65 6e 74 69 61 6c 20 66 65 ┆program tree. An essential fe┆
0x01000…01020 61 74 75 72 65 20 6f 66 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 69 73 20 74 68 61 ┆ature of Real-Time Pascal is tha┆
0x01020…01040 74 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 73 70 65 80 63 69 61 6c 20 0a 74 79 70 65 73 20 61 6e ┆t a number of speђcial types an┆
0x01040…01060 64 20 6f 70 65 72 61 74 69 6f 6e 73 20 6f 6e 20 76 61 72 69 61 62 6c 65 73 20 6f 66 20 74 68 65 ┆d operations on variables of the┆
0x01060…01080 73 65 20 74 79 70 65 73 20 61 72 65 20 64 69 72 65 63 74 80 6c 79 20 74 61 69 6c 6f 72 65 64 20 ┆se types are directђly tailored ┆
0x01080…010a0 0a 74 6f 20 70 65 72 66 6f 72 6d 20 73 79 6e 63 68 72 6f 6e 69 7a 61 74 69 6f 6e 20 61 6e 64 20 ┆ to perform synchronization and ┆
0x010a0…010c0 65 78 63 68 61 6e 67 65 20 6f 66 20 61 63 63 65 73 73 20 74 6f 20 73 68 61 72 65 64 20 64 61 74 ┆exchange of access to shared dat┆
0x010c0…010e0 61 20 62 65 80 0a 74 77 65 65 6e 20 70 72 6f 63 65 73 73 65 73 20 69 6e 20 61 20 77 65 6c 6c 2d ┆a beђ tween processes in a well-┆
0x010e0…01100 64 65 66 69 6e 65 64 20 61 6e 64 20 73 65 63 75 72 65 20 66 61 80 73 68 69 6f 6e 2e 20 49 6e 20 ┆defined and secure faђshion. In ┆
0x01100…01120 70 61 72 74 69 63 75 6c 61 72 20 0a 6f 6e 65 20 69 6d 70 6f 72 74 61 6e 74 20 69 6e 76 61 72 69 ┆particular one important invari┆
0x01120…01140 61 6e 74 20 69 73 20 6d 61 69 6e 74 61 69 6e 65 64 20 61 20 70 72 69 6f 72 69 20 28 69 2e 65 2e ┆ant is maintained a priori (i.e.┆
0x01140…01160 20 77 69 74 68 6f 75 74 20 74 68 65 20 70 72 6f 80 80 0a 67 72 61 6d 6d 65 72 20 6e 65 65 64 69 ┆ without the proђђ grammer needi┆
0x01160…01180 6e 67 20 74 6f 20 77 6f 72 72 79 20 61 62 6f 75 74 20 69 74 29 3a 20 74 6f 20 65 76 65 72 79 20 ┆ng to worry about it): to every ┆
0x01180…011a0 a0 bf dc d8 6d 65 73 73 61 67 65 be e0 20 74 68 65 72 65 20 65 78 69 73 74 73 20 61 74 20 0a 61 ┆а┐▄пmessageЙЯ there exists at a┆
0x011a0…011c0 6e 79 20 67 69 76 65 6e 20 74 69 6d 65 20 70 72 65 63 69 73 65 6c 79 20 6f 6e 65 20 a0 bf dc d8 ┆ny given time precisely one а┐▄п┆
0x011c0…011e0 72 65 80 66 65 72 65 6e 63 65 e0 be 2c 20 61 6c 6c 6f 77 69 6e 67 20 61 74 20 6d 6f 73 74 20 6f ┆reђferenceЯЙ, allowing at most o┆
0x011e0…01200 6e 65 20 70 72 6f 63 65 73 73 20 0a 74 6f 20 61 63 63 65 73 73 20 74 68 65 20 6d 65 73 73 61 67 ┆ne process to access the messag┆
0x01200…01220 65 2e 20 45 78 80 63 68 61 6e 67 65 20 6f 66 20 61 63 63 65 73 73 20 74 6f 20 61 20 6d 65 73 73 ┆e. Exђchange of access to a mess┆
0x01220…01240 61 67 65 20 69 73 20 61 63 68 69 65 76 65 64 20 0a 62 79 20 70 61 73 73 69 6e 67 20 74 68 65 20 ┆age is achieved by passing the ┆
0x01240…01260 20 6d 65 73 80 73 61 67 65 20 76 69 61 20 61 20 a0 bf dc d8 6d 61 69 6c 62 6f 78 be e0 2e 0d 0a ┆ mesђsage via a а┐▄пmailboxЙЯ. ┆
0x01260…01280 0d 0a 54 68 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 66 6f 72 20 70 72 6f 63 65 73 73 20 73 79 6e ┆ The operations for process syn┆
0x01280…012a0 63 68 72 6f 6e 69 7a 61 74 69 6f 6e 20 61 6e 64 20 6d 65 73 73 61 67 65 20 70 61 73 80 73 69 6e ┆chronization and message pasђsin┆
0x012a0…012c0 67 20 61 72 65 20 0a 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 ┆g are available in Real-Time Pa┆
0x012c0…012e0 73 63 61 6c 20 61 73 20 70 72 65 64 65 66 69 6e 65 64 20 72 6f 75 74 69 6e 65 73 2e 20 54 68 69 ┆scal as predefined routines. Thi┆
0x012e0…01300 73 20 69 6d 70 6c 69 65 73 20 74 68 61 74 20 0a 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f ┆s implies that an implementatio┆
0x01300…01320 6e 20 6f 66 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 77 69 6c 6c 20 69 6e 76 6f 6c ┆n of Real-Time Pascal will invol┆
0x01320…01340 76 65 20 74 68 65 20 63 6f 6e 73 74 72 75 63 74 69 6f 6e 20 0a 6f 66 20 65 69 74 68 65 72 3a 0d ┆ve the construction of either: ┆
0x01340…01360 0a 0d 0a 2d 20 84 61 20 73 6f 66 74 77 61 72 65 20 6e 75 63 6c 65 75 73 2c 20 69 2e 65 2e 20 61 ┆ - ёa software nucleus, i.e. a┆
0x01360…01380 20 73 6d 61 6c 6c 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 2c 20 77 68 69 63 68 20 70 ┆ small operating system, which p┆
0x01380…013a0 65 72 80 80 66 6f 72 6d 73 20 0a 19 82 80 80 74 68 65 20 6d 65 73 73 61 67 65 20 70 61 73 73 69 ┆erђђforms ѓђђthe message passi┆
0x013a0…013c0 6e 67 20 61 6e 64 20 70 72 6f 63 65 73 73 20 73 79 6e 63 68 72 6f 6e 69 7a 61 74 69 6f 6e 20 61 ┆ng and process synchronization a┆
0x013c0…013e0 6e 64 20 73 63 68 65 80 64 75 6c 69 6e 67 20 0a 19 82 80 80 66 75 6e 63 74 69 6f 6e 73 2c 20 74 ┆nd scheђduling ѓђђfunctions, t┆
0x013e0…01400 79 70 69 63 61 6c 6c 79 20 69 6e 20 61 20 68 69 67 68 6c 79 20 64 65 64 69 63 61 74 65 64 20 6d ┆ypically in a highly dedicated m┆
0x01400…01420 61 6e 6e 65 72 2c 20 6f 72 0d 0a 0d 0a 2d 20 84 61 20 72 75 6e 2d 74 69 6d 65 20 73 79 73 74 65 ┆anner, or - ёa run-time syste┆
0x01420…01440 6d 20 70 72 6f 76 69 64 69 6e 67 20 61 20 62 72 69 64 67 65 20 74 6f 20 61 20 67 65 6e 65 72 61 ┆m providing a bridge to a genera┆
0x01440…01460 6c 20 6f 70 65 72 61 74 69 6e 67 20 73 79 80 73 74 65 6d 20 0a 19 82 80 80 77 68 69 63 68 20 6c ┆l operating syђstem ѓђђwhich l┆
0x01460…01480 65 6e 64 73 20 69 74 73 65 6c 66 20 74 6f 20 73 75 70 70 6f 72 74 69 6e 67 20 74 68 65 20 74 79 ┆ends itself to supporting the ty┆
0x01480…014a0 70 65 20 6f 66 20 70 72 6f 63 65 73 73 20 73 79 6e 63 68 72 6f 6e 69 7a 61 74 69 6f 6e 20 0a 19 ┆pe of process synchronization ┆
0x014a0…014c0 82 80 80 61 6e 64 20 69 6e 74 65 72 2d 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 66 75 6e 63 80 ┆ѓђђand inter-communication funcђ┆
0x014c0…014e0 74 69 6f 6e 73 20 64 65 66 69 6e 65 64 20 61 73 20 70 61 72 74 20 6f 66 20 52 65 61 6c 2d 54 69 ┆tions defined as part of Real-Ti┆
0x014e0…01500 6d 65 20 0a 19 82 80 80 50 61 73 63 61 6c 2e 0d 0a 0d 0a 41 6e 20 6f 70 65 72 61 74 69 6e 67 20 ┆me ѓђђPascal. An operating ┆
0x01500…01520 73 79 73 74 65 6d 20 74 6f 20 62 65 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 6c 61 74 74 65 72 ┆system to be used for the latter┆
0x01520…01540 20 6b 69 6e 64 20 6f 66 20 69 6d 70 6c 65 80 6d 65 6e 74 61 80 74 69 6f 6e 20 0a 6d 75 73 74 20 ┆ kind of impleђmentaђtion must ┆
0x01540…01560 73 75 70 70 6f 72 74 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 6d 75 6c 74 69 70 6c ┆support the execution of multipl┆
0x01560…01580 65 20 70 72 6f 63 65 73 73 65 73 20 65 69 74 68 65 72 20 69 6e 20 74 72 75 65 20 70 61 72 61 6c ┆e processes either in true paral┆
0x01580…015a0 80 0a 6c 65 6c 20 6f 6e 20 61 20 74 72 61 6e 73 70 61 72 65 6e 74 20 6d 75 6c 74 69 70 72 6f 63 ┆ђ lel on a transparent multiproc┆
0x015a0…015c0 65 73 73 6f 72 20 73 79 73 74 65 6d 20 6f 72 20 69 6e 20 70 73 65 75 80 64 6f 2d 70 61 72 61 6c ┆essor system or in pseuђdo-paral┆
0x015c0…015e0 6c 65 6c 20 6f 6e 20 61 20 0a 73 69 6e 67 6c 65 20 70 72 6f 63 65 73 73 6f 72 2e 20 54 68 65 20 ┆lel on a single processor. The ┆
0x015e0…01600 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 20 6d 75 73 74 20 70 65 72 80 66 6f 72 6d 20 70 ┆operating system must perђform p┆
0x01600…01620 72 6f 63 65 73 73 20 73 63 68 65 64 75 80 80 0a 6c 69 6e 67 3b 20 69 74 20 6d 75 73 74 20 61 6c ┆rocess scheduђђ ling; it must al┆
0x01620…01640 73 6f 20 73 75 70 70 6f 72 74 20 74 68 65 20 65 78 63 68 61 6e 67 65 20 6f 66 20 6d 65 73 73 61 ┆so support the exchange of messa┆
0x01640…01660 67 65 73 20 76 69 61 20 6d 61 69 6c 62 6f 78 65 73 2e 20 49 6e 20 0a 67 65 80 6e 65 72 61 6c 20 ┆ges via mailboxes. In geђneral ┆
0x01660…01680 69 74 20 69 73 20 6e 65 63 65 73 73 61 72 79 20 74 6f 20 63 72 69 74 69 63 61 6c 6c 79 20 65 76 ┆it is necessary to critically ev┆
0x01680…016a0 61 6c 75 61 74 65 20 61 20 67 69 76 65 6e 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 20 ┆aluate a given operating system ┆
0x016a0…016c0 0a 62 65 66 6f 72 65 20 69 74 20 69 73 20 75 73 65 64 20 61 73 20 61 20 66 6f 75 6e 64 61 80 74 ┆ before it is used as a foundaђt┆
0x016c0…016e0 69 6f 6e 20 66 6f 72 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 52 65 61 ┆ion for an implementation of Rea┆
0x016e0…01700 6c 2d 54 69 6d 65 20 0a 50 61 73 63 61 6c 2e 0d 0a 0d 0a 57 68 65 6e 20 61 20 73 75 69 74 61 62 ┆l-Time Pascal. When a suitab┆
0x01700…01720 6c 65 20 67 65 6e 65 72 61 6c 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 20 69 73 20 75 ┆le general operating system is u┆
0x01720…01740 73 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 74 68 65 20 52 65 61 6c 2d 0a 54 69 6d 65 20 50 61 ┆sed to perform the Real- Time Pa┆
0x01740…01760 73 63 61 6c 20 66 75 6e 63 74 69 6f 6e 73 20 6f 66 20 70 72 6f 63 65 73 73 20 73 79 6e 63 68 72 ┆scal functions of process synchr┆
0x01760…01780 6f 6e 69 7a 61 74 69 6f 6e 20 61 6e 64 20 6d 65 73 73 61 67 65 20 70 61 73 73 69 6e 67 2c 20 0a ┆onization and message passing, ┆
0x01780…017a0 74 68 65 20 61 62 69 6c 69 74 79 20 69 73 20 6f 70 65 6e 65 64 20 75 70 20 66 6f 72 20 52 65 61 ┆the ability is opened up for Rea┆
0x017a0…017c0 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 70 72 6f 63 65 73 73 65 73 20 74 6f 20 63 6f 6f 70 65 ┆l-Time Pascal processes to coope┆
0x017c0…017e0 72 61 74 65 20 0a 77 69 74 68 20 70 72 6f 63 65 73 73 65 73 20 77 72 69 74 74 65 6e 20 69 6e 20 ┆rate with processes written in ┆
0x017e0…01800 6f 74 68 65 72 2c 20 74 79 70 69 63 61 6c 6c 79 20 6c 6f 77 2d 6c 65 80 76 65 6c 2c 20 6c 61 6e ┆other, typically low-leђvel, lan┆
0x01800…01820 67 75 61 67 65 73 20 73 75 70 70 6f 72 80 0a 74 65 64 20 75 6e 64 65 72 20 74 68 61 74 20 6f 70 ┆guages supporђ ted under that op┆
0x01820…01840 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 2e 20 49 6e 20 6f 72 64 65 72 20 74 6f 20 6d 61 6b 65 ┆erating system. In order to make┆
0x01840…01860 20 74 68 69 73 20 70 6f 73 73 69 62 69 6c 69 74 79 20 0a 70 72 61 63 74 69 80 63 61 6c 6c 79 20 ┆ this possibility practiђcally ┆
0x01860…01880 75 73 65 66 75 6c 2c 20 74 68 65 20 64 61 74 61 20 66 6f 72 6d 61 74 73 20 61 6e 64 20 6f 70 65 ┆useful, the data formats and ope┆
0x01880…018a0 72 61 74 69 6e 67 20 73 79 73 74 65 6d 20 63 61 6c 6c 69 6e 67 20 73 65 80 80 0a 71 75 65 6e 63 ┆rating system calling seђђ quenc┆
0x018a0…018c0 65 73 20 75 73 65 64 20 62 79 20 74 68 65 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 ┆es used by the Real-Time Pascal ┆
0x018c0…018e0 63 6f 6d 70 69 6c 65 72 20 69 6e 20 71 75 65 73 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 0a 77 65 ┆compiler in question must be we┆
0x018e0…01900 6c 6c 2d 64 6f 63 75 6d 65 6e 74 65 64 2e 0d 0a 0d 0a 4f 6e 65 20 61 72 65 61 20 69 6e 20 77 68 ┆ll-documented. One area in wh┆
0x01900…01920 69 63 68 20 74 68 65 20 75 73 65 20 6f 66 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 20 69 ┆ich the use of other languages i┆
0x01920…01940 6e 20 63 6f 6e 6a 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 52 65 80 0a 61 6c 2d 54 69 6d 65 20 50 ┆n conjunction with Reђ al-Time P┆
0x01940…01960 61 73 63 61 6c 20 69 73 20 70 61 72 74 69 63 75 6c 61 72 6c 79 20 69 6d 70 6f 72 74 61 6e 74 20 ┆ascal is particularly important ┆
0x01960…01980 69 73 20 74 68 65 20 64 69 72 65 63 74 20 69 6e 74 65 72 61 63 80 74 69 6f 6e 20 77 69 74 68 20 ┆is the direct interacђtion with ┆
0x01980…019a0 0a 70 65 72 69 70 68 65 72 61 6c 20 64 65 76 69 63 65 73 20 61 6e 64 20 74 68 65 20 70 72 6f 63 ┆ peripheral devices and the proc┆
0x019a0…019c0 65 73 80 73 69 6e 67 20 6f 66 20 69 6e 74 65 72 72 75 70 74 73 2e 20 53 6f 2d 63 61 6c 6c 65 64 ┆esђsing of interrupts. So-called┆
0x019c0…019e0 20 64 72 69 76 65 72 20 0a 70 72 6f 63 65 73 73 65 73 20 77 68 69 63 68 20 70 65 72 66 6f 72 6d ┆ driver processes which perform┆
0x019e0…01a00 20 74 61 73 6b 73 20 6f 66 20 74 68 65 73 65 20 74 79 70 65 73 20 77 69 6c 6c 20 61 6c 77 61 79 ┆ tasks of these types will alway┆
0x01a00…01a20 73 20 62 65 20 6d 61 63 68 69 6e 65 20 0a 64 65 70 65 6e 64 65 6e 74 20 61 6e 64 20 6d 61 79 2c ┆s be machine dependent and may,┆
0x01a20…01a40 20 6d 6f 73 74 20 6f 66 74 65 6e 2c 20 62 65 20 70 72 6f 67 72 61 6d 80 6d 65 64 20 69 6e 20 61 ┆ most often, be programђmed in a┆
0x01a40…01a60 73 73 65 6d 62 6c 65 72 20 6f 72 20 50 4c 2f 4d 2d 0a 74 79 70 65 20 6c 61 6e 67 75 61 67 65 73 ┆ssembler or PL/M- type languages┆
0x01a60…01a80 2e 20 43 6f 6e 73 65 71 75 65 6e 74 6c 79 20 6e 6f 20 69 6e 80 70 75 80 74 2f 6f 75 74 70 75 74 ┆. Consequently no inђpuђt/output┆
0x01a80…01aa0 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 6f 72 20 69 6e 80 74 65 72 72 75 70 74 20 0a 73 79 6e ┆ instructions or inђterrupt syn┆
0x01aa0…01ac0 63 72 68 6f 6e 69 7a 61 74 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 20 68 61 76 65 20 62 65 65 6e ┆crhonization functions have been┆
0x01ac0…01ae0 20 69 6e 63 6f 72 70 6f 72 61 74 65 64 20 69 6e 80 74 6f 20 52 65 61 6c 2d 54 69 6d 65 20 0a 50 ┆ incorporated inђto Real-Time P┆
0x01ae0…01b00 61 73 63 61 6c 2e 20 49 74 20 69 73 20 61 20 73 69 6d 70 6c 65 20 6d 61 74 80 74 65 72 2c 20 68 ┆ascal. It is a simple matђter, h┆
0x01b00…01b20 6f 77 65 76 65 72 2c 20 74 6f 20 65 78 80 74 65 6e 64 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 ┆owever, to exђtend a particular ┆
0x01b20…01b40 69 6d 70 6c 65 80 0a 6d 65 6e 74 61 74 69 6f 6e 20 77 69 74 68 20 74 68 65 73 65 20 66 75 6e 63 ┆impleђ mentation with these func┆
0x01b40…01b60 80 74 69 6f 6e 73 2c 20 61 73 20 69 73 20 64 6f 6e 65 20 69 6e 20 74 68 65 20 69 6d 70 6c 65 6d ┆ђtions, as is done in the implem┆
0x01b60…01b80 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 0a 52 43 33 35 30 32 2e 0d 0a 16 73 63 0d 0a 44 61 74 61 ┆entation for RC3502. sc Data┆
0x01b80…01ba0 20 54 79 70 69 6e 67 0d 0a 4c 69 6b 65 20 73 74 61 6e 64 61 72 64 20 50 61 73 63 61 6c 2c 20 52 ┆ Typing Like standard Pascal, R┆
0x01ba0…01bc0 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 69 73 20 61 20 73 74 72 6f 6e 67 6c 79 20 74 79 ┆eal-Time Pascal is a strongly ty┆
0x01bc0…01be0 70 65 64 20 6c 61 6e 67 75 80 61 67 65 2e 20 0a 54 79 70 65 73 2c 20 69 6e 20 74 68 65 20 61 62 ┆ped languђage. Types, in the ab┆
0x01be0…01c00 73 74 72 61 63 74 2c 20 70 72 6f 76 69 64 65 20 69 6d 70 6f 72 74 61 6e 74 20 61 73 80 73 69 73 ┆stract, provide important asђsis┆
0x01c00…01c20 74 61 6e 63 65 20 74 6f 20 73 74 72 75 63 74 75 72 65 64 20 70 72 6f 80 0a 67 72 61 6d 6d 65 72 ┆tance to structured proђ grammer┆
0x01c20…01c40 20 74 68 69 6e 6b 69 6e 67 2c 20 61 6e 64 20 74 68 65 20 65 6e 66 6f 72 63 65 80 6d 65 6e 74 20 ┆ thinking, and the enforceђment ┆
0x01c40…01c60 6f 66 20 73 74 72 6f 6e 67 20 74 79 80 70 69 6e 67 20 69 73 20 61 20 75 73 65 66 75 6c 20 0a 74 ┆of strong tyђping is a useful t┆
0x01c60…01c80 6f 6f 6c 20 69 6e 20 74 68 65 20 64 65 74 65 63 74 69 6f 6e 20 6f 66 20 6d 61 6e 79 20 6b 69 6e ┆ool in the detection of many kin┆
0x01c80…01ca0 64 73 20 6f 66 20 65 72 72 6f 72 73 2e 20 41 20 70 61 72 74 69 63 75 6c 61 72 20 63 6c 61 73 73 ┆ds of errors. A particular class┆
0x01ca0…01cc0 20 6f 66 20 0a 74 79 70 65 73 2c 20 74 68 65 20 73 6f 2d 63 61 6c 6c 65 64 20 64 65 73 63 72 69 ┆ of types, the so-called descri┆
0x01cc0…01ce0 70 74 69 76 65 20 74 79 70 65 73 2c 20 6f 6e 20 74 68 65 20 6f 74 68 65 72 20 68 61 6e 64 2c 20 ┆ptive types, on the other hand, ┆
0x01ce0…01d00 6d 61 79 20 62 65 20 75 73 65 64 20 0a 69 6e 20 61 20 76 65 72 79 20 63 6f 6e 63 72 65 74 65 20 ┆may be used in a very concrete ┆
0x01d00…01d20 66 61 73 68 69 6f 6e 20 74 6f 20 64 65 73 63 72 69 80 62 65 20 74 68 65 20 70 72 65 63 69 73 65 ┆fashion to descriђbe the precise┆
0x01d20…01d40 20 69 6e 74 65 72 70 72 65 74 61 80 74 69 6f 6e 20 6f 66 20 0a 62 69 74 2d 73 74 72 69 6e 67 73 ┆ interpretaђtion of bit-strings┆
0x01d40…01d60 20 69 6e 20 74 68 65 20 6d 65 6d 6f 72 79 20 6f 66 20 74 68 65 20 6d 61 63 68 69 6e 65 20 65 78 ┆ in the memory of the machine ex┆
0x01d60…01d80 65 63 75 74 69 6e 67 20 61 20 52 65 61 6c 2d 54 69 6d 65 20 0a 50 61 73 63 61 6c 20 70 72 6f 67 ┆ecuting a Real-Time Pascal prog┆
0x01d80…01da0 72 61 6d 2e 20 54 68 69 73 20 66 65 61 74 75 72 65 20 69 73 20 70 61 72 74 69 63 75 6c 61 72 6c ┆ram. This feature is particularl┆
0x01da0…01dc0 79 20 75 73 65 80 66 75 6c 20 77 68 65 6e 20 74 68 65 20 70 72 65 63 69 73 65 20 0a 72 65 70 72 ┆y useђful when the precise repr┆
0x01dc0…01de0 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 64 61 74 61 20 69 73 20 70 72 65 73 63 72 69 62 65 64 ┆esentation of data is prescribed┆
0x01de0…01e00 20 61 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 65 78 74 65 72 6e 61 6c 20 73 70 65 63 69 66 69 ┆ as part of the external specifi┆
0x01e00…01e20 63 61 80 0a 74 69 6f 6e 73 20 6f 66 20 61 20 73 6f 66 74 77 61 72 65 20 70 72 6f 6a 65 63 74 2c ┆caђ tions of a software project,┆
0x01e20…01e40 20 65 2e 67 2e 20 61 20 73 74 61 6e 64 61 72 64 20 70 72 6f 74 6f 63 6f 6c 20 66 6f 72 20 73 6f ┆ e.g. a standard protocol for so┆
0x01e40…01e60 6d 65 20 61 73 70 65 63 74 20 0a 6f 66 20 61 20 64 61 74 61 20 63 6f 6d 80 6d 75 6e 69 80 63 61 ┆me aspect of a data comђmuniђca┆
0x01e60…01e80 74 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 2e 0d 0a 0d 0a 41 6e 6f 74 68 65 72 20 66 65 61 74 75 72 ┆tion function. Another featur┆
0x01e80…01ea0 65 20 77 68 69 63 68 20 73 74 61 6e 64 73 20 61 70 61 72 74 20 66 72 6f 6d 20 74 68 65 20 63 6c ┆e which stands apart from the cl┆
0x01ea0…01ec0 61 73 73 72 6f 6f 6d 20 73 74 79 6c 65 20 6f 66 20 73 74 61 6e 80 0a 64 61 72 64 20 50 61 73 63 ┆assroom style of stanђ dard Pasc┆
0x01ec0…01ee0 61 6c 20 69 73 20 74 68 61 74 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 61 6c 6c 6f ┆al is that Real-Time Pascal allo┆
0x01ee0…01f00 77 73 20 74 68 65 20 64 65 80 66 69 6e 69 74 69 6f 6e 20 6f 66 20 66 61 6d 69 6c 69 65 73 20 0a ┆ws the deђfinition of families ┆
0x01f00…01f20 6f 66 20 63 6f 6e 66 6f 72 6d 61 6e 74 20 74 79 70 65 73 2c 20 64 69 66 66 65 72 69 6e 67 20 6f ┆of conformant types, differing o┆
0x01f20…01f40 6e 6c 79 20 69 6e 20 74 68 65 20 76 61 6c 75 65 73 20 6f 66 20 74 79 80 70 65 20 70 61 72 61 6d ┆nly in the values of tyђpe param┆
0x01f40…01f60 65 74 65 72 73 20 0a 77 68 69 63 68 20 6d 61 79 20 64 65 74 65 72 6d 69 6e 65 20 65 2e 67 2e 20 ┆eters which may determine e.g. ┆
0x01f60…01f80 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 61 6e 20 61 72 72 61 79 2c 20 62 75 74 20 68 61 76 69 ┆the length of an array, but havi┆
0x01f80…01fa0 6e 67 20 74 68 65 20 73 61 6d 65 20 0a 73 74 72 75 63 74 75 72 65 2e 20 54 79 70 65 73 20 61 72 ┆ng the same structure. Types ar┆
0x01fa0…01fc0 65 20 61 6c 73 6f 20 61 6c 6c 6f 77 65 64 20 74 6f 20 62 65 20 64 79 6e 61 80 6d 69 63 2c 20 65 ┆e also allowed to be dynaђmic, e┆
0x01fc0…01fe0 2e 67 2e 20 62 79 20 68 61 76 69 6e 67 20 70 61 72 61 80 0a 6d 65 74 65 72 73 20 77 68 69 63 68 ┆.g. by having paraђ meters which┆
0x01fe0…02000 20 63 61 6e 6e 6f 74 20 62 65 20 65 76 61 6c 75 61 74 65 64 20 61 74 20 63 6f 6d 80 70 69 6c 65 ┆ cannot be evaluated at comђpile┆
0x02000…02020 2d 74 69 6d 65 2e 20 42 6f 74 68 20 6f 66 20 74 68 65 73 65 20 66 65 61 80 0a 74 75 72 65 73 20 ┆-time. Both of these feaђ tures ┆
0x02020…02040 73 75 70 70 6f 72 74 20 74 68 65 20 63 6f 6e 73 74 72 75 63 74 69 6f 6e 20 6f 66 20 64 79 80 6e ┆support the construction of dyђn┆
0x02040…02060 61 6d 69 63 61 6c 6c 79 20 63 6f 6e 66 69 67 75 72 61 62 6c 65 20 73 6f 66 74 77 61 72 65 2e 0d ┆amically configurable software. ┆
0x02060…02080 0a 16 73 63 0d 0a 44 61 74 61 20 41 63 63 65 73 73 0d 0a 54 68 65 20 64 61 74 61 20 69 74 65 6d ┆ sc Data Access The data item┆
0x02080…020a0 73 20 6d 61 6e 69 70 75 6c 61 74 65 64 20 62 79 20 61 20 70 72 6f 63 65 73 73 20 6d 61 79 20 62 ┆s manipulated by a process may b┆
0x020a0…020c0 65 20 61 6c 6c 6f 63 61 74 65 64 20 61 73 20 a0 bf dc d8 70 72 69 80 76 61 74 65 be e0 20 0a 74 ┆e allocated as а┐▄пpriђvateЙЯ t┆
0x020c0…020e0 6f 20 74 68 65 20 70 72 6f 63 65 73 73 2c 20 6f 72 20 74 68 65 79 20 6d 61 79 20 62 65 20 61 6c ┆o the process, or they may be al┆
0x020e0…02100 6c 6f 63 61 74 65 64 20 61 73 20 a0 bf dc d8 73 68 61 72 65 64 be e0 2c 20 69 6d 70 6c 79 69 6e ┆located as а┐▄пsharedЙЯ, implyin┆
0x02100…02120 67 20 74 68 61 74 20 61 63 80 0a 63 65 73 73 20 74 6f 20 74 68 65 20 64 61 74 61 20 6d 61 79 20 ┆g that acђ cess to the data may ┆
0x02120…02140 62 65 20 73 68 61 72 65 64 20 61 6d 6f 6e 67 20 73 65 76 65 72 61 6c 20 70 72 6f 80 63 65 73 73 ┆be shared among several proђcess┆
0x02140…02160 65 73 2c 20 61 73 20 64 65 73 63 72 69 62 65 64 20 0a 61 62 6f 76 65 2e 0d 0a 0d 0a 54 68 65 20 ┆es, as described above. The ┆
0x02160…02180 68 61 6e 64 6c 69 6e 67 20 6f 66 20 a0 76 61 72 69 61 62 6c 65 73 e0 20 69 73 20 62 61 73 65 64 ┆handling of аvariablesЯ is based┆
0x02180…021a0 20 6f 6e 20 74 68 65 20 63 6f 6e 63 65 70 74 73 20 6f 66 20 6f 62 6a 65 63 74 73 20 61 6e 64 20 ┆ on the concepts of objects and ┆
0x021a0…021c0 74 79 80 0a 70 65 73 20 77 68 69 63 68 20 61 72 65 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 63 ┆tyђ pes which are described in c┆
0x021c0…021e0 68 61 70 74 65 72 20 33 2e 20 41 20 70 72 69 76 61 74 65 20 76 61 72 69 61 62 6c 65 20 6d 61 79 ┆hapter 3. A private variable may┆
0x021e0…02200 20 62 65 20 64 65 80 0a 63 6c 61 72 65 64 2c 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 61 6c ┆ be deђ clared, in which case al┆
0x02200…02220 6c 6f 63 61 74 69 6f 6e 20 61 6e 64 20 64 65 61 6c 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 6d 65 6d ┆location and deallocation of mem┆
0x02220…02240 6f 72 79 20 66 6f 72 20 74 68 65 20 0a 76 61 72 69 61 62 6c 65 20 69 73 20 70 65 72 66 6f 72 6d ┆ory for the variable is perform┆
0x02240…02260 65 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 69 6e 20 61 20 a0 73 74 61 63 6b e0 20 61 63 ┆ed automatically in a аstackЯ ac┆
0x02260…02280 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 77 65 6c 6c 2d 0a 6b 6e 6f 77 6e 20 64 69 73 80 63 ┆cording to the well- known disђc┆
0x02280…022a0 69 70 6c 69 6e 65 20 66 6f 72 20 62 6c 6f 63 6b 20 73 74 72 75 63 74 75 72 65 64 20 6c 61 6e 67 ┆ipline for block structured lang┆
0x022a0…022c0 75 61 67 65 73 2e 20 41 20 64 65 80 63 6c 61 72 65 64 20 76 61 72 69 61 62 6c 65 20 69 73 20 0a ┆uages. A deђclared variable is ┆
0x022c0…022e0 61 63 63 65 73 73 65 64 20 64 69 72 65 63 74 6c 79 20 62 79 20 6e 61 6d 65 2e 20 41 20 70 72 69 ┆accessed directly by name. A pri┆
0x022e0…02300 76 61 74 65 20 76 61 72 69 80 61 62 6c 65 20 6d 61 79 20 61 6c 73 6f 20 62 65 20 61 6c 6c 6f 63 ┆vate variђable may also be alloc┆
0x02300…02320 61 74 65 64 20 0a 64 79 6e 61 6d 69 63 61 6c 6c 79 20 69 6e 20 74 68 65 20 73 6f 2d 63 61 6c 6c ┆ated dynamically in the so-call┆
0x02320…02340 65 64 20 a0 68 65 61 70 e0 20 62 79 20 61 6e 20 69 6e 80 76 6f 63 61 74 69 6f 6e 20 6f 66 20 74 ┆ed аheapЯ by an inђvocation of t┆
0x02340…02360 68 65 20 70 72 65 64 65 66 69 6e 65 64 20 0a 72 6f 75 74 69 6e 65 20 6e 65 77 2e 20 49 6e 20 74 ┆he predefined routine new. In t┆
0x02360…02380 68 69 73 20 63 61 73 65 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 6d 75 73 74 20 62 65 20 61 63 ┆his case the variable must be ac┆
0x02380…023a0 63 65 73 73 65 64 20 74 68 72 6f 75 67 68 20 61 20 70 6f 80 0a 69 6e 74 65 72 2e 0d 0a 0d 0a 45 ┆cessed through a poђ inter. E┆
0x023a0…023c0 61 63 68 20 70 72 6f 63 65 73 73 20 68 61 73 20 69 74 73 20 6f 77 6e 20 73 74 61 63 6b 20 61 6e ┆ach process has its own stack an┆
0x023c0…023e0 64 20 68 65 61 70 2c 20 77 68 69 63 68 20 61 72 65 20 74 68 75 73 20 77 65 6c 6c 2d 73 75 80 69 ┆d heap, which are thus well-suђi┆
0x023e0…02400 74 65 64 20 0a 66 6f 72 20 70 72 69 76 61 74 65 20 76 61 72 69 61 62 6c 65 73 2e 20 48 6f 77 65 ┆ted for private variables. Howe┆
0x02400…02420 76 65 72 2c 20 61 20 76 61 72 69 61 62 6c 65 20 69 6e 20 74 68 65 20 73 74 61 63 6b 20 6d 61 79 ┆ver, a variable in the stack may┆
0x02420…02440 20 62 65 20 64 65 63 6c 61 80 0a 72 65 64 20 61 73 20 73 68 61 72 65 64 2c 20 69 6d 70 6c 79 69 ┆ be declaђ red as shared, implyi┆
0x02440…02460 6e 67 20 74 68 61 74 20 69 74 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 61 63 63 65 73 73 65 64 20 ┆ng that it can only be accessed ┆
0x02460…02480 69 6e 20 61 20 73 6f 2d 63 61 6c 6c 65 64 20 0a a0 72 65 67 69 6f 6e e0 2e 20 41 20 73 68 61 72 ┆in a so-called аregionЯ. A shar┆
0x02480…024a0 65 64 20 76 61 72 69 61 62 6c 65 20 63 61 6e 20 62 65 20 6d 61 64 65 20 61 63 63 65 73 73 69 62 ┆ed variable can be made accessib┆
0x024a0…024c0 6c 65 20 74 6f 20 61 20 63 68 69 6c 64 20 70 72 6f 63 65 73 73 20 0a 61 73 20 61 20 70 72 6f 63 ┆le to a child process as a proc┆
0x024c0…024e0 65 73 73 20 70 61 72 61 80 6d 65 74 65 72 2e 0d 0a 0d 0a 41 20 76 61 72 69 61 62 6c 65 20 69 73 ┆ess paraђmeter. A variable is┆
0x024e0…02500 20 73 61 69 64 20 74 6f 20 62 65 20 a0 6f 77 6e 65 64 e0 20 62 79 20 74 68 65 20 70 72 6f 63 65 ┆ said to be аownedЯ by the proce┆
0x02500…02520 73 73 20 69 6e 20 77 68 6f 73 65 20 73 74 61 63 6b 20 6f 72 20 68 65 61 70 20 0a 69 74 20 69 73 ┆ss in whose stack or heap it is┆
0x02520…02540 20 61 6c 6c 6f 63 61 74 65 64 2e 20 41 20 76 61 72 69 61 62 6c 65 20 6d 61 79 20 62 65 63 6f 6d ┆ allocated. A variable may becom┆
0x02540…02560 65 20 6b 6e 6f 77 6e 20 74 6f 20 70 72 6f 80 63 65 73 73 65 73 20 6f 74 68 65 72 20 74 68 61 6e ┆e known to proђcesses other than┆
0x02560…02580 20 0a 74 68 65 20 6f 77 6e 65 72 20 62 79 20 62 65 69 6e 67 20 70 61 73 73 65 64 20 61 73 20 61 ┆ the owner by being passed as a┆
0x02580…025a0 20 70 72 6f 63 65 73 73 20 70 61 72 61 6d 65 74 65 72 2e 0d 0a 0d 0a 4d 65 73 73 61 67 65 73 20 ┆ process parameter. Messages ┆
0x025a0…025c0 61 72 65 20 61 6c 6c 6f 63 61 74 65 64 20 6e 65 69 74 68 65 72 20 69 6e 20 74 68 65 20 73 74 61 ┆are allocated neither in the sta┆
0x025c0…025e0 63 6b 20 6e 6f 72 20 69 6e 20 74 68 65 20 68 65 61 70 20 6f 66 20 61 20 70 72 6f 80 0a 63 65 73 ┆ck nor in the heap of a proђ ces┆
0x025e0…02600 73 2c 20 62 75 74 20 73 65 70 61 72 61 74 65 20 66 72 6f 6d 20 62 6f 74 68 20 6f 66 20 74 68 65 ┆s, but separate from both of the┆
0x02600…02620 73 65 2e 20 4d 65 73 80 73 61 67 65 73 20 61 72 65 20 6f 72 67 61 6e 69 7a 65 64 20 69 6e 20 a0 ┆se. Mesђsages are organized in а┆
0x02620…02640 70 6f 80 0a 19 80 80 c0 6f 6c 73 e0 2e 20 41 20 70 6f 6f 6c 20 6d 61 79 20 63 6f 6e 74 61 69 6e ┆poђ ђђ└olsЯ. A pool may contain┆
0x02640…02660 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 6d 65 73 73 61 67 65 73 20 6f 66 20 65 71 75 61 6c 20 73 ┆ a number of messages of equal s┆
0x02660…02680 69 7a 65 2e 0d 0a 0d 0a 41 20 6d 65 73 73 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 20 69 74 73 65 ┆ize. A message is not in itse┆
0x02680…026a0 6c 66 20 61 20 76 61 72 69 61 62 6c 65 2c 20 62 75 74 20 6c 69 6b 65 20 61 6e 20 6f 62 6a 65 63 ┆lf a variable, but like an objec┆
0x026a0…026c0 74 20 69 74 20 6d 61 79 20 6f 63 63 75 80 0a 70 79 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f ┆t it may occuђ py a number of co┆
0x026c0…026e0 6e 73 65 63 75 74 69 76 65 20 62 79 74 65 73 20 6f 66 20 6d 65 6d 6f 72 79 2c 20 63 61 6c 6c 65 ┆nsecutive bytes of memory, calle┆
0x026e0…02700 64 20 74 68 65 20 6d 65 73 73 61 80 67 65 20 62 75 66 80 0a 66 65 72 2e 20 41 20 6d 65 73 80 73 ┆d the messaђge bufђ fer. A mesђs┆
0x02700…02720 61 67 65 20 62 75 66 66 65 72 20 6d 61 79 20 62 65 20 74 72 65 61 74 65 64 20 61 73 20 61 20 76 ┆age buffer may be treated as a v┆
0x02720…02740 61 72 69 61 62 6c 65 20 62 79 20 73 75 80 70 65 80 72 69 6d 70 6f 73 69 6e 67 20 0a 61 20 74 79 ┆ariable by suђpeђrimposing a ty┆
0x02740…02760 70 65 20 6f 6e 74 6f 20 69 74 20 69 6e 20 61 20 6c 6f 63 6b 20 73 74 61 74 65 80 6d 65 6e 74 2e ┆pe onto it in a lock stateђment.┆
0x02760…02780 0d 0a 0d 0a 4d 65 73 73 61 67 65 73 20 61 72 65 20 61 63 63 65 73 73 65 64 20 74 68 72 6f 75 67 ┆ Messages are accessed throug┆
0x02780…027a0 68 20 76 61 72 69 61 62 6c 65 73 20 6f 66 20 74 68 65 20 70 72 65 64 65 80 66 69 6e 65 64 20 74 ┆h variables of the predeђfined t┆
0x027a0…027c0 79 70 65 20 72 65 66 65 80 0a 72 65 6e 63 65 2e 20 41 20 6e 75 6d 62 65 72 20 6f 66 20 6f 70 65 ┆ype refeђ rence. A number of ope┆
0x027c0…027e0 72 61 74 69 6f 6e 73 20 69 6e 76 6f 6c 76 69 6e 67 20 6d 65 73 80 73 61 67 65 73 20 61 72 65 20 ┆rations involving mesђsages are ┆
0x027e0…02800 61 76 61 69 6c 61 80 62 6c 65 20 61 73 20 0a 70 72 65 64 65 66 69 6e 65 64 20 72 6f 75 74 69 6e ┆availaђble as predefined routin┆
0x02800…02820 65 73 20 74 61 6b 69 6e 67 20 72 65 66 65 72 65 6e 63 65 73 20 61 73 20 70 61 72 61 6d 65 74 65 ┆es taking references as paramete┆
0x02820…02840 72 73 2e 20 49 6e 20 70 61 72 74 69 63 75 6c 61 72 20 69 74 20 69 73 20 0a 70 6f 73 73 69 62 6c ┆rs. In particular it is possibl┆
0x02840…02860 65 20 74 6f 20 62 75 69 6c 64 20 a0 6d 65 73 73 61 67 65 20 73 74 61 63 6b 73 e0 20 28 6e 6f 74 ┆e to build аmessage stacksЯ (not┆
0x02860…02880 20 74 6f 20 62 65 20 63 6f 6e 80 66 75 73 65 64 20 77 69 74 68 20 70 72 6f 63 65 73 73 20 0a 73 ┆ to be conђfused with process s┆
0x02880…028a0 74 61 63 6b 73 29 20 61 6e 64 20 a0 6d 65 73 73 61 67 65 20 63 68 61 69 6e 73 e0 2e 0d 0a 0d 0a ┆tacks) and аmessage chainsЯ. ┆
0x028a0…028c0 41 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 61 20 6d 65 73 73 61 67 65 20 69 73 20 61 20 73 ┆Associated with a message is a s┆
0x028c0…028e0 65 74 20 6f 66 20 a0 61 74 74 72 69 62 75 74 65 73 e0 2c 20 6f 6e 65 20 6f 66 20 77 68 69 63 68 ┆et of аattributesЯ, one of which┆
0x028e0…02900 20 69 73 20 74 68 65 20 0a 62 75 66 66 65 72 20 73 69 7a 65 2c 20 69 2e 65 2e 20 74 68 65 20 6e ┆ is the buffer size, i.e. the n┆
0x02900…02920 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 74 68 65 20 62 75 66 66 65 72 20 6f 63 80 63 75 70 ┆umber of bytes the buffer ocђcup┆
0x02920…02940 69 65 73 2e 20 54 68 65 20 76 61 6c 75 65 73 20 0a 6f 66 20 73 6f 6d 65 20 6f 66 20 74 68 65 20 ┆ies. The values of some of the ┆
0x02940…02960 61 74 74 72 69 62 75 74 65 73 20 61 72 65 20 61 63 80 63 65 73 73 69 62 6c 65 2c 20 61 6e 64 20 ┆attributes are acђcessible, and ┆
0x02960…02980 73 6f 6d 65 20 6d 61 79 20 61 6c 73 6f 20 62 65 20 6d 6f 64 69 80 0a 66 69 65 64 2e 20 41 20 6d ┆some may also be modiђ fied. A m┆
0x02980…029a0 65 73 73 61 67 65 20 77 69 74 68 20 61 20 62 75 66 66 65 72 20 6f 66 20 73 69 7a 65 20 30 2c 20 ┆essage with a buffer of size 0, ┆
0x029a0…029c0 63 61 6c 6c 65 64 20 61 6e 20 a0 bf dc d8 65 6d 70 74 79 20 6d 65 73 73 61 67 65 e0 be 2c 20 0a ┆called an а┐▄пempty messageЯЙ, ┆
0x029c0…029e0 6d 61 79 20 62 65 20 75 73 65 64 20 6d 65 61 80 6e 69 6e 67 66 75 6c 6c 79 20 69 6e 20 63 6f 6e ┆may be used meaђningfully in con┆
0x029e0…02a00 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 6d 65 73 73 61 80 67 65 20 73 74 61 63 6b 73 2c 20 61 6e ┆nection with messaђge stacks, an┆
0x02a00…02a20 64 2f 6f 72 20 0a 66 6f 72 20 73 69 6d 70 6c 65 20 73 79 6e 63 68 72 6f 6e 69 7a 61 74 69 6f 6e ┆d/or for simple synchronization┆
0x02a20…02a40 20 70 75 72 70 6f 73 65 73 2e 20 41 6e 20 65 6d 70 74 79 20 6d 65 73 73 61 67 65 20 68 61 73 20 ┆ purposes. An empty message has ┆
0x02a40…02a60 61 20 66 75 6c 6c 20 73 65 74 20 0a 6f 66 20 61 74 74 72 69 62 75 74 65 73 2e 20 46 69 67 2e 20 ┆a full set of attributes. Fig. ┆
0x02a60…02a80 31 20 67 69 76 65 73 20 61 20 73 6b 65 74 63 68 20 6f 66 20 68 6f 77 20 6d 65 80 6d 6f 72 79 20 ┆1 gives a sketch of how meђmory ┆
0x02a80…02aa0 6d 69 67 68 74 20 62 65 20 6f 72 67 61 6e 69 80 0a 7a 65 64 20 69 6e 20 61 6e 20 69 6d 70 6c 65 ┆might be organiђ zed in an imple┆
0x02aa0…02ac0 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 2e 20 43 ┆mentation of Real-Time Pascal. C┆
0x02ac0…02ae0 6c 65 61 72 6c 79 20 61 6e 20 61 72 63 68 69 74 65 63 74 75 72 65 20 0a 73 75 70 70 6f 72 74 69 ┆learly an architecture supporti┆
0x02ae0…02b00 6e 67 20 73 65 67 6d 65 6e 74 61 74 69 6f 6e 20 77 69 6c 6c 20 62 65 20 68 65 6c 70 66 75 6c 2e ┆ng segmentation will be helpful.┆
0x02b00…02b20 0d 0a 0c 9a a0 0a 0e 0a 05 6d 65 73 73 61 67 65 73 20 20 20 0d 0a 20 0d 0a 01 72 61 6d 6d 65 20 ┆ џа messages ramme ┆
0x02b20…02b40 22 35 20 30 20 36 34 20 31 32 20 36 22 0d 0a 0d 0a 20 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 ┆"5 0 64 12 6" ramme "5 0 ┆
0x02b40…02b60 34 30 20 31 32 20 31 33 22 0d 0a 0d 0a 0d 0a 0d 0a 09 09 09 09 20 20 20 20 20 20 76 88 7c 20 73 ┆40 12 13" vѕ| s┆
0x02b60…02b80 74 61 63 6b 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 31 35 20 31 32 20 37 22 0d 0a 01 72 61 6d ┆tack ramme "5 0 15 12 7" ram┆
0x02b80…02ba0 6d 65 20 22 33 20 30 20 34 30 20 31 32 20 30 22 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 09 09 09 09 20 20 ┆me "3 0 40 12 0" ┆
0x02ba0…02bc0 20 20 20 20 5e 88 7c 20 68 65 61 70 0d 0a 01 72 61 6d 6d 65 20 22 33 20 30 20 34 30 20 31 32 20 ┆ ^ѕ| heap ramme "3 0 40 12 ┆
0x02bc0…02be0 30 22 0d 0a 0d 0a 20 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 36 34 20 31 32 20 36 22 0d 0a 20 ┆0" ramme "5 0 64 12 6" ┆
0x02be0…02c00 20 63 6f 64 65 20 6f 66 20 70 72 6f 67 72 61 6d 20 41 0d 0a 0d 0a 09 09 09 20 20 73 74 61 63 6b ┆ code of program A stack┆
0x02c00…02c20 20 61 6e 64 20 68 65 61 70 0d 0a 09 09 09 20 20 6f 66 20 70 72 6f 63 65 73 73 20 41 0d 0a 0d 0a ┆ and heap of process A ┆
0x02c20…02c40 0d 0a 20 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 34 30 20 31 32 20 31 32 22 0d 0a 20 0d 0a 01 ┆ ramme "5 0 40 12 12" ┆
0x02c40…02c60 72 61 6d 6d 65 20 22 35 20 30 20 36 34 20 31 32 20 36 22 0d 0a 0d 0a 20 0d 0a 01 72 61 6d 6d 65 ┆ramme "5 0 64 12 6" ramme┆
0x02c60…02c80 20 22 35 20 30 20 31 35 20 31 32 20 31 30 22 0d 0a 20 0d 0a 01 72 61 6d 6d 65 20 22 33 20 30 20 ┆ "5 0 15 12 10" ramme "3 0 ┆
0x02c80…02ca0 34 30 20 31 32 20 30 22 0d 0a 0d 0a 0d 0a 0d 0a 20 0d 0a 01 72 61 6d 6d 65 20 22 33 20 30 20 34 ┆40 12 0" ramme "3 0 4┆
0x02ca0…02cc0 30 20 31 32 20 30 22 0d 0a 20 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 36 34 20 31 32 20 36 22 ┆0 12 0" ramme "5 0 64 12 6"┆
0x02cc0…02ce0 0d 0a 0d 0a 0d 0a 0d 0a 09 09 09 20 20 73 74 61 63 6b 20 61 6e 64 20 68 65 61 70 0d 0a 20 20 63 ┆ stack and heap c┆
0x02ce0…02d00 6f 64 65 20 6f 66 20 70 72 6f 67 72 61 6d 20 42 09 20 20 6f 66 20 70 72 6f 63 65 73 73 20 42 31 ┆ode of program B of process B1┆
0x02d00…02d20 0d 0a 0d 0a 20 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 34 30 20 31 32 20 31 30 22 0d 0a 0d 0a ┆ ramme "5 0 40 12 10" ┆
0x02d20…02d40 0d 0a 20 0d 0a 01 72 61 6d 6d 65 20 22 33 20 30 20 34 30 20 31 32 20 30 22 0d 0a 20 0d 0a 01 72 ┆ ramme "3 0 40 12 0" r┆
0x02d40…02d60 61 6d 6d 65 20 22 35 20 30 20 36 34 20 31 32 20 36 22 0d 0a 0d 0a 20 0d 0a 01 72 61 6d 6d 65 20 ┆amme "5 0 64 12 6" ramme ┆
0x02d60…02d80 22 33 20 30 20 34 30 20 31 32 20 30 22 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 09 09 09 20 20 73 74 61 63 ┆"3 0 40 12 0" stac┆
0x02d80…02da0 6b 20 61 6e 64 20 68 65 61 70 0d 0a 09 09 09 20 20 6f 66 20 70 72 6f 63 65 73 73 20 42 32 0d 0a ┆k and heap of process B2 ┆
0x02da0…02dc0 16 73 66 20 32 0d 0a 45 78 61 6d 70 6c 65 20 6f 66 20 6d 65 6d 6f 72 79 20 6f 72 67 61 6e 69 7a ┆ sf 2 Example of memory organiz┆
0x02dc0…02de0 61 74 69 6f 6e 2e 0d 0a 0f 0a 16 73 63 0d 0a 44 69 73 74 72 69 62 75 74 65 64 20 53 79 73 74 65 ┆ation. sc Distributed Syste┆
0x02de0…02e00 6d 73 0d 0a 41 20 70 72 69 6e 63 69 70 61 6c 20 61 72 65 61 20 6f 66 20 69 6e 74 65 6e 64 65 64 ┆ms A principal area of intended┆
0x02e00…02e20 20 75 73 65 20 6f 66 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 69 73 20 74 68 65 20 ┆ use of Real-Time Pascal is the ┆
0x02e20…02e40 63 6f 6e 80 73 74 72 75 63 80 0a 74 69 6f 6e 20 6f 66 20 64 69 73 74 72 69 62 75 74 65 64 20 73 ┆conђstrucђ tion of distributed s┆
0x02e40…02e60 79 73 74 65 6d 73 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 67 65 6e 65 72 61 6c 20 ┆ystems according to the general ┆
0x02e60…02e80 61 72 63 68 69 80 74 65 63 74 75 72 61 6c 20 0a 70 72 69 6e 63 69 70 6c 65 73 20 64 65 73 63 72 ┆archiђtectural principles descr┆
0x02e80…02ea0 69 62 65 64 20 69 6e 20 2f 44 53 41 2f 2e 0d 0a 0d 0a 41 20 72 65 73 69 64 65 6e 74 20 6d 6f 64 ┆ibed in /DSA/. A resident mod┆
0x02ea0…02ec0 75 6c 65 2c 20 69 6e 20 74 68 65 20 73 65 6e 73 65 20 6f 66 20 2f 44 53 41 2f 2c 20 6d 61 79 20 ┆ule, in the sense of /DSA/, may ┆
0x02ec0…02ee0 63 6f 6e 73 69 73 74 20 6f 66 20 61 20 6e 75 6d 62 65 72 20 0a 6f 66 20 63 6f 6f 70 65 72 61 74 ┆consist of a number of cooperat┆
0x02ee0…02f00 69 6e 67 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 70 72 6f 63 65 73 73 65 73 2e 20 ┆ing Real-Time Pascal processes. ┆
0x02f00…02f20 49 6e 74 65 72 63 6f 6d 80 6d 75 6e 69 63 61 74 69 6f 6e 20 61 74 20 74 68 65 20 0a 73 6f 2d 63 ┆Intercomђmunication at the so-c┆
0x02f20…02f40 61 6c 6c 65 64 20 6c 65 76 65 6c 20 69 2c 20 6d 61 79 20 74 68 65 6e 20 74 61 6b 65 20 70 6c 61 ┆alled level i, may then take pla┆
0x02f40…02f60 63 65 20 75 73 69 6e 67 20 74 68 65 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 66 61 ┆ce using the Real-Time Pascal fa┆
0x02f60…02f80 80 0a 63 69 6c 69 74 69 65 73 20 66 6f 72 20 69 6e 74 65 72 2d 70 72 6f 63 65 73 73 20 63 6f 6d ┆ђ cilities for inter-process com┆
0x02f80…02fa0 80 6d 75 6e 69 63 61 74 69 6f 6e 2e 0d 0a 0d 0a 54 6f 20 73 75 70 70 6f 72 74 20 69 6e 74 65 72 ┆ђmunication. To support inter┆
0x02fa0…02fc0 2d 6d 6f 64 75 6c 65 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 28 61 74 20 74 68 65 20 73 6f ┆-module communication (at the so┆
0x02fc0…02fe0 2d 63 61 6c 6c 65 64 20 6c 65 76 65 6c 20 64 29 20 74 68 65 20 0a 70 72 65 64 65 66 69 6e 65 64 ┆-called level d) the predefined┆
0x02fe0…03000 20 74 79 70 65 20 a0 70 6f 72 74 e0 2c 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 63 ┆ type аportЯ, representing the c┆
0x03000…03020 6f 6e 63 65 70 74 20 6f 66 20 70 6f 72 74 20 61 73 20 64 65 80 73 63 72 69 62 65 64 20 69 6e 20 ┆oncept of port as deђscribed in ┆
0x03020…03040 0a 2f 44 53 41 2f 20 68 61 73 20 62 65 65 6e 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 ┆ /DSA/ has been included in the ┆
0x03040…03060 6c 61 6e 80 67 75 61 67 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 61 20 73 65 74 20 6f 66 20 70 72 ┆lanђguage along with a set of pr┆
0x03060…03080 65 64 65 66 69 80 0a 6e 65 64 20 72 6f 75 74 69 6e 65 73 20 74 6f 20 70 65 72 66 6f 72 6d 20 69 ┆edefiђ ned routines to perform i┆
0x03080…030a0 6e 80 74 65 72 2d 6d 6f 64 75 6c 65 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 28 49 4d 43 29 ┆nђter-module communication (IMC)┆
0x030a0…030c0 20 66 75 6e 63 74 69 6f 6e 73 20 0a 2f 44 53 41 2d 49 4d 43 2f 2e 0d 0a 0d 0a 49 6d 70 6c 65 6d ┆ functions /DSA-IMC/. Implem┆
0x030c0…030e0 65 6e 74 61 74 69 6f 6e 73 20 6d 61 79 20 65 78 69 73 74 20 77 68 69 63 68 20 73 75 70 70 6f 72 ┆entations may exist which suppor┆
0x030e0…03100 74 20 6f 6e 6c 79 20 61 20 6c 69 6d 69 74 65 64 20 73 65 74 20 6f 66 20 49 4d 43 20 0a 66 75 6e ┆t only a limited set of IMC fun┆
0x03100…03120 63 74 69 6f 6e 73 20 6f 72 20 6e 6f 6e 65 20 61 74 20 61 6c 6c 2e 0d 0a 16 73 63 0d 0a 46 61 75 ┆ctions or none at all. sc Fau┆
0x03120…03140 6c 74 73 0d 0a 54 68 65 20 74 65 72 6d 20 a0 bf dc d8 66 61 75 6c 74 e0 be 20 69 73 20 75 73 65 ┆lts The term а┐▄пfaultЯЙ is use┆
0x03140…03160 64 20 74 68 72 6f 75 67 68 6f 75 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 68 61 70 74 ┆d throughout the following chapt┆
0x03160…03180 65 72 73 20 74 6f 20 72 65 66 65 72 20 74 6f 20 0a 76 69 6f 6c 61 74 69 6f 6e 73 20 6f 66 20 73 ┆ers to refer to violations of s┆
0x03180…031a0 65 6d 61 6e 74 69 63 20 72 75 6c 65 73 20 77 68 69 63 68 20 63 61 6e 6e 6f 74 20 62 65 20 63 6f ┆emantic rules which cannot be co┆
0x031a0…031c0 6d 70 6c 65 74 65 6c 79 20 65 6e 66 6f 72 80 63 65 64 20 61 74 20 0a 63 6f 6d 70 69 6c 65 2d 74 ┆mpletely enforђced at compile-t┆
0x031c0…031e0 69 6d 65 2c 20 69 2e 65 2e 20 76 69 6f 6c 61 74 69 6f 6e 73 20 77 68 69 63 68 20 63 61 6e 20 69 ┆ime, i.e. violations which can i┆
0x031e0…03200 6e 20 73 6f 6d 65 20 63 61 73 65 73 20 6f 6e 6c 79 20 62 65 20 64 65 74 65 63 74 65 64 20 0a 77 ┆n some cases only be detected w┆
0x03200…03220 68 65 6e 20 61 20 70 72 6f 67 72 61 6d 20 69 73 20 65 78 65 80 63 75 74 65 64 2e 0d 0a 0d 0a 54 ┆hen a program is exeђcuted. T┆
0x03220…03240 68 65 20 6c 61 6e 67 75 61 67 65 20 61 6c 6c 6f 77 73 20 70 61 72 74 6c 79 20 70 72 6f 67 72 61 ┆he language allows partly progra┆
0x03240…03260 6d 6d 65 72 2d 64 65 66 69 6e 65 64 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 66 61 75 6c 74 73 2e ┆mmer-defined handling of faults.┆
0x03260…03280 20 42 79 20 0a 64 65 66 61 75 6c 74 20 74 68 65 20 6f 63 63 75 72 72 65 6e 63 65 20 6f 66 20 61 ┆ By default the occurrence of a┆
0x03280…032a0 20 66 61 75 6c 74 20 77 69 6c 6c 20 63 61 75 73 65 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20 ┆ fault will cause the output of ┆
0x032a0…032c0 73 75 80 69 74 61 62 6c 65 20 0a 64 69 61 67 6e 6f 73 74 69 63 20 69 6e 66 6f 72 6d 61 74 69 6f ┆suђitable diagnostic informatio┆
0x032c0…032e0 6e 2e 0d 0a 16 73 63 0d 0a 45 78 74 65 6e 73 69 62 69 6c 69 74 79 0d 0a 54 68 65 20 67 65 6e 65 ┆n. sc Extensibility The gene┆
0x032e0…03300 72 61 6c 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 62 75 69 6c 74 2d 69 6e 20 66 ┆ral representation of built-in f┆
0x03300…03320 75 6e 63 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 6c 61 6e 80 67 75 61 67 65 20 69 73 20 0a 74 68 ┆unctions of the lanђguage is th┆
0x03320…03340 61 74 20 6f 66 20 70 72 65 64 65 66 69 6e 65 64 20 72 6f 75 74 69 6e 65 73 20 77 6f 72 6b 69 6e ┆at of predefined routines workin┆
0x03340…03360 67 20 6f 6e 20 70 61 72 61 6d 65 74 65 72 73 20 6f 66 20 70 72 65 64 65 66 69 80 6e 65 64 2c 20 ┆g on parameters of predefiђned, ┆
0x03360…03380 61 6e 64 20 0a 6f 66 74 65 6e 20 73 68 69 65 6c 64 65 64 2c 20 74 79 70 65 73 2e 0d 0a 0d 0a 57 ┆and often shielded, types. W┆
0x03380…033a0 68 65 6e 20 61 20 64 65 73 69 72 65 20 66 6f 72 20 65 78 74 65 6e 73 69 6f 6e 73 20 74 6f 20 74 ┆hen a desire for extensions to t┆
0x033a0…033c0 68 65 20 64 65 66 69 6e 65 64 20 6c 61 6e 67 75 61 67 65 20 61 72 69 73 65 73 2c 20 69 74 20 77 ┆he defined language arises, it w┆
0x033c0…033e0 69 6c 6c 20 0a 62 65 20 62 6f 74 68 20 6e 61 74 75 72 61 6c 20 61 6e 64 20 75 73 75 61 6c 6c 79 ┆ill be both natural and usually┆
0x033e0…03400 20 61 6c 73 6f 20 65 61 73 79 20 74 6f 20 64 65 66 69 6e 65 20 73 75 63 68 20 65 78 74 65 6e 73 ┆ also easy to define such extens┆
0x03400…03420 80 69 6f 6e 73 20 69 6e 20 0a 74 65 72 6d 73 20 6f 66 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 74 ┆ђions in terms of one or more t┆
0x03420…03440 79 70 65 73 20 61 6e 64 20 72 6f 75 74 69 6e 65 73 20 6f 70 65 72 61 74 69 6e 67 20 6f 6e 20 70 ┆ypes and routines operating on p┆
0x03440…03460 61 80 72 61 6d 65 74 65 72 73 20 6f 66 20 0a 74 68 65 73 65 20 74 79 70 65 73 2e 20 46 6f 72 20 ┆aђrameters of these types. For ┆
0x03460…03480 65 78 61 6d 70 6c 65 2c 20 61 20 67 65 80 6e 65 72 61 6c 20 68 69 67 68 2d 6c 65 76 65 6c 20 69 ┆example, a geђneral high-level i┆
0x03480…034a0 6e 70 75 80 74 2f 6f 75 74 70 75 74 20 73 79 73 74 65 6d 20 0a 6d 61 79 20 62 65 20 69 6d 70 6c ┆npuђt/output system may be impl┆
0x034a0…034c0 65 6d 65 6e 74 65 64 20 69 6e 20 74 68 69 73 20 77 61 79 2e 0d 0a 0d 0a 54 68 65 20 64 69 73 74 ┆emented in this way. The dist┆
0x034c0…034e0 69 6e 63 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 62 75 69 6c 74 2d 69 6e 20 66 75 6e 63 74 69 6f ┆inction between built-in functio┆
0x034e0…03500 6e 73 20 61 6e 64 20 73 75 63 68 20 65 78 80 74 65 6e 73 69 6f 6e 73 20 77 69 6c 6c 20 6e 6f 74 ┆ns and such exђtensions will not┆
0x03500…03520 20 0a 61 70 70 65 61 72 20 76 65 72 79 20 73 68 61 72 70 20 61 74 20 61 6c 6c 2c 20 6e 6f 72 20 ┆ appear very sharp at all, nor ┆
0x03520…03540 69 73 20 69 74 20 69 6e 74 65 6e 80 64 65 64 20 74 6f 2e 20 54 68 65 20 6f 6e 80 6c 79 20 6d 69 ┆is it intenђded to. The onђly mi┆
0x03540…03560 73 73 69 6e 67 20 66 65 61 80 0a 74 75 72 65 20 77 69 6c 6c 20 62 65 20 63 6f 6d 70 69 6c 65 72 ┆ssing feaђ ture will be compiler┆
0x03560…03580 20 73 75 70 70 6f 72 74 65 64 20 70 72 6f 74 65 63 74 69 6f 6e 20 6f 66 20 74 79 70 65 73 20 6f ┆ supported protection of types o┆
0x03580…035a0 6e 65 20 6d 69 67 68 74 20 77 69 73 68 20 74 6f 20 0a 73 68 69 65 6c 64 2e 20 53 75 70 70 6f 72 ┆ne might wish to shield. Suppor┆
0x035a0…035c0 74 69 6e 67 20 61 20 6c 61 72 67 65 72 20 6e 75 6d 62 65 72 20 6f 66 20 73 68 69 65 6c 64 65 64 ┆ting a larger number of shielded┆
0x035c0…035e0 20 74 79 70 65 73 2c 20 68 6f 77 65 76 65 72 2c 20 72 65 71 75 69 80 0a 72 65 73 20 76 65 72 79 ┆ types, however, requiђ res very┆
0x035e0…03600 20 6c 69 74 74 6c 65 20 69 6e 20 74 68 65 20 77 61 79 20 6f 66 20 63 6f 6d 70 69 6c 65 72 20 6d ┆ little in the way of compiler m┆
0x03600…03620 6f 64 69 80 66 69 63 61 74 69 6f 6e 2c 20 61 6e 64 20 74 68 75 73 20 61 20 66 75 74 75 72 65 20 ┆odiђfication, and thus a future ┆
0x03620…03640 0a 65 76 6f 6c 75 74 69 6f 6e 20 6f 66 20 74 68 65 20 6c 61 6e 67 75 61 67 65 2c 20 65 2e 67 2e ┆ evolution of the language, e.g.┆
0x03640…03660 20 74 6f 80 77 61 72 64 20 73 75 70 70 6f 72 74 69 6e 67 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 ┆ toђward supporting application ┆
0x03660…03680 70 72 6f 67 72 61 6d 80 0a 6d 69 6e 67 2c 20 69 73 20 61 74 20 6c 65 61 73 74 20 66 65 61 73 69 ┆programђ ming, is at least feasi┆
0x03680…036a0 62 6c 65 2e 0d 0a 16 73 62 0d 0a 53 79 6e 74 61 78 20 44 69 61 67 72 61 6d 73 0d 0a 45 61 63 68 ┆ble. sb Syntax Diagrams Each┆
0x036a0…036c0 20 a0 73 79 6e 74 61 78 20 63 61 74 65 67 6f 72 79 e0 20 6f 66 20 74 68 65 20 63 6f 6e 74 65 78 ┆ аsyntax categoryЯ of the contex┆
0x036c0…036e0 74 2d 66 72 65 65 20 73 79 6e 74 61 78 20 6f 66 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 80 73 63 ┆t-free syntax of Real-Time Paђsc┆
0x036e0…03700 61 6c 20 0a 69 73 20 64 65 66 69 6e 65 64 20 62 79 20 61 20 a0 73 79 6e 74 61 78 20 64 69 61 67 ┆al is defined by a аsyntax diag┆
0x03700…03720 72 61 6d e0 2e 20 41 20 73 79 6e 74 61 78 20 64 69 61 67 72 61 6d 20 63 6f 6e 73 69 73 74 73 20 ┆ramЯ. A syntax diagram consists ┆
0x03720…03740 6f 66 3a 0d 0a 2d 20 84 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 64 65 66 69 6e 65 64 20 ┆of: - ёthe name of the defined ┆
0x03740…03760 73 79 6e 74 61 78 20 63 61 74 65 67 6f 72 79 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 63 6f ┆syntax category followed by a co┆
0x03760…03780 6c 6f 6e 2c 0d 0a 2d 20 61 72 72 6f 77 73 2c 20 77 68 69 63 68 20 6d 61 79 20 69 6e 63 6c 75 64 ┆lon, - arrows, which may includ┆
0x03780…037a0 65 20 62 72 61 6e 63 68 69 6e 67 2c 0d 0a 2d 20 84 69 6e 64 69 63 61 74 69 6f 6e 73 20 6f 66 20 ┆e branching, - ёindications of ┆
0x037a0…037c0 6f 63 63 75 72 72 65 6e 63 65 73 20 6f 66 20 73 79 6e 74 61 78 20 63 61 74 65 67 6f 72 69 65 73 ┆occurrences of syntax categories┆
0x037c0…037e0 2c 20 77 69 74 68 20 74 68 65 20 63 61 74 65 80 67 6f 72 79 20 0a 19 82 80 80 6e 61 6d 65 73 20 ┆, with the cateђgory ѓђђnames ┆
0x037e0…03800 77 72 69 74 74 65 6e 20 69 6e 20 6c 6f 77 65 72 2d 63 61 73 65 20 6c 65 74 74 65 72 73 2c 0d 0a ┆written in lower-case letters, ┆
0x03800…03820 2d 20 6c 61 6e 67 75 61 67 65 20 73 79 6d 62 6f 6c 73 20 77 72 69 74 74 65 6e 20 69 6e 20 75 70 ┆- language symbols written in up┆
0x03820…03840 70 65 72 2d 63 61 73 65 20 6c 65 74 74 65 72 73 20 28 69 66 20 74 65 78 74 29 2e 0d 0a 0d 0a a1 ┆per-case letters (if text). А┆
0x03840…03860 45 78 61 6d 70 6c 65 3a 0d 0a 16 6d 61 20 73 79 6e 64 69 61 31 36 0d 0a 16 6d 61 20 73 79 6e 64 ┆Example: ma syndia16 ma synd┆
0x03860…03880 69 61 31 37 0d 0a 16 6d 61 20 73 79 6e 64 69 61 30 33 0d 0a 0d 0a 41 20 73 6f 75 72 63 65 20 74 ┆ia17 ma syndia03 A source t┆
0x03880…038a0 65 78 74 20 6f 72 20 73 75 62 73 74 72 69 6e 67 20 6f 66 20 61 20 73 6f 75 72 63 65 20 74 65 78 ┆ext or substring of a source tex┆
0x038a0…038c0 74 20 69 73 20 61 20 73 79 6e 74 61 63 74 69 80 63 61 6c 6c 79 20 63 6f 72 72 65 63 74 20 0a 6f ┆t is a syntactiђcally correct o┆
0x038c0…038e0 63 63 75 72 72 65 6e 63 65 20 6f 66 20 61 20 73 79 6e 74 61 78 20 63 61 74 65 67 6f 72 79 20 69 ┆ccurrence of a syntax category i┆
0x038e0…03900 66 20 69 74 20 63 61 6e 20 62 65 20 6f 62 74 61 69 6e 65 64 20 62 79 20 74 72 61 76 65 72 73 69 ┆f it can be obtained by traversi┆
0x03900…03920 6e 67 20 0a 74 68 65 20 64 69 61 67 72 61 6d 20 64 65 66 69 6e 69 6e 67 20 74 68 61 74 20 63 61 ┆ng the diagram defining that ca┆
0x03920…03940 74 65 67 6f 72 79 2c 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 61 72 80 72 6f 77 73 2e 20 57 ┆tegory, following the arђrows. W┆
0x03940…03960 68 65 6e 20 61 6e 20 69 6e 80 0a 64 69 63 61 74 69 6f 6e 20 6f 66 20 61 6e 20 6f 63 63 75 72 72 ┆hen an inђ dication of an occurr┆
0x03960…03980 65 6e 63 65 20 6f 66 20 61 20 73 79 6e 74 61 78 20 63 61 74 65 67 6f 72 79 20 69 73 20 65 6e 63 ┆ence of a syntax category is enc┆
0x03980…039a0 6f 75 6e 74 65 72 65 64 20 28 6d 75 73 74 20 0a 62 65 20 65 6e 74 65 72 65 64 20 74 68 72 6f 75 ┆ountered (must be entered throu┆
0x039a0…039c0 67 68 20 61 6e 20 61 72 72 6f 77 29 2c 20 74 68 65 20 74 72 61 76 65 72 73 61 6c 20 72 75 80 6c ┆gh an arrow), the traversal ruђl┆
0x039c0…039e0 65 20 69 73 20 61 70 70 6c 69 65 64 20 72 65 63 75 72 73 69 76 65 80 0a 6c 79 2e 20 54 68 65 20 ┆e is applied recursiveђ ly. The ┆
0x039e0…03a00 72 65 73 75 6c 74 20 6f 66 20 61 20 74 72 61 76 65 72 73 61 6c 20 6f 66 20 61 20 64 69 61 67 72 ┆result of a traversal of a diagr┆
0x03a00…03a20 61 6d 20 69 73 20 74 68 65 20 73 65 71 75 65 6e 63 65 20 6f 66 20 6c 65 78 69 80 63 61 6c 20 0a ┆am is the sequence of lexiђcal ┆
0x03a20…03a40 65 6c 65 6d 65 6e 74 73 20 77 68 69 63 68 20 68 61 76 65 20 75 6c 74 69 6d 61 74 65 6c 79 20 62 ┆elements which have ultimately b┆
0x03a40…03a60 65 65 6e 20 65 6e 63 6f 75 6e 74 65 72 65 64 2e 0d 0a 0d 0a 54 68 65 20 6e 61 6d 65 73 20 6f 66 ┆een encountered. The names of┆
0x03a60…03a80 20 73 79 6e 74 61 78 20 63 61 74 65 67 6f 72 69 65 73 20 61 72 65 20 75 73 65 64 20 66 72 65 71 ┆ syntax categories are used freq┆
0x03a80…03aa0 75 65 6e 74 6c 79 20 69 6e 20 74 68 65 20 64 65 80 73 63 72 69 70 80 80 0a 74 69 6f 6e 73 20 6f ┆uently in the deђscripђђ tions o┆
0x03aa0…03ac0 66 20 74 68 65 20 73 65 6d 61 6e 74 69 63 73 20 6f 66 20 6c 61 6e 67 75 61 67 65 20 63 6f 6e 73 ┆f the semantics of language cons┆
0x03ac0…03ae0 74 72 75 63 74 73 20 74 6f 20 72 65 66 65 72 20 74 6f 20 70 61 72 74 69 63 75 6c 61 72 20 0a 6f ┆tructs to refer to particular o┆
0x03ae0…03b00 63 63 75 72 72 65 6e 63 65 73 20 6f 66 20 73 79 6e 74 61 78 20 63 61 74 65 67 6f 72 69 65 73 2e ┆ccurrences of syntax categories.┆
0x03b00…03b20 20 54 6f 20 6d 61 6b 65 20 69 74 20 63 6c 65 61 72 20 74 68 61 74 20 61 20 73 65 71 75 65 6e 63 ┆ To make it clear that a sequenc┆
0x03b20…03b40 65 20 6f 66 20 0a 77 6f 72 64 73 20 69 6e 20 74 68 65 20 74 65 78 74 20 69 73 20 69 6e 64 65 65 ┆e of words in the text is indee┆
0x03b40…03b60 64 20 61 20 72 65 80 66 65 72 65 6e 63 65 20 74 6f 20 73 75 63 68 20 61 6e 20 6f 63 63 75 72 72 ┆d a reђference to such an occurr┆
0x03b60…03b80 65 6e 63 65 20 69 74 20 6d 61 79 20 0a 62 65 20 65 6e 63 6c 6f 73 65 64 20 69 6e 20 73 69 6e 67 ┆ence it may be enclosed in sing┆
0x03b80…03ba0 6c 65 20 71 75 6f 74 65 73 2e 0d 0a 0d 0a 50 72 65 66 69 78 65 73 20 74 65 72 6d 69 6e 61 74 65 ┆le quotes. Prefixes terminate┆
0x03ba0…03bc0 64 20 62 79 20 75 6e 64 65 72 73 63 6f 72 65 73 20 61 72 65 20 61 6c 73 6f 20 75 73 65 64 20 69 ┆d by underscores are also used i┆
0x03bc0…03be0 6e 20 6e 61 6d 65 73 20 6f 66 20 73 79 6e 80 74 61 78 20 0a 63 61 74 65 67 6f 72 69 65 73 20 74 ┆n names of synђtax categories t┆
0x03be0…03c00 6f 20 6d 61 6b 65 20 69 74 20 65 61 73 69 65 72 20 74 6f 20 72 65 66 65 72 20 74 6f 20 61 20 70 ┆o make it easier to refer to a p┆
0x03c00…03c20 61 72 74 69 63 75 6c 61 72 20 6f 63 63 75 72 80 72 65 6e 63 65 20 6f 66 20 61 20 0a 73 79 6e 74 ┆articular occurђrence of a synt┆
0x03c20…03c40 61 78 20 63 61 74 65 67 6f 72 79 2e 20 54 68 65 79 20 68 61 76 65 20 6e 6f 20 73 69 67 6e 69 66 ┆ax category. They have no signif┆
0x03c40…03c60 69 63 61 6e 63 65 20 69 6e 20 74 68 65 20 63 6f 6e 80 74 65 78 74 2d 66 72 65 65 20 73 79 6e 74 ┆icance in the conђtext-free synt┆
0x03c60…03c80 61 78 2e 20 0a 46 6f 72 20 65 78 61 6d 70 6c 65 20 27 62 6f 75 6e 64 2d 74 79 70 65 5f 6e 61 6d ┆ax. For example 'bound-type_nam┆
0x03c80…03ca0 65 27 20 61 6e 64 20 27 70 61 72 61 6d 65 74 65 72 69 80 7a 65 64 2d 74 79 70 65 5f 6e 61 6d 65 ┆e' and 'parameteriђzed-type_name┆
0x03ca0…03cc0 27 20 61 72 65 20 0a 73 79 6e 74 61 63 74 69 63 61 6c 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 20 ┆' are syntactically equivalent ┆
0x03cc0…03ce0 61 6e 64 20 62 6f 74 68 20 64 65 66 69 6e 65 64 20 62 79 20 74 68 65 20 64 69 61 67 72 61 6d 20 ┆and both defined by the diagram ┆
0x03ce0…03d00 66 6f 72 20 27 6e 61 6d 65 27 2e 20 0a 48 79 70 68 65 6e 73 20 61 6e 64 20 73 70 61 80 63 65 73 ┆for 'name'. Hyphens and spaђces┆
0x03d00…03d20 20 61 72 65 20 75 73 65 64 20 65 78 63 6c 75 73 69 76 65 6c 79 20 61 73 20 72 65 61 64 69 6e 67 ┆ are used exclusively as reading┆
0x03d20…03d40 20 61 69 64 73 2e 0d 0a 0d 0a 41 20 70 72 65 66 69 78 20 77 68 69 63 68 20 6f 63 63 75 72 73 20 ┆ aids. A prefix which occurs ┆
0x03d40…03d60 69 6e 20 73 65 76 65 72 61 6c 20 73 79 6e 74 61 78 20 64 69 61 67 72 61 6d 73 20 6d 61 79 20 62 ┆in several syntax diagrams may b┆
0x03d60…03d80 65 20 75 6e 80 64 65 72 73 74 6f 80 6f 64 20 0a 61 73 20 61 6e 20 69 6e 64 69 63 61 74 69 6f 6e ┆e unђderstoђod as an indication┆
0x03d80…03da0 20 6f 66 20 61 20 63 6f 6e 74 65 78 74 2d 73 65 6e 73 69 74 69 76 65 20 73 79 6e 74 61 78 20 72 ┆ of a context-sensitive syntax r┆
0x03da0…03dc0 75 6c 65 2e 20 53 75 63 68 20 72 75 80 6c 65 73 2c 20 68 6f 77 80 0a 65 76 65 72 2c 20 61 72 65 ┆ule. Such ruђles, howђ ever, are┆
0x03dc0…03de0 20 61 6c 6c 20 65 78 70 6c 61 69 6e 65 64 20 69 6e 20 74 68 65 20 74 65 78 74 20 64 65 73 63 72 ┆ all explained in the text descr┆
0x03de0…03e00 69 62 69 6e 67 20 74 68 65 20 73 65 6d 61 6e 80 74 69 63 73 20 6f 66 20 74 68 65 20 72 65 80 0a ┆ibing the semanђtics of the reђ ┆
0x03e00…03e20 6c 65 76 61 6e 74 20 63 6f 6e 73 74 72 75 63 74 73 2e 0d 0a 0d 0a 41 20 63 6f 6d 70 6c 65 74 65 ┆levant constructs. A complete┆
0x03e20…03e40 20 73 65 74 20 6f 66 20 73 79 6e 74 61 78 20 64 69 61 67 72 61 6d 73 20 69 73 20 63 6f 6c 6c 65 ┆ set of syntax diagrams is colle┆
0x03e40…03e60 63 74 65 64 20 69 6e 20 61 70 70 65 6e 64 69 78 20 42 2e 20 54 68 65 20 0a 70 61 67 65 20 6e 75 ┆cted in appendix B. The page nu┆
0x03e60…03e80 6d 62 65 72 20 6f 6e 20 77 68 69 63 68 20 61 20 64 69 61 67 72 61 6d 20 69 73 20 73 68 6f 77 6e ┆mber on which a diagram is shown┆
0x03e80…03ea0 20 6d 61 79 20 62 65 20 66 6f 75 6e 64 20 62 79 20 6d 65 61 6e 73 20 6f 66 20 0a 74 68 65 20 63 ┆ may be found by means of the c┆
0x03ea0…03ec0 61 74 63 68 77 6f 72 64 20 69 6e 64 65 78 2c 20 61 70 70 65 6e 64 69 78 20 44 2e 32 2c 20 73 69 ┆atchword index, appendix D.2, si┆
0x03ec0…03ee0 6e 63 65 20 74 68 65 20 63 61 74 65 67 6f 72 79 20 6e 61 6d 65 20 61 70 70 65 61 72 73 20 0a 68 ┆nce the category name appears h┆
0x03ee0…03f00 65 72 65 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 3a 2e 0d 0a 16 73 62 0d 0a 4f 72 67 61 6e ┆ere followed by a :. sb Organ┆
0x03f00…03f20 69 7a 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 4d 61 6e 75 61 6c 0d 0a 41 20 72 69 67 6f 72 6f ┆ization of this Manual A rigoro┆
0x03f20…03f40 75 73 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 52 65 61 6c 2d 54 69 6d 65 20 50 ┆us definition of the Real-Time P┆
0x03f40…03f60 61 73 63 61 6c 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e 67 75 61 80 67 65 20 69 73 20 0a ┆ascal programming languaђge is ┆
0x03f60…03f80 67 69 76 65 6e 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 68 61 70 74 65 72 73 2e ┆given in the following chapters.┆
0x03f80…03fa0 20 45 61 63 68 20 63 68 61 70 74 65 72 20 69 73 20 64 69 76 69 64 65 64 20 69 6e 74 6f 20 73 65 ┆ Each chapter is divided into se┆
0x03fa0…03fc0 63 74 69 6f 6e 73 2c 20 0a 65 61 63 68 20 64 65 61 6c 69 6e 67 20 77 69 74 68 20 61 20 70 61 72 ┆ctions, each dealing with a par┆
0x03fc0…03fe0 74 69 63 75 6c 61 72 20 61 73 70 65 63 74 20 6f 66 20 74 68 65 20 6c 61 6e 80 67 75 61 67 65 2e ┆ticular aspect of the lanђguage.┆
0x03fe0…04000 20 54 68 65 20 63 6f 6e 74 65 6e 74 73 20 0a 6f 66 20 61 20 73 65 63 74 69 6f 6e 20 61 72 65 20 ┆ The contents of a section are ┆
0x04000…04020 69 6e 20 67 65 6e 65 72 61 6c 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 0d 0a 0d 0a 2d 20 69 6e 74 72 ┆in general as follows: - intr┆
0x04020…04040 6f 64 75 63 74 6f 72 79 20 72 65 6d 61 72 6b 73 2c 0d 0a 2d 20 73 79 6e 74 61 78 20 64 69 61 67 ┆oductory remarks, - syntax diag┆
0x04040…04060 72 61 6d 73 20 28 73 6f 6d 65 20 73 65 63 74 69 6f 6e 73 20 63 6f 6e 74 61 69 6e 20 6e 6f 20 64 ┆rams (some sections contain no d┆
0x04060…04080 69 61 67 72 61 6d 73 29 2c 0d 0a 2d 20 84 64 65 73 63 72 69 70 74 69 6f 6e 20 69 6e 20 6e 61 74 ┆iagrams), - ёdescription in nat┆
0x04080…040a0 75 72 61 6c 20 6c 61 6e 67 75 61 67 65 20 6f 66 20 74 68 65 20 73 65 6d 61 6e 74 69 63 73 20 6f ┆ural language of the semantics o┆
0x040a0…040c0 66 20 74 68 65 20 70 61 72 74 69 80 63 75 6c 61 72 20 0a 19 82 80 80 70 61 72 74 20 6f 66 20 74 ┆f the partiђcular ѓђђpart of t┆
0x040c0…040e0 68 65 20 6c 61 6e 67 75 61 67 65 2c 0d 0a 2d 20 84 6f 70 74 69 6f 6e 61 6c 20 6e 6f 74 65 73 2c ┆he language, - ёoptional notes,┆
0x040e0…04100 20 77 68 65 72 65 20 73 70 65 63 69 66 69 63 20 63 6f 6e 73 65 71 75 65 6e 63 65 73 20 6f 66 20 ┆ where specific consequences of ┆
0x04100…04120 74 68 65 20 73 79 6e 74 61 78 20 6f 72 20 73 65 6d 61 6e 80 0a 19 82 80 80 74 69 63 73 20 6d 61 ┆the syntax or semanђ ѓђђtics ma┆
0x04120…04140 79 20 62 65 20 70 6f 69 6e 74 65 64 20 6f 75 74 2c 0d 0a 2d 20 65 78 61 6d 70 6c 65 73 2e 0d 0a ┆y be pointed out, - examples. ┆
0x04140…04160 0d 0a 54 68 65 20 6e 6f 74 65 73 20 61 6e 64 20 65 78 61 6d 70 6c 65 73 20 64 6f 20 6e 6f 74 20 ┆ The notes and examples do not ┆
0x04160…04180 63 6f 6e 73 74 69 74 75 74 65 20 70 61 72 74 20 6f 66 20 74 68 65 20 64 65 66 69 6e 69 80 74 69 ┆constitute part of the definiђti┆
0x04180…041a0 6f 6e 20 6f 66 20 0a 74 68 65 20 6c 61 6e 67 75 61 67 65 2e 0d 0a 0c 9c d8 0a 15 b2 20 20 20 0d ┆on of the language. юп ▓ ┆
0x041a0…041c0 0a 20 20 20 0d 0a 16 73 61 0d 0a 4c 45 58 49 43 41 4c 20 45 4c 45 4d 45 4e 54 53 0d 0a 0d 0a 41 ┆ sa LEXICAL ELEMENTS A┆
0x041c0…041e0 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 73 6f 75 72 63 65 20 70 72 6f 67 72 61 6d ┆ Real-Time Pascal source program┆
0x041e0…04200 20 69 73 20 61 20 73 74 72 69 6e 67 20 6f 66 20 63 68 61 72 61 63 74 65 72 73 20 77 68 69 63 68 ┆ is a string of characters which┆
0x04200…04220 20 0a 63 61 6e 20 62 65 20 28 75 6e 69 71 75 65 6c 79 29 20 70 61 72 73 65 64 20 61 73 20 63 6f ┆ can be (uniquely) parsed as co┆
0x04220…04240 6e 73 69 73 74 69 6e 67 20 6f 66 20 61 20 73 65 71 75 65 6e 63 65 20 6f 66 20 73 75 69 74 61 62 ┆nsisting of a sequence of suitab┆
0x04240…04260 6c 79 20 73 65 70 61 80 0a 72 61 74 65 64 20 6c 65 78 69 63 61 6c 20 65 6c 65 6d 65 6e 74 73 2e ┆ly sepaђ rated lexical elements.┆
0x04260…04280 20 53 65 70 61 72 61 74 6f 72 73 20 61 72 65 20 63 6f 6d 80 6d 65 6e 74 73 20 61 6e 64 20 6e 6f ┆ Separators are comђments and no┆
0x04280…042a0 6e 70 72 69 6e 80 74 69 6e 67 20 73 79 6d 80 0a 62 6f 6c 73 2e 20 54 68 65 72 65 20 61 72 65 20 ┆nprinђting symђ bols. There are ┆
0x042a0…042c0 66 69 76 65 20 63 61 74 65 67 6f 72 69 65 73 20 6f 66 20 6c 65 78 69 63 61 6c 20 65 6c 65 6d 65 ┆five categories of lexical eleme┆
0x042c0…042e0 6e 74 73 3a 0d 0a 0d 0a 2d 20 6e 61 6d 65 73 2c 0d 0a 2d 20 63 68 61 72 61 63 74 65 72 20 6c 69 ┆nts: - names, - character li┆
0x042e0…04300 74 65 72 61 6c 73 2c 0d 0a 2d 20 63 68 61 72 61 63 74 65 72 20 73 74 72 69 6e 67 73 2c 0d 0a 2d ┆terals, - character strings, -┆
0x04300…04320 20 6e 75 6d 62 65 72 73 2c 20 61 6e 64 0d 0a 2d 20 6c 61 6e 67 75 61 67 65 20 73 79 6d 62 6f 6c ┆ numbers, and - language symbol┆
0x04320…04340 73 2e 0d 0a 0d 0a 4f 66 20 74 68 65 73 65 20 6f 6e 6c 79 20 6e 61 6d 65 73 20 61 72 65 20 64 65 ┆s. Of these only names are de┆
0x04340…04360 66 69 6e 65 64 20 69 6e 20 74 65 72 6d 73 20 6f 66 20 73 79 6e 74 61 78 20 64 69 61 67 72 61 6d ┆fined in terms of syntax diagram┆
0x04360…04380 73 3b 20 74 68 65 20 0a 6f 74 68 65 72 73 20 61 72 65 20 76 65 72 62 61 6c 6c 79 20 64 65 73 63 ┆s; the others are verbally desc┆
0x04380…043a0 72 69 62 65 64 2e 20 41 6c 6c 20 6c 61 6e 67 75 61 67 65 20 73 79 6d 62 6f 6c 73 2c 20 73 6f 80 ┆ribed. All language symbols, soђ┆
0x043a0…043c0 6d 65 20 6f 66 20 77 68 69 63 68 20 61 72 65 20 0a 6b 65 79 77 6f 72 64 73 20 73 69 6d 69 6c 61 ┆me of which are keywords simila┆
0x043c0…043e0 72 20 74 6f 20 6e 61 6d 65 73 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 73 6f 6d 65 20 61 64 64 69 ┆r to names, as well as some addi┆
0x043e0…04400 74 69 6f 6e 61 6c 20 6e 61 6d 65 73 2c 20 61 72 65 20 70 72 65 80 0a 64 65 66 69 6e 65 64 20 61 ┆tional names, are preђ defined a┆
0x04400…04420 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 6c 61 6e 67 75 61 67 65 2e 20 54 68 65 20 72 65 6d 61 ┆s part of the language. The rema┆
0x04420…04440 69 6e 69 6e 67 20 6c 65 78 80 69 63 61 6c 20 65 6c 65 6d 65 6e 74 73 20 61 72 65 20 0a 70 72 6f ┆ining lexђical elements are pro┆
0x04440…04460 67 72 61 6d 6d 65 72 2d 73 70 65 63 69 66 69 65 64 2e 0d 0a 0d 0a 4e 6f 20 73 65 70 61 72 61 74 ┆grammer-specified. No separat┆
0x04460…04480 6f 72 20 6d 61 79 20 6f 63 63 75 72 20 77 69 74 68 69 6e 20 61 20 73 69 6e 67 6c 65 20 6c 65 78 ┆or may occur within a single lex┆
0x04480…044a0 69 63 61 6c 20 65 6c 65 6d 65 6e 74 2e 20 41 74 20 6c 65 61 73 74 20 6f 6e 65 20 0a 73 65 70 61 ┆ical element. At least one sepa┆
0x044a0…044c0 72 61 74 6f 72 20 6d 75 73 74 20 61 70 70 65 61 72 20 62 65 74 77 65 65 6e 20 61 6e 79 20 70 61 ┆rator must appear between any pa┆
0x044c0…044e0 69 72 20 6f 66 20 63 6f 6e 73 65 80 63 75 74 69 76 65 20 6c 65 78 69 63 61 6c 20 65 6c 65 80 80 ┆ir of conseђcutive lexical eleђђ┆
0x044e0…04500 0a 6d 65 6e 74 73 20 77 68 65 6e 65 76 65 72 20 74 68 69 73 20 69 73 20 6e 65 63 65 73 73 61 72 ┆ ments whenever this is necessar┆
0x04500…04520 79 20 74 6f 20 70 72 6f 76 69 80 64 65 20 75 6e 69 71 75 65 20 64 65 6c 69 6d 69 74 61 80 74 69 ┆y to proviђde unique delimitaђti┆
0x04520…04540 6f 6e 2e 0d 0a 20 20 0d 0a 41 6e 20 61 6c 70 68 61 62 65 74 69 63 20 63 68 61 72 61 63 74 65 72 ┆on. An alphabetic character┆
0x04540…04560 2c 20 61 20 74 68 72 6f 75 67 68 20 7a 2c 20 69 73 20 61 6e 20 6f 63 63 75 72 72 65 6e 63 65 20 ┆, a through z, is an occurrence ┆
0x04560…04580 6f 66 20 74 68 65 20 0a 63 61 74 65 67 6f 72 79 20 27 6c 65 74 74 65 72 27 20 77 68 69 63 68 20 ┆of the category 'letter' which ┆
0x04580…045a0 69 73 20 72 65 66 65 72 72 65 64 20 74 6f 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 2e ┆is referred to in the following.┆
0x045a0…045c0 20 4e 6f 20 64 65 73 74 69 6e 63 74 69 6f 6e 20 0a 69 73 20 6d 61 64 65 20 62 65 74 77 65 65 6e ┆ No destinction is made between┆
0x045c0…045e0 20 74 68 65 20 75 70 70 65 72 20 61 6e 64 20 6c 6f 77 65 72 20 63 61 73 65 20 66 6f 72 6d 73 20 ┆ the upper and lower case forms ┆
0x045e0…04600 6f 66 20 74 68 65 20 73 61 6d 65 20 6c 65 74 74 65 72 2c 20 0a 65 78 63 65 70 74 20 69 6e 20 63 ┆of the same letter, except in c┆
0x04600…04620 68 61 72 61 63 74 65 72 20 6c 69 74 65 72 61 6c 73 20 6f 72 20 63 68 61 72 61 63 74 65 72 20 73 ┆haracter literals or character s┆
0x04620…04640 74 72 69 6e 67 73 2e 0d 0a 16 73 62 0d 0a 4e 61 6d 65 73 0d 0a 41 6c 6c 20 64 65 63 6c 61 72 65 ┆trings. sb Names All declare┆
0x04640…04660 64 20 65 6e 74 69 74 69 65 73 2c 20 77 68 65 74 68 65 72 20 70 72 6f 67 72 61 6d 73 2c 20 72 6f ┆d entities, whether programs, ro┆
0x04660…04680 75 74 69 6e 65 73 2c 20 74 79 70 65 73 2c 20 76 61 72 69 61 80 62 6c 65 73 20 6f 72 20 0a 6d 65 ┆utines, types, variaђbles or me┆
0x04680…046a0 72 65 6c 79 20 63 6f 6e 73 74 61 6e 74 73 2c 20 68 61 76 65 20 61 20 6e 61 6d 65 2e 0d 0a 0d 0a ┆rely constants, have a name. ┆
0x046a0…046c0 16 6d 61 20 73 79 6e 64 69 61 30 33 0d 0a 41 6c 6c 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 ┆ ma syndia03 All characters in ┆
0x046c0…046e0 61 20 6e 61 6d 65 20 61 72 65 20 73 69 67 6e 69 66 69 63 61 6e 74 2e 20 48 6f 77 65 76 65 72 2c ┆a name are significant. However,┆
0x046e0…04700 20 6e 61 6d 65 73 20 75 73 65 64 20 69 6e 20 63 6f 6e 80 0a 6a 75 6e 63 74 69 6f 6e 20 77 69 74 ┆ names used in conђ junction wit┆
0x04700…04720 68 20 65 78 74 65 72 6e 61 6c 20 6c 69 6e 6b 69 6e 67 20 6d 61 79 20 62 65 20 61 62 62 72 65 76 ┆h external linking may be abbrev┆
0x04720…04740 69 61 74 65 64 20 69 6e 20 61 6e 20 69 6d 70 6c 65 80 6d 65 6e 74 61 80 80 0a 74 69 6f 6e 2f 69 ┆iated in an impleђmentaђђ tion/i┆
0x04740…04760 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 64 65 70 65 6e 64 65 6e 74 20 66 61 73 68 69 6f 6e 2e 0d 0a ┆nstallation dependent fashion. ┆
0x04760…04780 0d 0a 54 68 65 20 6b 65 79 77 6f 72 64 73 20 28 63 66 2e 20 73 75 62 73 65 63 74 69 6f 6e 20 32 ┆ The keywords (cf. subsection 2┆
0x04780…047a0 2e 35 2e 31 29 20 73 61 74 69 73 66 79 20 74 68 65 20 73 79 6e 74 61 78 20 66 6f 72 20 27 6e 61 ┆.5.1) satisfy the syntax for 'na┆
0x047a0…047c0 80 6d 65 27 2c 20 62 75 74 20 0a 61 72 65 20 65 78 70 6c 69 63 69 74 6c 79 20 65 78 63 6c 75 64 ┆ђme', but are explicitly exclud┆
0x047c0…047e0 65 64 20 66 72 6f 6d 20 74 68 65 20 63 61 74 65 67 6f 72 79 2e 20 49 6e 20 61 64 64 69 74 69 6f ┆ed from the category. In additio┆
0x047e0…04800 6e 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 0a 72 6f 75 74 69 6e 65 73 2c 20 74 79 70 65 73 20 61 ┆n a number of routines, types a┆
0x04800…04820 6e 64 20 63 6f 6e 73 74 61 6e 74 73 20 65 78 69 73 74 20 28 63 66 2e 20 41 70 70 65 6e 64 69 78 ┆nd constants exist (cf. Appendix┆
0x04820…04840 20 43 29 20 77 69 74 68 20 70 72 65 64 65 66 69 6e 65 64 20 0a 6e 61 6d 65 73 2c 20 69 2e 65 2e ┆ C) with predefined names, i.e.┆
0x04840…04860 20 74 68 65 73 65 20 6e 61 6d 65 73 20 63 61 6e 20 62 65 20 72 65 64 65 66 69 6e 65 64 2e 0d 0a ┆ these names can be redefined. ┆
0x04860…04880 0d 0a a1 45 78 61 6d 70 6c 65 73 3a 0d 0a 0d 0a 73 74 65 70 20 20 75 73 61 67 65 5f 63 6f 75 6e ┆ АExamples: step usage_coun┆
0x04880…048a0 74 20 20 70 72 6f 63 65 73 73 5f 31 31 37 20 20 56 65 72 79 5f 4c 6f 6e 67 5f 49 64 65 6e 74 69 ┆t process_117 Very_Long_Identi┆
0x048a0…048c0 66 69 65 72 5f 4e 61 6d 65 0d 0a 16 73 62 0d 0a 43 68 61 72 61 63 74 65 72 20 4c 69 74 65 72 61 ┆fier_Name sb Character Litera┆
0x048c0…048e0 6c 73 0d 0a 43 68 61 72 61 63 74 65 72 20 6c 69 74 65 72 61 6c 73 20 64 65 6e 6f 74 65 20 63 68 ┆ls Character literals denote ch┆
0x048e0…04900 61 72 61 63 74 65 72 73 2c 20 77 68 69 63 68 20 61 72 65 20 76 61 6c 75 65 73 20 6f 66 20 74 68 ┆aracters, which are values of th┆
0x04900…04920 65 20 70 72 65 64 65 66 69 80 0a 6e 65 64 20 74 79 70 65 20 63 68 61 72 2e 20 54 68 65 79 20 61 ┆e predefiђ ned type char. They a┆
0x04920…04940 72 65 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 73 75 62 73 65 63 74 69 6f 6e 20 33 2e 34 2e 32 ┆re described in subsection 3.4.2┆
0x04940…04960 2e 0d 0a 16 73 62 0d 0a 43 68 61 72 61 63 74 65 72 20 53 74 72 69 6e 67 73 0d 0a 43 68 61 72 61 ┆. sb Character Strings Chara┆
0x04960…04980 63 74 65 72 20 73 74 72 69 6e 67 73 20 64 65 6e 6f 74 65 20 76 61 6c 75 65 73 20 6f 66 20 73 74 ┆cter strings denote values of st┆
0x04980…049a0 72 69 6e 67 20 74 79 70 65 73 2e 20 54 68 65 79 20 61 72 65 20 64 65 73 63 72 69 80 62 65 64 20 ┆ring types. They are descriђbed ┆
0x049a0…049c0 69 6e 20 0a 73 75 62 73 65 63 74 69 6f 6e 20 33 2e 38 2e 34 2e 0d 0a 16 73 62 0d 0a 4e 75 6d 62 ┆in subsection 3.8.4. sb Numb┆
0x049c0…049e0 65 72 73 0d 0a 41 20 6e 75 6d 62 65 72 20 69 73 20 61 20 73 65 71 75 65 6e 63 65 20 6f 66 20 64 ┆ers A number is a sequence of d┆
0x049e0…04a00 69 67 69 74 73 2c 20 70 6f 73 73 69 62 6c 79 20 70 72 65 66 69 78 65 64 20 62 79 20 61 20 72 61 ┆igits, possibly prefixed by a ra┆
0x04a00…04a20 80 64 69 78 20 73 70 65 63 69 66 69 80 0a 63 61 74 69 6f 6e 2e 20 41 20 64 69 67 69 74 20 69 73 ┆ђdix specifiђ cation. A digit is┆
0x04a20…04a40 20 61 20 64 65 63 69 6d 61 6c 20 64 69 67 69 74 2c 20 30 20 74 68 72 6f 75 67 68 20 39 2c 20 6f ┆ a decimal digit, 0 through 9, o┆
0x04a40…04a60 72 20 6f 6e 65 20 6f 66 20 74 68 65 20 6c 65 74 74 65 72 73 20 0a 41 20 74 68 72 6f 75 67 68 20 ┆r one of the letters A through ┆
0x04a60…04a80 46 2e 20 41 20 72 61 64 69 78 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 69 73 20 74 68 65 20 ┆F. A radix specification is the ┆
0x04a80…04aa0 63 68 61 72 61 63 74 65 72 20 77 69 74 68 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 65 20 0a 33 35 ┆character with ordinal value 35┆
0x04aa0…04ac0 20 28 69 6e 20 74 68 69 73 20 6d 61 6e 75 61 6c 20 73 68 6f 77 6e 20 61 73 20 23 29 20 66 6f 6c ┆ (in this manual shown as #) fol┆
0x04ac0…04ae0 6c 6f 77 65 64 20 62 79 20 6f 6e 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 65 ┆lowed by one of the following le┆
0x04ae0…04b00 74 80 0a 74 65 72 73 3a 20 42 2c 20 4f 2c 20 44 2c 20 6f 72 20 48 2e 0d 0a 0d 0a 4e 75 6d 62 65 ┆tђ ters: B, O, D, or H. Numbe┆
0x04b00…04b20 72 73 20 77 69 74 68 6f 75 74 20 61 20 72 61 64 69 78 20 70 72 65 66 69 78 20 61 72 65 20 69 6e ┆rs without a radix prefix are in┆
0x04b20…04b40 74 65 67 65 72 20 6e 75 6d 62 65 72 73 20 69 6e 20 73 74 61 6e 80 64 61 72 64 20 64 65 63 69 80 ┆teger numbers in stanђdard deciђ┆
0x04b40…04b60 0a 6d 61 6c 20 6e 6f 74 61 74 69 6f 6e 3b 20 74 68 65 79 20 64 65 6e 6f 74 65 20 76 61 6c 75 65 ┆ mal notation; they denote value┆
0x04b60…04b80 73 20 6f 66 20 74 68 65 20 70 72 65 64 65 66 69 6e 65 64 20 74 79 70 65 20 69 6e 74 65 80 67 65 ┆s of the predefined type inteђge┆
0x04b80…04ba0 72 2c 20 63 66 2e 20 0a 73 75 62 73 65 63 74 69 6f 6e 20 33 2e 34 2e 33 2e 0d 0a 0d 0a 4e 75 6d ┆r, cf. subsection 3.4.3. Num┆
0x04ba0…04bc0 62 65 72 73 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 61 20 72 61 64 69 78 20 73 70 65 63 69 ┆bers prefixed with a radix speci┆
0x04bc0…04be0 66 69 63 61 74 69 6f 6e 20 61 72 65 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 66 6f 6c 80 ┆fication are interpreted as folђ┆
0x04be0…04c00 80 0a 6c 6f 77 73 3a 0d 0a 0d 0a 23 42 09 62 69 6e 61 72 79 2c 20 64 69 67 69 74 73 20 6d 75 73 ┆ђ lows: #B binary, digits mus┆
0x04c00…04c20 74 20 62 65 20 30 2c 31 0d 0a 23 4f 09 6f 63 74 61 6c 2c 20 64 69 67 69 74 73 20 6d 75 73 74 20 ┆t be 0,1 #O octal, digits must ┆
0x04c20…04c40 62 65 20 30 2e 2e 37 0d 0a 23 44 09 64 65 63 69 6d 61 6c 2c 20 64 69 67 69 74 73 20 6d 75 73 74 ┆be 0..7 #D decimal, digits must┆
0x04c40…04c60 20 62 65 20 30 2e 2e 39 0d 0a 23 48 09 68 65 78 61 64 65 63 69 6d 61 6c 2c 20 64 69 67 69 74 73 ┆ be 0..9 #H hexadecimal, digits┆
0x04c60…04c80 20 6d 75 73 74 20 62 65 20 30 2e 2e 39 2c 20 41 2e 2e 46 0d 0a 0d 0a a1 45 78 61 6d 70 6c 65 73 ┆ must be 0..9, A..F АExamples┆
0x04c80…04ca0 3a 0d 0a 0d 0a 20 23 42 31 30 31 30 20 0d 0a 20 23 4f 37 37 37 20 20 20 23 48 43 41 46 45 20 20 ┆: #B1010 #O777 #HCAFE ┆
0x04ca0…04cc0 20 23 44 32 35 35 20 20 20 20 23 44 37 39 31 33 20 20 20 20 2d 2d 20 66 6f 75 72 20 69 6e 74 65 ┆ #D255 #D7913 -- four inte┆
0x04cc0…04ce0 67 65 72 73 0d 0a 16 73 62 0d 0a 4c 61 6e 67 75 61 67 65 20 53 79 6d 62 6f 6c 73 0d 0a 54 68 65 ┆gers sb Language Symbols The┆
0x04ce0…04d00 20 70 72 65 64 65 66 69 6e 65 64 20 6c 61 6e 67 75 61 67 65 20 73 79 6d 62 6f 6c 73 20 66 61 6c ┆ predefined language symbols fal┆
0x04d00…04d20 6c 20 69 6e 20 74 77 6f 20 63 6c 61 73 73 65 73 3a 20 6b 65 79 80 77 6f 72 64 73 20 61 6e 64 20 ┆l in two classes: keyђwords and ┆
0x04d20…04d40 0a 73 70 65 63 69 61 6c 20 73 79 6d 62 6f 6c 73 2e 0d 0a 0d 0a 16 73 63 0d 0a 4b 65 79 77 6f 72 ┆ special symbols. sc Keywor┆
0x04d40…04d60 64 73 0d 0a 4b 65 79 77 6f 72 64 73 20 61 72 65 20 72 65 73 65 72 76 65 64 20 6e 61 6d 65 73 2c ┆ds Keywords are reserved names,┆
0x04d60…04d80 20 69 2e 65 2e 20 69 74 20 69 73 20 69 6c 6c 65 67 61 6c 20 74 6f 20 75 73 65 20 74 68 65 6d 20 ┆ i.e. it is illegal to use them ┆
0x04d80…04da0 61 73 20 6e 61 6d 65 73 20 0a 69 6e 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2e 20 54 68 72 6f 75 ┆as names in declarations. Throu┆
0x04da0…04dc0 67 68 6f 75 74 20 74 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 73 6f 6d 65 20 6b 65 79 80 77 6f 72 ┆ghout this document some keyђwor┆
0x04dc0…04de0 64 73 20 61 72 65 20 72 65 6e 64 65 72 65 64 20 0a 69 6e 20 73 6d 61 6c 6c 20 6c 65 74 74 65 72 ┆ds are rendered in small letter┆
0x04de0…04e00 73 20 61 6e 64 20 73 6f 6d 65 20 69 6e 20 63 61 70 69 74 61 6c 73 2c 20 6d 65 72 65 6c 79 20 61 ┆s and some in capitals, merely a┆
0x04e00…04e20 73 20 61 20 6d 61 74 80 74 65 72 20 6f 66 20 73 74 79 6c 65 2e 20 0a 54 68 65 20 6b 65 79 77 6f ┆s a matђter of style. The keywo┆
0x04e20…04e40 72 64 73 20 61 72 65 3a 0d 0a 0d 0a 04 00 2d 4e 00 00 06 00 00 00 00 02 01 41 31 00 00 00 00 00 ┆rds are: -N A1 ┆
0x04e40…04e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 12 1d 2a 36 37 41 4b 55 5f 69 73 ┆ *67AKU_is┆
0x04e60…04e80 7d 87 91 ff 04 04 00 2d 4c 00 00 06 00 00 00 00 02 01 41 31 00 00 00 00 00 00 00 00 00 00 00 00 ┆}ЄЉ -L A1 ┆
0x04e80…04ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 4b 55 5f 69 73 7d 87 91 ff 04 0a 41 ┆ #-7AKU_is}ЄЉ A┆
0x04ea0…04ec0 4e 44 20 20 20 20 20 20 09 45 4e 44 20 20 20 20 20 20 09 49 4e 20 20 20 20 20 20 20 09 50 52 4f ┆ND END IN PRO┆
0x04ec0…04ee0 43 45 44 55 52 45 09 74 79 70 65 73 69 7a 65 20 0d 0a 41 52 52 41 59 20 20 20 20 09 45 4e 44 4c ┆CEDURE typesize ARRAY ENDL┆
0x04ee0…04f00 4f 4f 50 20 20 09 49 4e 53 50 45 43 54 09 50 52 4f 47 52 41 4d 20 20 20 09 55 4e 54 49 4c 20 0d ┆OOP INSPECT PROGRAM UNTIL ┆
0x04f00…04f20 0a 41 53 20 20 20 20 20 20 20 09 45 58 49 54 20 20 20 20 20 09 4c 4f 43 4b 42 55 46 20 20 09 52 ┆ AS EXIT LOCKBUF R┆
0x04f20…04f40 45 43 4f 52 44 20 20 20 09 56 41 52 20 20 20 20 0d 0a 42 45 47 49 4e 20 20 20 20 09 45 58 49 54 ┆ECORD VAR BEGIN EXIT┆
0x04f40…04f60 4c 4f 4f 50 20 09 4c 4f 43 4b 44 41 54 41 20 09 52 45 47 49 4f 4e 09 76 61 72 73 69 7a 65 20 0d ┆LOOP LOCKDATA REGION varsize ┆
0x04f60…04f80 0a 43 41 53 45 20 20 20 20 20 09 45 58 54 45 52 4e 41 4c 20 09 4c 4f 4f 50 20 20 20 20 20 09 52 ┆ CASE EXTERNAL LOOP R┆
0x04f80…04fa0 45 50 45 41 54 20 20 20 09 57 48 49 4c 45 20 20 20 0d 0a 43 4f 4e 53 54 20 20 20 20 20 09 46 4f ┆EPEAT WHILE CONST FO┆
0x04fa0…04fc0 52 20 20 20 20 20 20 09 4d 4f 44 20 20 20 20 20 20 09 53 45 54 20 20 20 20 20 20 20 09 57 49 54 ┆R MOD SET WIT┆
0x04fc0…04fe0 48 20 20 20 0d 0a 43 4f 4e 54 49 4e 55 45 4c 4f 4f 50 20 09 46 4f 52 57 41 52 44 20 20 09 4e 4f ┆H CONTINUELOOP FORWARD NO┆
0x04fe0…05000 54 20 20 20 20 20 20 09 53 48 41 52 45 44 20 20 20 09 58 4f 52 20 20 20 20 0d 0a 44 49 56 20 20 ┆T SHARED XOR DIV ┆
0x05000…05020 20 20 20 20 09 46 55 4e 43 54 49 4f 4e 20 09 4f 46 20 20 20 20 20 20 20 09 53 48 49 46 54 20 20 ┆ FUNCTION OF SHIFT ┆
0x05020…05040 20 20 20 20 20 20 0d 0a 44 4f 20 20 20 20 20 20 20 09 67 65 74 73 77 69 74 63 68 09 4f 52 20 20 ┆ DO getswitch OR ┆
0x05040…05060 20 20 20 20 20 09 54 48 45 4e 20 20 20 20 20 20 20 20 20 0d 0a 44 4f 57 4e 54 4f 20 20 20 09 47 ┆ THEN DOWNTO G┆
0x05060…05080 4f 54 4f 20 20 20 20 20 09 4f 54 48 45 52 57 49 53 45 09 54 4f 20 20 20 20 20 20 20 20 20 20 20 ┆OTO OTHERWISE TO ┆
0x05080…050a0 0d 0a 45 4c 53 45 20 20 20 20 20 09 49 46 20 20 20 20 20 20 20 09 50 41 43 4b 45 44 20 20 20 09 ┆ ELSE IF PACKED ┆
0x050a0…050c0 54 59 50 45 20 20 20 20 20 20 20 20 20 0d 0a 04 00 2d 4c 00 00 06 00 00 00 00 02 01 41 31 00 00 ┆TYPE -L A1 ┆
0x050c0…050e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 4b 55 ┆ #-7AKU┆
0x050e0…05100 5f 69 73 7d 87 91 ff 04 04 00 2d 4e 00 00 06 00 00 00 00 02 01 41 31 00 00 00 00 00 00 00 00 00 ┆_is}ЄЉ -N A1 ┆
0x05100…05120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 12 1d 2a 36 37 41 4b 55 5f 69 73 7d 87 91 ff ┆ *67AKU_is}ЄЉ ┆
0x05120…05140 04 0a 16 73 63 0d 0a 53 70 65 63 69 61 6c 20 53 79 6d 62 6f 6c 73 0d 0a 54 68 65 20 73 70 65 63 ┆ sc Special Symbols The spec┆
0x05140…05160 69 61 6c 20 73 79 6d 62 6f 6c 73 20 61 72 65 20 73 70 65 63 69 61 6c 20 67 72 61 70 68 69 63 20 ┆ial symbols are special graphic ┆
0x05160…05180 73 79 6d 62 6f 6c 73 20 6f 72 20 73 68 6f 72 74 20 73 65 80 71 75 65 6e 80 63 65 73 20 6f 66 20 ┆symbols or short seђquenђces of ┆
0x05180…051a0 0a 73 75 63 68 20 73 79 6d 62 6f 6c 73 2e 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 70 65 ┆ such symbols. The following spe┆
0x051a0…051c0 63 69 61 6c 20 73 79 6d 62 6f 6c 73 20 61 72 65 20 64 65 66 69 6e 65 64 20 61 73 20 70 61 72 74 ┆cial symbols are defined as part┆
0x051c0…051e0 20 6f 66 20 74 68 65 20 0a 6c 61 6e 67 75 61 67 65 3a 0d 0a 0d 0a 2b 20 20 2d 20 20 2a 20 20 20 ┆ of the language: + - * ┆
0x051e0…05200 3c 20 20 20 20 3e 20 20 3c 3e 20 20 3c 3d 20 20 3e 3d 20 20 28 20 20 20 29 20 20 20 28 2e 20 20 ┆< > <> <= >= ( ) (. ┆
0x05200…05220 2e 29 20 20 28 3a 20 20 3a 29 0d 0a 0d 0a 5e 88 7c 20 20 3d 20 20 3a 3d 20 20 3a 3d 3a 20 20 2e ┆.) (: :) ^ѕ| = := :=: .┆
0x05220…05240 20 20 2c 20 20 20 3b 20 20 20 3a 20 20 20 2e 2e 20 2a 2a 2a 20 20 21 20 20 20 20 3f 20 20 26 20 ┆ , ; : .. *** ! ? & ┆
0x05240…05260 20 20 24 0d 0a 0d 0a 28 2a 20 20 2a 29 20 3c 2a 20 20 2a 3e 20 20 2d 2d 20 20 27 20 20 22 0d 0a ┆ $ (* *) <* *> -- ' " ┆
0x05260…05280 0d 0a 16 73 62 0d 0a 43 6f 6d 6d 65 6e 74 73 0d 0a 43 6f 6d 6d 65 6e 74 73 20 6d 61 79 20 62 65 ┆ sb Comments Comments may be┆
0x05280…052a0 20 69 6e 73 65 72 74 65 64 20 69 6e 20 61 20 73 6f 75 72 63 65 20 70 72 6f 67 72 61 6d 20 69 6e ┆ inserted in a source program in┆
0x052a0…052c0 20 74 68 72 65 65 20 66 6f 72 6d 73 3a 0d 0a 0d 0a 0e 0a 31 2e 20 28 2a 20 63 6f 6d 6d 65 6e 74 ┆ three forms: 1. (* comment┆
0x052c0…052e0 20 2a 29 0d 0a 20 20 20 84 41 6c 6c 20 63 68 61 72 61 63 74 65 72 73 20 62 65 74 77 65 65 6e 20 ┆ *) ёAll characters between ┆
0x052e0…05300 74 68 65 20 64 65 6c 69 6d 69 74 65 72 73 20 28 2a 20 61 6e 64 20 2a 29 20 61 72 65 20 70 61 72 ┆the delimiters (* and *) are par┆
0x05300…05320 74 20 6f 66 20 74 68 65 20 0a 19 83 80 80 63 6f 6d 6d 65 6e 74 2c 20 69 6e 63 6c 75 64 69 6e 67 ┆t of the Ѓђђcomment, including┆
0x05320…05340 20 61 6e 79 20 6e 6f 6e 2d 70 72 69 6e 74 69 6e 67 20 63 68 61 72 61 63 74 65 72 73 2e 0d 0a 0f ┆ any non-printing characters. ┆
0x05340…05360 0a 0d 0a 0e 0a 32 2e 20 3c 2a 20 63 6f 6d 6d 65 6e 74 20 2a 3e 0d 0a 20 20 20 84 41 6c 6c 20 63 ┆ 2. <* comment *> ёAll c┆
0x05360…05380 68 61 72 61 63 74 65 72 73 20 62 65 74 77 65 65 6e 20 74 68 65 20 64 65 6c 69 6d 69 74 65 72 73 ┆haracters between the delimiters┆
0x05380…053a0 20 3c 2a 20 61 6e 64 20 2a 3e 20 61 72 65 20 70 61 72 74 20 6f 66 20 74 68 65 20 0a 19 83 80 80 ┆ <* and *> are part of the Ѓђђ┆
0x053a0…053c0 63 6f 6d 6d 65 6e 74 2c 20 69 6e 63 6c 75 64 69 6e 67 20 61 6e 79 20 6e 6f 6e 2d 70 72 69 6e 74 ┆comment, including any non-print┆
0x053c0…053e0 69 6e 67 20 63 68 61 72 61 63 74 65 72 73 2e 0d 0a 0f 0a 0d 0a 0e 0a 33 2e 20 2d 2d 20 63 6f 6d ┆ing characters. 3. -- com┆
0x053e0…05400 6d 65 6e 74 20 65 6e 64 2d 6f 66 2d 6c 69 6e 65 0d 0a 20 20 20 84 41 6c 6c 20 63 68 61 72 61 63 ┆ment end-of-line ёAll charac┆
0x05400…05420 74 65 72 73 20 66 72 6f 6d 20 74 68 65 20 64 65 6c 69 6d 69 74 65 72 20 2d 2d 20 75 70 20 74 6f ┆ters from the delimiter -- up to┆
0x05420…05440 20 74 68 65 20 66 69 72 73 74 20 6f 63 80 63 75 72 72 65 6e 80 63 65 20 6f 66 20 0a 19 83 80 80 ┆ the first ocђcurrenђce of Ѓђђ┆
0x05440…05460 61 20 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 2c 20 6c 69 6e 65 20 66 65 65 64 2c 20 6f 72 ┆a carriage return, line feed, or┆
0x05460…05480 20 66 6f 72 6d 20 66 65 65 64 20 63 68 61 72 61 63 74 65 72 20 61 72 65 20 70 61 72 74 20 6f 66 ┆ form feed character are part of┆
0x05480…054a0 20 0a 19 83 80 80 74 68 65 20 63 6f 6d 6d 65 6e 74 2e 0d 0a 0f 0a 0d 0a a1 45 78 61 6d 70 6c 65 ┆ Ѓђђthe comment. АExample┆
0x054a0…054c0 73 3a 0d 0a 0d 0a 3c 2a 20 74 68 69 73 20 69 73 20 28 2a 20 2e 2e 2e 20 2a 29 20 6f 6e 65 20 63 ┆s: <* this is (* ... *) one c┆
0x054c0…054e0 6f 6d 6d 65 6e 74 20 2a 3e 0d 0a 0d 0a 28 2a 20 74 68 69 73 20 69 73 20 2d 2d 20 61 6e 6f 74 68 ┆omment *> (* this is -- anoth┆
0x054e0…05500 65 72 0d 0a 20 20 20 63 6f 6d 6d 65 6e 74 20 2a 29 0d 0a 0d 0a 2d 2d 20 61 20 74 68 69 72 64 20 ┆er comment *) -- a third ┆
0x05500…05520 63 6f 6d 6d 65 6e 74 0d 0a 0d 0a 16 73 62 0d 0a 4e 6f 6e 2d 70 72 69 6e 74 69 6e 67 20 43 68 61 ┆comment sb Non-printing Cha┆
0x05520…05540 72 61 63 74 65 72 73 0d 0a 4e 6f 6e 2d 70 72 69 6e 74 69 6e 67 20 63 68 61 72 61 63 74 65 72 73 ┆racters Non-printing characters┆
0x05540…05560 20 77 68 69 63 68 20 61 72 65 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 61 20 63 6f 6d 6d 65 6e 74 ┆ which are not part of a comment┆
0x05560…05580 20 61 72 65 20 73 65 80 0a 70 61 72 61 74 6f 72 73 20 6f 6e 20 74 68 65 69 72 20 6f 77 6e 2e 20 ┆ are seђ parators on their own. ┆
0x05580…055a0 41 6e 79 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 63 6f 6d 70 69 6c 65 72 20 73 68 ┆Any Real-Time Pascal compiler sh┆
0x055a0…055c0 6f 75 6c 64 20 61 6c 6c 6f 77 20 0a 73 70 61 63 65 2c 20 74 61 62 75 6c 61 74 69 6f 6e 2c 20 6c ┆ould allow space, tabulation, l┆
0x055c0…055e0 69 6e 65 20 61 6e 64 20 66 6f 72 6d 20 66 65 65 64 2c 20 61 6e 64 20 63 61 72 80 72 69 61 67 65 ┆ine and form feed, and carђriage┆
0x055e0…05600 20 72 65 74 75 72 6e 20 63 68 61 72 61 63 74 65 72 73 2e 0d 0a 16 73 61 0d 0a 54 59 50 45 53 20 ┆ return characters. sa TYPES ┆
0x05600…05620 41 4e 44 20 4f 42 4a 45 43 54 53 0d 0a 16 73 6f 20 6f 62 6a 65 63 74 0d 0a 16 73 6f 20 74 79 70 ┆AND OBJECTS so object so typ┆
0x05620…05640 65 0d 0a 16 73 6f 20 73 69 7a 65 0d 0a 16 73 6f 20 61 64 64 72 65 73 73 0d 0a 16 73 6f 20 76 61 ┆e so size so address so va┆
0x05640…05660 6c 75 65 0d 0a 41 6e 20 a0 6f 62 6a 65 63 74 e0 20 69 73 20 61 20 64 61 74 61 20 65 6e 74 69 74 ┆lue An аobjectЯ is a data entit┆
0x05660…05680 79 2c 20 6d 61 6e 69 66 65 73 74 20 64 75 72 69 6e 67 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e ┆y, manifest during the execution┆
0x05680…056a0 20 6f 66 20 61 20 70 72 6f 80 0a 67 72 61 6d 20 61 73 20 6f 63 63 75 70 79 69 6e 67 20 73 6f 6d ┆ of a proђ gram as occupying som┆
0x056a0…056c0 65 20 61 6d 6f 75 6e 74 20 6f 66 20 6d 65 6d 6f 72 79 2e 20 57 69 74 68 20 6f 6e 65 20 65 78 80 ┆e amount of memory. With one exђ┆
0x056c0…056e0 80 63 65 70 80 74 69 6f 6e 20 28 69 72 72 65 80 0a 67 75 6c 61 72 20 73 75 62 2d 6f 62 6a 65 63 ┆ђcepђtion (irreђ gular sub-objec┆
0x056e0…05700 74 73 20 6f 66 20 6f 62 6a 65 63 74 73 20 6f 66 20 61 20 64 65 73 63 72 69 70 74 69 76 65 20 74 ┆ts of objects of a descriptive t┆
0x05700…05720 79 70 65 2c 20 63 66 2e 20 73 65 63 74 69 6f 6e 20 33 2e 31 30 29 20 61 6e 20 0a 6f 62 6a 65 63 ┆ype, cf. section 3.10) an objec┆
0x05720…05740 74 20 61 6c 77 61 79 73 20 6f 63 63 75 70 69 65 73 20 61 6e 20 69 6e 80 74 65 80 67 72 61 6c 20 ┆t always occupies an inђteђgral ┆
0x05740…05760 6e 75 6d 62 65 72 20 6f 66 20 73 75 63 63 65 73 73 69 76 65 20 62 79 74 65 73 20 6f 66 20 6d 65 ┆number of successive bytes of me┆
0x05760…05780 80 0a 6d 6f 72 79 2e 20 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 80 74 65 73 20 69 73 20 ┆ђ mory. The number of byђtes is ┆
0x05780…057a0 63 61 6c 6c 65 64 20 74 68 65 20 a0 73 69 7a 65 e0 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 ┆called the аsizeЯ of the object ┆
0x057a0…057c0 61 6e 64 20 74 68 65 20 0a 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 6c 6f 77 65 73 74 20 61 ┆and the address of the lowest a┆
0x057c0…057e0 64 64 72 65 73 73 65 64 20 62 79 74 65 20 69 73 20 63 61 6c 6c 65 64 20 74 68 65 20 a0 61 64 64 ┆ddressed byte is called the аadd┆
0x057e0…05800 72 65 73 73 e0 20 6f 66 20 74 68 65 20 0a 6f 62 6a 65 63 74 2e 20 54 68 65 20 a0 76 61 6c 75 65 ┆ressЯ of the object. The аvalue┆
0x05800…05820 e0 20 6f 66 20 61 6e 20 6f 62 6a 65 63 74 20 69 73 20 61 74 20 61 6e 79 20 67 69 76 65 6e 20 74 ┆Я of an object is at any given t┆
0x05820…05840 69 6d 65 20 72 65 80 70 72 65 73 65 6e 74 65 64 20 62 79 20 0a 74 68 65 20 62 69 74 20 70 61 74 ┆ime reђpresented by the bit pat┆
0x05840…05860 74 65 72 6e 20 70 72 65 73 65 6e 74 20 69 6e 20 74 68 65 20 70 61 72 74 20 6f 66 20 6d 65 6d 6f ┆tern present in the part of memo┆
0x05860…05880 72 79 20 6f 63 63 75 70 69 65 64 20 62 79 20 74 68 65 20 6f 62 6a 65 63 74 2e 20 0a 41 6e 20 6f ┆ry occupied by the object. An o┆
0x05880…058a0 62 6a 65 63 74 20 6d 61 79 20 62 65 20 61 20 64 65 80 63 6c 61 72 65 64 2c 20 61 6e 64 20 74 68 ┆bject may be a deђclared, and th┆
0x058a0…058c0 75 73 20 6e 61 6d 65 64 2c 20 63 6f 6e 73 74 61 6e 74 2c 20 76 61 72 69 61 62 6c 65 2c 20 6f 72 ┆us named, constant, variable, or┆
0x058c0…058e0 20 0a 70 61 72 61 6d 65 74 65 72 2c 20 6f 72 20 69 74 20 6d 61 79 20 62 65 20 61 20 74 65 6d 70 ┆ parameter, or it may be a temp┆
0x058e0…05900 6f 72 61 72 79 20 61 6e 6f 6e 79 6d 6f 75 73 20 6f 62 6a 65 63 74 20 77 68 69 63 68 20 65 78 69 ┆orary anonymous object which exi┆
0x05900…05920 73 74 73 20 0a 6f 6e 6c 79 20 64 75 72 69 6e 67 20 74 68 65 20 65 76 61 6c 75 61 74 69 6f 6e 20 ┆sts only during the evaluation ┆
0x05920…05940 6f 66 20 73 6f 6d 65 20 65 78 70 72 65 73 73 69 6f 6e 20 6f 72 20 74 68 65 20 65 78 65 63 75 74 ┆of some expression or the execut┆
0x05940…05960 69 6f 6e 20 6f 66 20 0a 63 65 72 74 61 69 6e 20 6b 69 6e 64 73 20 6f 66 20 73 74 61 74 65 80 6d ┆ion of certain kinds of stateђm┆
0x05960…05980 65 6e 74 73 2e 0d 0a 0d 0a 45 76 65 72 79 20 6f 62 6a 65 63 74 20 68 61 73 20 61 20 a0 74 79 70 ┆ents. Every object has a аtyp┆
0x05980…059a0 65 e0 2e 20 41 20 74 79 70 65 20 63 6f 6d 70 72 69 73 65 73 20 61 20 73 65 74 20 6f 66 20 76 61 ┆eЯ. A type comprises a set of va┆
0x059a0…059c0 6c 75 65 73 20 77 68 69 63 68 20 6d 61 79 20 0a 62 65 20 61 73 73 75 6d 65 64 20 62 79 20 6f 62 ┆lues which may be assumed by ob┆
0x059c0…059e0 6a 65 63 74 73 20 6f 66 20 74 68 65 20 74 79 70 65 2e 20 41 20 6e 75 6d 62 65 72 20 6f 66 20 70 ┆jects of the type. A number of p┆
0x059e0…05a00 72 65 64 65 66 69 6e 65 64 20 74 79 70 65 73 20 65 78 80 0a 69 73 74 20 61 73 20 70 61 72 74 20 ┆redefined types exђ ist as part ┆
0x05a00…05a20 6f 66 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 61 6e 64 20 61 64 64 69 80 74 69 6f 80 6e 61 6c ┆of the language and addiђtioђnal┆
0x05a20…05a40 20 74 79 70 65 73 20 6d 61 79 20 62 65 20 64 65 66 69 6e 65 64 20 69 6e 20 0a 74 79 70 65 20 64 ┆ types may be defined in type d┆
0x05a40…05a60 65 63 6c 61 72 61 74 69 6f 6e 73 2e 20 49 6e 20 70 61 72 74 69 80 63 75 6c 61 72 20 69 74 20 69 ┆eclarations. In partiђcular it i┆
0x05a60…05a80 73 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 64 65 66 69 80 6e 65 20 73 74 72 75 63 74 75 72 65 64 ┆s possible to defiђne structured┆
0x05a80…05aa0 20 74 79 80 0a 70 65 73 2e 20 4f 62 6a 65 63 74 73 20 6f 66 20 73 74 72 75 63 80 74 75 72 65 64 ┆ tyђ pes. Objects of strucђtured┆
0x05aa0…05ac0 20 74 79 70 65 73 20 61 72 65 20 63 6f 6d 70 6f 73 65 64 20 6f 66 20 a0 73 75 62 2d 6f 62 6a 65 ┆ types are composed of аsub-obje┆
0x05ac0…05ae0 63 74 73 e0 20 6f 66 20 6f 74 68 65 72 20 0a 28 73 69 6d 70 6c 65 72 29 20 74 79 70 65 73 2e 20 ┆ctsЯ of other (simpler) types. ┆
0x05ae0…05b00 41 6c 6c 20 6f 62 6a 65 63 74 73 20 6f 66 20 61 20 74 79 70 65 20 68 61 76 65 20 74 68 65 20 73 ┆All objects of a type have the s┆
0x05b00…05b20 61 6d 65 20 73 69 7a 65 2c 20 63 61 6c 6c 65 64 20 74 68 65 20 0a 73 69 7a 65 20 6f 66 20 74 68 ┆ame size, called the size of th┆
0x05b20…05b40 65 20 74 79 70 65 2e 0d 0a 0d 0a 41 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 61 20 74 79 70 ┆e type. Associated with a typ┆
0x05b40…05b60 65 20 69 73 20 61 20 73 65 74 20 6f 66 20 a0 6f 70 65 72 61 74 69 6f 6e 73 e0 20 61 70 70 6c 69 ┆e is a set of аoperationsЯ appli┆
0x05b60…05b80 63 61 62 6c 65 20 74 6f 20 76 61 6c 80 75 65 73 20 6f 66 20 0a 74 68 65 20 74 79 70 65 2e 20 49 ┆cable to valђues of the type. I┆
0x05b80…05ba0 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 61 20 73 74 72 75 63 74 75 72 65 64 20 74 79 70 65 20 ┆n the case of a structured type ┆
0x05ba0…05bc0 73 6f 6d 65 20 6f 66 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 0a 70 72 6f 76 69 64 65 20 ┆some of the operations provide ┆
0x05bc0…05be0 61 63 63 65 73 73 20 74 6f 20 74 68 65 20 73 75 62 2d 6f 62 6a 65 63 74 73 20 6f 66 20 6f 62 6a ┆access to the sub-objects of obj┆
0x05be0…05c00 65 63 74 73 20 6f 66 20 74 68 65 20 74 79 70 65 2e 0d 0a 0d 0a 41 6e 20 69 6d 70 6f 72 74 61 6e ┆ects of the type. An importan┆
0x05c00…05c20 74 20 72 65 6c 61 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 74 79 70 65 73 20 69 73 20 a0 63 6f 6d ┆t relation between types is аcom┆
0x05c20…05c40 70 61 74 69 62 69 6c 69 74 79 e0 20 77 68 69 63 68 20 70 6c 61 79 73 20 61 20 0a 6b 65 79 20 72 ┆patibilityЯ which plays a key r┆
0x05c40…05c60 6f 6c 65 20 69 6e 20 64 65 74 65 72 6d 69 6e 69 6e 67 20 77 68 65 6e 20 74 68 65 20 61 73 73 69 ┆ole in determining when the assi┆
0x05c60…05c80 67 6e 6d 65 6e 74 2c 20 65 78 70 6c 69 80 63 69 74 20 6f 72 20 62 79 20 70 61 72 61 6d 65 74 65 ┆gnment, expliђcit or by paramete┆
0x05c80…05ca0 72 20 0a 70 61 73 73 69 6e 67 2c 20 6f 66 20 61 20 76 61 6c 75 65 20 74 6f 20 61 6e 20 6f 62 6a ┆r passing, of a value to an obj┆
0x05ca0…05cc0 65 63 74 20 6f 66 20 73 6f 6d 65 20 74 79 70 65 20 69 73 20 6c 65 80 67 61 6c 2e 0d 0a 0d 0a 54 ┆ect of some type is leђgal. T┆
0x05cc0…05ce0 68 65 20 73 74 72 75 63 74 75 72 61 6c 20 61 73 70 65 63 74 73 20 6f 66 20 61 20 74 79 70 65 20 ┆he structural aspects of a type ┆
0x05ce0…05d00 61 72 65 20 61 6c 77 61 79 73 20 6f 62 74 61 69 6e 61 62 6c 65 20 66 72 6f 6d 20 28 74 68 65 20 ┆are always obtainable from (the ┆
0x05d00…05d20 74 65 78 74 20 0a 6f 66 29 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 2e 20 48 6f 77 65 76 65 ┆text of) the definition. Howeve┆
0x05d20…05d40 72 2c 20 74 68 65 20 73 69 7a 65 20 6f 66 20 61 20 74 79 70 65 20 6d 61 79 20 62 65 20 67 69 80 ┆r, the size of a type may be giђ┆
0x05d40…05d60 76 65 6e 20 62 79 20 0a 65 78 70 72 65 73 73 69 6f 6e 73 20 77 68 69 63 68 20 69 6e 20 67 65 6e ┆ven by expressions which in gen┆
0x05d60…05d80 65 72 61 6c 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 65 76 61 6c 75 61 74 65 64 20 61 74 20 72 75 ┆eral can only be evaluated at ru┆
0x05d80…05da0 6e 2d 74 69 6d 65 2e 20 41 20 74 79 80 0a 70 65 20 69 73 20 73 61 69 64 20 74 6f 20 62 65 20 a0 ┆n-time. A tyђ pe is said to be а┆
0x05da0…05dc0 bf dc d8 65 73 74 61 62 6c 69 73 68 65 64 be e0 20 77 68 65 6e 20 61 6c 6c 20 65 78 70 72 65 73 ┆┐▄пestablishedЙЯ when all expres┆
0x05dc0…05de0 73 69 6f 6e 73 20 69 6e 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 61 72 65 20 0a 65 76 61 ┆sions in the definition are eva┆
0x05de0…05e00 6c 75 61 74 65 64 20 61 6e 64 20 74 68 65 20 61 63 80 74 75 61 6c 20 6c 61 79 6f 75 74 20 6f 66 ┆luated and the acђtual layout of┆
0x05e00…05e20 20 6f 62 6a 65 63 74 73 20 6f 66 20 74 68 65 20 74 79 70 65 20 61 6e 64 20 74 68 75 73 20 61 6c ┆ objects of the type and thus al┆
0x05e20…05e40 73 6f 20 0a 74 68 65 20 72 65 80 70 72 65 80 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 76 61 6c 75 ┆so the reђpreђsentation of valu┆
0x05e40…05e60 65 73 20 6f 66 20 74 68 65 20 74 79 70 65 2c 20 61 72 65 20 64 65 74 65 72 6d 69 6e 65 64 2e 20 ┆es of the type, are determined. ┆
0x05e60…05e80 41 20 74 79 70 65 20 69 6e 20 0a 77 68 6f 73 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 61 6c 6c 20 ┆A type in whose definition all ┆
0x05e80…05ea0 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 63 6f 6e 73 74 61 6e 74 20 65 78 70 72 65 73 73 ┆expressions are constant express┆
0x05ea0…05ec0 69 6f 6e 73 20 61 6e 64 20 77 68 69 63 68 20 0a 63 61 6e 20 74 68 65 72 65 66 6f 72 65 20 62 65 ┆ions and which can therefore be┆
0x05ec0…05ee0 20 65 73 74 61 62 6c 69 73 68 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 69 73 ┆ established at compile-time, is┆
0x05ee0…05f00 20 63 61 6c 6c 65 64 20 61 20 a0 bf dc d8 73 74 61 74 69 63 be e0 20 74 79 70 65 2e 0d 0a 0d 0a ┆ called a а┐▄пstaticЙЯ type. ┆
0x05f00…05f20 41 6c 6c 20 74 79 70 65 73 2c 20 77 68 65 74 68 65 72 20 65 78 70 6c 69 63 69 74 6c 79 20 73 70 ┆All types, whether explicitly sp┆
0x05f20…05f40 65 63 69 66 69 65 64 20 6f 72 20 69 6d 70 6c 69 63 69 74 6c 79 20 67 69 76 65 6e 20 62 79 20 74 ┆ecified or implicitly given by t┆
0x05f40…05f60 68 65 20 63 6f 6e 80 0a 74 65 78 74 2c 20 61 72 65 20 a0 63 6c 61 73 73 69 66 69 65 64 e0 20 61 ┆he conђ text, are аclassifiedЯ a┆
0x05f60…05f80 73 3a 0d 0a 0d 0a 2d 20 6f 72 64 69 6e 61 6c 20 74 79 70 65 73 2c 0d 0a 2d 20 73 65 74 20 74 79 ┆s: - ordinal types, - set ty┆
0x05f80…05fa0 70 65 73 2c 0d 0a 2d 20 70 6f 69 6e 74 65 72 20 74 79 70 65 73 2c 0d 0a 2d 20 73 68 69 65 6c 64 ┆pes, - pointer types, - shield┆
0x05fa0…05fc0 65 64 20 74 79 70 65 73 2c 20 6f 72 0d 0a 2d 20 73 74 72 75 63 74 75 72 65 64 20 74 79 70 65 73 ┆ed types, or - structured types┆
0x05fc0…05fe0 2e 0d 0a 0d 0a 45 61 63 68 20 63 6c 61 73 73 20 6f 66 20 74 79 70 65 73 20 69 73 20 64 65 73 63 ┆. Each class of types is desc┆
0x05fe0…06000 72 69 62 65 64 20 69 6e 20 61 20 73 65 70 61 72 61 74 65 20 73 65 63 74 69 6f 6e 20 6f 66 20 74 ┆ribed in a separate section of t┆
0x06000…06020 68 69 73 20 63 68 61 70 74 65 72 2e 0d 0a 0d 0a 54 68 65 20 6c 61 6e 67 75 61 67 65 20 69 6e 63 ┆his chapter. The language inc┆
0x06020…06040 6c 75 64 65 73 20 6e 6f 20 a0 72 65 61 6c e0 20 6e 75 6d 62 65 72 20 74 79 70 65 73 2e 20 49 74 ┆ludes no аrealЯ number types. It┆
0x06040…06060 20 69 73 20 61 20 73 69 6d 70 6c 65 20 6d 61 74 80 74 65 72 20 74 6f 20 0a 65 78 74 65 6e 64 20 ┆ is a simple matђter to extend ┆
0x06060…06080 74 68 65 20 6c 61 6e 67 75 61 67 65 20 6f 72 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f ┆the language or an implementatio┆
0x06080…060a0 6e 20 77 69 74 68 20 61 20 63 6c 61 73 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 6f 6e 65 20 0a 6f ┆n with a class containing one o┆
0x060a0…060c0 72 20 6d 6f 72 65 20 72 65 61 6c 20 74 79 70 65 73 2e 0d 0a 0d 0a 50 6f 69 6e 74 65 72 20 74 79 ┆r more real types. Pointer ty┆
0x060c0…060e0 70 65 73 20 61 6e 64 20 73 68 69 65 6c 64 65 64 20 74 79 70 65 73 20 61 72 65 20 63 61 6c 6c 65 ┆pes and shielded types are calle┆
0x060e0…06100 64 20 a0 bf dc d8 70 72 6f 74 65 63 74 65 64 be e0 20 74 79 70 65 73 2e 20 54 68 65 20 73 61 6d ┆d а┐▄пprotectedЙЯ types. The sam┆
0x06100…06120 65 20 0a 69 73 20 74 72 75 65 20 6f 66 20 63 65 72 74 61 69 6e 20 73 74 72 75 63 74 75 72 65 64 ┆e is true of certain structured┆
0x06120…06140 20 74 79 70 65 73 2c 20 63 66 2e 20 73 65 63 74 69 6f 6e 20 33 2e 38 2e 20 50 72 6f 74 65 63 80 ┆ types, cf. section 3.8. Protecђ┆
0x06140…06160 74 65 64 20 74 79 70 65 73 20 0a 63 61 6e 6e 6f 74 20 62 65 20 75 73 65 64 20 69 6e 20 63 6f 6e ┆ted types cannot be used in con┆
0x06160…06180 6a 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 72 65 80 74 79 70 69 6e 67 20 28 74 79 70 65 20 63 6f ┆junction with reђtyping (type co┆
0x06180…061a0 6e 76 65 72 73 69 6f 6e 29 20 69 6e 20 a0 77 69 74 68 e0 20 0a 6f 72 20 a0 6c 6f 63 6b e0 20 73 ┆nversion) in аwithЯ or аlockЯ s┆
0x061a0…061c0 74 61 74 65 6d 65 6e 74 73 2e 0d 0a 16 73 62 0d 0a 53 70 65 63 69 66 69 63 61 74 69 6f 6e 20 6f ┆tatements. sb Specification o┆
0x061c0…061e0 66 20 54 79 70 65 73 0d 0a 54 79 70 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 2c 20 77 68 ┆f Types Type specifications, wh┆
0x061e0…06200 69 63 68 20 69 6e 63 6c 75 64 65 20 74 79 70 65 20 64 65 66 69 6e 69 74 69 6f 6e 73 2c 20 61 72 ┆ich include type definitions, ar┆
0x06200…06220 65 20 75 73 65 64 20 69 6e 20 74 79 70 65 20 0a 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c 20 69 6e ┆e used in type declarations, in┆
0x06220…06240 20 6f 62 6a 65 63 74 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c 20 69 6e 20 77 69 74 68 20 61 6e ┆ object declarations, in with an┆
0x06240…06260 64 20 6c 6f 63 6b 20 73 74 61 74 65 80 6d 65 6e 74 73 2c 20 61 6e 64 20 0a 69 6e 20 74 68 65 20 ┆d lock stateђments, and in the ┆
0x06260…06280 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 20 6c 69 73 74 73 20 6f 66 20 72 6f 75 74 69 6e ┆formal parameter lists of routin┆
0x06280…062a0 65 20 61 6e 64 20 70 72 6f 67 72 61 6d 20 68 65 61 64 69 6e 67 73 20 61 6e 64 20 6f 66 20 0a 64 ┆e and program headings and of d┆
0x062a0…062c0 65 63 6c 61 72 61 74 69 6f 6e 73 20 6f 66 20 70 61 72 61 80 6d 65 80 74 65 72 69 7a 65 64 20 74 ┆eclarations of paraђmeђterized t┆
0x062c0…062e0 79 70 65 73 2e 20 54 68 65 20 66 6f 72 6d 20 6f 66 20 74 79 70 65 20 73 70 65 63 69 66 69 63 61 ┆ypes. The form of type specifica┆
0x062e0…06300 74 69 6f 6e 20 69 73 20 0a 63 61 6c 6c 65 64 20 61 20 bf dc d8 63 6f 6d 6d 6f 6e 20 74 79 70 65 ┆tion is called a ┐▄пcommon type┆
0x06300…06320 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e be 2e 20 54 68 69 73 20 66 6f 72 6d 20 63 6f 76 65 72 ┆ specificationЙ. This form cover┆
0x06320…06340 73 20 61 6c 6c 20 74 79 70 65 73 20 77 69 74 68 20 0a 6e 6f 20 75 6e 62 6f 75 6e 64 20 70 61 72 ┆s all types with no unbound par┆
0x06340…06360 61 6d 65 74 65 72 73 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 32 34 0d 0a 41 6e 20 61 75 67 6d 65 ┆ameters. ma syndia24 An augme┆
0x06360…06380 6e 74 65 64 20 66 6f 72 6d 20 6f 66 20 74 79 70 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 ┆nted form of type specification ┆
0x06380…063a0 69 73 20 75 73 65 64 20 69 6e 20 66 6f 72 6d 61 6c 20 70 61 72 61 80 6d 65 74 65 72 20 0a 6c 69 ┆is used in formal paraђmeter li┆
0x063a0…063c0 73 74 73 20 6f 66 20 72 6f 75 74 69 6e 65 73 20 61 6e 64 20 70 72 6f 67 72 61 6d 73 20 77 68 65 ┆sts of routines and programs whe┆
0x063c0…063e0 72 65 20 75 6e 62 6f 75 6e 64 20 bf dc d8 70 61 72 61 80 6d 65 74 65 72 69 80 7a 65 64 20 74 79 ┆re unbound ┐▄пparaђmeteriђzed ty┆
0x063e0…06400 70 65 73 be 20 61 72 65 20 0a 61 6c 6c 6f 77 65 64 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 30 39 ┆pesЙ are allowed. ma syndia09┆
0x06400…06420 0d 0a 41 20 74 79 70 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 69 73 20 74 68 65 20 75 6c 74 69 6d ┆ A type definition is the ultim┆
0x06420…06440 61 74 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 61 6e 79 20 74 79 70 65 20 77 68 69 63 68 ┆ate definition of any type which┆
0x06440…06460 20 69 73 20 6e 6f 74 20 0a 70 72 65 64 65 66 69 6e 65 64 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 ┆ is not predefined. ma syndia┆
0x06460…06480 31 39 0d 0a 54 68 65 20 66 6f 72 6d 20 27 64 65 66 69 6e 65 64 20 74 79 70 65 27 20 6d 61 79 20 ┆19 The form 'defined type' may ┆
0x06480…064a0 62 65 20 75 73 65 64 20 69 6e 20 74 68 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 ┆be used in the specification of ┆
0x064a0…064c0 61 20 74 79 70 65 20 0a 61 73 20 65 69 74 68 65 72 20 70 72 65 64 65 66 69 6e 65 64 20 6f 72 20 ┆a type as either predefined or ┆
0x064c0…064e0 64 65 66 69 6e 65 64 2c 20 62 6f 75 6e 64 2c 20 61 6e 64 20 6e 61 6d 65 64 2e 0d 0a 16 6d 61 20 ┆defined, bound, and named. ma ┆
0x064e0…06500 73 79 6e 64 69 61 32 35 0d 0a 54 68 65 20 6d 69 73 73 69 6e 67 20 64 65 74 61 69 6c 73 20 69 6e ┆syndia25 The missing details in┆
0x06500…06520 20 74 68 65 20 61 62 6f 76 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 61 72 65 20 67 69 76 65 6e ┆ the above description are given┆
0x06520…06540 20 69 6e 20 74 68 65 20 66 6f 6c 80 6c 6f 77 69 6e 67 20 0a 73 65 63 74 69 6f 6e 73 3a 0d 0a 0d ┆ in the folђlowing sections: ┆
0x06540…06560 0a a1 73 79 6e 74 61 63 74 69 63 20 63 61 74 65 67 6f 72 79 20 20 20 20 20 20 20 20 20 20 20 20 ┆ Аsyntactic category ┆
0x06560…06580 73 65 63 74 69 6f 6e 20 6e 75 6d 62 65 72 0d 0a 62 6f 75 6e 64 2d 74 79 70 65 5f 6e 61 6d 65 09 ┆section number bound-type_name ┆
0x06580…065a0 09 33 2e 32 0d 0a 70 61 72 61 6d 65 74 65 72 69 7a 65 64 2d 74 79 70 65 5f 6e 61 6d 65 09 09 33 ┆ 3.2 parameterized-type_name 3┆
0x065a0…065c0 2e 32 0d 0a 70 61 72 61 6d 65 74 65 72 69 7a 65 64 2d 74 79 70 65 20 62 69 6e 64 69 6e 67 09 33 ┆.2 parameterized-type binding 3┆
0x065c0…065e0 2e 33 0d 0a 6f 72 64 69 6e 61 6c 2d 74 79 70 65 20 64 65 66 69 6e 69 74 69 6f 6e 09 20 20 20 09 ┆.3 ordinal-type definition ┆
0x065e0…06600 33 2e 34 0d 0a 70 72 65 64 69 66 69 6e 65 64 20 6f 72 64 69 6e 61 6c 20 74 79 70 65 20 09 33 2e ┆3.4 predifined ordinal type 3.┆
0x06600…06620 34 0d 0a 73 65 74 2d 74 79 70 65 20 64 65 66 69 6e 69 74 69 6f 6e 09 09 33 2e 35 0d 0a 70 6f 69 ┆4 set-type definition 3.5 poi┆
0x06620…06640 6e 74 65 72 2d 74 79 70 65 20 64 65 66 69 6e 69 74 69 6f 6e 09 09 33 2e 36 0d 0a 73 68 69 65 6c ┆nter-type definition 3.6 shiel┆
0x06640…06660 64 65 64 20 74 79 70 65 09 09 09 33 2e 37 0d 0a 73 74 72 75 63 74 75 72 65 64 2d 74 79 70 65 20 ┆ded type 3.7 structured-type ┆
0x06660…06680 64 65 66 69 6e 69 74 69 6f 6e 09 33 2e 38 0d 0a 0d 0a 0e 0a a1 4e 6f 74 65 3a 0d 0a 4f 66 20 74 ┆definition 3.8 АNote: Of t┆
0x06680…066a0 68 65 20 66 69 76 65 20 63 6c 61 73 73 65 73 20 6f 66 20 74 79 70 65 73 20 73 68 69 65 6c 64 65 ┆he five classes of types shielde┆
0x066a0…066c0 64 20 74 79 70 65 73 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 70 72 65 80 64 65 66 69 80 6e 65 64 ┆d types can only be preђdefiђned┆
0x066c0…066e0 2e 0d 0a 0f 0a 16 73 62 0d 0a 44 65 63 6c 61 72 61 74 69 6f 6e 20 6f 66 20 54 79 70 65 73 0d 0a ┆. sb Declaration of Types ┆
0x066e0…06700 54 79 70 65 73 20 6d 61 79 20 62 65 20 6e 61 6d 65 64 20 61 6e 64 20 64 65 66 69 6e 65 64 20 69 ┆Types may be named and defined i┆
0x06700…06720 6e 20 bf dc d8 74 79 70 65 20 64 65 63 6c 61 72 61 74 69 6f 6e e0 73 3a 0d 0a 0d 0a 16 6d 61 20 ┆n ┐▄пtype declarationЯs: ma ┆
0x06720…06740 73 79 6e 64 69 61 31 36 0d 0a 16 6d 61 20 73 79 6e 64 69 61 31 37 0d 0a 16 6d 61 20 70 61 72 61 ┆syndia16 ma syndia17 ma para┆
0x06740…06760 6d 74 79 70 0d 0a 16 6d 61 20 73 79 6e 64 69 61 33 31 0d 0a 54 68 65 20 72 75 6c 65 73 20 66 6f ┆mtyp ma syndia31 The rules fo┆
0x06760…06780 72 20 64 65 66 69 6e 69 6e 67 20 74 79 70 65 73 20 61 6c 6c 6f 77 20 73 65 76 65 72 61 6c 20 74 ┆r defining types allow several t┆
0x06780…067a0 79 70 65 73 20 6f 66 20 75 73 65 20 6f 66 20 28 66 6f 72 80 77 61 72 64 2c 20 0a 62 6f 75 6e 64 ┆ypes of use of (forђward, bound┆
0x067a0…067c0 2c 20 6f 72 20 70 61 72 61 6d 65 74 65 72 69 7a 65 64 29 20 74 79 70 65 20 6e 61 6d 65 73 20 69 ┆, or parameterized) type names i┆
0x067c0…067e0 6e 20 27 64 65 66 69 6e 69 6e 67 20 74 79 70 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 27 ┆n 'defining type specifications'┆
0x067e0…06800 2e 20 0a 48 6f 77 65 76 65 72 2c 20 6e 6f 20 74 79 70 65 20 6e 61 6d 65 20 6d 61 79 20 62 65 20 ┆. However, no type name may be ┆
0x06800…06820 75 73 65 64 20 6f 6e 20 74 68 65 20 72 69 67 68 74 20 68 61 6e 64 20 73 69 64 65 20 6f 66 20 61 ┆used on the right hand side of a┆
0x06820…06840 20 27 73 69 6e 80 0a 67 6c 65 20 74 79 70 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 27 20 75 6e 74 ┆ 'sinђ gle type declaration' unt┆
0x06840…06860 69 6c 20 69 74 20 68 61 73 20 62 65 65 6e 20 69 6e 74 72 6f 80 64 75 63 65 64 20 69 6e 20 61 20 ┆il it has been introђduced in a ┆
0x06860…06880 70 72 65 63 65 64 69 6e 67 20 0a 64 65 63 6c 61 72 61 74 69 6f 6e 2e 20 49 6e 20 70 61 72 74 69 ┆preceding declaration. In parti┆
0x06880…068a0 80 63 75 80 6c 61 72 20 6e 6f 20 74 79 70 65 20 6e 61 6d 65 20 6d 61 79 20 62 65 20 75 73 65 64 ┆ђcuђlar no type name may be used┆
0x068a0…068c0 20 69 6e 20 69 74 73 20 6f 77 6e 20 27 64 65 66 69 80 0a 6e 69 6e 67 20 74 79 70 65 20 73 70 65 ┆ in its own 'defiђ ning type spe┆
0x068c0…068e0 80 63 69 66 69 63 61 74 69 6f 6e 27 2e 20 41 6e 20 65 78 63 65 70 80 74 69 6f 6e 20 74 6f 20 74 ┆ђcification'. An excepђtion to t┆
0x068e0…06900 68 69 73 20 72 75 6c 65 20 69 73 20 70 6f 69 6e 74 65 72 20 74 79 70 65 73 20 74 6f 20 0a 74 68 ┆his rule is pointer types to th┆
0x06900…06920 65 20 74 79 70 65 20 69 74 73 65 6c 66 2e 0d 0a 0d 0a 41 20 27 bf dc d8 66 6f 72 77 61 72 64 2d ┆e type itself. A '┐▄пforward-┆
0x06920…06940 74 79 70 65 5f 6e 61 6d 65 be 27 20 6d 61 79 20 6f 6e 6c 79 20 62 65 20 75 73 65 64 20 69 6e 20 ┆type_nameЙ' may only be used in ┆
0x06940…06960 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 70 6f 69 6e 74 65 72 20 0a 74 79 70 65 73 ┆the definition of pointer types┆
0x06960…06980 20 61 6e 64 20 66 6f 72 20 65 76 65 72 79 20 27 66 6f 72 77 61 72 64 20 74 79 70 65 5f 6e 61 6d ┆ and for every 'forward type_nam┆
0x06980…069a0 65 27 20 6f 63 63 75 72 72 69 6e 67 20 69 6e 20 61 20 27 74 79 70 65 20 0a 64 65 63 6c 61 72 61 ┆e' occurring in a 'type declara┆
0x069a0…069c0 74 69 6f 6e 27 2c 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 20 6d 75 73 74 20 62 65 20 67 69 76 ┆tion', the same name must be giv┆
0x069c0…069e0 65 6e 20 61 20 64 65 66 69 6e 69 80 74 69 6f 6e 20 28 62 6f 75 6e 64 20 6f 72 20 0a 70 61 72 61 ┆en a definiђtion (bound or para┆
0x069e0…06a00 6d 65 74 65 72 69 7a 65 64 29 20 6c 61 74 65 72 20 77 69 74 68 69 6e 20 74 68 65 20 64 65 63 6c ┆meterized) later within the decl┆
0x06a00…06a20 61 72 61 74 69 6f 6e 20 70 61 72 74 20 6f 66 20 74 68 65 20 73 61 6d 65 20 62 6c 6f 63 6b 2e 0d ┆aration part of the same block. ┆
0x06a20…06a40 0a 0d 0a 54 68 65 73 65 20 72 75 6c 65 73 20 65 78 63 6c 75 64 65 20 72 65 63 75 72 73 69 6f 6e ┆ These rules exclude recursion┆
0x06a40…06a60 20 69 6e 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 73 74 72 75 63 80 74 75 80 72 ┆ in the definition of strucђtuђr┆
0x06a60…06a80 65 64 20 74 79 80 70 65 73 2c 20 0a 62 75 74 20 61 6c 6c 6f 77 20 6f 62 6a 65 63 74 73 20 6f 66 ┆ed tyђpes, but allow objects of┆
0x06a80…06aa0 20 61 20 73 74 72 75 63 74 75 72 65 64 20 74 79 70 65 20 74 6f 20 63 6f 6e 80 74 61 69 6e 20 70 ┆ a structured type to conђtain p┆
0x06aa0…06ac0 6f 69 6e 74 65 72 73 20 74 6f 20 6f 62 6a 65 63 74 73 20 0a 6f 66 20 74 68 65 20 73 61 6d 65 20 ┆ointers to objects of the same ┆
0x06ac0…06ae0 74 79 70 65 20 61 6e 64 20 61 6c 73 6f 20 61 6c 6c 6f 77 20 6d 75 74 75 61 6c 20 70 6f 69 6e 74 ┆type and also allow mutual point┆
0x06ae0…06b00 65 72 73 20 62 65 80 74 77 65 65 6e 20 73 65 76 65 72 61 6c 20 0a 73 74 72 75 63 74 75 72 65 64 ┆ers beђtween several structured┆
0x06b00…06b20 20 74 79 70 65 73 2e 0d 0a 0d 0a 41 20 73 69 6e 67 6c 65 20 74 79 70 65 20 64 65 63 6c 61 72 61 ┆ types. A single type declara┆
0x06b20…06b40 74 69 6f 6e 20 77 69 74 68 6f 75 74 20 70 61 72 61 6d 65 74 65 72 73 20 61 73 73 6f 63 69 61 74 ┆tion without parameters associat┆
0x06b40…06b60 65 73 20 74 68 65 20 27 bf dc d8 62 6f 75 6e 64 2d 74 79 80 0a 70 65 5f 6e 61 6d 65 be 27 20 77 ┆es the '┐▄пbound-tyђ pe_nameЙ' w┆
0x06b60…06b80 69 74 68 20 74 68 65 20 74 79 70 65 20 73 70 65 63 69 66 69 65 64 20 6f 6e 20 74 68 65 20 72 69 ┆ith the type specified on the ri┆
0x06b80…06ba0 67 68 74 20 68 61 6e 64 20 73 69 80 64 65 2c 20 63 61 6c 6c 65 64 20 74 68 65 20 0a a0 bf dc d8 ┆ght hand siђde, called the а┐▄п┆
0x06ba0…06bc0 64 65 66 69 6e 69 6e 67 20 74 79 70 65 be e0 2e 20 54 68 61 74 20 69 73 2c 20 77 68 65 6e 20 74 ┆defining typeЙЯ. That is, when t┆
0x06bc0…06be0 68 65 20 27 62 6f 75 6e 64 2d 74 79 80 70 65 5f 6e 61 80 6d 65 27 20 69 73 20 69 74 73 65 6c 66 ┆he 'bound-tyђpe_naђme' is itself┆
0x06be0…06c00 20 75 73 65 64 20 61 73 20 61 20 0a 74 79 70 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2c 20 ┆ used as a type specification, ┆
0x06c00…06c20 65 2e 67 2e 20 69 6e 20 74 68 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 6f 66 20 61 6e 20 6f 62 ┆e.g. in the declaration of an ob┆
0x06c20…06c40 6a 65 63 74 2c 20 74 68 65 20 74 79 70 65 20 74 68 75 73 20 0a 73 70 65 63 69 66 69 65 64 20 69 ┆ject, the type thus specified i┆
0x06c40…06c60 6e 68 65 72 69 74 73 20 74 68 65 20 76 61 6c 75 65 20 73 65 74 2c 20 74 68 65 20 72 65 70 72 65 ┆nherits the value set, the repre┆
0x06c60…06c80 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 76 61 6c 75 65 73 2c 20 74 68 65 20 0a 6f 62 6a 65 63 74 ┆sentation of values, the object┆
0x06c80…06ca0 20 6c 61 79 80 6f 75 74 2c 20 74 68 65 20 61 70 70 6c 69 63 61 62 6c 65 20 6f 70 65 72 61 80 74 ┆ layђout, the applicable operaђt┆
0x06ca0…06cc0 69 6f 6e 73 20 61 6e 64 20 74 68 65 20 63 6c 61 73 73 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 ┆ions and the classification of t┆
0x06cc0…06ce0 68 65 20 0a 64 65 66 69 6e 69 6e 67 20 74 79 70 65 2e 20 48 6f 77 65 76 65 72 2c 20 74 68 65 20 ┆he defining type. However, the ┆
0x06ce0…06d00 74 79 70 65 20 73 70 65 63 69 66 69 65 64 20 62 79 20 74 68 65 20 27 62 6f 75 6e 64 2d 74 79 80 ┆type specified by the 'bound-tyђ┆
0x06d00…06d20 70 65 5f 6e 61 6d 65 27 20 0a 69 73 20 a0 6e 6f 74 e0 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 ┆pe_name' is аnotЯ compatible wi┆
0x06d20…06d40 74 68 20 74 68 65 20 64 65 66 69 6e 69 6e 67 20 74 79 70 65 2e 20 41 6e 20 65 78 63 65 70 80 74 ┆th the defining type. An excepђt┆
0x06d40…06d60 69 6f 6e 20 74 6f 20 74 68 65 20 6c 61 74 74 65 72 20 0a 72 75 6c 65 20 6f 63 63 75 72 73 20 77 ┆ion to the latter rule occurs w┆
0x06d60…06d80 68 65 6e 20 74 68 65 20 64 65 66 69 6e 69 6e 67 20 74 79 70 65 20 69 73 20 61 20 73 65 74 20 74 ┆hen the defining type is a set t┆
0x06d80…06da0 79 70 65 20 28 63 66 2e 20 33 2e 39 29 2e 20 54 68 65 20 64 65 66 69 80 0a 6e 69 6e 67 20 74 79 ┆ype (cf. 3.9). The defiђ ning ty┆
0x06da0…06dc0 70 65 20 69 73 20 65 73 74 61 62 6c 69 73 68 65 64 20 77 68 65 6e 20 74 68 65 20 74 79 70 65 20 ┆pe is established when the type ┆
0x06dc0…06de0 64 65 63 6c 61 72 61 74 69 6f 6e 20 69 73 20 65 6c 61 62 6f 72 61 74 65 64 20 28 63 66 2e 20 0a ┆declaration is elaborated (cf. ┆
0x06de0…06e00 63 68 61 70 74 65 72 20 36 29 2e 0d 0a 0d 0a 41 20 70 61 72 61 6d 65 74 65 72 69 7a 65 64 20 27 ┆chapter 6). A parameterized '┆
0x06e00…06e20 73 69 6e 67 6c 65 20 74 79 70 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 27 20 69 6e 74 72 6f 64 75 ┆single type declaration' introdu┆
0x06e20…06e40 63 65 73 20 74 68 65 20 27 bf dc d8 70 61 72 61 80 6d 65 74 65 72 69 80 0a 7a 65 64 2d 74 79 70 ┆ces the '┐▄пparaђmeteriђ zed-typ┆
0x06e40…06e60 65 5f 6e 61 6d 65 be 27 20 61 73 20 64 65 6e 6f 74 69 6e 67 20 61 20 66 61 6d 69 6c 79 20 6f 66 ┆e_nameЙ' as denoting a family of┆
0x06e60…06e80 20 6d 75 74 75 61 6c 6c 79 20 63 6f 6e 66 6f 72 80 6d 61 6e 74 20 74 79 70 65 73 2e 20 0a 54 68 ┆ mutually conforђmant types. Th┆
0x06e80…06ea0 65 20 27 66 6f 72 6d 61 6c 20 74 79 70 65 20 70 61 72 61 6d 65 74 65 72 73 27 2c 20 69 2e 65 2e ┆e 'formal type parameters', i.e.┆
0x06ea0…06ec0 20 74 68 65 20 27 74 79 70 65 2d 70 61 72 61 6d 65 80 74 65 72 5f 6e 61 6d 65 73 27 20 6d 61 79 ┆ the 'type-parameђter_names' may┆
0x06ec0…06ee0 20 62 65 20 0a 75 73 65 64 20 6f 6e 20 74 68 65 20 72 69 67 68 74 20 68 61 6e 64 20 73 69 64 65 ┆ be used on the right hand side┆
0x06ee0…06f00 20 6f 66 20 74 68 65 20 64 65 63 6c 61 72 61 80 74 69 6f 6e 2e 20 54 68 65 20 74 79 70 65 73 20 ┆ of the declaraђtion. The types ┆
0x06f00…06f20 73 70 65 63 69 66 69 65 64 20 0a 66 6f 72 20 bf dc d8 66 6f 72 6d 61 6c 20 74 79 70 65 20 70 61 ┆specified for ┐▄пformal type pa┆
0x06f20…06f40 72 61 80 6d 65 80 74 65 72 be 73 20 6d 75 73 74 20 62 65 20 6f 72 80 64 69 6e 61 6c 20 74 79 70 ┆raђmeђterЙs must be orђdinal typ┆
0x06f40…06f60 65 73 2e 20 53 70 65 63 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 61 20 0a 70 61 72 74 69 63 75 6c ┆es. Specification of a particul┆
0x06f60…06f80 61 72 20 74 79 70 65 20 69 6e 20 61 20 70 61 72 61 6d 65 74 65 72 69 80 7a 65 64 20 66 61 6d 69 ┆ar type in a parameteriђzed fami┆
0x06f80…06fa0 6c 79 20 6f 66 20 74 79 70 65 73 20 69 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 74 68 65 20 ┆ly of types is described in the ┆
0x06fa0…06fc0 0a 6e 65 78 74 20 73 65 63 74 69 6f 6e 2e 20 4e 6f 20 74 79 70 65 20 69 73 20 65 73 74 61 62 6c ┆ next section. No type is establ┆
0x06fc0…06fe0 69 73 68 65 64 20 77 68 65 6e 20 61 20 70 61 72 61 6d 65 74 65 72 69 7a 65 64 20 74 79 70 65 20 ┆ished when a parameterized type ┆
0x06fe0…07000 0a 64 65 63 6c 61 72 61 74 69 6f 6e 20 69 73 20 65 6c 61 62 6f 72 61 74 65 64 2e 0d 0a 0d 0a 41 ┆ declaration is elaborated. A┆
0x07000…07020 20 bf dc d8 74 79 70 65 73 69 7a 65 be 20 63 61 6c 6c 20 69 73 20 73 69 6d 69 6c 61 72 20 69 6e ┆ ┐▄пtypesizeЙ call is similar in┆
0x07020…07040 20 66 6f 72 6d 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2c 20 62 75 74 20 74 68 ┆ form to a function call, but th┆
0x07040…07060 65 20 22 70 61 72 61 80 0a 6d 65 74 65 72 22 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 ┆e "paraђ meter" is the name of a┆
0x07060…07080 20 74 79 70 65 2e 20 54 68 65 20 63 6f 6e 73 74 72 75 63 74 20 61 6c 6c 6f 77 73 20 74 68 65 20 ┆ type. The construct allows the ┆
0x07080…070a0 73 69 80 7a 65 20 6f 66 20 61 20 74 79 80 0a 70 65 20 74 6f 20 62 65 20 75 73 65 64 20 69 6e 20 ┆siђze of a tyђ pe to be used in ┆
0x070a0…070c0 63 6f 6d 70 75 74 61 74 69 6f 6e 73 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 38 33 0d 0a 54 68 65 ┆computations. ma syndia83 The┆
0x070c0…070e0 20 27 62 6f 75 6e 64 2d 74 79 70 65 5f 6e 61 6d 65 27 20 6d 75 73 74 20 62 65 20 74 68 65 20 6e ┆ 'bound-type_name' must be the n┆
0x070e0…07100 61 6d 65 20 6f 66 20 61 20 62 6f 75 6e 64 20 28 6e 6f 74 20 70 61 72 61 80 6d 65 74 65 72 69 80 ┆ame of a bound (not paraђmeteriђ┆
0x07100…07120 0a 7a 65 64 29 20 74 79 70 65 2e 20 54 68 65 20 76 61 6c 75 65 20 6f 66 20 61 20 74 79 70 65 73 ┆ zed) type. The value of a types┆
0x07120…07140 69 7a 65 20 63 61 6c 6c 20 69 73 20 74 68 65 20 73 69 7a 65 20 28 6e 75 6d 80 62 65 72 20 6f 66 ┆ize call is the size (numђber of┆
0x07140…07160 20 62 79 74 65 73 29 20 0a 6f 66 20 74 68 65 20 6e 61 6d 65 64 20 74 79 70 65 20 61 73 20 63 6f ┆ bytes) of the named type as co┆
0x07160…07180 6d 70 75 74 65 64 20 77 68 65 6e 20 74 68 65 20 74 79 80 70 65 20 77 61 73 20 65 73 74 61 62 6c ┆mputed when the tyђpe was establ┆
0x07180…071a0 69 73 68 65 64 2e 20 54 68 65 20 0a 74 79 70 65 20 6f 66 20 61 20 74 79 70 65 73 69 7a 65 20 63 ┆ished. The type of a typesize c┆
0x071a0…071c0 61 6c 6c 20 69 73 20 69 6e 74 65 67 65 72 2e 0d 0a 0d 0a 0e 0a a1 45 78 61 6d 70 6c 65 3a 0d 0a ┆all is integer. АExample: ┆
0x071c0…071e0 0d 0a 54 59 50 45 0d 0a 20 20 70 74 72 5f 74 79 70 65 3b 20 20 2d 2d 20 66 6f 72 77 61 72 64 20 ┆ TYPE ptr_type; -- forward ┆
0x071e0…07200 61 6e 6e 6f 75 6e 63 65 6d 65 6e 74 0d 0a 20 20 62 6f 75 6e 64 5f 74 79 70 3d 20 41 52 52 41 59 ┆announcement bound_typ= ARRAY┆
0x07200…07220 20 28 31 2e 2e 31 30 29 20 4f 46 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 72 65 63 5f 74 79 70 65 ┆ (1..10) OF integer; rec_type┆
0x07220…07240 3d 20 52 45 43 4f 52 44 09 09 2d 2d 20 4e 6f 74 65 3a 0d 0a 20 20 20 20 66 31 3a 20 62 6f 75 6e ┆= RECORD -- Note: f1: boun┆
0x07240…07260 64 5f 74 79 70 3b 09 09 2d 2d 20 74 79 70 65 20 6f 66 20 66 31 20 6e 6f 74 20 63 6f 6d 70 61 74 ┆d_typ; -- type of f1 not compat┆
0x07260…07280 69 62 6c 65 0d 0a 20 20 20 20 66 32 3a 20 41 52 52 41 59 28 31 2e 2e 31 30 29 20 4f 46 20 69 6e ┆ible f2: ARRAY(1..10) OF in┆
0x07280…072a0 74 65 67 65 72 09 2d 2d 20 77 69 74 68 20 74 79 70 65 20 6f 66 20 66 32 0d 0a 20 20 20 20 66 33 ┆teger -- with type of f2 f3┆
0x072a0…072c0 3a 20 70 74 72 5f 74 79 70 65 3b 09 09 2d 2d 20 6f 6e 65 20 77 61 79 20 6f 66 20 72 65 63 75 72 ┆: ptr_type; -- one way of recur┆
0x072c0…072e0 73 69 76 65 20 64 65 66 0d 0a 20 20 20 20 66 34 3a 20 5e 88 7c 20 72 65 63 5f 74 79 70 65 3b 09 ┆sive def f4: ^ѕ| rec_type; ┆
0x072e0…07300 09 2d 2d 20 61 6e 6f 74 68 65 72 20 72 65 63 75 72 73 69 76 65 20 64 65 66 2e 0d 0a 20 20 45 4e ┆ -- another recursive def. EN┆
0x07300…07320 44 28 2a 52 45 43 4f 52 44 2a 29 3b 0d 0a 20 20 70 74 72 5f 74 79 70 65 3d 20 5e 88 7c 72 65 63 ┆D(*RECORD*); ptr_type= ^ѕ|rec┆
0x07320…07340 5f 74 79 70 65 3b 0d 0a 20 20 6d 61 73 6b 5f 74 79 70 65 3d 20 50 41 43 4b 45 44 20 41 52 52 41 ┆_type; mask_type= PACKED ARRA┆
0x07340…07360 59 28 31 2e 2e 74 79 70 65 73 69 7a 65 28 62 6f 75 6e 64 5f 74 79 70 29 29 20 4f 46 20 62 6f 6f ┆Y(1..typesize(bound_typ)) OF boo┆
0x07360…07380 6c 65 61 6e 0d 0a 0f 0a 16 73 62 0d 0a 50 61 72 61 6d 65 74 65 72 69 7a 65 64 20 54 79 70 65 73 ┆lean sb Parameterized Types┆
0x07380…073a0 0d 0a 41 20 bf dc d8 66 61 6d 69 6c 79 be 20 6f 66 20 bf dc d8 70 61 72 61 6d 65 74 65 72 69 7a ┆ A ┐▄пfamilyЙ of ┐▄пparameteriz┆
0x073a0…073c0 65 64 20 74 79 70 65 be 73 20 6d 61 79 20 62 65 20 64 65 66 69 6e 65 64 20 69 6e 20 61 20 74 79 ┆ed typeЙs may be defined in a ty┆
0x073c0…073e0 70 65 20 64 65 80 63 6c 61 80 72 61 74 69 6f 6e 20 0a 28 73 65 65 20 74 68 65 20 70 72 65 63 65 ┆pe deђclaђration (see the prece┆
0x073e0…07400 64 69 6e 67 20 73 65 63 74 69 6f 6e 29 2e 20 41 20 70 61 72 74 69 63 75 6c 61 72 20 74 79 70 65 ┆ding section). A particular type┆
0x07400…07420 20 69 6e 20 73 75 63 68 20 61 20 66 61 6d 69 6c 79 2c 20 63 61 6c 6c 65 64 20 0a 61 20 a0 62 6f ┆ in such a family, called a аbo┆
0x07420…07440 75 6e 64 20 70 61 72 61 6d 65 74 65 72 69 7a 65 64 20 74 79 70 65 e0 2c 20 69 73 20 6f 62 80 74 ┆und parameterized typeЯ, is obђt┆
0x07440…07460 61 69 80 6e 65 64 20 62 79 20 62 69 6e 64 69 6e 67 20 76 61 6c 75 65 73 20 74 6f 20 74 68 65 20 ┆aiђned by binding values to the ┆
0x07460…07480 66 6f 72 80 0a 6d 61 6c 20 74 79 70 65 20 70 61 72 61 6d 65 74 65 72 73 2e 0d 0a 0d 0a 16 6d 61 ┆forђ mal type parameters. ma┆
0x07480…074a0 20 73 79 6e 64 69 61 32 39 0d 0a 16 6d 61 20 73 79 6e 64 69 61 33 30 0d 0a 8c b6 c8 0a 54 68 65 ┆ syndia29 ma syndia30 їХ╚ The┆
0x074a0…074c0 20 27 70 61 72 61 6d 65 74 65 72 69 7a 65 64 2d 74 79 70 65 5f 6e 61 6d 65 27 20 6d 75 73 74 20 ┆ 'parameterized-type_name' must ┆
0x074c0…074e0 6f 63 63 75 72 20 69 6e 20 61 20 70 72 65 63 65 64 69 6e 67 20 70 61 80 72 61 80 6d 65 74 65 72 ┆occur in a preceding paђraђmeter┆
0x074e0…07500 69 80 0a 7a 65 64 20 74 79 70 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 2c 20 69 2e 65 2e 20 69 74 ┆iђ zed type declaration, i.e. it┆
0x07500…07520 20 6d 75 73 74 20 64 65 6e 6f 74 65 20 61 20 74 79 70 65 20 66 61 80 6d 69 6c 79 2e 20 54 68 65 ┆ must denote a type faђmily. The┆
0x07520…07540 20 6e 75 6d 62 65 72 20 0a 6f 66 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e ┆ number of formal parameters in┆
0x07540…07560 20 74 68 69 73 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 6d 75 73 74 20 65 71 75 61 6c 20 74 68 65 ┆ this declaration must equal the┆
0x07560…07580 20 6e 75 6d 62 65 72 20 6f 66 20 0a 27 61 63 74 75 61 6c 20 74 79 70 65 20 70 61 72 61 6d 65 74 ┆ number of 'actual type paramet┆
0x07580…075a0 65 72 73 27 2c 20 61 6e 64 20 65 61 63 68 20 61 63 74 75 61 6c 20 70 61 72 61 80 6d 65 74 65 72 ┆ers', and each actual paraђmeter┆
0x075a0…075c0 20 6d 75 73 74 20 62 65 20 61 73 80 0a 73 69 67 6e 61 62 6c 65 20 74 6f 20 74 68 65 20 74 79 70 ┆ must be asђ signable to the typ┆
0x075c0…075e0 65 20 6f 66 20 74 68 65 20 63 6f 72 80 72 65 73 70 6f 6e 64 69 6e 67 20 66 6f 72 80 6d 61 6c 20 ┆e of the corђresponding forђmal ┆
0x075e0…07600 70 61 72 61 6d 65 74 65 72 2e 0d 0a 0d 0a 54 68 65 20 74 79 70 65 20 73 70 65 63 69 66 69 65 64 ┆parameter. The type specified┆
0x07600…07620 20 62 79 20 61 20 27 70 61 72 61 6d 65 74 65 72 69 7a 65 64 20 74 79 70 65 20 62 69 6e 64 69 6e ┆ by a 'parameterized type bindin┆
0x07620…07640 67 27 20 69 73 20 65 73 74 61 62 80 6c 69 73 68 65 64 20 0a 61 63 63 6f 72 64 69 6e 67 20 74 6f ┆g' is estabђlished according to┆
0x07640…07660 20 74 68 65 20 72 69 67 68 74 20 68 61 6e 64 20 73 69 64 65 20 6f 66 20 74 68 65 20 70 61 72 61 ┆ the right hand side of the para┆
0x07660…07680 80 6d 65 80 74 65 72 69 7a 65 64 20 74 79 80 70 65 20 64 65 63 6c 61 72 61 80 0a 74 69 6f 6e 2c ┆ђmeђterized tyђpe declaraђ tion,┆
0x07680…076a0 20 69 2e 65 2e 20 74 68 65 20 64 65 66 69 6e 69 6e 67 20 74 79 70 65 20 73 70 65 63 69 66 69 80 ┆ i.e. the defining type specifiђ┆
0x076a0…076c0 63 61 80 74 69 6f 6e 2c 20 61 66 74 65 72 20 61 6c 6c 20 6f 63 80 63 75 72 72 65 6e 63 65 73 20 ┆caђtion, after all ocђcurrences ┆
0x076c0…076e0 6f 66 20 74 68 65 20 0a 66 6f 72 6d 61 6c 20 74 79 70 65 20 70 61 72 61 6d 65 74 65 72 73 20 68 ┆of the formal type parameters h┆
0x076e0…07700 61 76 65 20 62 65 65 6e 20 72 65 70 6c 61 63 65 64 20 77 69 74 68 20 74 68 65 20 76 61 6c 75 65 ┆ave been replaced with the value┆
0x07700…07720 73 20 6f 66 20 74 68 65 20 0a 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 61 63 80 74 75 61 6c 20 ┆s of the corresponding acђtual ┆
0x07720…07740 70 61 72 61 6d 65 74 65 72 73 2e 20 54 68 65 20 70 72 6f 70 65 72 74 69 65 73 20 6f 66 20 74 68 ┆parameters. The properties of th┆
0x07740…07760 65 20 64 65 66 69 6e 69 6e 67 20 74 79 70 65 20 0a 61 72 65 20 69 6e 80 68 65 72 69 74 65 64 20 ┆e defining type are inђherited ┆
0x07760…07780 69 6e 20 74 68 65 20 73 61 6d 65 20 66 61 73 68 69 6f 6e 20 61 73 20 69 6e 20 74 68 65 20 63 61 ┆in the same fashion as in the ca┆
0x07780…077a0 73 65 20 6f 66 20 61 20 27 62 6f 75 6e 64 2d 74 79 80 80 70 65 5f 6e 61 80 0a 6d 65 27 2c 20 63 ┆se of a 'bound-tyђђpe_naђ me', c┆
0x077a0…077c0 66 2e 20 74 68 65 20 70 72 65 63 65 64 69 6e 67 20 73 65 63 80 74 69 6f 6e 2e 0d 0a 0d 0a 54 68 ┆f. the preceding secђtion. Th┆
0x077c0…077e0 65 20 61 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 20 76 61 6c 75 65 73 20 75 73 65 64 20 74 ┆e actual parameter values used t┆
0x077e0…07800 6f 20 65 73 74 61 62 6c 69 73 68 20 61 20 62 6f 75 6e 64 20 70 61 72 61 80 6d 65 74 65 80 72 69 ┆o establish a bound paraђmeteђri┆
0x07800…07820 7a 65 64 20 0a 74 79 70 65 20 61 72 65 20 61 74 74 61 63 68 65 64 20 74 6f 20 6f 62 6a 65 63 74 ┆zed type are attached to object┆
0x07820…07840 73 20 6f 66 20 74 68 65 20 74 79 70 65 2e 20 54 68 65 20 70 61 80 72 61 6d 65 74 65 72 20 76 61 ┆s of the type. The paђrameter va┆
0x07840…07860 6c 75 65 73 20 61 72 65 20 0a 61 63 63 65 73 73 69 62 6c 65 20 77 68 65 6e 65 76 65 72 20 74 68 ┆lues are accessible whenever th┆
0x07860…07880 65 20 6f 62 6a 65 63 74 20 74 6f 20 77 68 69 63 68 20 74 68 65 79 20 61 72 65 20 61 74 80 74 61 ┆e object to which they are atђta┆
0x07880…078a0 63 68 65 64 20 69 73 20 76 69 73 69 62 6c 65 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 38 32 0d 0a ┆ched is visible. ma syndia82 ┆
0x078a0…078c0 54 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 64 65 6e 6f 74 65 64 20 6f 62 6a 65 63 74 20 6d ┆The type of the denoted object m┆
0x078c0…078e0 75 73 74 20 62 65 20 61 20 62 6f 75 6e 64 20 70 61 72 61 6d 65 74 65 72 69 7a 65 64 20 74 79 70 ┆ust be a bound parameterized typ┆
0x078e0…07900 65 2e 20 0a 54 68 65 20 27 74 79 70 65 2d 70 61 72 61 6d 65 74 65 72 5f 6e 61 6d 65 27 20 6d 75 ┆e. The 'type-parameter_name' mu┆
0x07900…07920 73 74 20 6f 63 63 75 72 20 61 6d 6f 6e 67 20 74 68 65 20 27 66 6f 72 6d 61 6c 20 74 79 70 65 20 ┆st occur among the 'formal type ┆
0x07920…07940 70 61 72 61 80 0a 6d 65 74 65 72 73 27 20 6f 66 20 74 68 69 73 20 74 79 70 65 2e 20 54 68 65 20 ┆paraђ meters' of this type. The ┆
0x07940…07960 74 79 70 65 20 6f 66 20 61 20 27 73 65 6c 65 63 74 65 64 20 74 79 70 65 20 70 61 80 72 61 6d 65 ┆type of a 'selected type paђrame┆
0x07960…07980 74 65 72 27 20 69 73 20 74 68 65 20 0a 28 6f 72 64 69 6e 61 6c 29 20 74 79 70 65 20 73 70 65 63 ┆ter' is the (ordinal) type spec┆
0x07980…079a0 69 66 69 65 64 20 66 6f 72 20 74 68 65 20 27 74 79 70 65 2d 70 61 80 72 61 6d 65 80 74 65 72 5f ┆ified for the 'type-paђrameђter_┆
0x079a0…079c0 6e 61 6d 65 27 20 61 6e 64 20 69 74 73 20 76 61 6c 75 65 20 0a 69 73 20 74 68 65 20 76 61 6c 75 ┆name' and its value is the valu┆
0x079c0…079e0 65 20 6f 66 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 80 80 64 69 6e 67 20 61 63 74 75 61 6c 20 ┆e of the corresponђђding actual ┆
0x079e0…07a00 70 61 72 61 6d 65 74 65 72 20 61 73 20 65 76 61 6c 75 61 74 65 64 20 77 68 65 6e 20 0a 74 68 65 ┆parameter as evaluated when the┆
0x07a00…07a20 20 6f 62 6a 65 63 74 20 74 79 70 65 20 77 61 73 20 65 73 74 61 62 6c 69 73 68 65 64 2e 0d 0a 0d ┆ object type was established. ┆
0x07a20…07a40 0a 0e 0a a1 45 78 61 6d 70 6c 65 3a 0d 0a 54 59 50 45 0d 0a 20 20 63 6f 6c 75 6d 6e 28 72 6f 77 ┆ АExample: TYPE column(row┆
0x07a40…07a60 73 3a 20 31 2e 2e 31 30 30 29 3d 20 41 52 52 41 59 28 31 2e 2e 72 6f 77 73 29 20 4f 46 20 69 6e ┆s: 1..100)= ARRAY(1..rows) OF in┆
0x07a60…07a80 74 65 67 65 72 3b 0d 0a 20 20 6d 61 74 72 69 78 28 72 6f 77 73 3a 20 31 2e 2e 31 30 30 29 3d 20 ┆teger; matrix(rows: 1..100)= ┆
0x07a80…07aa0 41 52 52 41 59 28 31 2e 2e 72 6f 77 73 29 20 4f 46 20 63 6f 6c 75 6d 6e 28 72 6f 77 73 29 3b 0d ┆ARRAY(1..rows) OF column(rows); ┆
0x07aa0…07ac0 0a 20 20 6d 61 74 72 69 78 5f 31 30 3d 20 6d 61 74 72 69 78 28 31 30 29 3b 0d 0a 20 20 2e 2e 2e ┆ matrix_10= matrix(10); ...┆
0x07ac0…07ae0 0d 0a 50 52 4f 43 45 44 55 52 45 20 69 6e 76 65 72 74 28 61 3a 6d 61 74 72 69 78 29 3b 0d 0a 56 ┆ PROCEDURE invert(a:matrix); V┆
0x07ae0…07b00 41 52 0d 0a 20 20 6c 6f 63 61 6c 5f 63 6f 70 79 3a 20 6d 61 74 72 69 78 28 61 21 72 6f 77 73 29 ┆AR local_copy: matrix(a!rows)┆
0x07b00…07b20 3b 0d 0a 20 20 2e 2e 2e 0d 0a 20 20 46 4f 52 20 69 3a 3d 31 20 54 4f 20 61 21 72 6f 77 73 20 44 ┆; ... FOR i:=1 TO a!rows D┆
0x07b20…07b40 4f 0d 0a 20 20 20 20 2e 2e 2e 0d 0a 0f 0a 16 73 62 0d 0a 4f 72 64 69 6e 61 6c 20 54 79 70 65 73 ┆O ... sb Ordinal Types┆
0x07b40…07b60 0d 0a 16 73 6f 20 6f 72 64 69 6e 61 6c 20 74 79 70 65 73 0d 0a 4f 72 64 69 6e 61 6c 20 74 79 70 ┆ so ordinal types Ordinal typ┆
0x07b60…07b80 65 73 20 61 72 65 20 61 62 73 74 72 61 63 74 20 74 79 70 65 73 2e 20 46 6f 72 20 61 6e 79 20 6f ┆es are abstract types. For any o┆
0x07b80…07ba0 72 64 69 6e 61 6c 20 74 79 70 65 20 74 68 65 72 65 20 65 78 80 69 73 74 73 20 61 20 0a 6f 6e 65 ┆rdinal type there exђists a one┆
0x07ba0…07bc0 2d 74 6f 2d 6f 6e 65 20 6d 61 70 70 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 73 65 74 20 6f 66 20 ┆-to-one mapping from the set of ┆
0x07bc0…07be0 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 74 79 70 65 20 6f 6e 74 6f 20 61 20 66 69 6e 69 74 65 ┆values of the type onto a finite┆
0x07be0…07c00 20 0a 69 6e 74 65 72 76 61 6c 20 6f 66 20 74 68 65 20 69 6e 74 65 67 72 61 6c 20 6e 75 6d 62 65 ┆ interval of the integral numbe┆
0x07c00…07c20 72 73 2c 20 79 69 65 6c 80 80 64 69 6e 67 20 74 68 65 20 a0 6f 72 64 69 80 6e 61 6c 20 76 61 6c ┆rs, yielђђding the аordiђnal val┆
0x07c20…07c40 75 65 e0 20 63 6f 72 72 65 73 70 6f 6e 80 0a 64 69 6e 67 20 74 6f 20 65 61 63 68 20 76 61 6c 75 ┆ueЯ corresponђ ding to each valu┆
0x07c40…07c60 65 20 6f 66 20 74 68 65 20 74 79 70 65 2e 20 49 74 20 66 6f 6c 6c 6f 77 73 20 74 68 61 74 20 74 ┆e of the type. It follows that t┆
0x07c60…07c80 68 65 20 76 61 6c 75 65 20 73 65 74 20 6f 66 20 61 6e 20 0a 6f 72 64 69 6e 61 6c 20 74 79 70 65 ┆he value set of an ordinal type┆
0x07c80…07ca0 20 69 73 20 6f 72 64 65 72 65 64 20 62 79 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 65 20 61 6e 64 ┆ is ordered by ordinal value and┆
0x07ca0…07cc0 20 74 68 61 74 20 65 76 65 72 79 20 73 75 63 68 20 76 61 6c 75 65 20 73 65 74 20 0a 68 61 73 20 ┆ that every such value set has ┆
0x07cc0…07ce0 61 20 66 69 72 73 74 20 61 6e 64 20 61 20 6c 61 73 74 20 65 6c 65 6d 65 6e 74 2e 20 42 79 20 74 ┆a first and a last element. By t┆
0x07ce0…07d00 68 65 20 6f 72 64 65 72 69 6e 67 2c 20 65 76 65 72 79 20 76 61 6c 75 65 2c 20 65 78 80 63 65 70 ┆he ordering, every value, exђcep┆
0x07d00…07d20 74 20 0a 74 68 65 20 6c 61 73 74 20 6f 6e 65 2c 20 68 61 73 20 61 20 a0 73 75 63 63 65 73 73 6f ┆t the last one, has a аsuccesso┆
0x07d20…07d40 72 e0 20 61 6e 64 20 65 76 65 72 79 20 76 61 6c 75 65 2c 20 65 78 63 65 70 74 20 74 68 65 20 66 ┆rЯ and every value, except the f┆
0x07d40…07d60 69 72 73 74 20 6f 6e 65 2c 20 0a 68 61 73 20 61 20 a0 70 72 65 64 65 63 65 73 73 6f 72 e0 2e 20 ┆irst one, has a аpredecessorЯ. ┆
0x07d60…07d80 53 69 6d 69 80 6c 61 72 6c 79 2c 20 74 68 65 20 72 65 6c 61 74 69 6f 6e 73 20 a0 67 72 65 61 74 ┆Simiђlarly, the relations аgreat┆
0x07d80…07da0 65 72 20 74 68 61 6e e0 20 61 6e 64 20 a0 73 6d 61 6c 6c 65 72 20 0a 19 80 80 c0 74 68 61 6e e0 ┆er thanЯ and аsmaller ђђ└thanЯ┆
0x07da0…07dc0 20 61 72 65 20 64 65 66 69 6e 65 64 20 66 6f 72 20 70 61 69 72 73 20 6f 66 20 76 61 80 6c 75 65 ┆ are defined for pairs of vaђlue┆
0x07dc0…07de0 73 20 62 79 20 74 68 65 20 6f 72 64 65 72 69 6e 67 2e 0d 0a 0d 0a 54 68 65 20 72 65 6c 61 74 69 ┆s by the ordering. The relati┆
0x07de0…07e00 6f 6e 61 6c 20 6f 70 65 72 61 74 6f 72 73 20 77 68 69 63 68 20 70 72 6f 64 75 63 65 20 72 65 73 ┆onal operators which produce res┆
0x07e00…07e20 75 6c 74 73 20 6f 66 20 74 68 65 20 70 72 65 64 65 80 66 69 6e 65 64 20 74 79 70 65 20 0a 62 6f ┆ults of the predeђfined type bo┆
0x07e20…07e40 6f 6c 65 61 6e 20 61 70 70 6c 79 20 74 6f 20 70 61 69 72 73 20 6f 66 20 6f 70 65 72 61 6e 64 73 ┆olean apply to pairs of operands┆
0x07e40…07e60 20 6f 66 20 61 6e 79 20 6f 72 64 69 6e 61 6c 20 74 79 70 65 2e 20 69 2e 65 2e 20 74 68 65 20 74 ┆ of any ordinal type. i.e. the t┆
0x07e60…07e80 77 6f 20 0a 6f 70 65 72 61 6e 64 73 20 6d 75 73 74 20 62 65 20 6f 66 20 74 68 65 20 73 61 6d 65 ┆wo operands must be of the same┆
0x07e80…07ea0 20 6f 72 64 69 6e 61 6c 20 74 79 80 70 65 2e 20 4c 65 74 20 6f 6c 65 66 74 20 61 6e 64 20 6f 72 ┆ ordinal tyђpe. Let oleft and or┆
0x07ea0…07ec0 69 67 68 74 20 0a 64 65 6e 6f 74 65 20 74 68 65 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 65 73 20 ┆ight denote the ordinal values ┆
0x07ec0…07ee0 6f 66 20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 20 6f 70 65 72 61 6e 64 2c 20 72 65 73 70 65 ┆of left and right operand, respe┆
0x07ee0…07f00 63 74 69 76 65 6c 79 2e 20 54 68 65 20 0a 72 65 6c 61 74 69 6f 6e 61 6c 20 6f 70 65 72 61 74 6f ┆ctively. The relational operato┆
0x07f00…07f20 72 73 20 61 72 65 20 74 68 65 6e 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f ┆rs are then defined in the follo┆
0x07f20…07f40 77 69 6e 67 20 74 61 62 6c 65 3a 0d 0a 0d 0a a1 6f 70 65 72 61 74 6f 72 20 20 72 65 73 75 6c 74 ┆wing table: Аoperator result┆
0x07f40…07f60 05 5f 0d 0a 20 3d 09 20 20 20 20 20 20 74 72 75 65 20 69 66 20 6f 6c 65 66 74 20 65 71 75 61 6c ┆ _ = true if oleft equal┆
0x07f60…07f80 73 20 6f 72 69 67 68 74 2c 20 6f 74 68 65 72 77 69 73 65 20 66 61 6c 73 65 0d 0a 20 3c 3e 09 20 ┆s oright, otherwise false <> ┆
0x07f80…07fa0 20 20 20 20 20 66 61 6c 73 65 20 69 66 20 6f 6c 65 66 74 20 65 71 75 61 6c 73 20 6f 72 69 67 68 ┆ false if oleft equals origh┆
0x07fa0…07fc0 74 2c 20 6f 74 68 65 72 77 69 73 65 20 74 72 75 65 0d 0a 20 3e 09 20 20 20 20 20 20 84 74 72 75 ┆t, otherwise true > ёtru┆
0x07fc0…07fe0 65 20 69 66 20 6f 6c 65 66 74 20 69 73 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 6f 72 69 67 68 ┆e if oleft is greater than origh┆
0x07fe0…08000 74 2c 20 6f 74 68 65 72 77 69 73 65 20 66 61 6c 73 65 0d 0a 20 3c 3d 09 20 20 20 20 20 20 84 66 ┆t, otherwise false <= ёf┆
0x08000…08020 61 6c 73 65 20 69 66 20 6f 6c 65 66 74 20 69 73 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 6f 72 ┆alse if oleft is greater than or┆
0x08020…08040 69 67 68 74 2c 20 6f 74 68 65 72 77 69 73 65 20 74 72 75 65 0d 0a 20 3c 09 20 20 20 20 20 20 84 ┆ight, otherwise true < ё┆
0x08040…08060 74 72 75 65 20 69 66 20 6f 6c 65 66 74 20 69 73 20 73 6d 61 6c 6c 65 72 20 74 68 61 6e 20 6f 72 ┆true if oleft is smaller than or┆
0x08060…08080 69 67 68 74 2c 20 6f 74 68 65 72 77 69 73 65 20 66 61 6c 73 65 0d 0a 20 3e 3d 09 20 20 20 20 20 ┆ight, otherwise false >= ┆
0x08080…080a0 20 84 66 61 6c 73 65 20 69 66 20 6f 6c 65 66 74 20 69 73 20 73 6d 61 6c 6c 65 72 20 74 68 61 6e ┆ ёfalse if oleft is smaller than┆
0x080a0…080c0 20 6f 72 69 67 68 74 2c 20 6f 74 68 65 72 77 69 73 65 20 74 72 75 65 0d 0a 0d 0a 46 6f 72 20 65 ┆ oright, otherwise true For e┆
0x080c0…080e0 76 65 72 79 20 6f 72 64 69 6e 61 6c 20 74 79 70 65 20 6f 74 79 70 65 2c 20 74 68 65 72 65 20 65 ┆very ordinal type otype, there e┆
0x080e0…08100 78 69 73 74 20 74 68 72 65 65 20 70 72 65 64 65 66 69 6e 65 64 20 66 75 6e 63 80 74 69 6f 6e 73 ┆xist three predefined funcђtions┆
0x08100…08120 20 0a 61 73 20 64 65 73 63 72 69 62 65 64 20 62 65 6c 6f 77 3a 0d 0a 0d 0a 46 55 4e 43 54 49 4f ┆ as described below: FUNCTIO┆
0x08120…08140 4e 20 bf dc d8 73 75 63 63 be 28 76 3a 20 6f 74 79 70 65 29 3a 20 6f 74 79 70 65 0d 0a 0d 0a 54 ┆N ┐▄пsuccЙ(v: otype): otype T┆
0x08140…08160 68 65 20 72 65 73 75 6c 74 20 6f 66 20 61 20 63 61 6c 6c 20 6f 66 20 73 75 63 63 20 69 73 20 74 ┆he result of a call of succ is t┆
0x08160…08180 68 65 20 73 75 63 63 65 73 73 6f 72 20 6f 66 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 ┆he successor of the value of the┆
0x08180…081a0 20 0a 70 61 72 61 6d 65 74 65 72 20 76 2c 20 65 78 63 65 70 74 20 69 66 20 74 68 69 73 20 76 61 ┆ parameter v, except if this va┆
0x081a0…081c0 6c 75 65 20 69 73 20 74 68 65 20 6c 61 73 74 20 6f 6e 65 2c 20 69 6e 20 77 68 69 63 68 20 63 61 ┆lue is the last one, in which ca┆
0x081c0…081e0 73 65 20 74 68 65 20 0a 63 61 6c 6c 20 63 61 75 73 65 73 20 61 20 66 61 75 6c 74 2e 0d 0a 0d 0a ┆se the call causes a fault. ┆
0x081e0…08200 46 55 4e 43 54 49 4f 4e 20 bf dc d8 70 72 65 64 be 28 76 3a 20 6f 74 79 70 65 29 3a 20 6f 74 79 ┆FUNCTION ┐▄пpredЙ(v: otype): oty┆
0x08200…08220 70 65 0d 0a 0d 0a 54 68 65 20 72 65 73 75 6c 74 20 6f 66 20 61 20 63 61 6c 6c 20 6f 66 20 70 72 ┆pe The result of a call of pr┆
0x08220…08240 65 64 20 69 73 20 74 68 65 20 70 72 65 64 65 63 65 73 73 6f 72 20 6f 66 20 74 68 65 20 76 61 6c ┆ed is the predecessor of the val┆
0x08240…08260 75 65 20 6f 66 20 74 68 65 20 0a 70 61 72 61 6d 65 74 65 72 20 76 2c 20 65 78 63 65 70 74 20 69 ┆ue of the parameter v, except i┆
0x08260…08280 66 20 74 68 69 73 20 76 61 6c 75 65 20 69 73 20 74 68 65 20 66 69 72 73 74 20 6f 6e 65 2c 20 69 ┆f this value is the first one, i┆
0x08280…082a0 6e 20 77 68 69 63 68 20 63 61 73 65 20 74 68 65 20 0a 63 61 6c 6c 20 63 61 75 73 65 73 20 61 20 ┆n which case the call causes a ┆
0x082a0…082c0 66 61 75 6c 74 2e 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 bf dc d8 6f 72 64 be 28 76 3a 20 6f 74 ┆fault. FUNCTION ┐▄пordЙ(v: ot┆
0x082c0…082e0 79 70 65 29 3a 20 69 6e 74 65 67 65 72 0d 0a 0d 0a 54 68 65 20 72 65 73 75 6c 74 20 6f 66 20 61 ┆ype): integer The result of a┆
0x082e0…08300 20 63 61 6c 6c 20 6f 66 20 6f 72 64 20 69 73 20 74 68 65 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 ┆ call of ord is the ordinal valu┆
0x08300…08320 65 20 63 6f 72 72 65 73 70 6f 6e 80 64 69 6e 67 20 74 6f 20 74 68 65 20 0a 76 61 6c 75 65 20 6f ┆e corresponђding to the value o┆
0x08320…08340 66 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 76 2e 0d 0a 0d 0a 54 68 65 72 65 20 61 72 65 20 ┆f the parameter v. There are ┆
0x08340…08360 66 6f 75 72 20 70 72 65 64 65 66 69 6e 65 64 20 6f 72 64 69 6e 61 6c 20 74 79 70 65 73 20 61 6e ┆four predefined ordinal types an┆
0x08360…08380 64 20 74 77 6f 20 77 61 79 73 20 74 6f 20 64 65 80 66 69 6e 65 20 6e 65 77 20 0a 6f 72 64 69 6e ┆d two ways to deђfine new ordin┆
0x08380…083a0 61 6c 20 74 79 70 65 73 2e 20 54 68 65 73 65 20 61 72 65 20 64 65 73 63 72 69 62 65 64 20 69 6e ┆al types. These are described in┆
0x083a0…083c0 20 64 65 74 61 69 6c 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 75 62 73 65 63 80 ┆ detail in the following subsecђ┆
0x083c0…083e0 0a 74 69 6f 6e 73 2e 0d 0a 0d 0a 16 6d 61 20 73 79 6e 64 69 61 32 36 0d 0a 16 6d 61 20 73 79 6e ┆ tions. ma syndia26 ma syn┆
0x083e0…08400 64 69 61 32 30 0d 0a 16 73 63 0d 0a 54 68 65 20 54 79 70 65 20 42 6f 6f 6c 65 61 6e 0d 0a 0d 0a ┆dia20 sc The Type Boolean ┆
0x08400…08420 54 68 65 20 74 79 70 65 20 bf dc d8 62 6f 6f 6c 65 61 6e be 20 68 61 73 20 74 77 6f 20 76 61 6c ┆The type ┐▄пbooleanЙ has two val┆
0x08420…08440 75 65 73 20 77 68 69 63 68 20 63 6f 72 72 65 73 70 6f 6e 64 20 74 6f 20 74 72 75 74 68 20 76 61 ┆ues which correspond to truth va┆
0x08440…08460 6c 80 75 65 73 20 61 6e 64 20 0a 61 72 65 20 64 65 6e 6f 74 65 64 20 62 79 20 74 68 65 20 70 72 ┆lђues and are denoted by the pr┆
0x08460…08480 65 64 65 66 69 6e 65 64 20 76 61 6c 75 65 20 6e 61 6d 65 73 20 a0 66 61 6c 73 65 e0 20 61 6e 64 ┆edefined value names аfalseЯ and┆
0x08480…084a0 20 a0 74 72 75 65 e0 2e 20 54 68 65 20 6f 72 64 69 6e 61 6c 20 0a 76 61 6c 75 65 73 20 61 72 65 ┆ аtrueЯ. The ordinal values are┆
0x084a0…084c0 3a 20 6f 72 64 28 66 61 6c 73 65 29 3d 30 20 61 6e 64 20 6f 72 64 28 74 72 80 75 65 29 3d 31 2e ┆: ord(false)=0 and ord(trђue)=1.┆
0x084c0…084e0 0d 0a 0d 0a bf dc d8 41 4e 44 be 20 61 6e 64 20 bf dc d8 4f 52 be 20 61 72 65 20 74 77 6f 20 64 ┆ ┐▄пANDЙ and ┐▄пORЙ are two d┆
0x084e0…08500 79 61 64 69 63 20 6f 70 65 72 61 74 6f 72 73 20 77 68 69 63 68 20 74 61 6b 65 20 62 6f 6f 6c 65 ┆yadic operators which take boole┆
0x08500…08520 61 6e 20 6f 70 65 72 61 6e 64 73 20 0a 61 6e 64 20 70 72 6f 80 64 75 63 65 20 61 20 62 6f 6f 6c ┆an operands and proђduce a bool┆
0x08520…08540 65 61 6e 20 72 65 73 75 6c 74 2e 20 bf dc d8 4e 4f 54 be 20 69 73 20 61 20 6d 6f 6e 61 80 64 69 ┆ean result. ┐▄пNOTЙ is a monaђdi┆
0x08540…08560 63 20 6f 70 65 72 61 74 6f 72 20 0a 77 68 69 63 68 20 74 61 6b 65 73 20 61 20 62 6f 6f 6c 65 61 ┆c operator which takes a boolea┆
0x08560…08580 6e 20 6f 70 65 72 61 6e 64 20 61 6e 64 20 70 72 6f 64 75 63 65 73 20 61 20 62 6f 6f 6c 65 61 6e ┆n operand and produces a boolean┆
0x08580…085a0 20 72 65 73 75 6c 74 2e 20 0a 54 68 65 20 72 65 73 75 6c 74 73 20 70 72 6f 64 75 63 65 64 20 62 ┆ result. The results produced b┆
0x085a0…085c0 79 20 74 68 65 73 65 20 6f 70 65 72 61 74 6f 72 73 20 61 72 65 20 69 6e 20 61 63 80 63 6f 72 64 ┆y these operators are in acђcord┆
0x085c0…085e0 61 6e 63 65 20 77 69 74 68 20 73 74 61 6e 80 0a 64 61 72 64 20 6c 6f 67 69 63 61 6c 20 74 72 75 ┆ance with stanђ dard logical tru┆
0x085e0…08600 74 68 20 74 61 62 6c 65 73 20 66 6f 72 20 63 6f 6e 6a 75 6e 63 74 69 6f 6e 2c 20 64 69 73 80 6a ┆th tables for conjunction, disђj┆
0x08600…08620 75 6e 63 74 69 6f 6e 20 61 6e 64 20 6e 65 67 61 74 69 6f 6e 2c 20 0a 72 65 73 70 65 63 74 69 76 ┆unction and negation, respectiv┆
0x08620…08640 65 6c 79 2e 20 49 6e 20 61 64 80 64 69 74 69 6f 6e 20 74 68 65 20 64 79 61 64 69 63 20 6f 70 65 ┆ely. In adђdition the dyadic ope┆
0x08640…08660 72 61 80 74 6f 72 20 bf dc d8 58 4f 52 be 20 69 73 20 70 72 6f 76 69 64 65 64 20 66 6f 72 20 62 ┆raђtor ┐▄пXORЙ is provided for b┆
0x08660…08680 6f 80 0a 6f 6c 65 61 6e 20 6f 70 65 80 72 61 6e 64 73 2e 20 49 74 73 20 72 65 73 75 6c 74 2c 20 ┆oђ olean opeђrands. Its result, ┆
0x08680…086a0 77 68 69 63 68 20 69 73 20 61 6c 73 6f 20 62 6f 6f 6c 65 61 6e 2c 20 69 73 20 64 65 66 69 6e 65 ┆which is also boolean, is define┆
0x086a0…086c0 64 20 62 79 20 74 68 65 20 0a 66 6f 72 6d 75 6c 61 0d 0a 20 20 20 62 31 20 58 4f 52 20 62 32 3d ┆d by the formula b1 XOR b2=┆
0x086c0…086e0 28 62 31 20 41 4e 44 20 4e 4f 54 20 62 32 29 20 4f 52 20 28 4e 4f 54 20 62 31 20 41 4e 44 20 62 ┆(b1 AND NOT b2) OR (NOT b1 AND b┆
0x086e0…08700 32 29 2e 0d 0a 0d 0a 16 73 63 0d 0a 54 68 65 20 54 79 70 65 20 43 68 61 72 0d 0a 54 68 65 20 76 ┆2). sc The Type Char The v┆
0x08700…08720 61 6c 75 65 73 20 6f 66 20 74 79 70 65 20 bf dc d8 63 68 61 72 be 20 61 72 65 20 63 68 61 72 61 ┆alues of type ┐▄пcharЙ are chara┆
0x08720…08740 63 74 65 72 73 20 62 65 6c 6f 6e 67 69 6e 67 20 74 6f 20 61 20 63 68 61 80 72 61 63 74 65 72 20 ┆cters belonging to a chaђracter ┆
0x08740…08760 73 65 74 20 0a 64 65 72 69 76 65 64 20 66 72 6f 6d 20 49 53 4f 2d 36 34 36 20 2f 49 53 4f 20 43 ┆set derived from ISO-646 /ISO C┆
0x08760…08780 68 61 72 2e 53 65 74 2f 2c 20 69 2e 65 2e 20 61 6e 20 41 53 43 49 49 2d 6c 69 6b 65 20 63 68 61 ┆har.Set/, i.e. an ASCII-like cha┆
0x08780…087a0 72 61 63 74 65 72 20 0a 63 6f 64 65 20 73 65 74 2e 0d 0a 0d 0a 54 68 65 20 6f 72 64 69 6e 61 6c ┆racter code set. The ordinal┆
0x087a0…087c0 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 74 79 70 65 20 63 68 61 72 20 73 70 61 6e 20 74 68 ┆ values of the type char span th┆
0x087c0…087e0 65 20 69 6e 74 65 72 76 61 6c 20 30 2e 2e 32 35 35 2e 20 54 68 65 20 6e 6f 6e 2d 0a 67 72 61 70 ┆e interval 0..255. The non- grap┆
0x087e0…08800 68 69 63 20 63 68 61 72 61 63 74 65 72 73 2c 20 77 69 74 68 20 74 68 65 20 6f 72 64 69 6e 61 6c ┆hic characters, with the ordinal┆
0x08800…08820 20 76 61 6c 75 65 73 20 30 2e 2e 33 32 20 61 6e 64 20 31 32 37 2c 20 61 72 65 20 64 65 80 6e 6f ┆ values 0..32 and 127, are deђno┆
0x08820…08840 74 65 64 20 0a 62 79 20 74 68 65 20 70 72 65 64 65 66 69 6e 65 64 20 76 61 6c 75 65 20 6e 61 6d ┆ted by the predefined value nam┆
0x08840…08860 65 73 20 4e 55 4c 2c 20 53 4f 48 2c 20 53 54 58 2c 20 45 54 58 2c 20 45 4f 54 2c 20 45 4e 51 2c ┆es NUL, SOH, STX, ETX, EOT, ENQ,┆
0x08860…08880 20 0a 41 43 4b 2c 20 42 45 4c 2c 20 42 53 2c 20 48 54 2c 20 4c 46 2c 20 56 54 2c 20 46 46 2c 20 ┆ ACK, BEL, BS, HT, LF, VT, FF, ┆
0x08880…088a0 43 52 2c 20 53 4f 2c 20 53 49 2c 20 44 4c 45 2c 20 44 43 31 2c 20 44 43 32 2c 20 44 43 33 2c 20 ┆CR, SO, SI, DLE, DC1, DC2, DC3, ┆
0x088a0…088c0 0a 44 43 34 2c 20 4e 41 4b 2c 20 53 59 4e 2c 20 45 54 42 2c 20 43 41 4e 2c 20 45 4d 2c 20 53 55 ┆ DC4, NAK, SYN, ETB, CAN, EM, SU┆
0x088c0…088e0 42 2c 20 45 53 43 2c 20 46 53 2c 20 47 53 2c 20 52 53 2c 20 55 53 2c 20 53 50 2c 20 61 6e 64 20 ┆B, ESC, FS, GS, RS, US, SP, and ┆
0x088e0…08900 0a 44 45 4c 2e 20 54 68 65 20 63 68 61 72 61 63 74 65 72 73 20 77 69 74 68 20 6f 72 64 69 80 6e ┆ DEL. The characters with ordiђn┆
0x08900…08920 61 6c 20 76 61 6c 75 65 73 20 69 6e 20 74 68 65 20 72 61 6e 67 65 20 33 32 2e 2e 31 32 36 20 61 ┆al values in the range 32..126 a┆
0x08920…08940 72 65 20 0a 67 72 61 70 68 69 63 20 63 68 61 72 61 63 74 65 72 73 20 61 6e 64 20 61 72 65 20 64 ┆re graphic characters and are d┆
0x08940…08960 65 6e 6f 74 65 64 20 62 79 20 63 68 61 72 61 63 74 65 72 20 6c 69 74 65 72 61 6c 73 2c 20 69 2e ┆enoted by character literals, i.┆
0x08960…08980 65 2e 20 74 68 65 20 0a 67 72 61 70 68 69 63 20 73 79 6d 62 6f 6c 20 28 6c 65 74 74 65 72 2c 20 ┆e. the graphic symbol (letter, ┆
0x08980…089a0 64 69 67 69 74 20 65 74 63 2e 29 20 69 6e 20 71 75 65 73 74 69 6f 6e 2c 20 62 65 74 77 65 65 6e ┆digit etc.) in question, between┆
0x089a0…089c0 20 73 69 6e 67 6c 65 20 71 75 80 6f 74 65 73 2e 20 0a 54 68 65 20 73 65 74 20 6f 66 20 61 76 61 ┆ single quђotes. The set of ava┆
0x089c0…089e0 69 6c 61 62 6c 65 20 67 72 61 70 68 69 63 20 63 68 61 72 61 63 74 65 72 73 20 61 6e 64 20 74 68 ┆ilable graphic characters and th┆
0x089e0…08a00 65 20 63 6f 72 80 72 65 73 70 6f 6e 64 69 6e 67 20 6f 72 64 69 6e 61 6c 20 0a 76 61 6c 75 65 73 ┆e corђresponding ordinal values┆
0x08a00…08a20 20 69 73 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 61 6e 64 2f 6f 72 20 69 6e 73 74 61 6c ┆ is implementation and/or instal┆
0x08a20…08a40 6c 61 80 74 69 6f 6e 20 64 65 70 65 6e 80 64 65 6e 74 2e 20 4e 6f 20 6e 6f 74 61 74 69 6f 6e 20 ┆laђtion depenђdent. No notation ┆
0x08a40…08a60 0a 65 78 69 73 74 73 20 66 6f 72 20 63 68 61 72 61 63 74 65 72 73 20 77 69 74 68 20 6f 72 80 64 ┆ exists for characters with orђd┆
0x08a60…08a80 69 6e 61 6c 20 76 61 6c 75 65 73 20 69 6e 20 74 68 65 20 72 61 6e 67 65 20 31 32 38 2e 2e 32 35 ┆inal values in the range 128..25┆
0x08a80…08aa0 35 2e 0d 0a 0d 0a 8c 96 90 0a 54 68 65 20 67 72 61 70 68 69 63 20 63 68 61 72 61 63 74 65 72 20 ┆5. їќљ The graphic character ┆
0x08aa0…08ac0 73 79 6d 62 6f 6c 73 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 61 6e 20 69 6d 70 6c 65 6d 65 6e ┆symbols supported by an implemen┆
0x08ac0…08ae0 74 61 80 74 69 6f 80 6e 2f 80 69 6e 73 74 61 6c 80 0a 6c 61 74 69 6f 6e 20 6d 61 79 20 61 6c 73 ┆taђtioђn/ђinstalђ lation may als┆
0x08ae0…08b00 6f 20 62 65 20 75 73 65 64 20 69 6e 20 63 68 61 72 61 63 74 65 72 20 73 74 72 69 6e 67 73 20 28 ┆o be used in character strings (┆
0x08b00…08b20 63 66 2e 20 73 75 62 73 65 63 74 69 6f 6e 20 33 2e 38 2e 34 29 2e 0d 0a 0d 0a 54 68 65 72 65 20 ┆cf. subsection 3.8.4). There ┆
0x08b20…08b40 65 78 69 73 74 73 20 61 20 70 72 65 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 ┆exists a predefined function whi┆
0x08b40…08b60 63 68 20 79 69 65 6c 64 73 20 61 20 63 68 61 72 61 63 74 65 72 20 72 65 80 73 75 6c 74 3a 0d 0a ┆ch yields a character reђsult: ┆
0x08b60…08b80 0d 0a 46 55 4e 43 54 49 4f 4e 20 bf dc d8 63 68 72 be 28 6e 3a 20 62 79 74 65 29 3a 20 63 68 61 ┆ FUNCTION ┐▄пchrЙ(n: byte): cha┆
0x08b80…08ba0 72 0d 0a 0d 0a 54 68 65 20 72 65 73 75 6c 74 20 6f 66 20 61 20 63 61 6c 6c 20 6f 66 20 63 68 72 ┆r The result of a call of chr┆
0x08ba0…08bc0 20 69 73 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 77 68 6f 73 65 20 6f 72 64 69 6e 61 6c 20 ┆ is the character whose ordinal ┆
0x08bc0…08be0 76 61 6c 75 65 20 65 71 75 80 0a 61 6c 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 ┆value equђ als the value of the ┆
0x08be0…08c00 70 61 72 61 6d 65 74 65 72 20 6e 2e 0d 0a 0d 0a 0e 0a a1 45 78 61 6d 70 6c 65 3a 0d 0a 43 4f 4e ┆parameter n. АExample: CON┆
0x08c00…08c20 53 54 20 20 73 69 6e 67 6c 65 5f 71 75 6f 74 65 3d 27 27 27 3b 0d 0a 54 59 50 45 20 20 20 73 6d ┆ST single_quote='''; TYPE sm┆
0x08c20…08c40 61 6c 6c 5f 6c 65 74 74 65 72 3d 27 61 27 2e 2e 27 7a 27 0d 0a 0f 0a 16 73 63 0d 0a 54 68 65 20 ┆all_letter='a'..'z' sc The ┆
0x08c40…08c60 54 79 70 65 20 49 6e 74 65 67 65 72 0d 0a 54 68 65 20 76 61 6c 75 65 73 20 6f 66 20 74 79 70 65 ┆Type Integer The values of type┆
0x08c60…08c80 20 bf dc d8 69 6e 74 65 67 65 72 be 20 61 72 65 20 69 6e 74 65 67 72 61 6c 20 6e 75 6d 62 65 72 ┆ ┐▄пintegerЙ are integral number┆
0x08c80…08ca0 73 2e 20 54 68 65 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 65 20 6f 66 20 0a 73 75 63 68 20 61 20 ┆s. The ordinal value of such a ┆
0x08ca0…08cc0 6e 75 6d 62 65 72 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 69 74 73 65 6c 66 2e 20 54 68 65 ┆number is the number itself. The┆
0x08cc0…08ce0 20 72 61 6e 67 65 20 6f 66 20 74 68 65 20 74 79 70 65 20 69 6e 74 65 67 65 72 2c 20 0a 69 2e 65 ┆ range of the type integer, i.e┆
0x08ce0…08d00 2e 20 74 68 65 20 69 6e 74 65 72 76 61 6c 20 73 70 61 6e 6e 65 64 20 62 79 20 69 74 73 20 76 61 ┆. the interval spanned by its va┆
0x08d00…08d20 6c 75 65 73 20 69 73 20 69 6d 70 6c 65 6d 65 6e 80 74 61 74 69 6f 6e 20 64 65 70 65 6e 64 65 6e ┆lues is implemenђtation dependen┆
0x08d20…08d40 74 2e 20 41 73 20 0a 61 20 6e 61 74 75 72 61 6c 20 65 78 74 65 6e 73 69 6f 6e 20 6f 66 20 74 68 ┆t. As a natural extension of th┆
0x08d40…08d60 65 20 6c 61 6e 80 67 75 61 67 65 2c 20 64 6f 75 62 6c 65 20 6c 65 6e 67 74 68 20 69 6e 74 65 67 ┆e lanђguage, double length integ┆
0x08d60…08d80 65 72 73 2c 20 6d 61 79 20 62 65 20 0a 73 75 70 70 6f 72 74 65 64 20 62 79 20 61 6e 20 69 6d 70 ┆ers, may be supported by an imp┆
0x08d80…08da0 6c 65 80 6d 65 6e 74 61 74 69 6f 6e 2c 20 61 73 20 61 20 74 79 70 65 20 6e 61 6d 65 64 20 bf dc ┆leђmentation, as a type named ┐▄┆
0x08da0…08dc0 d8 a0 64 6f 75 62 6c 65 e0 be 2c 20 77 69 74 68 20 74 68 65 20 0a 73 61 6d 65 20 6f 70 65 72 61 ┆паdoubleЯЙ, with the same opera┆
0x08dc0…08de0 74 69 6f 6e 73 20 61 73 20 66 6f 72 20 74 68 65 20 74 79 70 65 20 69 6e 80 74 65 67 65 72 2e 20 ┆tions as for the type inђteger. ┆
0x08de0…08e00 50 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 73 20 61 72 65 20 0a 64 65 6e ┆Positive integer values are den┆
0x08e00…08e20 6f 74 65 64 20 62 79 20 69 6e 74 65 67 65 72 20 6e 75 6d 62 65 72 73 2c 20 63 66 2e 20 73 65 63 ┆oted by integer numbers, cf. sec┆
0x08e20…08e40 74 69 6f 6e 20 32 2e 34 2e 0d 0a 0d 0a 54 68 65 72 65 20 61 72 65 20 74 65 6e 20 64 79 61 64 69 ┆tion 2.4. There are ten dyadi┆
0x08e40…08e60 63 20 6f 70 65 72 61 74 6f 72 73 20 77 68 69 63 68 20 74 61 6b 65 20 69 6e 74 65 67 65 72 20 6f ┆c operators which take integer o┆
0x08e60…08e80 70 65 72 61 6e 64 73 20 61 6e 64 20 70 72 6f 80 0a 64 75 63 65 20 69 6e 74 65 67 65 72 20 72 65 ┆perands and proђ duce integer re┆
0x08e80…08ea0 73 75 6c 74 73 3a 0d 0a 0d 0a 0e 0a a1 20 20 20 20 6f 70 65 72 61 74 6f 72 09 64 65 73 63 72 69 ┆sults: А operator descri┆
0x08ea0…08ec0 70 74 69 6f 6e 05 5f 0d 0a 09 2b 09 61 64 64 69 74 69 6f 6e 0d 0a 09 2d 09 73 75 62 74 72 61 63 ┆ption _ + addition - subtrac┆
0x08ec0…08ee0 74 69 6f 6e 0d 0a 09 2a 09 6d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 0d 0a 09 44 49 56 09 69 6e ┆tion * multiplication DIV in┆
0x08ee0…08f00 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 20 28 71 75 6f 74 69 65 6e 74 20 74 72 75 6e 63 61 74 ┆teger division (quotient truncat┆
0x08f00…08f20 65 64 20 74 6f 77 61 72 64 20 7a 65 72 6f 29 0d 0a 09 4d 4f 44 09 72 65 6d 61 69 6e 64 65 72 20 ┆ed toward zero) MOD remainder ┆
0x08f20…08f40 6f 66 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 2c 20 69 2e 65 2e 0d 0a 09 09 61 20 4d ┆of integer division, i.e. a M┆
0x08f40…08f60 4f 44 20 62 20 3d 20 61 2d 62 2a 28 61 20 44 49 56 20 62 29 0d 0a 09 41 4e 44 09 62 69 74 77 69 ┆OD b = a-b*(a DIV b) AND bitwi┆
0x08f60…08f80 73 65 20 6c 6f 67 69 63 61 6c 20 61 6e 64 0d 0a 09 4f 52 09 62 69 74 77 69 73 65 20 6c 6f 67 69 ┆se logical and OR bitwise logi┆
0x08f80…08fa0 63 61 6c 20 6f 72 0d 0a 09 58 4f 52 09 62 69 74 77 69 73 65 20 65 78 63 6c 75 73 69 76 65 20 6f ┆cal or XOR bitwise exclusive o┆
0x08fa0…08fc0 72 0d 0a 09 4e 4f 54 09 62 69 74 77 69 73 65 20 6e 65 67 61 74 69 6f 6e 20 28 6f 6e 65 27 73 20 ┆r NOT bitwise negation (one's ┆
0x08fc0…08fe0 63 6f 6d 70 6c 65 6d 65 6e 74 29 0d 0a 09 53 48 49 46 54 09 84 62 69 74 77 69 73 65 20 6c 6f 67 ┆complement) SHIFT ёbitwise log┆
0x08fe0…09000 69 63 61 6c 20 73 68 69 66 74 20 74 6f 77 61 72 64 20 6d 6f 72 65 20 73 69 67 6e 69 66 69 63 61 ┆ical shift toward more significa┆
0x09000…09020 6e 74 20 70 6f 80 73 69 74 69 6f 6e 73 0d 0a 0d 0a 0d 0a 0f 0a 8c 87 a8 0a 2b 20 61 6e 64 20 2d ┆nt poђsitions їЄе + and -┆
0x09020…09040 20 6d 61 79 20 61 6c 73 6f 20 62 65 20 75 73 65 64 20 61 73 20 6d 6f 6e 61 64 69 63 20 6f 70 65 ┆ may also be used as monadic ope┆
0x09040…09060 72 61 74 6f 72 73 2c 20 69 6d 70 6c 79 69 6e 67 20 61 6e 20 69 6d 80 70 6c 69 63 69 74 20 0a 6c ┆rators, implying an imђplicit l┆
0x09060…09080 65 66 74 20 6f 70 65 72 61 6e 64 20 77 69 74 68 20 76 61 6c 75 65 20 30 2e 20 57 68 65 6e 20 74 ┆eft operand with value 0. When t┆
0x09080…090a0 68 65 20 72 65 73 75 6c 74 20 70 72 6f 64 75 63 65 64 20 62 79 20 61 6e 20 61 72 69 74 68 6d 65 ┆he result produced by an arithme┆
0x090a0…090c0 74 69 63 20 0a 6f 70 65 72 61 74 69 6f 6e 20 66 61 6c 6c 73 20 6f 75 74 73 69 64 65 20 74 68 65 ┆tic operation falls outside the┆
0x090c0…090e0 20 72 61 6e 67 65 20 6f 66 20 69 6e 74 65 80 67 65 72 20 76 61 6c 75 65 73 20 73 75 70 70 6f 72 ┆ range of inteђger values suppor┆
0x090e0…09100 74 65 64 20 62 79 20 74 68 65 20 0a 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 61 20 66 61 75 ┆ted by the implementation a fau┆
0x09100…09120 6c 74 20 6f 63 63 75 72 73 2e 0d 0a 0d 0a 54 68 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 ┆lt occurs. The result of the ┆
0x09120…09140 70 72 65 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 62 73 3a 0d 0a 0d 0a 46 55 4e 43 ┆predefined function abs: FUNC┆
0x09140…09160 54 49 4f 4e 20 bf dc d8 61 62 73 be 28 6e 3a 20 69 6e 74 65 67 65 72 29 3a 20 30 2e 2e 6d 61 78 ┆TION ┐▄пabsЙ(n: integer): 0..max┆
0x09160…09180 69 6e 74 0d 0a 0d 0a 69 73 20 74 68 65 20 61 62 73 6f 6c 75 74 65 20 76 61 6c 75 65 20 6f 66 20 ┆int is the absolute value of ┆
0x09180…091a0 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 76 61 6c 75 65 2e 20 49 66 20 74 68 69 73 20 76 61 6c ┆the parameter value. If this val┆
0x091a0…091c0 75 65 20 66 61 6c 6c 73 20 6f 75 74 73 69 80 0a 64 65 20 74 68 65 20 73 75 70 70 6f 72 74 65 64 ┆ue falls outsiђ de the supported┆
0x091c0…091e0 20 72 61 6e 67 65 20 74 68 65 20 63 61 6c 6c 20 63 61 75 73 65 73 20 61 20 66 61 75 6c 74 2e 0d ┆ range the call causes a fault. ┆
0x091e0…09200 0a 0d 0a 54 68 65 72 65 20 61 72 65 20 70 72 65 64 65 66 69 6e 65 64 20 70 72 6f 63 65 64 75 72 ┆ There are predefined procedur┆
0x09200…09220 65 73 20 74 6f 20 69 6e 63 72 65 6d 65 6e 74 20 61 6e 64 20 64 65 63 72 65 6d 65 6e 74 20 76 61 ┆es to increment and decrement va┆
0x09220…09240 80 72 69 61 62 6c 65 73 20 0a 6f 66 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 28 62 79 20 31 20 ┆ђriables of integer type (by 1 ┆
0x09240…09260 6d 6f 64 75 6c 6f 20 32 81 31 36 82 29 3a 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 69 ┆modulo 2Ђ16ѓ): PROCEDURE ┐▄пi┆
0x09260…09280 6e 63 be 28 56 41 52 20 76 3a 20 69 6e 74 65 67 65 72 29 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf ┆ncЙ(VAR v: integer) PROCEDURE ┐┆
0x09280…092a0 dc d8 64 65 63 be 28 56 41 52 20 76 3a 20 69 6e 74 65 67 65 72 29 0d 0a 0d 0a 54 68 65 20 70 72 ┆▄пdecЙ(VAR v: integer) The pr┆
0x092a0…092c0 65 64 65 66 69 6e 65 64 20 76 61 6c 75 65 20 6e 61 6d 65 73 20 6d 61 78 69 6e 74 20 61 6e 64 20 ┆edefined value names maxint and ┆
0x092c0…092e0 6d 69 6e 69 6e 74 20 64 65 6e 6f 74 65 20 74 68 65 20 6c 61 72 80 67 65 73 74 20 61 6e 64 20 0a ┆minint denote the larђgest and ┆
0x092e0…09300 74 68 65 20 73 6d 61 6c 6c 65 73 74 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 2c 20 72 65 73 70 ┆the smallest integer value, resp┆
0x09300…09320 65 63 74 69 76 65 6c 79 2c 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 65 20 69 6d 70 6c 65 ┆ectively, supported by the imple┆
0x09320…09340 6d 65 6e 74 61 80 0a 74 69 6f 6e 2e 0d 0a 16 73 63 0d 0a 45 6e 75 6d 65 72 61 74 69 6f 6e 20 54 ┆mentaђ tion. sc Enumeration T┆
0x09340…09360 79 70 65 73 0d 0a 41 6e 20 bf dc d8 65 6e 75 6d 65 72 61 74 69 6f 6e 20 74 79 70 65 be 20 69 73 ┆ypes An ┐▄пenumeration typeЙ is┆
0x09360…09380 20 64 65 66 69 6e 65 64 20 62 79 20 65 78 70 6c 69 63 69 74 6c 79 20 6e 61 6d 69 6e 67 20 69 74 ┆ defined by explicitly naming it┆
0x09380…093a0 73 20 76 61 80 6c 75 65 73 3a 0d 0a 16 6d 61 20 73 79 6e 64 69 61 32 31 0d 0a 54 68 65 20 6e 61 ┆s vaђlues: ma syndia21 The na┆
0x093a0…093c0 6d 65 73 2c 20 61 74 20 6c 65 61 73 74 20 74 77 6f 2c 20 67 69 76 65 6e 20 69 6e 20 74 68 65 20 ┆mes, at least two, given in the ┆
0x093c0…093e0 64 65 66 69 6e 69 74 69 6f 6e 20 61 72 65 20 75 73 65 64 20 74 6f 20 64 65 6e 6f 74 65 20 0a 74 ┆definition are used to denote t┆
0x093e0…09400 68 65 20 76 61 80 6c 75 65 73 20 6f 66 20 74 68 65 20 74 79 70 65 20 74 68 75 73 20 64 65 66 69 ┆he vaђlues of the type thus defi┆
0x09400…09420 6e 65 64 2e 20 43 6f 6e 73 69 64 65 72 20 61 6e 20 65 6e 75 6d 65 72 61 74 69 6f 6e 20 74 79 80 ┆ned. Consider an enumeration tyђ┆
0x09420…09440 70 65 20 0a 64 65 66 69 6e 65 64 20 61 73 20 28 65 82 30 81 2c 20 65 82 31 81 2c 20 2e 2e 2e 2c ┆pe defined as (eѓ0Ђ, eѓ1Ђ, ...,┆
0x09440…09460 20 65 82 6e 81 29 2e 20 54 68 69 73 20 74 79 70 65 20 68 61 73 20 70 72 65 63 69 73 65 6c 79 20 ┆ eѓnЂ). This type has precisely ┆
0x09460…09480 6e 2b 31 20 64 69 73 74 69 6e 63 74 20 76 61 6c 75 65 73 20 0a 77 69 74 68 20 6f 72 64 69 6e 61 ┆n+1 distinct values with ordina┆
0x09480…094a0 6c 20 76 61 6c 75 65 73 20 69 6e 20 74 68 65 20 69 6e 74 65 72 76 61 6c 20 30 2e 2e 6e 2e 20 54 ┆l values in the interval 0..n. T┆
0x094a0…094c0 68 65 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 65 20 63 6f 72 80 0a 72 65 73 70 6f 6e 64 69 6e 67 ┆he ordinal value corђ responding┆
0x094c0…094e0 20 74 6f 20 65 82 69 81 20 69 73 20 69 2c 20 66 6f 72 20 69 3d 30 2c 20 31 2c 20 2e 2e 2e 2c 20 ┆ to eѓiЂ is i, for i=0, 1, ..., ┆
0x094e0…09500 6e 2e 0d 0a 0d 0a 0e 0a a1 45 78 61 6d 70 6c 65 3a 0d 0a 54 59 50 45 20 20 63 6f 6c 6f 75 72 73 ┆n. АExample: TYPE colours┆
0x09500…09520 3d 20 28 72 65 64 2c 20 62 6c 75 65 2c 20 67 72 65 65 6e 2c 20 79 65 6c 6c 6f 77 2c 20 70 69 6e ┆= (red, blue, green, yellow, pin┆
0x09520…09540 6b 29 0d 0a 0f 0a 16 73 63 0d 0a 53 75 62 72 61 6e 67 65 20 54 79 70 65 73 0d 0a 16 73 6f 20 73 ┆k) sc Subrange Types so s┆
0x09540…09560 75 62 72 61 6e 67 65 20 74 79 70 65 0d 0a 41 20 73 75 62 72 61 6e 67 65 20 73 70 65 63 69 66 69 ┆ubrange type A subrange specifi┆
0x09560…09580 65 73 20 61 20 74 79 70 65 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 61 6e 20 65 78 69 ┆es a type compatible with an exi┆
0x09580…095a0 73 74 69 6e 67 20 74 79 80 70 65 2c 20 62 75 74 20 0a 77 69 74 68 20 61 20 63 6f 6e 73 74 72 61 ┆sting tyђpe, but with a constra┆
0x095a0…095c0 69 6e 65 64 20 72 61 6e 67 65 20 6f 66 20 76 61 6c 75 65 73 3a 0d 0a 16 6d 61 20 73 79 6e 64 69 ┆ined range of values: ma syndi┆
0x095c0…095e0 61 32 32 0d 0a 54 68 65 20 6c 6f 77 65 72 20 61 6e 64 20 75 70 70 65 72 20 62 6f 75 6e 64 20 65 ┆a22 The lower and upper bound e┆
0x095e0…09600 78 70 72 65 73 73 69 6f 6e 73 20 6d 75 73 74 20 62 65 20 6f 66 20 74 68 65 20 73 61 6d 65 20 6f ┆xpressions must be of the same o┆
0x09600…09620 72 80 64 69 6e 61 6c 20 0a 74 79 70 65 2c 20 63 61 6c 6c 65 64 20 74 68 65 20 a0 62 61 73 65 20 ┆rђdinal type, called the аbase ┆
0x09620…09640 74 79 70 65 e0 20 6f 66 20 74 68 65 20 64 65 66 69 6e 65 64 20 73 75 62 72 61 6e 67 65 20 74 79 ┆typeЯ of the defined subrange ty┆
0x09640…09660 70 65 2e 20 54 68 65 20 62 6f 75 6e 64 73 20 0a 61 72 65 20 65 76 61 6c 75 61 74 65 64 20 77 68 ┆pe. The bounds are evaluated wh┆
0x09660…09680 65 6e 20 74 68 65 20 73 75 62 72 61 6e 67 65 20 74 79 70 65 20 69 73 20 65 73 74 61 62 6c 69 73 ┆en the subrange type is establis┆
0x09680…096a0 68 65 64 2e 0d 0a 0d 0a 49 66 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 6f 72 64 28 75 70 70 65 ┆hed. If the value of ord(uppe┆
0x096a0…096c0 72 20 62 6f 75 6e 64 29 2d 6f 72 64 28 6c 6f 77 65 72 20 62 6f 75 6e 64 29 2b 31 20 69 73 20 67 ┆r bound)-ord(lower bound)+1 is g┆
0x096c0…096e0 72 65 61 80 74 65 72 20 74 68 61 6e 20 0a 7a 65 72 6f 20 74 68 69 73 20 69 73 20 74 68 65 20 6e ┆reaђter than zero this is the n┆
0x096e0…09700 75 6d 62 65 72 20 6f 66 20 65 6c 65 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 76 61 6c 75 65 20 73 ┆umber of elements in the value s┆
0x09700…09720 65 74 20 6f 66 20 74 68 65 20 73 75 62 72 61 6e 67 65 2c 20 0a 6f 74 68 65 72 77 69 73 65 20 74 ┆et of the subrange, otherwise t┆
0x09720…09740 68 65 20 73 75 62 72 61 6e 67 65 20 69 73 20 65 6d 70 74 79 2e 0d 0a 0d 0a 8c 87 f0 0a 54 68 65 ┆he subrange is empty. їЄ The┆
0x09740…09760 20 73 61 6d 65 20 73 65 74 20 6f 66 20 6f 70 65 72 61 74 6f 72 73 20 61 6e 64 20 70 72 65 64 65 ┆ same set of operators and prede┆
0x09760…09780 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 61 70 70 6c 79 20 74 6f 20 76 61 6c 75 65 73 20 ┆fined functions apply to values ┆
0x09780…097a0 6f 66 20 0a 74 68 65 20 73 75 62 72 61 6e 67 65 20 74 79 70 65 20 61 73 20 74 6f 20 76 61 6c 75 ┆of the subrange type as to valu┆
0x097a0…097c0 65 73 20 6f 66 20 74 68 65 20 62 61 73 65 20 74 79 70 65 2c 20 62 75 74 20 6f 62 6a 65 63 74 73 ┆es of the base type, but objects┆
0x097c0…097e0 20 6f 66 20 74 68 65 20 0a 73 75 62 72 61 6e 67 65 20 74 79 70 65 20 61 72 65 20 63 6f 6e 73 74 ┆ of the subrange type are const┆
0x097e0…09800 72 61 69 6e 65 64 20 74 6f 20 61 73 73 75 6d 65 20 76 61 6c 75 65 73 20 69 6e 20 74 68 65 20 72 ┆rained to assume values in the r┆
0x09800…09820 61 6e 67 65 20 62 65 74 77 65 65 6e 20 0a 74 68 65 20 6c 6f 77 65 72 20 61 6e 64 20 75 70 70 65 ┆ange between the lower and uppe┆
0x09820…09840 72 20 62 6f 75 6e 64 20 76 61 6c 75 65 73 20 28 69 6e 63 6c 75 73 69 76 65 80 6c 79 29 2e 0d 0a ┆r bound values (inclusiveђly). ┆
0x09840…09860 0d 0a 54 68 65 72 65 20 69 73 20 6f 6e 65 20 70 72 65 64 65 66 69 6e 65 64 20 73 75 62 72 61 6e ┆ There is one predefined subran┆
0x09860…09880 67 65 20 74 79 70 65 2c 20 76 69 7a 2e 20 bf dc d8 a0 62 79 74 65 e0 be 2c 20 64 65 66 69 6e 65 ┆ge type, viz. ┐▄паbyteЯЙ, define┆
0x09880…098a0 64 20 61 73 3a 0d 0a 0d 0a 62 79 74 65 3d 20 30 2e 2e 32 35 35 0d 0a 0d 0a 54 68 65 72 65 20 61 ┆d as: byte= 0..255 There a┆
0x098a0…098c0 72 65 20 70 72 65 64 65 66 69 6e 65 64 20 70 72 6f 63 65 64 75 72 65 73 20 74 6f 20 69 6e 63 72 ┆re predefined procedures to incr┆
0x098c0…098e0 65 6d 65 6e 74 20 61 6e 64 20 64 65 63 72 65 6d 65 6e 74 20 76 61 80 72 69 61 62 6c 65 73 20 0a ┆ement and decrement vaђriables ┆
0x098e0…09900 6f 66 20 62 79 74 65 20 74 79 70 65 20 28 62 79 20 31 20 6d 6f 64 75 6c 6f 20 32 35 36 29 3a 0d ┆of byte type (by 1 modulo 256): ┆
0x09900…09920 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 69 6e 63 be 28 56 41 52 20 76 3a 20 62 79 74 65 ┆ PROCEDURE ┐▄пincЙ(VAR v: byte┆
0x09920…09940 29 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 64 65 63 be 28 56 41 52 20 76 3a 20 62 79 74 65 ┆) PROCEDURE ┐▄пdecЙ(VAR v: byte┆
0x09940…09960 29 0d 0a 0d 0a 0e 0a a1 4e 6f 74 65 e1 3a 0d 0a 41 20 73 75 62 72 61 6e 67 65 20 64 65 66 69 6e ┆) АNoteр: A subrange defin┆
0x09960…09980 69 74 69 6f 6e 20 69 73 20 74 68 65 20 6f 6e 6c 79 20 70 6c 61 63 65 20 77 68 65 72 65 20 61 6e ┆ition is the only place where an┆
0x09980…099a0 20 65 78 70 72 65 73 73 69 6f 6e 20 63 61 6e 20 6f 63 63 75 72 20 0a 69 6e 20 61 20 74 79 70 65 ┆ expression can occur in a type┆
0x099a0…099c0 20 64 65 66 69 6e 69 74 69 6f 6e 2e 20 54 68 75 73 20 61 6c 6c 20 bf dc d8 64 79 6e 61 6d 69 63 ┆ definition. Thus all ┐▄пdynamic┆
0x099c0…099e0 be 20 74 79 70 65 73 20 61 72 65 20 62 75 69 6c 74 20 66 72 6f 6d 20 73 75 62 72 61 6e 67 65 73 ┆Й types are built from subranges┆
0x099e0…09a00 2e 20 0a 43 6f 6e 76 65 72 73 65 6c 79 2c 20 69 66 20 61 6c 6c 20 65 78 70 72 65 73 73 69 6f 6e ┆. Conversely, if all expression┆
0x09a00…09a20 73 20 69 6e 20 74 68 65 20 73 75 62 72 61 6e 67 65 20 64 65 66 69 6e 69 80 74 69 6f 6e 73 20 6f ┆s in the subrange definiђtions o┆
0x09a20…09a40 66 20 61 20 74 79 70 65 20 64 65 80 0a 66 69 6e 69 74 69 6f 6e 20 61 72 65 20 63 6f 6e 73 74 61 ┆f a type deђ finition are consta┆
0x09a40…09a60 6e 74 20 65 78 80 70 72 65 73 73 69 6f 6e 73 2c 20 74 68 65 6e 20 74 68 65 20 64 65 80 66 69 6e ┆nt exђpressions, then the deђfin┆
0x09a60…09a80 65 64 20 74 79 70 65 20 69 73 20 bf dc d8 73 74 61 74 69 63 be 2e 0d 0a 0f 0a 0d 0a 0e 0a a1 45 ┆ed type is ┐▄пstaticЙ. АE┆
0x09a80…09aa0 78 61 6d 70 6c 65 e1 3a 0d 0a 54 59 50 45 0d 0a 20 20 70 6f 73 5f 69 6e 74 3d 20 30 2e 2e 6d 61 ┆xampleр: TYPE pos_int= 0..ma┆
0x09aa0…09ac0 78 69 6e 74 3b 0d 0a 20 20 6e 65 67 5f 69 6e 74 3d 20 6d 69 6e 69 6e 74 2e 2e 2d 31 3b 0d 0a 20 ┆xint; neg_int= minint..-1; ┆
0x09ac0…09ae0 20 63 6f 64 65 73 3d 20 28 6e 6f 63 6f 64 65 2c 20 2e 2e 2e 2c 20 64 75 6d 6d 79 5f 6c 61 73 74 ┆ codes= (nocode, ..., dummy_last┆
0x09ae0…09b00 5f 63 6f 64 65 29 3b 0d 0a 20 20 63 6f 6e 76 5f 74 61 62 6c 65 3d 20 41 52 52 41 59 28 73 75 63 ┆_code); conv_table= ARRAY(suc┆
0x09b00…09b20 63 28 6e 6f 63 6f 64 65 29 2e 2e 70 72 65 64 28 64 75 6d 6d 79 5f 6c 61 73 74 5f 63 6f 64 65 29 ┆c(nocode)..pred(dummy_last_code)┆
0x09b20…09b40 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 46 20 63 6f 64 65 73 0d 0a 0f 0a 16 73 62 ┆) OF codes sb┆
0x09b40…09b60 0d 0a 53 65 74 20 54 79 70 65 73 0d 0a 8c 85 b8 0a 54 68 65 20 73 65 74 20 6f 66 20 76 61 6c 75 ┆ Set Types їЁИ The set of valu┆
0x09b60…09b80 65 73 20 6f 66 20 61 20 bf dc d8 73 65 74 20 74 79 70 65 be 20 69 73 20 74 68 65 20 70 6f 77 65 ┆es of a ┐▄пset typeЙ is the powe┆
0x09b80…09ba0 72 20 73 65 74 20 6f 66 20 74 68 65 20 73 65 74 20 6f 66 20 76 61 6c 75 65 73 20 0a 6f 66 20 73 ┆r set of the set of values of s┆
0x09ba0…09bc0 6f 6d 65 20 6f 72 64 69 6e 61 6c 20 74 79 70 65 2c 20 63 61 6c 6c 65 64 20 74 68 65 20 65 6c 65 ┆ome ordinal type, called the ele┆
0x09bc0…09be0 6d 65 6e 74 20 74 79 70 65 20 6f 66 20 74 68 65 20 73 65 74 20 74 79 70 65 2e 20 54 68 65 20 0a ┆ment type of the set type. The ┆
0x09be0…09c00 61 76 61 69 6c 61 62 6c 65 20 6f 70 65 72 61 74 6f 72 73 20 66 6f 72 20 73 65 74 73 20 63 6f 72 ┆available operators for sets cor┆
0x09c00…09c20 72 65 73 70 6f 6e 64 20 74 6f 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 6f 70 65 72 61 74 6f 72 ┆respond to the standard operator┆
0x09c20…09c40 73 20 6f 66 20 0a 6d 61 74 68 65 6d 61 74 69 63 61 6c 20 73 65 74 20 74 68 65 6f 72 79 2e 0d 0a ┆s of mathematical set theory. ┆
0x09c40…09c60 16 6d 61 20 73 79 6e 64 69 61 33 32 0d 0a 54 68 65 20 63 6f 6d 6d 6f 6e 20 74 79 70 65 20 73 70 ┆ ma syndia32 The common type sp┆
0x09c60…09c80 65 63 69 66 69 63 61 74 69 6f 6e 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 65 6c 65 6d 65 6e ┆ecification specifies the elemen┆
0x09c80…09ca0 74 20 74 79 70 65 20 77 68 69 63 68 20 6d 75 73 74 20 0a 62 65 20 61 6e 20 6f 72 64 69 6e 61 6c ┆t type which must be an ordinal┆
0x09ca0…09cc0 20 74 79 70 65 2e 0d 0a 0d 0a 56 61 6c 75 65 73 20 6f 66 20 73 65 74 20 74 79 70 65 73 20 61 72 ┆ type. Values of set types ar┆
0x09cc0…09ce0 65 20 64 65 6e 6f 74 65 64 20 62 79 20 6c 69 73 74 73 20 6f 66 20 73 65 74 20 65 6c 65 6d 65 6e ┆e denoted by lists of set elemen┆
0x09ce0…09d00 74 73 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 38 30 0d 0a 16 6d 61 20 73 79 6e 64 69 61 38 31 0d ┆ts. ma syndia80 ma syndia81 ┆
0x09d00…09d20 0a 41 6c 6c 20 65 78 70 72 65 73 73 69 6f 6e 73 20 6f 63 63 75 72 72 69 6e 67 20 69 6e 20 61 20 ┆ All expressions occurring in a ┆
0x09d20…09d40 27 73 65 74 20 64 65 6e 6f 74 61 74 69 6f 6e 27 20 6d 75 73 74 20 62 65 20 6f 66 20 74 68 65 20 ┆'set denotation' must be of the ┆
0x09d40…09d60 73 61 6d 65 20 0a 6f 72 64 69 6e 61 6c 20 74 79 70 65 2e 20 54 68 65 20 74 79 70 65 20 6f 66 20 ┆same ordinal type. The type of ┆
0x09d60…09d80 74 68 65 20 27 73 65 74 20 64 65 6e 6f 74 61 74 69 6f 6e 27 20 69 73 20 61 20 73 65 74 20 74 79 ┆the 'set denotation' is a set ty┆
0x09d80…09da0 80 70 65 20 77 68 6f 73 65 20 0a 65 6c 65 6d 65 6e 74 20 74 79 70 65 20 69 73 20 74 68 65 20 74 ┆ђpe whose element type is the t┆
0x09da0…09dc0 79 70 65 20 6f 66 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 0d 0a 0d 0a 54 68 65 20 76 ┆ype of the expressions. The v┆
0x09dc0…09de0 61 6c 75 65 20 6f 66 20 61 20 27 73 65 74 20 64 65 6e 6f 74 61 74 69 6f 6e 27 20 69 73 20 65 76 ┆alue of a 'set denotation' is ev┆
0x09de0…09e00 61 6c 75 61 74 65 64 20 62 79 20 65 76 61 6c 75 61 74 69 6e 67 20 61 6c 6c 20 74 68 65 20 0a 65 ┆aluated by evaluating all the e┆
0x09e00…09e20 78 70 72 65 73 73 69 6f 6e 73 2e 20 54 68 65 69 72 20 76 61 6c 75 65 73 20 64 65 74 65 72 6d 69 ┆xpressions. Their values determi┆
0x09e20…09e40 6e 65 20 74 68 65 20 6d 65 6d 62 65 72 73 20 6f 66 20 74 68 65 20 73 65 74 20 76 61 6c 75 65 2e ┆ne the members of the set value.┆
0x09e40…09e60 20 0a 57 68 65 6e 20 61 6e 20 27 65 6c 65 6d 65 6e 74 20 69 6e 74 65 72 76 61 6c 27 20 6f 63 63 ┆ When an 'element interval' occ┆
0x09e60…09e80 75 72 73 20 61 6c 6c 20 76 61 6c 75 65 73 20 69 6e 20 74 68 65 20 63 6c 6f 73 65 64 20 69 6e 74 ┆urs all values in the closed int┆
0x09e80…09ea0 65 72 76 61 6c 20 0a 66 72 6f 6d 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 27 6c 6f 77 65 72 5f ┆erval from the value of 'lower_┆
0x09ea0…09ec0 65 78 70 72 65 73 73 69 6f 6e 27 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 27 75 70 70 ┆expression' to the value of 'upp┆
0x09ec0…09ee0 65 72 5f 65 78 70 72 65 73 80 0a 73 69 6f 6e 27 20 61 72 65 20 6d 65 6d 62 65 72 73 2e 20 49 66 ┆er_expresђ sion' are members. If┆
0x09ee0…09f00 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 27 6c 6f 77 65 72 2d 65 78 70 72 65 73 80 73 69 6f 6e ┆ the value of 'lower-expresђsion┆
0x09f00…09f20 27 20 69 73 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 0a 74 68 65 20 76 61 6c 75 65 20 6f 66 20 ┆' is greater than the value of ┆
0x09f20…09f40 27 75 70 70 65 72 2d 65 78 70 72 65 73 73 69 6f 6e 27 20 74 68 65 20 69 6e 74 65 72 76 61 6c 20 ┆'upper-expression' the interval ┆
0x09f40…09f60 69 73 20 65 6d 70 74 79 2e 0d 0a 0d 0a 57 68 65 6e 20 6e 6f 20 65 78 70 72 65 73 73 69 6f 6e 73 ┆is empty. When no expressions┆
0x09f60…09f80 20 61 72 65 20 70 72 65 73 65 6e 74 20 69 6e 20 61 20 27 73 65 74 20 64 65 6e 6f 74 61 74 69 6f ┆ are present in a 'set denotatio┆
0x09f80…09fa0 6e 27 2c 20 69 2e 65 2e 20 28 2e 2e 29 2c 20 74 68 65 20 0a 76 61 6c 75 65 20 69 73 20 74 68 65 ┆n', i.e. (..), the value is the┆
0x09fa0…09fc0 20 65 6d 70 74 79 20 73 65 74 2e 20 54 68 65 20 65 6d 70 74 79 20 73 65 74 20 6d 61 79 20 6f 63 ┆ empty set. The empty set may oc┆
0x09fc0…09fe0 63 75 72 20 77 68 65 72 65 65 76 65 72 20 61 6e 20 0a 6f 70 65 72 61 74 6f 72 20 6f 66 20 61 20 ┆cur whereever an operator of a ┆
0x09fe0…0a000 73 65 74 20 74 79 70 65 20 69 73 20 72 65 71 75 69 72 65 64 2e 20 4f 63 63 75 72 72 69 6e 67 20 ┆set type is required. Occurring ┆
0x0a000…0a020 61 73 20 61 6e 20 65 78 70 72 65 73 80 73 69 6f 6e 20 6f 6e 20 69 74 73 20 0a 6f 77 6e 2c 20 74 ┆as an expresђsion on its own, t┆
0x0a020…0a040 68 65 20 65 6d 70 74 79 20 73 65 74 20 69 73 20 61 73 73 69 67 6e 61 62 6c 65 20 74 6f 20 61 6e ┆he empty set is assignable to an┆
0x0a040…0a060 79 20 73 65 74 20 74 79 70 65 2e 0d 0a 0d 0a 8c 84 c0 0a 54 68 65 20 6f 70 65 72 61 74 6f 72 73 ┆y set type. їё└ The operators┆
0x0a060…0a080 20 61 70 70 6c 69 63 61 62 6c 65 20 74 6f 20 76 61 6c 75 65 73 20 6f 66 20 73 65 74 20 74 79 70 ┆ applicable to values of set typ┆
0x0a080…0a0a0 65 73 20 61 72 65 20 64 65 73 63 72 69 80 62 65 64 20 69 6e 20 74 68 65 20 0a 66 6f 6c 6c 6f 77 ┆es are descriђbed in the follow┆
0x0a0a0…0a0c0 69 6e 67 20 74 61 62 6c 65 2c 20 77 68 65 72 65 20 73 74 20 6d 65 61 6e 73 20 73 6f 6d 65 20 73 ┆ing table, where st means some s┆
0x0a0c0…0a0e0 65 74 20 74 79 70 65 2c 20 65 74 20 6d 65 61 6e 73 20 74 68 65 20 65 6c 65 6d 65 6e 74 20 0a 74 ┆et type, et means the element t┆
0x0a0e0…0a100 79 70 65 20 6f 66 20 73 74 2c 20 6c 6f 70 20 6d 65 61 6e 73 20 6c 65 66 74 20 6f 70 65 72 61 6e ┆ype of st, lop means left operan┆
0x0a100…0a120 64 2c 20 61 6e 64 20 72 6f 70 20 6d 65 61 6e 73 20 72 69 67 68 74 20 6f 70 65 72 61 6e 64 2e 20 ┆d, and rop means right operand. ┆
0x0a120…0a140 0a 4e 6f 74 69 63 65 20 74 68 61 74 20 6d 75 6c 74 69 70 6c 65 20 6f 63 63 75 72 72 65 6e 63 65 ┆ Notice that multiple occurrence┆
0x0a140…0a160 73 20 6f 66 20 73 74 20 69 6e 20 61 6e 79 20 6f 6e 65 20 6c 69 6e 65 20 6f 66 20 74 68 65 20 74 ┆s of st in any one line of the t┆
0x0a160…0a180 61 62 6c 65 20 0a 72 65 66 65 72 20 74 6f 20 63 6f 6d 70 61 74 69 62 6c 65 20 73 65 74 20 74 79 ┆able refer to compatible set ty┆
0x0a180…0a1a0 80 70 65 73 2e 0d 0a 0e 0a 0d 0a 04 00 2d 4c 00 00 06 00 00 00 00 02 01 41 31 00 00 00 00 00 00 ┆ђpes. -L A1 ┆
0x0a1a0…0a1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 09 0f 13 19 1d 23 28 2d 37 41 4b 55 ┆ #(-7AKU┆
0x0a1c0…0a1e0 5f 69 ff 04 04 00 2d 4c 00 00 06 00 00 00 00 02 01 41 31 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆_i -L A1 ┆
0x0a1e0…0a200 00 00 00 00 00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 4b 55 5f 69 73 7d 87 91 ff 04 0a 6f 70 ┆ #-7AKU_is}ЄЉ op┆
0x0a200…0a220 65 2d 09 74 79 70 65 20 6f 66 09 74 79 70 65 20 6f 66 09 74 79 70 65 20 6f 66 20 20 20 20 0d 0a ┆e- type of type of type of ┆
0x0a220…0a240 a1 72 61 74 6f 72 09 6c 6f 70 09 09 72 6f 70 09 09 72 65 73 75 6c 74 09 72 65 73 75 6c 74 05 20 ┆Аrator lop rop result result ┆
0x0a240…0a260 0d 0a 20 2b 09 09 73 74 09 09 73 74 09 09 73 74 09 09 6c 6f 70 20 20 20 72 6f 70 0d 0a 20 2a 09 ┆ + st st st lop rop * ┆
0x0a260…0a280 09 73 74 09 09 73 74 09 09 73 74 09 09 6c 6f 70 20 20 20 72 6f 70 0d 0a 20 2d 09 09 73 74 09 09 ┆ st st st lop rop - st ┆
0x0a280…0a2a0 73 74 09 09 73 74 09 09 6c 6f 70 20 5c 20 72 6f 70 0d 0a 20 49 4e 09 09 65 74 09 09 73 74 09 09 ┆st st lop \ rop IN et st ┆
0x0a2a0…0a2c0 62 6f 6f 6c 65 61 6e 09 74 72 75 65 20 69 66 20 6c 6f 70 20 20 72 6f 70 2c 0d 0a 09 09 09 09 09 ┆boolean true if lop rop, ┆
0x0a2c0…0a2e0 09 09 09 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 65 0d 0a 20 3c 3d 09 09 73 74 09 09 73 74 09 ┆ false otherwise <= st st ┆
0x0a2e0…0a300 09 62 6f 6f 6c 65 61 6e 09 74 72 75 65 20 69 66 20 6c 6f 70 20 5f 20 72 6f 70 0d 0a 09 09 09 09 ┆ boolean true if lop _ rop ┆
0x0a300…0a320 09 09 09 09 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 65 0d 0a 20 3e 3d 09 09 73 74 09 09 73 74 ┆ false otherwise >= st st┆
0x0a320…0a340 09 09 62 6f 6f 6c 65 61 6e 09 74 72 75 65 20 69 66 20 72 6f 70 20 5f 20 6c 6f 70 2c 0d 0a 09 09 ┆ boolean true if rop _ lop, ┆
0x0a340…0a360 09 09 09 09 09 09 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 65 0d 0a 20 3d 09 09 73 74 09 09 73 ┆ false otherwise = st s┆
0x0a360…0a380 74 09 09 62 6f 6f 6c 65 61 6e 09 74 72 75 65 20 69 66 20 6c 6f 70 20 5f 20 72 6f 70 0d 0a 09 09 ┆t boolean true if lop _ rop ┆
0x0a380…0a3a0 09 09 09 09 09 09 61 6e 64 20 72 6f 70 20 5f 20 6c 6f 70 2c 0d 0a 09 09 09 09 09 09 09 09 66 61 ┆ and rop _ lop, fa┆
0x0a3a0…0a3c0 6c 73 65 20 6f 74 68 65 72 77 69 73 65 0d 0a 20 3c 3e 09 09 73 74 09 09 73 74 09 09 62 6f 6f 6c ┆lse otherwise <> st st bool┆
0x0a3c0…0a3e0 65 61 6e 09 4e 4f 54 20 6c 6f 70 3d 72 6f 70 0d 0a 0f 0a 04 00 2d 4c 00 00 06 00 00 00 00 02 01 ┆ean NOT lop=rop -L ┆
0x0a3e0…0a400 41 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 0f 19 23 2d ┆A1 #-┆
0x0a400…0a420 37 41 4b 55 5f 69 ff ff ff ff ff 04 04 00 2d 4c 00 00 06 00 00 00 00 02 01 41 31 00 00 00 00 00 ┆7AKU_i -L A1 ┆
0x0a420…0a440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 09 0f 13 19 1d 23 28 2d 37 41 4b ┆ #(-7AK┆
0x0a440…0a460 55 5f 69 ff 04 0a 0d 0a a1 4e 6f 74 65 3a 0d 0a 54 68 65 72 65 20 69 73 20 6e 6f 20 6f 70 65 72 ┆U_i АNote: There is no oper┆
0x0a460…0a480 61 74 6f 72 20 74 6f 20 74 65 73 74 20 66 6f 72 20 73 74 72 6f 6e 67 20 73 65 74 20 69 6e 63 6c ┆ator to test for strong set incl┆
0x0a480…0a4a0 75 73 69 6f 6e 2e 0d 0a 0d 0a a1 45 78 61 6d 70 6c 65 73 3a 0d 0a 20 20 64 69 67 69 74 73 3d 20 ┆usion. АExamples: digits= ┆
0x0a4a0…0a4c0 28 2e 20 27 30 27 2e 2e 27 39 27 20 2e 29 0d 0a 20 20 6c 65 74 74 65 72 73 3d 20 28 2e 20 27 61 ┆(. '0'..'9' .) letters= (. 'a┆
0x0a4c0…0a4e0 27 2e 2e 27 7a 27 2c 20 27 41 27 2e 2e 27 5a 27 20 2e 29 0d 0a 0d 0a 16 73 62 0d 0a 50 6f 69 6e ┆'..'z', 'A'..'Z' .) sb Poin┆
0x0a4e0…0a500 74 65 72 20 54 79 70 65 73 0d 0a 54 68 65 20 76 61 6c 75 65 73 20 6f 66 20 61 20 bf dc d8 70 6f ┆ter Types The values of a ┐▄пpo┆
0x0a500…0a520 69 6e 74 65 72 20 74 79 70 65 be 20 61 72 65 20 bf dc d8 4e 49 4c be 20 28 6e 6f 20 70 6f 69 6e ┆inter typeЙ are ┐▄пNILЙ (no poin┆
0x0a520…0a540 74 65 72 29 20 61 6e 64 20 70 6f 69 6e 80 74 65 72 73 20 74 6f 20 68 65 80 0a 61 70 2d 61 6c 6c ┆ter) and poinђters to heђ ap-all┆
0x0a540…0a560 6f 63 61 74 65 64 20 76 61 72 69 61 62 6c 65 73 20 6f 66 20 61 20 73 70 65 63 69 66 69 65 64 20 ┆ocated variables of a specified ┆
0x0a560…0a580 74 79 70 65 2c 20 63 61 6c 6c 65 64 20 74 68 65 20 62 61 73 65 20 74 79 70 65 20 6f 66 20 74 68 ┆type, called the base type of th┆
0x0a580…0a5a0 65 20 0a 70 6f 69 6e 74 65 72 20 74 79 70 65 2e 20 41 20 70 6f 69 6e 74 65 72 20 6d 61 79 20 62 ┆e pointer type. A pointer may b┆
0x0a5a0…0a5c0 65 20 75 73 65 64 20 74 6f 20 61 63 63 65 73 73 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 69 74 ┆e used to access the variable it┆
0x0a5c0…0a5e0 20 70 6f 69 6e 74 73 20 0a 74 6f 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 32 33 0d 0a 8c 86 b0 0a ┆ points to. ma syndia23 їє░ ┆
0x0a5e0…0a600 54 68 65 20 63 6f 6d 6d 6f 6e 20 74 79 70 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 73 70 ┆The common type specification sp┆
0x0a600…0a620 65 63 69 66 69 65 73 20 74 68 65 20 62 61 73 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 64 65 66 ┆ecifies the base type of the def┆
0x0a620…0a640 69 6e 65 64 20 0a 70 6f 69 6e 74 65 72 20 74 79 70 65 2e 20 54 68 65 20 69 6e 69 74 69 61 6c 20 ┆ined pointer type. The initial ┆
0x0a640…0a660 76 61 6c 75 65 20 6f 66 20 61 20 70 6f 69 6e 74 65 72 20 76 61 72 69 80 61 80 62 6c 65 20 69 73 ┆value of a pointer variђaђble is┆
0x0a660…0a680 20 4e 49 4c 2c 20 69 2e 65 2e 20 69 74 20 64 6f 80 0a 65 73 20 6e 6f 74 20 70 6f 69 6e 74 20 74 ┆ NIL, i.e. it doђ es not point t┆
0x0a680…0a6a0 6f 20 61 6e 79 20 76 61 72 69 61 62 6c 65 2e 0d 0a 0d 0a 41 20 76 61 72 69 61 62 6c 65 20 61 63 ┆o any variable. A variable ac┆
0x0a6a0…0a6c0 63 65 73 73 65 64 20 74 68 72 6f 75 67 68 20 61 20 70 6f 69 6e 74 65 72 20 69 73 20 63 61 6c 6c ┆cessed through a pointer is call┆
0x0a6c0…0a6e0 65 64 20 61 20 bf dc d8 64 65 73 69 67 6e 61 74 65 64 20 76 61 80 72 69 61 62 6c 65 be 2e 0d 0a ┆ed a ┐▄пdesignated vaђriableЙ. ┆
0x0a6e0…0a700 0d 0a 16 6d 61 20 73 79 6e 64 69 61 37 36 0d 0a 54 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 ┆ ma syndia76 The type of the ┆
0x0a700…0a720 64 65 6e 6f 74 65 64 20 6f 62 6a 65 63 74 20 6d 75 73 74 20 62 65 20 61 20 70 6f 69 6e 74 65 72 ┆denoted object must be a pointer┆
0x0a720…0a740 20 74 79 70 65 2e 20 54 68 65 20 74 79 80 70 65 20 6f 66 20 0a 74 68 65 20 64 65 73 69 67 6e 61 ┆ type. The tyђpe of the designa┆
0x0a740…0a760 74 65 64 20 76 61 72 69 61 62 6c 65 20 69 73 20 74 68 65 20 62 61 73 65 20 74 79 70 65 20 6f 66 ┆ted variable is the base type of┆
0x0a760…0a780 20 74 68 69 73 20 70 6f 80 69 6e 74 65 72 20 74 79 70 65 2e 20 49 66 20 74 68 65 20 0a 76 61 6c ┆ this poђinter type. If the val┆
0x0a780…0a7a0 75 65 20 6f 66 20 74 68 65 20 64 65 6e 6f 74 65 64 20 70 6f 69 6e 74 65 72 20 6f 62 6a 65 63 74 ┆ue of the denoted pointer object┆
0x0a7a0…0a7c0 20 69 73 20 4e 49 4c 20 61 20 66 61 75 6c 74 20 6f 63 63 75 72 73 20 77 68 65 6e 20 61 6e 20 61 ┆ is NIL a fault occurs when an a┆
0x0a7c0…0a7e0 74 80 0a 74 65 6d 70 74 20 69 73 20 6d 61 64 65 20 74 6f 20 61 63 63 65 73 73 20 74 68 65 20 64 ┆tђ tempt is made to access the d┆
0x0a7e0…0a800 65 80 73 69 67 6e 61 74 65 64 20 76 61 72 69 80 61 62 6c 65 2e 0d 0a 0d 0a 54 68 65 20 63 6f 6d ┆eђsignated variђable. The com┆
0x0a800…0a820 70 61 72 69 73 6f 6e 20 6f 70 65 72 61 74 6f 72 73 20 3d 20 61 6e 64 20 3c 3e 20 6d 61 79 20 62 ┆parison operators = and <> may b┆
0x0a820…0a840 65 20 61 70 70 6c 69 65 64 20 74 6f 20 70 61 69 72 73 20 6f 66 20 0a 6f 70 65 72 61 6e 64 73 20 ┆e applied to pairs of operands ┆
0x0a840…0a860 6f 66 20 63 6f 6d 70 61 74 69 62 6c 65 20 70 6f 69 6e 74 65 72 20 74 79 70 65 73 2e 20 54 68 65 ┆of compatible pointer types. The┆
0x0a860…0a880 20 72 65 73 75 6c 74 20 70 72 6f 64 75 63 65 64 20 62 79 20 74 68 65 20 3d 20 0a 6f 70 65 72 61 ┆ result produced by the = opera┆
0x0a880…0a8a0 74 6f 72 20 69 73 20 74 72 75 65 20 69 66 20 62 6f 74 68 20 70 6f 69 6e 74 65 72 73 20 64 65 73 ┆tor is true if both pointers des┆
0x0a8a0…0a8c0 69 67 6e 61 74 65 20 74 68 65 20 73 61 6d 65 20 6f 62 6a 65 63 74 2c 20 6f 72 20 69 66 20 62 6f ┆ignate the same object, or if bo┆
0x0a8c0…0a8e0 74 68 20 0a 68 61 76 65 20 76 61 6c 75 65 20 4e 49 4c 2e 20 4f 74 68 65 72 77 69 73 65 20 69 74 ┆th have value NIL. Otherwise it┆
0x0a8e0…0a900 20 69 73 20 66 61 6c 73 65 2e 20 54 68 65 20 72 65 73 75 6c 74 20 70 72 6f 64 75 80 63 65 64 20 ┆ is false. The result produђced ┆
0x0a900…0a920 62 79 20 74 68 65 20 3c 3e 20 0a 6f 70 65 72 61 74 6f 72 20 69 73 20 74 68 65 20 6e 65 67 61 74 ┆by the <> operator is the negat┆
0x0a920…0a940 69 6f 6e 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 3d 2e 0d 0a 0d 0a 54 68 65 72 65 ┆ion of the result of =. There┆
0x0a940…0a960 20 69 73 20 61 20 70 72 65 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 74 65 73 ┆ is a predefined function to tes┆
0x0a960…0a980 74 20 77 68 65 74 68 65 72 20 61 20 70 6f 69 6e 74 65 72 2c 20 6f 66 20 61 6e 79 20 70 6f 69 6e ┆t whether a pointer, of any poin┆
0x0a980…0a9a0 80 0a 74 65 72 20 74 79 70 65 20 70 74 72 74 79 70 65 2c 20 69 73 20 4e 49 4c 2e 0d 0a 0d 0a 46 ┆ђ ter type ptrtype, is NIL. F┆
0x0a9a0…0a9c0 55 4e 43 54 49 4f 4e 20 bf dc d8 6e 69 6c be 28 70 74 72 3a 20 70 74 72 74 79 70 65 29 3a 20 62 ┆UNCTION ┐▄пnilЙ(ptr: ptrtype): b┆
0x0a9c0…0a9e0 6f 6f 6c 65 61 6e 0d 0a 0d 0a 54 68 65 20 72 65 73 75 6c 74 20 6f 66 20 61 20 63 61 6c 6c 20 6f ┆oolean The result of a call o┆
0x0a9e0…0aa00 66 20 6e 69 6c 20 69 73 20 74 72 75 65 20 69 66 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 ┆f nil is true if the value of th┆
0x0aa00…0aa20 65 20 70 61 80 72 61 6d 65 74 65 72 20 69 73 20 0a 4e 49 4c 20 61 6e 64 20 66 61 6c 73 65 20 6f ┆e paђrameter is NIL and false o┆
0x0aa20…0aa40 74 68 65 72 77 69 73 65 2e 0d 0a 0d 0a 41 20 76 61 72 69 61 62 6c 65 20 69 73 20 61 6c 6c 6f 63 ┆therwise. A variable is alloc┆
0x0aa40…0aa60 61 74 65 64 20 6f 6e 20 74 68 65 20 68 65 61 70 20 61 6e 64 20 61 20 70 6f 69 6e 74 65 72 20 74 ┆ated on the heap and a pointer t┆
0x0aa60…0aa80 6f 20 69 74 20 61 73 80 73 69 67 6e 65 64 20 74 6f 20 61 20 0a 70 6f 69 6e 74 65 72 20 76 61 72 ┆o it asђsigned to a pointer var┆
0x0aa80…0aaa0 69 61 62 6c 65 20 62 79 20 61 20 63 61 6c 6c 20 6f 66 20 74 68 65 20 70 72 65 64 65 66 69 6e 65 ┆iable by a call of the predefine┆
0x0aaa0…0aac0 64 20 70 72 6f 63 65 64 75 72 65 20 6e 65 77 2c 20 77 68 65 72 65 20 74 68 65 20 0a 70 61 72 61 ┆d procedure new, where the para┆
0x0aac0…0aae0 6d 65 74 65 72 20 74 79 70 65 20 70 74 72 74 79 70 65 20 6d 61 79 20 62 65 20 61 6e 79 20 70 6f ┆meter type ptrtype may be any po┆
0x0aae0…0ab00 69 6e 74 65 72 20 74 79 70 65 2e 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 6e 65 77 be ┆inter type. PROCEDURE ┐▄пnewЙ┆
0x0ab00…0ab20 28 56 41 52 20 70 74 72 3a 20 70 74 72 74 79 70 65 29 0d 0a 8c 85 d0 0a 41 20 63 61 6c 6c 20 6f ┆(VAR ptr: ptrtype) їЁл A call o┆
0x0ab20…0ab40 66 20 6e 65 77 20 63 61 75 73 65 73 20 6d 65 6d 6f 72 79 20 66 6f 72 20 61 20 76 61 72 69 61 62 ┆f new causes memory for a variab┆
0x0ab40…0ab60 6c 65 20 6f 66 20 74 68 65 20 62 61 73 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 0a 74 79 70 65 ┆le of the base type of the type┆
0x0ab60…0ab80 20 6f 66 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 70 74 72 20 74 6f 20 62 65 20 61 6c 6c 6f ┆ of the parameter ptr to be allo┆
0x0ab80…0aba0 63 61 74 65 64 20 6f 6e 20 74 68 65 20 68 65 61 70 20 6f 66 20 74 68 65 20 63 61 6c 6c 69 6e 67 ┆cated on the heap of the calling┆
0x0aba0…0abc0 20 0a 70 72 6f 63 65 73 73 2e 20 49 66 20 61 6e 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 20 69 ┆ process. If an initial value i┆
0x0abc0…0abe0 73 20 64 65 66 69 6e 65 64 20 66 6f 72 20 74 68 65 20 76 61 72 69 80 61 62 6c 65 20 6f 72 20 61 ┆s defined for the variђable or a┆
0x0abe0…0ac00 6e 79 20 63 6f 6d 80 0a 70 6f 6e 65 6e 74 73 20 6f 66 20 69 74 2c 20 74 68 65 20 69 6e 69 74 69 ┆ny comђ ponents of it, the initi┆
0x0ac00…0ac20 61 6c 69 7a 61 74 69 6f 6e 20 74 61 80 6b 65 73 20 70 6c 61 63 65 20 69 6d 80 6d 65 64 69 61 74 ┆alization taђkes place imђmediat┆
0x0ac20…0ac40 65 6c 79 20 61 66 74 65 72 20 61 6c 6c 6f 63 61 80 0a 74 69 6f 6e 2e 20 54 68 65 20 76 61 6c 75 ┆ely after allocaђ tion. The valu┆
0x0ac40…0ac60 65 20 6f 66 20 74 68 65 20 70 61 80 72 61 6d 65 74 65 72 20 62 65 63 6f 6d 65 73 20 61 20 70 6f ┆e of the paђrameter becomes a po┆
0x0ac60…0ac80 69 6e 74 65 72 20 74 6f 20 74 68 65 20 61 6c 6c 6f 63 61 74 65 64 20 0a 76 61 72 69 61 62 6c 65 ┆inter to the allocated variable┆
0x0ac80…0aca0 2e 20 49 66 20 74 68 65 20 63 6c 61 69 6d 65 64 20 61 6d 6f 75 6e 74 20 6f 66 20 6d 65 6d 6f 72 ┆. If the claimed amount of memor┆
0x0aca0…0acc0 79 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 2c 20 74 68 65 20 70 6f 69 6e 80 0a 74 65 ┆y is not available, the poinђ te┆
0x0acc0…0ace0 72 20 62 65 63 6f 80 6d 65 73 20 4e 49 4c 20 61 66 74 65 72 20 74 68 65 20 63 61 6c 6c 20 6f 66 ┆r becoђmes NIL after the call of┆
0x0ace0…0ad00 20 6e 65 77 2e 0d 0a 0d 0a 0e 0a a1 45 78 61 6d 70 6c 65 3a 0d 0a 54 59 50 45 0d 0a 20 20 63 6f ┆ new. АExample: TYPE co┆
0x0ad00…0ad20 6d 70 3b 20 20 2d 2d 20 66 6f 72 77 61 72 64 20 64 65 63 6c 61 72 61 74 69 6f 6e 0d 0a 20 20 63 ┆mp; -- forward declaration c┆
0x0ad20…0ad40 6f 6d 70 31 5f 74 79 70 65 3d 20 0d 0a 20 20 20 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 20 20 6e ┆omp1_type= RECORD n┆
0x0ad40…0ad60 75 6d 62 65 72 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 20 20 20 63 6f 6d 70 5f 63 68 61 69 ┆umber: integer; comp_chai┆
0x0ad60…0ad80 6e 3a 20 63 6f 6d 70 0d 0a 20 20 20 20 45 4e 44 28 2a 52 45 43 4f 52 44 2a 29 3b 0d 0a 20 20 63 ┆n: comp END(*RECORD*); c┆
0x0ad80…0ada0 6f 6d 70 5f 74 79 70 65 3d 20 41 52 52 41 59 28 78 2e 2e 79 29 20 4f 46 20 5e 88 7c 63 6f 6d 70 ┆omp_type= ARRAY(x..y) OF ^ѕ|comp┆
0x0ada0…0adc0 31 5f 74 79 70 65 3b 0d 0a 20 20 63 6f 6d 70 3d 20 5e 88 7c 63 6f 6d 70 5f 74 79 70 65 3b 0d 0a ┆1_type; comp= ^ѕ|comp_type; ┆
0x0adc0…0ade0 56 41 52 0d 0a 20 20 73 74 72 75 63 74 75 72 65 5f 73 74 61 72 74 3a 20 63 6f 6d 70 3b 0d 0a 20 ┆VAR structure_start: comp; ┆
0x0ade0…0ae00 20 2e 2e 2e 0d 0a 20 20 6e 65 77 28 73 74 72 75 63 74 75 72 65 5f 73 74 61 72 74 29 3b 0d 0a 20 ┆ ... new(structure_start); ┆
0x0ae00…0ae20 20 6e 65 77 28 73 74 72 75 63 74 75 72 65 5f 73 74 61 72 74 5e 88 7c 28 78 29 29 3b 0d 0a 20 20 ┆ new(structure_start^ѕ|(x)); ┆
0x0ae20…0ae40 2e 2e 2e 0d 0a 20 20 6e 65 77 28 73 74 72 75 63 74 75 72 65 5f 73 74 61 72 74 5e 88 7c 28 78 29 ┆... new(structure_start^ѕ|(x)┆
0x0ae40…0ae60 5e 88 7c 2e 63 6f 6d 70 5f 63 68 61 69 6e 29 0d 0a 20 20 2e 2e 2e 0d 0a 0f 0a 16 73 62 0d 0a 53 ┆^ѕ|.comp_chain) ... sb S┆
0x0ae60…0ae80 68 69 65 6c 64 65 64 20 54 79 70 65 73 0d 0a bf dc d8 53 68 69 65 6c 64 65 64 20 74 79 70 65 73 ┆hielded Types ┐▄пShielded types┆
0x0ae80…0aea0 be 20 61 72 65 20 75 73 65 64 20 69 6e 20 63 6f 6e 6a 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 63 ┆Й are used in conjunction with c┆
0x0aea0…0aec0 6f 6e 74 72 6f 6c 20 6f 66 20 6f 66 66 80 73 70 72 69 6e 67 20 70 72 6f 80 0a 63 65 73 73 65 73 ┆ontrol of offђspring proђ cesses┆
0x0aec0…0aee0 20 61 6e 64 20 77 69 74 68 20 69 6e 74 65 72 2d 70 72 6f 63 65 73 73 20 61 6e 64 20 69 6e 74 65 ┆ and with inter-process and inte┆
0x0aee0…0af00 72 2d 6d 6f 64 75 6c 65 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 2e 20 49 6e 20 6f 72 80 0a 64 ┆r-module communication. In orђ d┆
0x0af00…0af20 65 72 20 74 68 61 74 20 74 68 65 20 69 6e 74 65 67 72 69 74 79 20 6f 66 20 6d 65 73 73 61 67 65 ┆er that the integrity of message┆
0x0af20…0af40 73 20 61 6e 64 20 6f 66 20 74 68 65 20 64 61 74 61 20 73 74 72 75 63 74 75 80 72 65 73 20 6e 65 ┆s and of the data structuђres ne┆
0x0af40…0af60 65 64 65 64 20 0a 74 6f 20 61 64 6d 69 6e 69 73 74 65 72 20 6d 75 6c 74 69 70 6c 65 20 63 6f 6f ┆eded to administer multiple coo┆
0x0af60…0af80 80 70 65 80 72 61 74 69 6e 67 20 70 72 6f 63 65 73 73 65 73 20 62 65 20 70 72 65 80 73 65 72 76 ┆ђpeђrating processes be preђserv┆
0x0af80…0afa0 65 64 20 69 74 20 69 73 20 6f 6e 6c 79 20 0a 70 6f 73 73 69 62 6c 65 20 74 6f 20 6d 61 6e 69 80 ┆ed it is only possible to maniђ┆
0x0afa0…0afc0 70 75 80 6c 61 74 65 20 6f 62 6a 65 63 74 73 20 6f 66 20 73 68 69 65 6c 64 65 64 20 74 79 70 65 ┆puђlate objects of shielded type┆
0x0afc0…0afe0 73 20 62 79 20 6d 65 61 6e 73 20 6f 66 20 70 72 65 64 65 80 0a 66 69 6e 65 64 20 72 6f 75 74 69 ┆s by means of predeђ fined routi┆
0x0afe0…0b000 80 6e 65 73 2e 20 41 63 63 6f 72 64 69 6e 67 6c 79 2c 20 64 65 74 61 69 6c 73 20 6f 66 20 74 68 ┆ђnes. Accordingly, details of th┆
0x0b000…0b020 65 20 72 65 80 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 73 65 20 74 79 80 0a 70 ┆e reђpresentation of these tyђ p┆
0x0b020…0b040 65 73 20 61 72 65 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 74 68 65 20 72 65 66 65 72 65 6e 63 65 ┆es are not part of the reference┆
0x0b040…0b060 20 64 65 66 69 6e 69 80 74 69 6f 6e 20 6f 66 20 74 68 65 20 6c 61 6e 67 75 61 80 67 65 2e 20 4f ┆ definiђtion of the languaђge. O┆
0x0b060…0b080 6e 6c 79 20 0a 70 72 65 64 65 66 69 6e 65 64 20 73 68 69 65 6c 64 65 64 20 74 79 70 65 73 20 65 ┆nly predefined shielded types e┆
0x0b080…0b0a0 78 69 73 74 2c 20 73 65 76 65 6e 20 69 6e 20 61 6c 6c 2e 0d 0a 0d 0a 16 6d 61 20 73 79 6e 64 69 ┆xist, seven in all. ma syndi┆
0x0b0a0…0b0c0 61 32 38 0d 0a 16 73 6f 20 6d 61 69 6c 62 6f 78 0d 0a 16 73 6f 20 72 65 66 65 72 65 6e 63 65 0d ┆a28 so mailbox so reference ┆
0x0b0c0…0b0e0 0a 16 73 6f 20 70 6f 6f 6c 0d 0a 16 73 6f 20 70 72 6f 63 65 73 73 0d 0a 16 73 6f 20 70 6f 72 74 ┆ so pool so process so port┆
0x0b0e0…0b100 0d 0a 16 73 6f 20 63 68 61 69 6e 0d 0a 16 73 6f 20 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 ┆ so chain so external progra┆
0x0b100…0b120 6d 0d 0a 8c 86 e0 0a 43 6f 6e 73 74 61 6e 74 73 20 6f 66 20 73 68 69 65 6c 64 65 64 20 74 79 70 ┆m їєЯ Constants of shielded typ┆
0x0b120…0b140 65 73 20 64 6f 20 6e 6f 74 20 65 78 69 73 74 2e 20 56 61 72 69 61 62 6c 65 73 20 6f 66 20 73 68 ┆es do not exist. Variables of sh┆
0x0b140…0b160 69 65 6c 64 65 64 20 74 79 70 65 73 2c 20 0a 65 78 63 65 70 74 20 72 65 66 65 72 65 6e 63 65 2c ┆ielded types, except reference,┆
0x0b160…0b180 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 64 65 63 6c 61 72 65 64 20 61 74 20 74 68 65 20 6f 75 74 ┆ can only be declared at the out┆
0x0b180…0b1a0 65 72 20 62 6c 6f 63 6b 20 6c 65 76 65 6c 20 6f 66 20 61 20 0a 70 72 6f 67 72 61 6d 2c 20 63 66 ┆er block level of a program, cf┆
0x0b1a0…0b1c0 2e 20 73 75 62 73 65 63 74 69 6f 6e 20 36 2e 32 2e 31 2e 0d 0a 0d 0a 16 73 6f 20 70 72 6f 63 65 ┆. subsection 6.2.1. so proce┆
0x0b1c0…0b1e0 73 73 2c 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 0d 0a 41 6e 20 6f 62 6a 65 63 74 20 6f 66 20 ┆ss, initial value An object of ┆
0x0b1e0…0b200 74 79 70 65 20 70 72 6f 63 65 73 73 20 6d 61 79 20 62 65 20 75 73 65 64 20 74 6f 20 63 6f 6e 74 ┆type process may be used to cont┆
0x0b200…0b220 72 6f 6c 20 61 20 63 68 69 6c 64 20 70 72 6f 80 63 65 73 73 2c 20 69 2e 65 2e 20 0a 61 6e 20 69 ┆rol a child proђcess, i.e. an i┆
0x0b220…0b240 6e 63 61 72 6e 61 74 69 6f 6e 20 6f 66 20 61 20 73 75 62 2d 70 72 6f 67 72 61 6d 2e 20 54 68 65 ┆ncarnation of a sub-program. The┆
0x0b240…0b260 20 76 61 6c 75 65 20 6f 66 20 61 20 70 72 6f 80 63 65 73 73 20 6f 62 6a 65 63 74 20 69 73 20 0a ┆ value of a proђcess object is ┆
0x0b260…0b280 65 69 74 68 65 72 20 4e 49 4c 20 6f 72 20 61 20 72 65 66 65 72 65 6e 63 65 20 74 6f 20 61 20 63 ┆either NIL or a reference to a c┆
0x0b280…0b2a0 68 69 6c 64 20 70 72 6f 63 65 73 73 2c 20 74 68 65 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 20 ┆hild process, the initial value ┆
0x0b2a0…0b2c0 62 65 69 6e 67 20 0a 4e 49 4c 2e 20 50 72 6f 63 65 73 73 20 6f 62 6a 65 63 74 73 20 6d 61 79 20 ┆being NIL. Process objects may ┆
0x0b2c0…0b2e0 62 65 20 6d 61 6e 69 70 75 6c 61 74 65 64 20 62 79 20 74 68 65 20 70 72 65 64 65 66 69 6e 65 64 ┆be manipulated by the predefined┆
0x0b2e0…0b300 20 72 6f 75 74 69 6e 65 73 20 0a 63 72 65 61 74 65 2c 20 73 74 61 72 74 2c 20 72 65 73 75 80 6d ┆ routines create, start, resuђm┆
0x0b300…0b320 65 2c 20 73 74 6f 70 20 61 6e 64 20 72 65 6d 6f 76 65 2c 20 61 73 20 64 65 73 63 72 69 62 65 64 ┆e, stop and remove, as described┆
0x0b320…0b340 20 69 6e 20 63 68 61 70 74 65 72 20 39 2e 0d 0a 0d 0a 54 68 65 20 70 72 65 64 65 66 69 6e 65 64 ┆ in chapter 9. The predefined┆
0x0b340…0b360 20 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 20 6d 61 79 20 62 65 20 75 73 65 64 20 74 6f 20 74 65 73 ┆ function nil may be used to tes┆
0x0b360…0b380 74 20 77 68 65 74 68 65 72 20 61 20 70 72 6f 80 63 65 73 73 20 0a 76 61 72 69 61 62 6c 65 20 68 ┆t whether a proђcess variable h┆
0x0b380…0b3a0 61 73 20 76 61 6c 75 65 20 4e 49 4c 2e 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 bf dc d8 6e 69 6c ┆as value NIL. FUNCTION ┐▄пnil┆
0x0b3a0…0b3c0 be 28 56 41 52 20 70 72 3a 20 70 72 6f 63 65 73 73 29 3a 20 62 6f 6f 6c 65 61 6e 0d 0a 0d 0a 54 ┆Й(VAR pr: process): boolean T┆
0x0b3c0…0b3e0 68 65 20 72 65 73 75 6c 74 20 6f 66 20 61 20 63 61 6c 6c 20 6f 66 20 6e 69 6c 20 69 73 20 74 72 ┆he result of a call of nil is tr┆
0x0b3e0…0b400 75 65 20 69 66 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 70 61 80 72 61 6d 65 74 65 ┆ue if the value of the paђramete┆
0x0b400…0b420 72 20 70 72 20 69 73 20 0a 4e 49 4c 2c 20 61 6e 64 20 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 ┆r pr is NIL, and false otherwis┆
0x0b420…0b440 65 2e 0d 0a 0d 0a 41 6e 20 6f 62 6a 65 63 74 20 6f 66 20 74 79 70 65 20 6d 61 69 6c 62 6f 78 20 ┆e. An object of type mailbox ┆
0x0b440…0b460 6d 61 79 20 62 65 20 75 73 65 64 20 74 6f 20 74 72 61 6e 73 66 65 72 20 61 63 63 65 73 73 20 74 ┆may be used to transfer access t┆
0x0b460…0b480 6f 20 61 20 6d 65 73 80 0a 73 61 67 65 20 73 74 61 63 6b 20 66 72 6f 6d 20 6f 6e 65 20 70 72 6f ┆o a mesђ sage stack from one pro┆
0x0b480…0b4a0 63 65 73 73 20 74 6f 20 61 6e 6f 74 68 65 72 2c 20 75 73 69 6e 67 20 74 68 65 20 70 72 65 80 64 ┆cess to another, using the preђd┆
0x0b4a0…0b4c0 65 80 66 69 6e 65 64 20 72 6f 75 74 69 6e 65 73 20 0a 73 69 67 6e 61 6c 2c 20 77 61 69 74 20 61 ┆eђfined routines signal, wait a┆
0x0b4c0…0b4e0 6e 64 20 72 65 74 75 72 6e 2c 20 61 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 63 68 61 70 74 ┆nd return, as described in chapt┆
0x0b4e0…0b500 65 72 20 39 2e 20 54 68 65 20 69 6e 69 74 69 61 6c 20 73 74 61 74 65 20 6f 66 20 0a 61 20 6d 61 ┆er 9. The initial state of a ma┆
0x0b500…0b520 69 6c 62 6f 78 20 69 73 20 70 61 73 73 69 76 65 2e 0d 0a 16 73 6f 20 6d 61 69 6c 62 6f 78 2c 20 ┆ilbox is passive. so mailbox, ┆
0x0b520…0b540 69 6e 69 74 69 61 6c 20 73 74 61 74 65 0d 0a 0d 0a 4f 62 6a 65 63 74 73 20 6f 66 20 74 79 70 65 ┆initial state Objects of type┆
0x0b540…0b560 20 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 6d 20 61 72 65 20 64 65 73 63 72 69 62 65 64 20 ┆ external program are described ┆
0x0b560…0b580 69 6e 20 73 75 62 73 65 63 74 69 6f 6e 20 36 2e 32 2e 32 2e 20 0a 54 68 65 20 69 6e 69 74 69 61 ┆in subsection 6.2.2. The initia┆
0x0b580…0b5a0 6c 20 73 74 61 74 65 20 6f 66 20 61 6e 20 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 6d 20 69 ┆l state of an external program i┆
0x0b5a0…0b5c0 73 20 75 6e 6c 69 6e 6b 65 64 2e 0d 0a 16 73 6f 20 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 ┆s unlinked. so external progra┆
0x0b5c0…0b5e0 6d 2c 20 69 6e 69 74 69 61 6c 20 73 74 61 74 65 0d 0a 0d 0a 41 6e 20 6f 62 6a 65 63 74 20 6f 66 ┆m, initial state An object of┆
0x0b5e0…0b600 20 74 79 70 65 20 70 6f 72 74 20 6d 61 79 20 62 65 20 75 73 65 64 20 69 6e 20 63 6f 6e 6a 75 6e ┆ type port may be used in conjun┆
0x0b600…0b620 63 74 69 6f 6e 20 77 69 74 68 20 69 6e 80 80 74 65 72 6d 6f 80 64 75 6c 65 20 0a 63 6f 6d 6d 75 ┆ction with inђђtermoђdule commu┆
0x0b620…0b640 6e 69 63 61 74 69 6f 6e 20 61 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 63 68 61 70 74 65 72 ┆nication as described in chapter┆
0x0b640…0b660 20 31 31 2e 20 54 68 65 20 69 6e 80 69 74 69 61 6c 20 73 74 61 74 65 20 6f 66 20 61 20 70 6f 72 ┆ 11. The inђitial state of a por┆
0x0b660…0b680 74 20 0a 69 73 20 63 6c 6f 73 65 64 2e 0d 0a 16 73 6f 20 70 6f 72 74 2c 20 69 6e 69 74 69 61 6c ┆t is closed. so port, initial┆
0x0b680…0b6a0 20 73 74 61 74 65 0d 0a 16 73 6f 20 72 65 66 65 72 65 6e 63 65 2c 20 69 6e 69 74 69 61 6c 20 73 ┆ state so reference, initial s┆
0x0b6a0…0b6c0 74 61 74 65 0d 0a 0d 0a 4d 65 73 73 61 67 65 73 20 61 72 65 20 61 6c 6c 6f 63 61 74 65 64 20 75 ┆tate Messages are allocated u┆
0x0b6c0…0b6e0 73 69 6e 67 20 70 6f 6f 6c 73 20 61 6e 64 20 61 63 63 65 73 73 65 64 20 62 79 20 6d 65 61 6e 73 ┆sing pools and accessed by means┆
0x0b6e0…0b700 20 6f 66 20 6f 62 6a 65 63 74 73 20 0a 6f 66 20 74 79 70 65 20 72 65 66 65 72 65 6e 63 65 2e 20 ┆ of objects of type reference. ┆
0x0b700…0b720 54 68 65 20 76 61 6c 75 65 20 6f 66 20 61 20 72 65 66 65 72 65 6e 63 65 20 69 73 20 65 69 74 80 ┆The value of a reference is eitђ┆
0x0b720…0b740 68 65 72 20 4e 49 4c 20 28 74 68 65 20 69 6e 69 74 69 61 6c 20 0a 76 61 6c 75 65 29 20 6f 72 20 ┆her NIL (the initial value) or ┆
0x0b740…0b760 61 20 72 65 66 65 72 65 6e 63 65 20 74 6f 20 61 20 6d 65 73 73 61 80 67 65 20 73 74 61 63 6b 2c ┆a reference to a messaђge stack,┆
0x0b760…0b780 20 63 61 6c 6c 65 64 20 74 68 65 20 a0 64 65 73 69 67 6e 61 74 65 64 20 73 74 61 63 6b e0 2e 20 ┆ called the аdesignated stackЯ. ┆
0x0b780…0b7a0 0a 54 68 65 20 74 6f 70 20 6d 65 73 73 61 67 65 20 6f 66 20 74 68 65 20 64 65 73 69 67 6e 61 74 ┆ The top message of the designat┆
0x0b7a0…0b7c0 65 64 20 73 74 61 63 6b 20 69 73 20 63 61 6c 6c 65 64 20 74 68 65 20 a0 64 65 73 69 67 6e 61 74 ┆ed stack is called the аdesignat┆
0x0b7c0…0b7e0 65 64 20 6d 65 73 80 0a 19 80 80 c0 73 61 67 65 e0 2e 20 4d 65 73 80 73 61 67 65 20 73 74 61 63 ┆ed mesђ ђђ└sageЯ. Mesђsage stac┆
0x0b7e0…0b800 6b 73 2c 20 61 6e 64 20 74 68 65 20 70 72 65 64 65 66 69 80 6e 65 64 20 70 72 6f 63 65 64 75 72 ┆ks, and the predefiђned procedur┆
0x0b800…0b820 65 73 20 70 75 73 68 20 61 6e 64 20 70 6f 70 20 0a 77 6f 72 80 6b 69 6e 67 20 6f 6e 20 74 68 65 ┆es push and pop worђking on the┆
0x0b820…0b840 6d 2c 20 61 72 65 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 64 65 74 61 69 6c 20 69 6e 20 63 68 ┆m, are described in detail in ch┆
0x0b840…0b860 61 70 74 65 72 20 31 30 2e 0d 0a 0d 0a 54 68 65 20 70 72 65 64 65 66 69 6e 65 64 20 66 75 6e 63 ┆apter 10. The predefined func┆
0x0b860…0b880 74 69 6f 6e 20 6e 69 6c 20 6d 61 79 20 62 65 20 75 73 65 64 20 74 6f 20 74 65 73 74 20 77 68 65 ┆tion nil may be used to test whe┆
0x0b880…0b8a0 74 68 65 72 20 61 20 72 65 66 65 80 72 65 6e 63 65 20 0a 69 73 20 4e 49 4c 2e 0d 0a 0d 0a 46 55 ┆ther a refeђrence is NIL. FU┆
0x0b8a0…0b8c0 4e 43 54 49 4f 4e 20 bf dc d8 6e 69 6c be 28 56 41 52 20 72 65 66 3a 20 72 65 66 65 72 65 6e 63 ┆NCTION ┐▄пnilЙ(VAR ref: referenc┆
0x0b8c0…0b8e0 65 29 3a 20 62 6f 6f 6c 65 61 6e 0d 0a 8c 87 d8 0a 0d 0a 54 68 65 20 72 65 73 75 6c 74 20 6f 66 ┆e): boolean їЄп The result of┆
0x0b8e0…0b900 20 61 20 63 61 6c 6c 20 6f 66 20 6e 69 6c 20 69 73 20 74 72 75 65 20 69 66 20 74 68 65 20 76 61 ┆ a call of nil is true if the va┆
0x0b900…0b920 6c 75 65 20 6f 66 20 72 65 66 20 69 73 20 4e 49 4c 2c 20 61 6e 64 20 0a 66 61 6c 73 65 20 6f 74 ┆lue of ref is NIL, and false ot┆
0x0b920…0b940 68 65 72 77 69 73 65 2e 0d 0a 0d 0a 45 76 65 72 79 20 6d 65 73 73 61 67 65 20 68 61 73 20 66 6f ┆herwise. Every message has fo┆
0x0b940…0b960 75 72 74 65 65 6e 20 61 74 74 72 69 62 75 74 65 73 20 77 68 69 63 68 20 61 72 65 20 70 72 65 73 ┆urteen attributes which are pres┆
0x0b960…0b980 65 6e 74 20 65 76 65 6e 20 69 66 20 74 68 65 20 0a 6d 65 73 73 61 67 65 20 69 73 20 65 6d 70 74 ┆ent even if the message is empt┆
0x0b980…0b9a0 79 3a 0d 0a 16 73 6f 20 6d 65 73 73 61 67 65 20 61 74 74 72 69 62 75 74 65 73 0d 0a 16 73 6f 20 ┆y: so message attributes so ┆
0x0b9a0…0b9c0 61 74 74 72 69 62 75 74 65 73 0d 0a 0d 0a 0d 0a 2d 20 68 6f 6d 65 20 70 6f 6f 6c 3a 20 74 68 65 ┆attributes - home pool: the┆
0x0b9c0…0b9e0 20 70 6f 6f 6c 20 74 6f 20 77 68 69 63 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 62 65 6c 6f 6e ┆ pool to which the message belon┆
0x0b9e0…0ba00 67 73 2c 0d 0a 2d 20 84 72 65 74 75 72 6e 20 61 64 64 72 65 73 73 3a 20 6d 61 69 6c 62 6f 78 20 ┆gs, - ёreturn address: mailbox ┆
0x0ba00…0ba20 74 6f 20 77 68 69 63 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 6d 61 79 20 62 65 20 72 65 74 75 ┆to which the message may be retu┆
0x0ba20…0ba40 72 80 6e 65 64 2c 0d 0a 2d 20 84 75 31 2c 20 75 32 2c 20 75 33 2c 20 75 34 3a 20 6f 62 6a 65 63 ┆rђned, - ёu1, u2, u3, u4: objec┆
0x0ba40…0ba60 74 73 20 6f 66 20 74 79 70 65 20 62 79 74 65 20 77 68 69 63 68 20 6d 61 79 20 62 65 20 72 65 61 ┆ts of type byte which may be rea┆
0x0ba60…0ba80 64 20 61 6e 64 20 77 72 69 74 80 0a 19 82 80 80 74 65 6e 2c 0d 0a 2d 20 73 69 7a 65 20 6f 66 20 ┆d and writђ ѓђђten, - size of ┆
0x0ba80…0baa0 74 68 65 20 62 75 66 66 65 72 2c 20 69 2e 65 2e 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 ┆the buffer, i.e. number of bytes┆
0x0baa0…0bac0 2c 0d 0a 2d 20 84 6f 66 66 73 65 74 2c 20 74 6f 70 2c 20 62 79 74 65 20 63 6f 75 6e 74 3a 20 6f ┆, - ёoffset, top, byte count: o┆
0x0bac0…0bae0 62 6a 65 63 74 73 20 6f 66 20 74 79 70 65 20 30 2e 2e 6d 61 78 69 6e 74 20 77 68 69 63 68 20 6d ┆bjects of type 0..maxint which m┆
0x0bae0…0bb00 61 79 20 62 65 20 72 65 80 0a 19 82 80 80 61 64 20 61 6e 64 20 77 72 69 74 74 65 6e 3b 20 74 68 ┆ay be reђ ѓђђad and written; th┆
0x0bb00…0bb20 65 79 20 64 65 73 63 72 69 62 65 20 74 68 65 20 64 61 74 61 20 61 72 65 61 20 6f 66 20 74 68 65 ┆ey describe the data area of the┆
0x0bb20…0bb40 20 6d 65 73 73 61 67 65 20 62 75 66 66 65 72 2c 20 0a 19 82 80 80 73 65 65 20 62 65 6c 6f 77 2c ┆ message buffer, ѓђђsee below,┆
0x0bb40…0bb60 0d 0a 2d 20 84 65 76 65 6e 74 20 6b 69 6e 64 3a 20 69 6e 64 69 63 61 74 65 73 20 68 6f 77 20 61 ┆ - ёevent kind: indicates how a┆
0x0bb60…0bb80 6e 64 20 77 68 79 20 74 68 65 20 6d 65 73 73 61 67 65 20 77 61 73 20 70 6c 61 63 65 64 20 69 6e ┆nd why the message was placed in┆
0x0bb80…0bba0 20 74 68 65 20 0a 19 82 80 80 6d 61 69 6c 62 6f 78 20 66 72 6f 6d 20 77 68 69 63 68 20 69 74 20 ┆ the ѓђђmailbox from which it ┆
0x0bba0…0bbc0 68 61 73 20 6c 61 73 74 20 62 65 65 6e 20 72 65 63 65 69 76 65 64 20 6f 72 20 74 68 61 74 20 74 ┆has last been received or that t┆
0x0bbc0…0bbe0 68 65 20 6d 65 73 73 61 67 65 20 0a 19 82 80 80 77 61 73 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d ┆he message ѓђђwas removed from┆
0x0bbe0…0bc00 20 61 20 70 6f 6f 6c 3b 20 73 65 65 20 64 65 74 61 69 6c 73 20 75 6e 80 64 65 72 20 74 68 65 20 ┆ a pool; see details unђder the ┆
0x0bc00…0bc20 70 72 65 80 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 20 0a 19 82 80 80 65 76 65 6e 74 6b ┆preђdefined function ѓђђeventk┆
0x0bc20…0bc40 69 6e 64 20 62 65 6c 6f 77 2c 0d 0a 2d 20 84 63 6f 6e 6e 65 63 74 69 6f 6e 20 69 6e 64 65 78 2c ┆ind below, - ёconnection index,┆
0x0bc40…0bc60 20 63 72 65 64 69 74 20 63 6f 75 6e 74 2c 20 72 65 61 73 6f 6e 3a 20 75 73 65 64 20 69 6e 20 63 ┆ credit count, reason: used in c┆
0x0bc60…0bc80 6f 6e 6a 75 6e 63 80 80 74 69 6f 6e 20 77 69 74 68 20 0a 19 82 80 80 49 4d 43 20 66 75 6e 63 74 ┆onjuncђђtion with ѓђђIMC funct┆
0x0bc80…0bca0 69 6f 6e 73 2c 20 63 66 2e 20 63 68 61 70 74 65 72 20 31 31 2e 0d 0a 0d 0a 54 68 65 20 76 61 6c ┆ions, cf. chapter 11. The val┆
0x0bca0…0bcc0 75 65 73 20 6f 66 20 74 68 65 20 6d 65 73 73 61 67 65 20 61 74 74 72 69 62 75 74 65 73 20 6f 66 ┆ues of the message attributes of┆
0x0bcc0…0bce0 66 73 65 74 20 61 6e 64 20 74 6f 70 20 64 65 66 69 6e 65 20 61 6e 20 61 72 65 61 20 0a 77 69 74 ┆fset and top define an area wit┆
0x0bce0…0bd00 68 69 6e 20 74 68 65 20 62 75 66 66 65 72 2c 20 63 61 6c 6c 65 64 20 74 68 65 20 a0 64 61 74 61 ┆hin the buffer, called the аdata┆
0x0bd00…0bd20 20 61 72 65 61 e0 2c 20 77 68 69 63 68 20 63 6f 6d 80 70 72 69 73 65 73 20 74 68 65 20 28 62 79 ┆ areaЯ, which comђprises the (by┆
0x0bd20…0bd40 74 65 29 20 0a 6c 6f 63 61 74 69 6f 6e 73 20 66 72 6f 6d 20 6f 66 66 73 65 74 20 74 68 72 6f 75 ┆te) locations from offset throu┆
0x0bd40…0bd60 67 68 20 74 6f 70 2d 31 20 72 65 80 6c 61 80 74 69 76 65 20 74 6f 20 74 68 65 20 62 65 67 69 6e ┆gh top-1 reђlaђtive to the begin┆
0x0bd60…0bd80 6e 69 6e 67 20 6f 66 20 74 68 65 20 0a 62 75 66 66 65 72 2e 0d 0a 0d 0a 09 62 75 66 66 65 72 0d ┆ning of the buffer. buffer ┆
0x0bd80…0bda0 0a 20 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 31 35 20 33 30 20 30 22 0d 0a 01 72 61 6d 6d 65 ┆ ramme "5 0 15 30 0" ramme┆
0x0bda0…0bdc0 20 22 33 20 30 20 32 38 20 30 20 32 22 0d 0a 01 72 61 6d 6d 65 20 22 33 20 30 20 34 31 20 30 20 ┆ "3 0 28 0 2" ramme "3 0 41 0 ┆
0x0bdc0…0bde0 32 22 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 20 61 72 65 61 0d 0a 20 0d ┆2" data area ┆
0x0bde0…0be00 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 31 35 20 33 30 20 30 22 0d 0a 20 20 20 20 20 20 20 20 20 ┆ ramme "5 0 15 30 0" ┆
0x0be00…0be20 20 20 20 20 20 5e 88 7c 20 20 20 20 20 20 20 20 20 20 20 20 5e 88 7c 0d 0a 20 20 20 20 20 20 20 ┆ ^ѕ| ^ѕ| ┆
0x0be20…0be40 20 20 20 20 6f 66 66 73 65 74 20 20 20 20 20 20 20 20 20 74 6f 70 0d 0a 0d 0a 0d 0a 54 68 65 20 ┆ offset top The ┆
0x0be40…0be60 62 79 74 65 20 63 6f 75 6e 74 20 61 74 74 72 69 62 75 74 65 20 69 73 20 75 73 65 64 20 74 6f 20 ┆byte count attribute is used to ┆
0x0be60…0be80 69 6e 64 69 63 61 74 65 20 74 68 65 20 73 69 7a 65 20 6f 66 20 61 20 64 61 74 61 20 75 6e 69 74 ┆indicate the size of a data unit┆
0x0be80…0bea0 20 0a 77 68 69 63 68 20 69 73 20 6c 6f 63 61 74 65 64 20 66 72 6f 6d 20 74 68 65 20 62 65 67 69 ┆ which is located from the begi┆
0x0bea0…0bec0 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 64 61 74 61 20 61 72 65 61 2c 20 62 75 74 20 77 68 69 63 ┆nning of the data area, but whic┆
0x0bec0…0bee0 68 20 64 6f 65 73 20 0a 6e 6f 74 20 6e 65 63 65 73 73 61 72 69 6c 79 20 6f 63 63 75 70 79 20 74 ┆h does not necessarily occupy t┆
0x0bee0…0bf00 68 65 20 77 68 6f 6c 65 20 64 61 74 61 20 61 72 65 61 2e 0d 0a 0d 0a 8c 87 c0 0a 49 6e 20 6f 72 ┆he whole data area. їЄ└ In or┆
0x0bf00…0bf20 64 65 72 20 66 6f 72 20 74 68 65 20 64 61 74 61 20 61 72 65 61 20 64 65 73 63 72 69 70 74 69 6f ┆der for the data area descriptio┆
0x0bf20…0bf40 6e 20 74 6f 20 62 65 20 63 6f 6e 73 69 73 74 65 6e 74 2c 20 6f 66 66 73 65 74 20 6d 75 73 74 20 ┆n to be consistent, offset must ┆
0x0bf40…0bf60 0a 62 65 20 6c 65 73 73 20 74 68 61 6e 20 6f 72 20 65 71 75 61 6c 20 74 6f 20 74 6f 70 2c 20 77 ┆ be less than or equal to top, w┆
0x0bf60…0bf80 68 69 63 68 20 69 6e 20 74 75 72 6e 20 6d 75 73 74 20 62 65 20 6c 65 73 73 20 74 68 61 6e 20 6f ┆hich in turn must be less than o┆
0x0bf80…0bfa0 72 20 65 71 75 80 0a 61 6c 20 74 6f 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 62 75 66 ┆r equђ al to the size of the buf┆
0x0bfa0…0bfc0 66 65 72 2e 20 49 6e 20 70 61 72 74 69 80 63 75 80 6c 61 72 2c 20 69 66 20 74 68 65 20 6d 65 73 ┆fer. In partiђcuђlar, if the mes┆
0x0bfc0…0bfe0 73 61 67 65 20 69 73 20 65 6d 70 74 79 2c 20 0a 61 6c 6c 20 74 68 72 65 65 20 61 74 74 72 69 62 ┆sage is empty, all three attrib┆
0x0bfe0…0c000 75 74 65 73 20 6d 75 73 74 20 62 65 20 7a 65 72 6f 2e 0d 0a 0d 0a 49 6e 20 61 20 6d 65 73 73 61 ┆utes must be zero. In a messa┆
0x0c000…0c020 67 65 20 73 74 61 63 6b 20 74 68 65 20 74 6f 70 6d 6f 73 74 20 62 75 66 66 65 72 20 61 74 74 72 ┆ge stack the topmost buffer attr┆
0x0c020…0c040 69 62 75 74 65 73 20 28 73 69 7a 65 2c 20 6f 66 66 80 73 65 74 2c 20 2e 2e 2e 29 20 0a 77 69 6c ┆ibutes (size, offђset, ...) wil┆
0x0c040…0c060 6c 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 62 75 66 66 65 72 20 6f 66 20 74 68 65 20 74 6f 70 ┆l refer to the buffer of the top┆
0x0c060…0c080 6d 6f 73 74 20 6e 6f 6e 2d 65 6d 70 74 79 20 6d 65 73 80 73 61 67 65 2c 20 63 66 2e 20 73 65 63 ┆most non-empty mesђsage, cf. sec┆
0x0c080…0c0a0 80 0a 74 69 6f 6e 20 31 30 2e 31 2e 0d 0a 0d 0a 54 68 65 20 63 6f 6e 63 65 70 74 20 6f 66 20 64 ┆ђ tion 10.1. The concept of d┆
0x0c0a0…0c0c0 61 74 61 20 61 72 65 61 20 69 73 20 75 73 65 64 20 69 6e 20 63 6f 6e 6a 75 6e 63 74 69 6f 6e 20 ┆ata area is used in conjunction ┆
0x0c0c0…0c0e0 77 69 74 68 20 74 68 65 20 49 4d 43 20 66 75 6e 63 80 0a 74 69 6f 6e 73 2c 20 63 66 2e 20 63 68 ┆with the IMC funcђ tions, cf. ch┆
0x0c0e0…0c100 61 70 74 65 72 20 31 31 2c 20 61 6e 64 20 69 73 20 61 6c 73 6f 20 69 6e 74 65 6e 64 65 64 20 61 ┆apter 11, and is also intended a┆
0x0c100…0c120 73 20 61 20 62 61 73 69 73 20 66 6f 72 20 74 68 65 20 0a 65 73 74 61 62 6c 69 73 68 6d 65 6e 74 ┆s a basis for the establishment┆
0x0c120…0c140 20 6f 66 20 70 72 61 63 74 69 63 61 6c 20 63 6f 6e 76 65 6e 74 69 6f 6e 73 20 66 6f 72 20 74 68 ┆ of practical conventions for th┆
0x0c140…0c160 65 20 75 73 65 20 6f 66 20 74 68 65 20 6c 61 6e 80 67 75 61 67 65 2e 0d 0a 0d 0a 41 20 70 6f 6f ┆e use of the lanђguage. A poo┆
0x0c160…0c180 6c 20 69 73 20 74 68 65 20 68 6f 6d 65 20 6f 66 20 61 20 73 65 74 20 6f 66 20 6d 65 73 73 61 67 ┆l is the home of a set of messag┆
0x0c180…0c1a0 65 73 2e 20 49 6e 69 74 69 61 6c 6c 79 20 74 68 65 20 73 65 74 20 69 73 20 65 6d 70 74 79 2e 20 ┆es. Initially the set is empty. ┆
0x0c1a0…0c1c0 0a 41 6c 6c 20 6d 65 73 73 61 67 65 73 20 62 65 6c 6f 6e 67 69 6e 67 20 74 6f 20 74 68 65 20 70 ┆ All messages belonging to the p┆
0x0c1c0…0c1e0 6f 6f 6c 20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 73 69 7a 65 2c 20 61 6e 64 20 61 6c 6c 20 ┆ool have the same size, and all ┆
0x0c1e0…0c200 61 72 65 20 61 6c 80 0a 6c 6f 63 61 74 65 64 20 66 72 6f 6d 20 74 68 65 20 73 61 6d 65 20 6b 69 ┆are alђ located from the same ki┆
0x0c200…0c220 6e 64 20 6f 66 20 6d 65 6d 6f 72 79 2e 20 54 68 65 20 73 65 74 20 6d 61 79 20 67 72 6f 77 20 62 ┆nd of memory. The set may grow b┆
0x0c220…0c240 79 20 63 61 6c 6c 73 20 6f 66 20 0a 61 6c 6c 6f 63 70 6f 6f 6c 2f 61 6c 6c 6f 63 6d 65 6d 70 6f ┆y calls of allocpool/allocmempo┆
0x0c240…0c260 6f 6c 2c 20 6f 72 20 73 68 72 69 6e 6b 20 62 79 20 63 61 6c 6c 73 20 6f 66 20 72 65 6c 65 61 73 ┆ol, or shrink by calls of releas┆
0x0c260…0c280 65 70 6f 6f 6c 2e 20 41 74 20 61 6e 79 20 70 6f 69 6e 74 20 0a 69 6e 20 74 69 6d 65 20 73 6f 6d ┆epool. At any point in time som┆
0x0c280…0c2a0 65 20 73 75 62 73 65 74 20 6f 66 20 74 68 65 20 73 65 74 20 6f 66 20 6d 65 73 73 61 67 65 73 20 ┆e subset of the set of messages ┆
0x0c2a0…0c2c0 77 68 69 63 68 20 62 65 6c 6f 6e 67 20 74 6f 20 61 20 70 6f 6f 6c 20 0a 77 69 6c 6c 20 62 65 20 ┆which belong to a pool will be ┆
0x0c2c0…0c2e0 68 65 6c 64 20 69 6e 20 74 68 65 20 70 6f 6f 6c 2c 20 77 68 69 6c 65 20 74 68 65 20 72 65 6d 61 ┆held in the pool, while the rema┆
0x0c2e0…0c300 69 6e 69 6e 67 20 70 61 72 74 20 77 69 6c 6c 20 62 65 20 6f 75 74 73 69 64 65 20 74 68 65 20 0a ┆ining part will be outside the ┆
0x0c300…0c320 70 6f 6f 6c 2c 20 69 6e 20 75 73 65 2e 20 42 79 20 61 20 63 61 6c 6c 20 6f 66 20 61 6c 6c 6f 63 ┆pool, in use. By a call of alloc┆
0x0c320…0c340 20 61 20 6d 65 73 73 61 67 65 20 6d 61 79 20 62 65 20 74 61 6b 65 6e 20 66 72 6f 6d 20 74 68 65 ┆ a message may be taken from the┆
0x0c340…0c360 20 0a 70 6f 6f 6c 20 73 6f 20 69 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 28 76 69 61 20 61 20 ┆ pool so it can be used (via a ┆
0x0c360…0c380 72 65 66 65 72 65 6e 63 65 29 2c 20 61 6e 64 20 69 74 20 6d 61 79 20 62 65 20 70 75 74 20 62 61 ┆reference), and it may be put ba┆
0x0c380…0c3a0 63 6b 20 69 6e 20 0a 74 68 65 20 70 6f 6f 6c 20 62 79 20 61 20 63 61 6c 6c 20 6f 66 20 72 65 6c ┆ck in the pool by a call of rel┆
0x0c3a0…0c3c0 65 61 73 65 2e 0d 0a 0d 0a 57 68 65 6e 65 76 65 72 20 74 68 65 20 73 65 74 20 6f 66 20 6d 65 73 ┆ease. Whenever the set of mes┆
0x0c3c0…0c3e0 73 61 67 65 73 20 62 65 6c 6f 6e 67 69 6e 67 20 74 6f 20 61 20 70 6f 6f 6c 20 69 73 20 65 6d 70 ┆sages belonging to a pool is emp┆
0x0c3e0…0c400 74 79 2c 20 74 68 65 20 6d 65 73 80 0a 73 61 67 65 20 62 75 66 66 65 72 20 73 69 7a 65 20 6f 72 ┆ty, the mesђ sage buffer size or┆
0x0c400…0c420 2f 61 6e 64 20 6d 65 6d 6f 72 79 20 6b 69 6e 64 20 61 74 74 72 69 62 75 74 65 73 20 6f 66 20 74 ┆/and memory kind attributes of t┆
0x0c420…0c440 68 65 20 70 6f 6f 6c 20 6d 61 79 20 62 65 20 0a 73 65 74 20 6f 72 20 63 68 61 6e 67 65 64 20 62 ┆he pool may be set or changed b┆
0x0c440…0c460 79 20 61 20 63 61 6c 6c 20 6f 66 20 61 6c 6c 6f 63 70 6f 6f 6c 20 6f 72 20 61 6c 6c 6f 63 80 6d ┆y a call of allocpool or allocђm┆
0x0c460…0c480 65 6d 70 6f 6f 6c 3a 2e 0d 0a 0d 0a 0e 0a 46 55 4e 43 54 49 4f 4e 20 bf dc d8 61 6c 6c 6f 63 70 ┆empool:. FUNCTION ┐▄пallocp┆
0x0c480…0c4a0 6f 6f 6c be 28 56 41 52 20 70 3a 20 70 6f 6f 6c 3b 20 6e 6f 5f 6f 66 5f 6d 65 73 73 61 67 65 73 ┆oolЙ(VAR p: pool; no_of_messages┆
0x0c4a0…0c4c0 3a 20 30 2e 2e 6d 61 78 69 6e 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 62 75 66 73 69 7a 65 ┆: 0..maxint; bufsize┆
0x0c4c0…0c4e0 3a 20 30 2e 2e 6d 61 78 69 6e 74 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 0f 0a 0e 0a 46 55 4e ┆: 0..maxint): 0..maxint FUN┆
0x0c4e0…0c500 43 54 49 4f 4e 20 bf dc d8 61 6c 6c 6f 63 6d 65 6d 70 6f 6f 6c be 28 56 41 52 20 70 3a 20 70 6f ┆CTION ┐▄пallocmempoolЙ(VAR p: po┆
0x0c500…0c520 6f 6c 3b 20 6e 6f 5f 6f 66 5f 6d 65 73 73 61 67 65 73 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ┆ol; no_of_messages, ┆
0x0c520…0c540 62 75 66 73 69 7a 65 3a 20 30 2e 2e 6d 61 78 69 6e 74 3b 20 6d 65 6d 3a 20 6d 65 6d 5f 74 79 70 ┆bufsize: 0..maxint; mem: mem_typ┆
0x0c540…0c560 65 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 0f 0a 0d 0a 54 68 65 20 76 61 6c 75 65 20 6f 66 20 ┆e): 0..maxint The value of ┆
0x0c560…0c580 62 75 66 73 69 7a 65 20 64 65 74 65 72 6d 69 6e 65 73 20 74 68 65 20 62 75 66 66 65 72 20 73 69 ┆bufsize determines the buffer si┆
0x0c580…0c5a0 7a 65 20 6f 66 20 74 68 65 20 6d 65 73 80 73 61 67 65 73 20 0a 77 68 69 63 68 20 6d 61 79 20 62 ┆ze of the mesђsages which may b┆
0x0c5a0…0c5c0 65 6c 6f 6e 67 20 74 6f 20 74 68 65 20 70 6f 6f 6c 20 70 2c 20 61 6e 64 20 74 68 65 20 76 61 6c ┆elong to the pool p, and the val┆
0x0c5c0…0c5e0 75 65 20 6f 66 20 6d 65 6d 20 64 65 74 65 72 6d 69 80 6e 65 73 20 74 68 65 20 0a 6b 69 6e 64 20 ┆ue of mem determiђnes the kind ┆
0x0c5e0…0c600 6f 66 20 6d 65 6d 6f 72 79 20 74 6f 20 62 65 20 75 73 65 64 20 66 6f 72 20 74 68 65 73 65 20 6d ┆of memory to be used for these m┆
0x0c600…0c620 65 73 73 61 67 65 73 2e 20 54 68 65 20 74 79 70 65 20 6f 66 20 6d 65 6d 20 69 73 20 0a 74 68 65 ┆essages. The type of mem is the┆
0x0c620…0c640 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 64 65 70 65 6e 64 65 6e 74 20 70 72 65 64 65 66 ┆ implementation dependent predef┆
0x0c640…0c660 69 6e 65 64 20 65 6e 75 6d 65 72 61 74 69 6f 6e 20 74 79 70 65 20 6d 65 6d 5f 74 79 70 65 20 0a ┆ined enumeration type mem_type ┆
0x0c660…0c680 77 68 69 63 68 20 69 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 72 65 66 6c 65 63 74 20 74 68 65 ┆which is intended to reflect the┆
0x0c680…0c6a0 20 76 61 72 69 6f 75 73 20 6b 69 6e 64 73 20 6f 66 20 52 41 4d 20 75 73 65 64 20 69 6e 20 0a 6d ┆ various kinds of RAM used in m┆
0x0c6a0…0c6c0 75 6c 74 69 70 72 6f 63 65 73 73 6f 72 20 73 79 73 74 65 6d 73 20 77 68 69 63 68 20 6d 61 79 20 ┆ultiprocessor systems which may ┆
0x0c6c0…0c6e0 69 6e 63 6c 75 64 65 20 69 6e 74 65 6c 6c 69 80 67 65 6e 74 20 63 6f 6e 74 72 6f 6c 6c 65 72 73 ┆include intelliђgent controllers┆
0x0c6e0…0c700 20 77 69 74 68 20 0a 74 68 65 69 72 20 6f 77 6e 20 52 41 4d 20 72 65 80 73 6f 75 72 63 65 73 2e ┆ with their own RAM reђsources.┆
0x0c700…0c720 0d 0a 0d 0a 49 66 2c 20 61 74 20 74 68 65 20 74 69 6d 65 20 6f 66 20 63 61 6c 6c 2c 20 74 68 65 ┆ If, at the time of call, the┆
0x0c720…0c740 20 73 65 74 20 6f 66 20 6d 65 73 73 61 67 65 73 20 62 65 6c 6f 6e 67 69 6e 67 20 74 6f 20 74 68 ┆ set of messages belonging to th┆
0x0c740…0c760 65 20 70 6f 6f 6c 20 70 20 69 73 20 0a 6e 6f 6e 2d 65 6d 70 74 79 2c 20 74 68 65 20 76 61 6c 75 ┆e pool p is non-empty, the valu┆
0x0c760…0c780 65 73 20 6f 66 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 62 75 66 73 69 7a 65 20 61 6e 64 20 ┆es of the parameter bufsize and ┆
0x0c780…0c7a0 6d 65 6d 20 68 61 76 65 20 6e 6f 20 65 66 80 0a 66 65 63 74 2e 0d 0a 0d 0a 53 75 62 73 65 71 75 ┆mem have no efђ fect. Subsequ┆
0x0c7a0…0c7c0 65 6e 74 20 74 6f 20 74 68 65 20 70 6f 73 73 69 62 6c 65 20 73 65 74 74 69 6e 67 20 6f 66 20 70 ┆ent to the possible setting of p┆
0x0c7c0…0c7e0 6f 6f 6c 20 61 74 74 72 69 62 75 74 65 73 20 61 73 20 64 65 80 73 63 72 69 80 62 65 64 20 0a 61 ┆ool attributes as deђscriђbed a┆
0x0c7e0…0c800 62 6f 76 65 2c 20 61 6e 20 61 74 74 65 6d 70 74 20 69 73 20 6d 61 64 65 20 74 6f 20 61 6c 6c 6f ┆bove, an attempt is made to allo┆
0x0c800…0c820 63 61 74 65 20 6d 65 6d 6f 72 79 20 66 6f 72 20 61 73 20 6d 61 6e 79 20 6d 65 73 73 61 67 65 73 ┆cate memory for as many messages┆
0x0c820…0c840 20 0a 61 73 20 69 6e 64 69 63 61 74 65 64 20 62 79 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 6e ┆ as indicated by the value of n┆
0x0c840…0c860 6f 5f 6f 66 5f 6d 65 73 73 61 67 65 73 2e 20 54 68 65 73 65 20 6d 65 73 73 61 67 65 73 20 61 72 ┆o_of_messages. These messages ar┆
0x0c860…0c880 65 20 73 75 62 80 0a 73 65 71 75 65 6e 74 6c 79 20 70 6c 61 63 65 64 20 69 6e 20 74 68 65 20 70 ┆e subђ sequently placed in the p┆
0x0c880…0c8a0 6f 6f 6c 20 70 20 77 68 69 63 68 20 69 73 20 74 68 65 69 72 20 68 6f 6d 65 20 70 6f 6f 6c 2c 20 ┆ool p which is their home pool, ┆
0x0c8a0…0c8c0 72 65 61 64 79 20 74 6f 20 62 65 20 0a 74 61 6b 65 6e 20 6f 75 74 20 62 79 20 63 61 6c 6c 73 20 ┆ready to be taken out by calls ┆
0x0c8c0…0c8e0 6f 66 20 61 6c 6c 6f 63 20 28 73 65 65 20 62 65 6c 6f 77 29 2e 20 49 66 20 73 75 66 66 69 63 69 ┆of alloc (see below). If suffici┆
0x0c8e0…0c900 65 6e 74 20 6d 65 6d 6f 72 79 20 69 73 20 6e 6f 74 20 0a 61 76 61 69 6c 61 62 6c 65 20 74 68 65 ┆ent memory is not available the┆
0x0c900…0c920 20 6e 75 6d 80 62 65 72 20 6f 66 20 6d 65 73 73 61 67 65 73 20 61 63 71 75 69 72 65 64 20 6d 61 ┆ numђber of messages acquired ma┆
0x0c920…0c940 79 20 62 65 20 73 6d 61 6c 6c 65 72 20 74 68 61 6e 20 72 65 80 0a 71 75 65 73 74 65 64 2e 20 54 ┆y be smaller than reђ quested. T┆
0x0c940…0c960 68 65 20 61 63 74 75 61 6c 20 6e 75 6d 62 65 72 20 6f 66 20 6d 65 73 73 61 67 65 73 20 69 73 20 ┆he actual number of messages is ┆
0x0c960…0c980 72 65 74 75 72 6e 65 64 20 61 73 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 0a 74 68 65 20 66 ┆returned as the result of the f┆
0x0c980…0c9a0 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2e 0d 0a 0d 0a 4d 65 6d 6f 72 79 20 6f 63 63 75 70 69 65 64 ┆unction call. Memory occupied┆
0x0c9a0…0c9c0 20 62 79 20 6d 65 73 73 61 67 65 73 20 68 65 6c 64 20 69 6e 20 61 20 70 6f 6f 6c 20 6d 61 79 20 ┆ by messages held in a pool may ┆
0x0c9c0…0c9e0 62 65 20 64 65 61 6c 6c 6f 63 61 74 65 64 20 62 79 20 61 20 0a 63 61 6c 6c 20 6f 66 20 72 65 6c ┆be deallocated by a call of rel┆
0x0c9e0…0ca00 65 61 73 65 70 6f 6f 6c 2e 20 44 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 69 6d 70 6c 65 ┆easepool. Depending on the imple┆
0x0ca00…0ca20 6d 65 6e 74 61 74 69 6f 6e 20 69 74 20 6d 61 79 20 74 68 65 6e 20 62 65 20 0a 70 6f 73 73 69 62 ┆mentation it may then be possib┆
0x0ca20…0ca40 6c 65 20 74 6f 20 72 65 75 73 65 20 74 68 69 73 20 6d 65 6d 6f 72 79 20 66 6f 72 20 6f 74 68 65 ┆le to reuse this memory for othe┆
0x0ca40…0ca60 72 20 70 75 72 80 70 6f 80 73 65 73 3a 20 70 72 6f 80 67 72 61 6d 20 6d 65 6d 6f 72 79 2c 20 0a ┆r purђpoђses: proђgram memory, ┆
0x0ca60…0ca80 73 74 61 63 6b 2c 20 68 65 61 70 2c 20 6f 72 20 6f 74 68 65 72 20 70 6f 6f 6c 73 2e 0d 0a 0d 0a ┆stack, heap, or other pools. ┆
0x0ca80…0caa0 46 55 4e 43 54 49 4f 4e 20 bf dc d8 72 65 6c 65 61 73 65 70 6f 6f 6c be 28 56 41 52 20 70 3a 20 ┆FUNCTION ┐▄пreleasepoolЙ(VAR p: ┆
0x0caa0…0cac0 70 6f 6f 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 6e 6f 5f 6f 66 5f 6d 65 73 73 61 67 65 73 ┆pool; no_of_messages┆
0x0cac0…0cae0 3a 20 31 2e 2e 6d 61 78 69 6e 74 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 0d 0a 54 68 65 20 6e ┆: 1..maxint): 0..maxint The n┆
0x0cae0…0cb00 75 6d 62 65 72 20 6f 66 20 6d 65 73 73 61 67 65 73 20 69 6e 64 69 63 61 74 65 64 20 62 79 20 74 ┆umber of messages indicated by t┆
0x0cb00…0cb20 68 65 20 76 61 6c 75 65 20 6f 66 20 6e 6f 80 5f 6f 66 5f 6d 65 73 80 73 61 67 65 73 20 61 72 65 ┆he value of noђ_of_mesђsages are┆
0x0cb20…0cb40 20 0a 64 65 61 6c 6c 6f 63 61 74 65 64 20 66 72 6f 6d 20 74 68 65 20 70 6f 6f 6c 20 70 20 61 6e ┆ deallocated from the pool p an┆
0x0cb40…0cb60 64 20 62 65 63 6f 6d 65 20 66 72 65 65 20 6d 65 80 6d 6f 72 79 2e 20 49 66 20 74 68 65 20 72 65 ┆d become free meђmory. If the re┆
0x0cb60…0cb80 71 75 65 73 74 65 64 20 0a 6e 75 6d 62 65 72 20 6f 66 20 6d 65 73 73 61 67 65 73 20 69 73 20 6e ┆quested number of messages is n┆
0x0cb80…0cba0 6f 74 20 70 72 65 73 65 6e 74 20 69 6e 20 74 68 65 20 70 6f 6f 6c 20 66 65 77 65 72 20 6d 65 73 ┆ot present in the pool fewer mes┆
0x0cba0…0cbc0 73 61 80 67 65 73 20 6d 61 79 20 62 65 20 0a 64 65 61 6c 6c 6f 63 61 74 65 64 2e 20 54 68 65 20 ┆saђges may be deallocated. The ┆
0x0cbc0…0cbe0 61 63 74 75 61 6c 20 6e 75 6d 80 62 65 72 20 6f 66 20 64 65 61 6c 6c 6f 63 61 74 65 64 20 6d 65 ┆actual numђber of deallocated me┆
0x0cbe0…0cc00 73 73 61 67 65 73 20 69 73 20 72 65 74 75 72 6e 65 64 20 61 73 20 0a 74 68 65 20 72 65 73 75 6c ┆ssages is returned as the resul┆
0x0cc00…0cc20 74 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2e 0d 0a 0d 0a 41 20 6d 65 73 ┆t of the function call. A mes┆
0x0cc20…0cc40 73 61 67 65 20 69 73 20 74 61 6b 65 6e 20 6f 75 74 20 66 72 6f 6d 20 61 20 70 6f 6f 6c 20 62 79 ┆sage is taken out from a pool by┆
0x0cc40…0cc60 20 61 20 63 61 6c 6c 20 6f 66 20 74 68 65 20 70 72 65 64 65 80 66 69 80 6e 65 64 20 70 72 6f 80 ┆ a call of the predeђfiђned proђ┆
0x0cc60…0cc80 0a 63 65 64 75 72 65 20 61 6c 6c 6f 63 3a 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 61 ┆ cedure alloc: PROCEDURE ┐▄пa┆
0x0cc80…0cca0 6c 6c 6f 63 be 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 56 41 52 20 70 3a 20 70 ┆llocЙ(VAR r: reference; VAR p: p┆
0x0cca0…0ccc0 6f 6f 6c 3b 20 56 41 52 20 72 61 3a 20 6d 61 69 6c 62 6f 78 29 0d 0a 0d 0a 41 74 20 74 68 65 20 ┆ool; VAR ra: mailbox) At the ┆
0x0ccc0…0cce0 74 69 6d 65 20 6f 66 20 63 61 6c 6c 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 70 61 ┆time of call the value of the pa┆
0x0cce0…0cd00 72 61 6d 65 74 65 72 20 72 20 6d 75 73 74 20 62 65 20 4e 49 4c 2c 20 6f 74 68 65 72 80 0a 77 69 ┆rameter r must be NIL, otherђ wi┆
0x0cd00…0cd20 73 65 20 61 20 66 61 75 6c 74 20 6f 63 63 75 72 73 2e 20 49 66 20 74 68 65 20 70 6f 6f 6c 20 70 ┆se a fault occurs. If the pool p┆
0x0cd20…0cd40 20 69 73 20 65 6d 70 74 79 2c 20 69 2e 65 2e 20 61 6c 6c 20 6d 65 73 73 61 80 67 65 73 20 68 61 ┆ is empty, i.e. all messaђges ha┆
0x0cd40…0cd60 76 65 20 0a 62 65 65 6e 20 72 65 6d 6f 76 65 64 2c 20 74 68 65 20 63 61 6c 6c 69 6e 67 20 70 72 ┆ve been removed, the calling pr┆
0x0cd60…0cd80 6f 63 65 73 73 20 77 69 6c 6c 20 77 61 69 74 20 75 6e 74 69 6c 20 61 20 6d 65 73 73 61 67 65 20 ┆ocess will wait until a message ┆
0x0cd80…0cda0 62 65 63 6f 6d 65 73 20 0a 61 76 61 69 6c 61 62 6c 65 2e 20 54 68 69 73 20 6f 63 63 75 72 73 20 ┆becomes available. This occurs ┆
0x0cda0…0cdc0 77 68 65 6e 20 61 20 6d 65 73 73 61 67 65 20 69 73 20 70 75 74 20 62 61 63 6b 20 74 6f 20 74 68 ┆when a message is put back to th┆
0x0cdc0…0cde0 65 20 70 6f 6f 6c 20 62 79 20 0a 61 6e 6f 74 68 65 72 20 70 72 6f 63 65 73 73 20 28 63 61 6c 6c ┆e pool by another process (call┆
0x0cde0…0ce00 20 6f 66 20 72 65 6c 65 61 73 65 2c 20 73 65 65 20 62 65 6c 6f 77 29 2c 20 6f 72 20 77 68 65 6e ┆ of release, see below), or when┆
0x0ce00…0ce20 20 61 64 64 69 74 69 6f 6e 61 6c 20 6d 65 80 0a 6d 6f 72 79 20 69 73 20 61 6c 6c 6f 63 61 74 65 ┆ additional meђ mory is allocate┆
0x0ce20…0ce40 64 20 66 6f 72 20 74 68 65 20 70 6f 6f 6c 20 28 63 61 6c 6c 20 6f 66 20 61 6c 80 6c 6f 63 70 6f ┆d for the pool (call of alђlocpo┆
0x0ce40…0ce60 6f 6c 2f 61 6c 6c 6f 63 6d 65 6d 70 6f 6f 6c 2c 20 73 65 65 20 0a 61 62 6f 76 65 29 2e 20 57 68 ┆ol/allocmempool, see above). Wh┆
0x0ce60…0ce80 65 6e 20 73 65 76 65 72 61 6c 20 70 72 6f 63 65 73 73 65 73 20 61 74 80 74 65 6d 70 74 20 74 6f ┆en several processes atђtempt to┆
0x0ce80…0cea0 20 74 61 6b 65 20 6f 75 74 20 6d 65 73 73 61 67 65 73 20 66 72 6f 6d 20 61 6e 20 0a 65 6d 70 74 ┆ take out messages from an empt┆
0x0cea0…0cec0 79 20 70 6f 6f 6c 20 77 61 69 74 69 6e 67 20 74 61 6b 65 73 20 70 6c 61 63 65 20 69 6e 20 61 20 ┆y pool waiting takes place in a ┆
0x0cec0…0cee0 46 49 46 4f 20 71 75 65 75 65 2e 0d 0a 0d 0a 8c 8f 98 0a 57 68 65 6e 20 61 20 6d 65 73 73 61 67 ┆FIFO queue. їЈў When a messag┆
0x0cee0…0cf00 65 20 62 65 63 6f 6d 65 73 20 61 76 61 69 6c 61 62 6c 65 20 69 74 20 69 73 20 72 65 6d 6f 76 65 ┆e becomes available it is remove┆
0x0cf00…0cf20 64 20 66 72 6f 6d 20 74 68 65 20 70 6f 80 6f 6c 2c 20 69 74 73 20 0a 72 65 74 75 72 6e 20 61 64 ┆d from the poђol, its return ad┆
0x0cf20…0cf40 64 72 65 73 73 20 62 65 63 6f 6d 65 73 20 74 68 65 20 6d 61 69 6c 62 6f 78 20 69 6e 64 69 63 61 ┆dress becomes the mailbox indica┆
0x0cf40…0cf60 74 65 64 20 62 79 20 74 68 65 20 70 61 72 61 80 6d 65 80 74 65 72 20 72 61 2c 20 0a 61 6e 64 20 ┆ted by the paraђmeђter ra, and ┆
0x0cf60…0cf80 72 20 77 69 6c 6c 20 64 65 73 69 67 6e 61 74 65 20 61 20 6d 65 73 73 61 67 65 20 73 74 61 63 6b ┆r will designate a message stack┆
0x0cf80…0cfa0 20 63 6f 6e 73 69 80 73 74 69 6e 67 20 6f 6e 6c 79 20 6f 66 20 74 68 65 20 72 65 6d 6f 76 65 64 ┆ consiђsting only of the removed┆
0x0cfa0…0cfc0 20 0a 6d 65 73 73 61 67 65 2e 0d 0a 0d 0a 57 68 65 6e 20 61 20 6d 65 73 73 61 67 65 20 68 61 73 ┆ message. When a message has┆
0x0cfc0…0cfe0 20 6a 75 73 74 20 62 65 65 6e 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 69 74 73 20 68 6f 6d 65 ┆ just been removed from its home┆
0x0cfe0…0d000 20 70 6f 6f 6c 20 69 74 73 20 64 61 74 61 20 0a 61 72 65 61 20 77 69 6c 6c 20 62 65 20 74 68 65 ┆ pool its data area will be the┆
0x0d000…0d020 20 77 68 6f 6c 65 20 62 75 66 66 65 72 2c 20 69 2e 65 2e 20 6f 66 66 73 65 74 3d 7a 65 72 6f 20 ┆ whole buffer, i.e. offset=zero ┆
0x0d020…0d040 61 6e 64 20 74 6f 70 3d 73 69 7a 65 20 6f 66 20 74 68 65 20 0a 62 75 66 66 65 72 2e 20 54 68 65 ┆and top=size of the buffer. The┆
0x0d040…0d060 20 61 74 74 72 69 62 75 74 65 73 20 75 31 2c 20 75 32 2c 20 75 33 2c 20 75 34 20 61 6e 64 20 62 ┆ attributes u1, u2, u3, u4 and b┆
0x0d060…0d080 79 74 65 20 63 6f 75 6e 74 20 77 69 6c 6c 20 61 6c 6c 20 62 65 20 7a 65 72 6f 2e 20 0a 54 68 65 ┆yte count will all be zero. The┆
0x0d080…0d0a0 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 65 76 65 6e 74 20 6b 69 6e 64 20 61 74 80 74 72 69 62 ┆ value of the event kind atђtrib┆
0x0d0a0…0d0c0 75 74 65 20 77 69 6c 6c 20 62 65 20 6e 6f 74 5f 65 76 65 6e 74 2c 20 69 6e 64 69 63 61 74 69 6e ┆ute will be not_event, indicatin┆
0x0d0c0…0d0e0 67 20 0a 74 68 65 20 6d 65 73 73 61 67 65 20 64 6f 65 73 20 6e 6f 74 20 72 65 70 72 65 73 65 6e ┆g the message does not represen┆
0x0d0e0…0d100 74 20 61 20 73 79 73 74 65 6d 20 65 76 65 6e 74 2e 0d 0a 0d 0a 49 74 20 69 73 20 70 6f 73 73 69 ┆t a system event. It is possi┆
0x0d100…0d120 62 6c 65 20 74 6f 20 73 70 65 63 69 66 79 20 61 20 6d 61 78 69 6d 75 6d 20 74 69 6d 65 20 77 68 ┆ble to specify a maximum time wh┆
0x0d120…0d140 69 63 68 20 61 20 70 72 6f 63 65 73 73 20 69 73 20 77 69 6c 80 6c 69 6e 67 20 74 6f 20 0a 77 61 ┆ich a process is wilђling to wa┆
0x0d140…0d160 69 74 20 66 6f 72 20 61 20 6d 65 73 73 61 67 65 2e 20 54 68 69 73 20 63 61 6e 20 62 65 20 64 6f ┆it for a message. This can be do┆
0x0d160…0d180 6e 65 20 62 79 20 63 61 6c 6c 69 6e 67 20 61 6c 6c 6f 63 80 64 65 6c 61 79 20 69 6e 73 74 65 61 ┆ne by calling allocђdelay instea┆
0x0d180…0d1a0 64 20 6f 66 20 0a 61 6c 6c 6f 63 2c 20 63 66 2e 20 73 75 62 73 65 63 74 69 6f 6e 20 39 2e 32 2e ┆d of alloc, cf. subsection 9.2.┆
0x0d1a0…0d1c0 32 2e 0d 0a 0d 0a 41 20 6d 65 73 73 61 67 65 20 69 73 20 70 75 74 20 62 61 63 6b 20 69 6e 20 69 ┆2. A message is put back in i┆
0x0d1c0…0d1e0 74 73 20 68 6f 6d 65 20 70 6f 6f 6c 20 62 79 20 61 20 63 61 6c 6c 20 6f 66 20 74 68 65 20 70 72 ┆ts home pool by a call of the pr┆
0x0d1e0…0d200 65 80 64 65 80 66 69 6e 65 64 20 0a 70 72 6f 63 65 64 75 72 65 20 72 65 6c 65 61 73 65 3a 0d 0a ┆eђdeђfined procedure release: ┆
0x0d200…0d220 0d 0a 50 52 4f 43 45 44 52 55 45 20 bf dc d8 72 65 6c 65 61 73 65 be 28 56 41 52 20 72 3a 20 72 ┆ PROCEDRUE ┐▄пreleaseЙ(VAR r: r┆
0x0d220…0d240 65 66 65 72 65 6e 63 65 29 0d 0a 0d 0a 41 74 20 74 68 65 20 74 69 6d 65 20 6f 66 20 63 61 6c 6c ┆eference) At the time of call┆
0x0d240…0d260 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 6c 6f 63 6b 65 ┆ the parameter must not be locke┆
0x0d260…0d280 64 20 28 63 66 2e 20 73 65 63 80 74 69 6f 6e 20 0a 35 2e 39 29 2c 20 61 6e 64 20 69 74 73 20 76 ┆d (cf. secђtion 5.9), and its v┆
0x0d280…0d2a0 61 6c 75 65 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 4e 49 4c 2c 20 6e 6f 72 20 6d 61 79 20 74 68 ┆alue must not be NIL, nor may th┆
0x0d2a0…0d2c0 65 20 64 65 80 73 69 67 6e 61 74 65 64 20 6d 65 73 73 61 67 65 20 0a 73 74 61 63 6b 20 63 6f 6e ┆e deђsignated message stack con┆
0x0d2c0…0d2e0 74 61 69 6e 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 6d 65 73 73 61 67 65 3b 20 6f 74 68 65 ┆tain more than one message; othe┆
0x0d2e0…0d300 72 80 77 69 73 65 20 61 20 66 61 75 6c 74 20 6f 63 63 75 72 73 2e 20 54 68 65 20 0a 6d 65 73 73 ┆rђwise a fault occurs. The mess┆
0x0d300…0d320 61 67 65 20 69 73 20 70 75 74 20 62 61 63 6b 20 69 6e 20 69 74 73 20 68 6f 80 6d 65 20 70 6f 80 ┆age is put back in its hoђme poђ┆
0x0d320…0d340 6f 6c 2c 20 61 6e 64 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 72 20 62 65 63 6f 6d 65 73 20 0a ┆ol, and the value of r becomes ┆
0x0d340…0d360 4e 49 4c 2e 0d 0a 0d 0a 49 74 20 63 61 6e 20 62 65 20 74 65 73 74 65 64 20 77 68 65 74 68 65 72 ┆NIL. It can be tested whether┆
0x0d360…0d380 20 61 20 6d 65 73 73 61 67 65 20 62 65 6c 6f 6e 67 73 20 74 6f 20 61 20 70 61 72 74 69 63 75 6c ┆ a message belongs to a particul┆
0x0d380…0d3a0 61 72 20 70 6f 6f 6c 2e 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 bf dc d8 68 6f 6d 65 74 65 73 74 ┆ar pool. FUNCTION ┐▄пhometest┆
0x0d3a0…0d3c0 be 28 56 41 52 20 72 65 66 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 56 41 52 20 70 3a 20 70 6f 6f ┆Й(VAR ref: reference; VAR p: poo┆
0x0d3c0…0d3e0 6c 29 3a 20 62 6f 6f 6c 65 61 6e 0d 0a 0d 0a 54 68 65 20 76 61 6c 75 65 20 6f 66 20 72 65 66 20 ┆l): boolean The value of ref ┆
0x0d3e0…0d400 6d 75 73 74 20 6e 6f 74 20 62 65 20 4e 49 4c 20 77 68 65 6e 20 68 6f 6d 65 74 65 73 74 20 69 73 ┆must not be NIL when hometest is┆
0x0d400…0d420 20 63 61 6c 6c 65 64 2e 20 49 66 20 69 74 20 69 73 2c 20 61 20 0a 66 61 75 6c 74 20 6f 63 63 75 ┆ called. If it is, a fault occu┆
0x0d420…0d440 72 73 2e 20 54 68 65 20 72 65 73 75 6c 74 20 6f 66 20 61 20 63 61 6c 6c 20 6f 66 20 68 6f 6d 65 ┆rs. The result of a call of home┆
0x0d440…0d460 74 65 73 74 20 69 73 20 74 72 75 65 20 69 66 20 70 20 69 73 20 74 68 65 20 68 6f 80 0a 6d 65 20 ┆test is true if p is the hoђ me ┆
0x0d460…0d480 70 6f 6f 6c 20 6f 66 20 74 68 65 20 6d 65 73 73 61 67 65 20 64 65 73 69 67 6e 61 74 65 64 20 62 ┆pool of the message designated b┆
0x0d480…0d4a0 79 20 72 65 66 2c 20 6f 74 68 65 72 77 69 73 65 20 69 74 20 69 73 20 66 61 6c 73 65 2e 0d 0a 0d ┆y ref, otherwise it is false. ┆
0x0d4a0…0d4c0 0a 54 68 65 20 65 76 65 6e 74 20 6b 69 6e 64 20 61 74 74 72 69 62 75 74 65 20 6f 66 20 61 20 6d ┆ The event kind attribute of a m┆
0x0d4c0…0d4e0 65 73 73 61 67 65 20 6d 61 79 20 62 65 20 72 65 61 64 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 0a ┆essage may be read in order to ┆
0x0d4e0…0d500 64 65 74 65 72 6d 69 6e 65 20 74 68 65 20 6b 69 6e 64 20 6f 66 20 65 76 65 6e 74 20 77 68 69 63 ┆determine the kind of event whic┆
0x0d500…0d520 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 72 65 70 72 65 73 65 6e 74 73 2e 0d 0a 0d 0a 8c 86 f8 ┆h the message represents. їєЭ┆
0x0d520…0d540 0a 46 55 4e 43 54 49 4f 4e 20 bf dc d8 65 76 65 6e 74 6b 69 6e 64 be 28 56 41 52 20 72 3a 20 72 ┆ FUNCTION ┐▄пeventkindЙ(VAR r: r┆
0x0d540…0d560 65 66 65 72 65 6e 63 65 29 3a 20 65 76 65 6e 74 5f 74 79 70 65 0d 0a 0d 0a 49 66 20 65 76 65 6e ┆eference): event_type If even┆
0x0d560…0d580 74 6b 69 6e 64 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 61 20 70 61 72 61 6d 65 74 65 72 ┆tkind is called with a parameter┆
0x0d580…0d5a0 20 77 69 74 68 20 76 61 6c 75 65 20 4e 49 4c 20 61 20 66 61 75 6c 74 20 6f 63 80 0a 63 75 72 73 ┆ with value NIL a fault ocђ curs┆
0x0d5a0…0d5c0 2c 20 6f 74 68 65 72 77 69 73 65 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 74 68 65 20 76 61 ┆, otherwise the result is the va┆
0x0d5c0…0d5e0 6c 75 65 20 6f 66 20 74 68 65 20 65 76 65 6e 74 20 6b 69 6e 64 20 61 74 80 74 72 69 62 75 74 65 ┆lue of the event kind atђtribute┆
0x0d5e0…0d600 20 6f 66 20 0a 74 68 65 20 64 65 73 69 67 6e 61 74 65 64 20 6d 65 73 73 61 67 65 2e 20 54 68 65 ┆ of the designated message. The┆
0x0d600…0d620 20 72 65 73 75 6c 74 20 74 79 70 65 20 69 73 20 74 68 65 20 70 72 65 64 65 80 66 69 6e 65 64 20 ┆ result type is the predeђfined ┆
0x0d620…0d640 65 6e 75 6d 65 72 61 74 69 6f 6e 20 0a 74 79 70 65 0d 0a 0d 0a 20 20 65 76 65 6e 74 5f 74 79 70 ┆enumeration type event_typ┆
0x0d640…0d660 65 3d 20 28 6e 6f 74 5f 65 76 65 6e 74 2c 20 6d 65 73 73 61 67 65 5f 65 76 65 6e 74 2c 20 61 6e ┆e= (not_event, message_event, an┆
0x0d660…0d680 73 77 65 72 5f 65 76 65 6e 74 2c 20 0d 0a 09 09 20 20 20 70 72 6f 63 65 73 73 5f 72 65 6d 6f 76 ┆swer_event, process_remov┆
0x0d680…0d6a0 65 64 2c 20 70 6f 72 74 5f 63 6c 6f 73 65 64 2c 20 64 69 73 63 6f 6e 6e 65 63 74 65 64 2c 20 3f ┆ed, port_closed, disconnected, ?┆
0x0d6a0…0d6c0 2c 20 3f 2c 20 0d 0a 09 09 20 20 20 6c 6f 63 61 6c 5f 63 6f 6e 6e 65 63 74 2c 20 72 65 6d 6f 74 ┆, ?, local_connect, remot┆
0x0d6c0…0d6e0 65 5f 63 6f 6e 6e 65 63 74 2c 20 72 65 73 65 74 5f 69 6e 64 69 63 61 74 69 6f 6e 2c 20 0d 0a 09 ┆e_connect, reset_indication, ┆
0x0d6e0…0d700 09 20 20 20 72 65 73 65 74 5f 63 6f 6d 70 6c 65 74 69 6f 6e 2c 20 63 72 65 64 69 74 2c 20 64 61 ┆ reset_completion, credit, da┆
0x0d700…0d720 74 61 5f 73 65 6e 74 2c 20 64 61 74 61 5f 61 72 72 69 76 65 64 2c 20 0d 0a 09 09 20 20 20 64 61 ┆ta_sent, data_arrived, da┆
0x0d720…0d740 74 61 5f 6f 76 65 72 72 75 6e 2c 20 3f 2c 20 64 75 6d 6d 79 5f 6c 63 6e 63 74 2c 20 64 75 6d 6d ┆ta_overrun, ?, dummy_lcnct, dumm┆
0x0d740…0d760 79 5f 72 63 6e 63 74 2c 20 0d 0a 09 09 20 20 20 64 75 6d 6d 79 5f 72 69 6e 64 69 63 2c 20 64 75 ┆y_rcnct, dummy_rindic, du┆
0x0d760…0d780 6d 6d 79 5f 72 63 6d 70 6c 2c 20 64 75 6d 6d 79 5f 63 72 65 64 69 74 2c 20 0d 0a 09 09 20 20 20 ┆mmy_rcmpl, dummy_credit, ┆
0x0d780…0d7a0 64 75 6d 6d 79 5f 73 65 6e 74 2c 20 64 75 6d 6d 79 5f 61 72 72 69 76 65 64 29 2e 0d 0a 0d 0a 54 ┆dummy_sent, dummy_arrived). T┆
0x0d7a0…0d7c0 68 65 20 76 61 6c 75 65 20 6e 6f 74 5f 65 76 65 6e 74 20 69 6e 64 69 63 61 74 65 73 20 74 68 65 ┆he value not_event indicates the┆
0x0d7c0…0d7e0 20 6d 65 73 73 61 67 65 20 68 61 73 20 62 65 65 6e 20 6f 62 74 61 69 6e 65 64 20 66 72 6f 6d 20 ┆ message has been obtained from ┆
0x0d7e0…0d800 61 20 0a 70 6f 6f 6c 20 6f 72 20 69 74 73 20 65 76 65 6e 74 20 6b 69 6e 64 20 68 61 73 20 62 65 ┆a pool or its event kind has be┆
0x0d800…0d820 65 6e 20 72 65 73 65 74 2e 20 54 68 65 20 76 61 6c 75 65 20 6d 65 73 80 80 73 61 67 65 5f 65 76 ┆en reset. The value mesђђsage_ev┆
0x0d820…0d840 65 6e 74 20 69 6e 64 69 80 0a 63 61 74 65 73 20 74 68 65 20 6d 65 73 73 61 67 65 20 68 61 73 20 ┆ent indiђ cates the message has ┆
0x0d840…0d860 62 65 65 6e 20 73 69 67 6e 61 6c 6c 65 64 20 66 72 6f 6d 20 61 20 70 72 6f 80 63 65 73 73 2c 20 ┆been signalled from a proђcess, ┆
0x0d860…0d880 63 66 2e 20 73 75 62 73 65 63 74 69 6f 6e 20 0a 39 2e 32 2e 32 2e 20 54 68 65 20 76 61 6c 75 65 ┆cf. subsection 9.2.2. The value┆
0x0d880…0d8a0 20 61 6e 73 77 65 72 5f 65 76 65 6e 74 20 69 6e 64 69 80 63 61 74 65 73 20 74 68 65 20 6d 65 73 ┆ answer_event indiђcates the mes┆
0x0d8a0…0d8c0 73 61 67 65 20 68 61 73 20 62 65 65 6e 20 0a 72 65 74 75 72 6e 65 64 20 62 79 20 61 20 70 72 6f ┆sage has been returned by a pro┆
0x0d8c0…0d8e0 63 65 73 73 2c 20 63 66 2e 20 73 75 62 80 80 73 65 63 74 69 6f 6e 20 39 2e 32 2e 32 2e 20 54 68 ┆cess, cf. subђђsection 9.2.2. Th┆
0x0d8e0…0d900 65 20 76 61 6c 75 65 20 70 72 6f 63 65 73 73 5f 72 65 6d 6f 76 65 64 20 0a 69 6e 64 69 63 61 74 ┆e value process_removed indicat┆
0x0d900…0d920 65 73 20 74 68 65 20 6d 65 73 80 73 61 67 65 20 68 61 73 20 62 65 65 6e 20 72 65 80 74 75 72 6e ┆es the mesђsage has been reђturn┆
0x0d920…0d940 65 64 20 66 72 6f 6d 20 61 20 70 72 6f 63 65 73 73 20 77 68 69 63 68 20 77 61 73 20 0a 72 65 6d ┆ed from a process which was rem┆
0x0d940…0d960 6f 76 65 64 2c 20 63 66 2e 20 73 65 63 74 69 6f 6e 20 39 2e 31 2e 20 54 68 65 20 72 65 6d 61 69 ┆oved, cf. section 9.1. The remai┆
0x0d960…0d980 6e 69 6e 67 20 76 61 6c 75 65 73 20 69 6e 64 69 63 61 74 65 20 49 4d 43 20 65 76 65 6e 74 73 2c ┆ning values indicate IMC events,┆
0x0d980…0d9a0 20 0a 63 66 2e 20 63 68 61 70 74 65 72 20 31 31 2e 0d 0a 0d 0a 54 68 65 20 6f 6e 6c 79 20 77 61 ┆ cf. chapter 11. The only wa┆
0x0d9a0…0d9c0 79 20 61 20 70 72 6f 63 65 73 73 20 63 61 6e 20 6d 6f 64 69 66 79 20 74 68 65 20 65 76 65 6e 74 ┆y a process can modify the event┆
0x0d9c0…0d9e0 20 6b 69 6e 64 20 61 74 74 72 69 62 75 74 65 20 6f 66 20 61 20 0a 6d 65 73 73 61 67 65 20 77 68 ┆ kind attribute of a message wh┆
0x0d9e0…0da00 69 6c 65 20 72 65 74 61 69 6e 69 6e 67 20 61 63 63 65 73 73 20 69 73 20 62 79 20 72 65 73 65 74 ┆ile retaining access is by reset┆
0x0da00…0da20 74 69 6e 67 20 69 74 2e 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 72 65 73 65 74 65 76 ┆ting it. PROCEDURE ┐▄пresetev┆
0x0da20…0da40 65 6e 74 be 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 0d 0a 0d 0a 49 66 20 72 65 73 ┆entЙ(VAR r: reference) If res┆
0x0da40…0da60 65 74 65 76 65 6e 74 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 61 20 70 61 72 61 6d 65 74 ┆etevent is called with a paramet┆
0x0da60…0da80 65 72 20 77 69 74 68 20 76 61 6c 75 65 20 4e 49 4c 20 61 20 66 61 75 6c 74 20 6f 63 80 0a 63 75 ┆er with value NIL a fault ocђ cu┆
0x0da80…0daa0 72 73 2c 20 6f 74 68 65 72 77 69 73 65 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 65 ┆rs, otherwise the value of the e┆
0x0daa0…0dac0 76 65 6e 74 20 6b 69 6e 64 20 61 74 74 72 69 80 62 75 80 74 65 20 6f 66 20 74 68 65 20 0a 64 65 ┆vent kind attriђbuђte of the de┆
0x0dac0…0dae0 73 69 67 6e 61 74 65 64 20 6d 65 73 73 61 67 65 20 62 65 63 6f 6d 65 73 20 6e 6f 74 5f 65 76 65 ┆signated message becomes not_eve┆
0x0dae0…0db00 6e 74 2e 0d 0a 0d 0a 0e 0a 54 68 65 20 75 2d 61 74 74 72 69 62 75 74 65 73 20 6f 66 20 61 20 6d ┆nt. The u-attributes of a m┆
0x0db00…0db20 65 73 73 61 67 65 20 6d 61 79 20 62 65 20 72 65 61 64 20 75 73 69 6e 67 20 74 68 65 20 66 6f 6c ┆essage may be read using the fol┆
0x0db20…0db40 6c 6f 80 80 77 69 6e 67 20 66 6f 75 72 20 0a 70 72 65 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69 ┆loђђwing four predefined functi┆
0x0db40…0db60 6f 6e 73 3a 0d 0a 0d 0a 8c 86 e0 0a 46 55 4e 43 54 49 4f 4e 20 bf dc d8 75 31 be 28 56 41 52 20 ┆ons: їєЯ FUNCTION ┐▄пu1Й(VAR ┆
0x0db60…0db80 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 62 79 74 65 0d 0a 46 55 4e 43 54 49 4f 4e 20 bf dc ┆r: reference): byte FUNCTION ┐▄┆
0x0db80…0dba0 d8 75 32 be 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 62 79 74 65 0d 0a 46 55 ┆пu2Й(VAR r: reference): byte FU┆
0x0dba0…0dbc0 4e 43 54 49 4f 4e 20 bf dc d8 75 33 be 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a ┆NCTION ┐▄пu3Й(VAR r: reference):┆
0x0dbc0…0dbe0 20 62 79 74 65 0d 0a 46 55 4e 43 54 49 4f 4e 20 bf dc d8 75 34 be 28 56 41 52 20 72 3a 20 72 65 ┆ byte FUNCTION ┐▄пu4Й(VAR r: re┆
0x0dbe0…0dc00 66 65 72 65 6e 63 65 29 3a 20 62 79 74 65 0d 0a 0f 0a 0d 0a 49 66 20 6f 6e 65 20 6f 66 20 74 68 ┆ference): byte If one of th┆
0x0dc00…0dc20 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 61 20 70 ┆ese functions is called with a p┆
0x0dc20…0dc40 61 72 61 6d 65 74 65 72 20 77 69 74 68 20 76 61 6c 75 65 20 4e 49 4c 20 61 20 0a 66 61 75 6c 74 ┆arameter with value NIL a fault┆
0x0dc40…0dc60 20 6f 63 63 75 72 73 2e 20 4f 74 68 65 72 77 69 73 65 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 ┆ occurs. Otherwise the result is┆
0x0dc60…0dc80 20 74 68 65 20 69 6e 64 69 80 63 61 74 65 64 20 75 2d 61 74 80 74 72 69 62 75 74 65 20 6f 66 20 ┆ the indiђcated u-atђtribute of ┆
0x0dc80…0dca0 74 68 65 20 0a 64 65 73 69 67 6e 61 74 65 64 20 6d 65 73 73 61 67 65 2e 0d 0a 0d 0a 0e 0a 53 69 ┆the designated message. Si┆
0x0dca0…0dcc0 6d 69 6c 61 72 6c 79 20 74 68 65 20 75 2d 61 74 74 72 69 62 75 74 65 73 20 6d 61 79 20 62 65 20 ┆milarly the u-attributes may be ┆
0x0dcc0…0dce0 77 72 69 74 74 65 6e 20 75 73 69 6e 67 20 74 68 65 20 66 6f 6c 6c 6f 80 80 77 69 6e 67 20 66 6f ┆written using the folloђђwing fo┆
0x0dce0…0dd00 75 72 20 0a 70 72 65 64 65 66 69 6e 65 64 20 70 72 6f 63 65 64 75 72 65 73 3a 0d 0a 0d 0a 50 52 ┆ur predefined procedures: PR┆
0x0dd00…0dd20 4f 43 45 44 55 52 45 20 bf dc d8 73 65 74 75 31 be 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e ┆OCEDURE ┐▄пsetu1Й(VAR r: referen┆
0x0dd20…0dd40 63 65 3b 20 62 3a 20 62 79 74 65 29 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 73 65 74 75 32 ┆ce; b: byte) PROCEDURE ┐▄пsetu2┆
0x0dd40…0dd60 be 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 62 3a 20 62 79 74 65 29 0d 0a 50 52 ┆Й(VAR r: reference; b: byte) PR┆
0x0dd60…0dd80 4f 43 45 44 55 52 45 20 bf dc d8 73 65 74 75 33 be 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e ┆OCEDURE ┐▄пsetu3Й(VAR r: referen┆
0x0dd80…0dda0 63 65 3b 20 62 3a 20 62 79 74 65 29 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 73 65 74 75 34 ┆ce; b: byte) PROCEDURE ┐▄пsetu4┆
0x0dda0…0ddc0 be 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 62 3a 20 62 79 74 65 29 0d 0a 0f 0a ┆Й(VAR r: reference; b: byte) ┆
0x0ddc0…0dde0 0d 0a 49 66 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 70 72 6f 63 65 64 75 72 65 73 20 69 73 20 ┆ If one of these procedures is ┆
0x0dde0…0de00 63 61 6c 6c 65 64 20 77 69 74 68 20 61 20 72 65 66 65 72 65 6e 63 65 20 70 61 72 61 80 6d 65 74 ┆called with a reference paraђmet┆
0x0de00…0de20 65 72 20 77 69 74 68 20 0a 76 61 6c 75 65 20 4e 49 4c 20 61 20 66 61 75 6c 74 20 6f 63 63 75 72 ┆er with value NIL a fault occur┆
0x0de20…0de40 73 2e 20 4f 74 68 65 72 77 69 73 65 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 70 61 ┆s. Otherwise the value of the pa┆
0x0de40…0de60 72 61 80 6d 65 74 65 72 20 62 20 69 73 20 0a 61 73 73 69 67 6e 65 64 20 74 6f 20 74 68 65 20 69 ┆raђmeter b is assigned to the i┆
0x0de60…0de80 6e 64 69 63 61 74 65 64 20 75 2d 61 74 74 72 69 62 75 74 65 20 6f 66 20 74 68 65 20 64 65 73 69 ┆ndicated u-attribute of the desi┆
0x0de80…0dea0 67 6e 61 80 74 65 64 20 6d 65 73 73 61 67 65 2e 0d 0a 0d 0a 54 68 65 20 73 69 7a 65 20 6f 66 20 ┆gnaђted message. The size of ┆
0x0dea0…0dec0 61 20 62 75 66 66 65 72 20 6d 61 79 20 62 65 20 72 65 61 64 20 75 73 69 6e 67 20 74 68 65 20 70 ┆a buffer may be read using the p┆
0x0dec0…0dee0 72 65 64 65 66 69 6e 65 64 20 66 75 6e 63 80 74 69 6f 6e 20 62 75 66 73 69 80 0a 7a 65 3a 0d 0a ┆redefined funcђtion bufsiђ ze: ┆
0x0dee0…0df00 0d 0a 46 55 4e 43 54 49 4f 4e 20 bf dc d8 62 75 66 73 69 7a 65 be 28 56 41 52 20 72 3a 20 72 65 ┆ FUNCTION ┐▄пbufsizeЙ(VAR r: re┆
0x0df00…0df20 66 65 72 65 6e 63 65 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 0d 0a 49 66 20 62 75 66 73 69 7a ┆ference): 0..maxint If bufsiz┆
0x0df20…0df40 65 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 61 20 70 61 72 61 6d 65 74 65 72 20 77 69 74 ┆e is called with a parameter wit┆
0x0df40…0df60 68 20 76 61 6c 75 65 20 4e 49 4c 20 61 20 66 61 75 6c 74 20 6f 63 80 63 75 72 73 2e 20 0a 4f 74 ┆h value NIL a fault ocђcurs. Ot┆
0x0df60…0df80 68 65 72 77 69 73 65 20 74 68 65 20 62 75 66 66 65 72 20 73 69 7a 65 20 6f 66 20 74 68 65 20 64 ┆herwise the buffer size of the d┆
0x0df80…0dfa0 65 73 69 67 6e 61 74 65 64 20 6d 65 73 73 61 67 65 20 69 73 20 72 65 80 74 75 72 6e 65 64 20 61 ┆esignated message is reђturned a┆
0x0dfa0…0dfc0 73 20 0a 72 65 73 75 6c 74 2e 0d 0a 0d 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 69 78 20 ┆s result. The following six ┆
0x0dfc0…0dfe0 70 72 65 64 65 66 69 6e 65 64 20 72 6f 75 74 69 6e 65 73 20 6d 61 79 20 62 65 20 75 73 65 64 20 ┆predefined routines may be used ┆
0x0dfe0…0e000 74 6f 20 72 65 61 64 20 61 6e 64 20 73 65 74 20 74 68 65 20 0a 76 61 6c 75 65 73 20 6f 66 20 74 ┆to read and set the values of t┆
0x0e000…0e020 68 65 20 61 74 74 72 69 62 75 74 65 73 20 6f 66 66 73 65 74 2c 20 74 6f 70 20 61 6e 64 20 62 79 ┆he attributes offset, top and by┆
0x0e020…0e040 74 65 20 63 6f 75 6e 74 2e 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 bf dc d8 6f 66 66 73 65 74 be ┆te count. FUNCTION ┐▄пoffsetЙ┆
0x0e040…0e060 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 46 ┆(VAR r: reference): 0..maxint F┆
0x0e060…0e080 55 4e 43 54 49 4f 4e 20 bf dc d8 74 6f 70 be 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 ┆UNCTION ┐▄пtopЙ(VAR r: reference┆
0x0e080…0e0a0 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 46 55 4e 43 54 49 4f 4e 20 bf dc d8 62 79 74 65 63 6f ┆): 0..maxint FUNCTION ┐▄пbyteco┆
0x0e0a0…0e0c0 75 6e 74 be 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 30 2e 2e 6d 61 78 69 6e ┆untЙ(VAR r: reference): 0..maxin┆
0x0e0c0…0e0e0 74 0d 0a 0d 0a 49 66 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 74 68 72 65 65 20 66 75 6e 63 74 ┆t If one of these three funct┆
0x0e0e0…0e100 69 6f 6e 73 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 61 20 70 61 72 61 6d 65 74 65 72 20 ┆ions is called with a parameter ┆
0x0e100…0e120 77 69 74 68 20 76 61 6c 75 65 20 0a 4e 49 4c 20 61 20 66 61 75 6c 74 20 6f 63 63 75 72 73 2e 20 ┆with value NIL a fault occurs. ┆
0x0e120…0e140 4f 74 68 65 72 77 69 73 65 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 74 68 65 20 76 61 6c 75 ┆Otherwise the result is the valu┆
0x0e140…0e160 65 20 6f 66 20 74 68 65 20 69 6e 64 69 63 61 74 65 64 20 0a 61 74 74 72 69 62 75 74 65 20 6f 66 ┆e of the indicated attribute of┆
0x0e160…0e180 20 74 68 65 20 64 65 73 69 67 6e 61 74 65 64 20 6d 65 73 73 61 67 65 2e 0d 0a 0d 0a 50 52 4f 43 ┆ the designated message. PROC┆
0x0e180…0e1a0 45 44 55 52 45 20 bf dc d8 73 65 74 6f 66 66 73 65 74 be 28 56 41 52 20 72 3a 20 72 65 66 65 72 ┆EDURE ┐▄пsetoffsetЙ(VAR r: refer┆
0x0e1a0…0e1c0 65 6e 63 65 3b 20 76 61 6c 3a 20 30 2e 2e 6d 61 78 69 6e 74 29 0d 0a 50 52 4f 43 45 44 55 52 45 ┆ence; val: 0..maxint) PROCEDURE┆
0x0e1c0…0e1e0 20 bf dc d8 73 65 74 74 6f 70 be 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 76 61 ┆ ┐▄пsettopЙ(VAR r: reference; va┆
0x0e1e0…0e200 6c 3a 20 30 2e 2e 6d 61 78 69 6e 74 29 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 73 65 74 62 ┆l: 0..maxint) PROCEDURE ┐▄пsetb┆
0x0e200…0e220 79 74 65 63 6f 75 6e 74 be 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 76 61 6c 3a ┆ytecountЙ(VAR r: reference; val:┆
0x0e220…0e240 20 30 2e 2e 6d 61 78 69 6e 74 29 0d 0a 0d 0a 49 66 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 74 ┆ 0..maxint) If one of these t┆
0x0e240…0e260 68 72 65 65 20 66 75 6e 63 74 69 6f 6e 73 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 61 20 ┆hree functions is called with a ┆
0x0e260…0e280 72 65 66 65 72 65 6e 63 65 20 70 61 72 61 80 6d 65 74 65 72 20 0a 77 69 74 68 20 76 61 6c 75 65 ┆reference paraђmeter with value┆
0x0e280…0e2a0 20 4e 49 4c 20 61 20 66 61 75 6c 74 20 6f 63 63 75 72 73 2e 20 4f 74 68 65 72 77 69 73 65 20 74 ┆ NIL a fault occurs. Otherwise t┆
0x0e2a0…0e2c0 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 76 61 6c 20 70 61 72 61 80 0a 6d 65 74 65 72 20 ┆he value of the val paraђ meter ┆
0x0e2c0…0e2e0 69 73 20 61 73 73 69 67 6e 65 64 20 74 6f 20 74 68 61 74 20 61 74 74 72 69 62 75 74 65 20 6f 66 ┆is assigned to that attribute of┆
0x0e2e0…0e300 20 74 68 65 20 64 65 73 69 67 6e 61 74 65 64 20 6d 65 73 73 61 67 65 20 77 68 69 63 68 20 69 73 ┆ the designated message which is┆
0x0e300…0e320 20 0a 69 6e 64 69 63 61 74 65 64 20 62 79 20 74 68 65 20 70 72 6f 63 65 64 75 72 65 20 6e 61 6d ┆ indicated by the procedure nam┆
0x0e320…0e340 65 2e 0d 0a 0d 0a 8c 89 b0 0a 43 68 61 69 6e 73 20 28 6c 69 6e 6b 65 64 20 6c 69 73 74 73 29 20 ┆e. їЅ░ Chains (linked lists) ┆
0x0e340…0e360 6f 66 20 6d 65 73 73 61 67 65 20 73 74 61 63 6b 73 20 6d 61 79 20 62 65 20 62 75 69 6c 74 20 61 ┆of message stacks may be built a┆
0x0e360…0e380 6e 64 20 6d 61 80 6e 69 70 75 80 6c 61 74 65 64 20 0a 62 79 20 6d 65 61 6e 73 20 6f 66 20 6f 62 ┆nd maђnipuђlated by means of ob┆
0x0e380…0e3a0 6a 65 63 74 73 20 6f 66 20 74 68 65 20 74 79 70 65 73 20 72 65 66 65 72 65 6e 63 65 20 61 6e 64 ┆jects of the types reference and┆
0x0e3a0…0e3c0 20 63 68 61 69 6e 20 61 6e 64 20 74 68 65 20 70 72 65 64 65 80 0a 66 69 6e 65 64 20 72 6f 75 74 ┆ chain and the predeђ fined rout┆
0x0e3c0…0e3e0 69 6e 65 73 20 63 68 61 69 6e 65 6e 71 75 65 75 65 2c 20 63 68 61 69 6e 64 65 71 75 65 80 75 65 ┆ines chainenqueue, chaindequeђue┆
0x0e3e0…0e400 2c 20 63 68 61 69 6e 75 70 2c 20 63 68 61 69 6e 64 6f 77 6e 2c 20 0a 63 68 61 69 6e 73 74 61 72 ┆, chainup, chaindown, chainstar┆
0x0e400…0e420 74 2c 20 63 68 61 69 6e 72 65 73 65 74 20 61 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 73 65 ┆t, chainreset as described in se┆
0x0e420…0e440 63 74 69 6f 6e 20 31 30 2e 32 2e 20 41 20 63 68 61 69 6e 20 6f 62 6a 65 63 74 20 0a 73 65 72 76 ┆ction 10.2. A chain object serv┆
0x0e440…0e460 65 73 20 61 73 20 61 20 68 61 6e 64 6c 65 20 74 6f 20 73 75 63 68 20 61 20 6c 69 73 74 2e 20 41 ┆es as a handle to such a list. A┆
0x0e460…0e480 63 63 65 73 73 20 74 6f 20 61 20 6c 69 73 74 20 63 61 6e 6e 6f 74 20 62 65 20 74 72 61 6e 73 66 ┆ccess to a list cannot be transf┆
0x0e480…0e4a0 65 72 80 0a 72 65 64 20 76 69 61 20 61 20 6d 61 69 6c 62 6f 78 2e 0d 0a 0d 0a 54 68 65 20 72 6f ┆erђ red via a mailbox. The ro┆
0x0e4a0…0e4c0 75 74 69 6e 65 73 20 65 76 65 6e 74 6b 69 6e 64 2c 20 72 65 73 65 74 65 76 65 6e 74 2c 20 75 31 ┆utines eventkind, resetevent, u1┆
0x0e4c0…0e4e0 2c 20 75 32 2c 20 75 33 2c 20 75 34 2c 20 73 65 74 75 31 2c 20 73 65 74 75 32 2c 20 73 65 74 75 ┆, u2, u3, u4, setu1, setu2, setu┆
0x0e4e0…0e500 33 2c 20 0a 73 65 74 75 34 2c 20 62 75 66 73 69 7a 65 2c 20 6f 66 66 73 65 74 2c 20 74 6f 70 2c ┆3, setu4, bufsize, offset, top,┆
0x0e500…0e520 20 62 79 74 65 63 6f 75 6e 74 2c 20 73 65 80 74 6f 66 66 73 65 74 2c 20 73 65 74 74 6f 70 2c 20 ┆ bytecount, seђtoffset, settop, ┆
0x0e520…0e540 61 6e 64 20 73 65 74 62 79 74 65 80 0a 63 6f 75 6e 74 20 6d 61 79 20 61 6c 73 6f 20 62 65 20 63 ┆and setbyteђ count may also be c┆
0x0e540…0e560 61 6c 6c 65 64 20 77 69 74 68 20 61 20 70 61 72 61 6d 65 74 65 72 20 6f 66 20 74 79 70 65 20 63 ┆alled with a parameter of type c┆
0x0e560…0e580 68 61 69 6e 20 69 6e 73 74 65 61 64 20 6f 66 20 0a 72 65 66 65 72 65 6e 63 65 2e 20 49 6e 20 74 ┆hain instead of reference. In t┆
0x0e580…0e5a0 68 69 73 20 63 61 73 65 20 74 68 65 20 72 65 6c 65 76 61 6e 74 20 61 74 74 72 69 62 75 74 65 20 ┆his case the relevant attribute ┆
0x0e5a0…0e5c0 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 6d 65 73 73 61 67 65 20 0a 69 73 20 61 63 63 65 73 ┆of the current message is acces┆
0x0e5c0…0e5e0 73 65 64 2e 20 54 68 65 20 63 68 61 69 6e 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 65 6d 70 74 79 ┆sed. The chain must not be empty┆
0x0e5e0…0e600 3b 20 69 66 20 73 6f 20 61 20 66 61 75 6c 74 20 6f 63 63 75 72 73 2e 0d 0a 0d 0a 16 73 62 0d 0a ┆; if so a fault occurs. sb ┆
0x0e600…0e620 53 74 72 75 63 74 75 72 65 64 20 54 79 70 65 73 0d 0a 41 6e 20 6f 62 6a 65 63 74 20 6f 66 20 61 ┆Structured Types An object of a┆
0x0e620…0e640 20 bf dc d8 73 74 72 75 63 74 75 72 65 64 20 74 79 70 65 be 20 69 73 20 61 20 73 74 72 75 63 74 ┆ ┐▄пstructured typeЙ is a struct┆
0x0e640…0e660 75 72 65 64 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 73 75 62 2d 0a 6f 62 6a 65 63 74 73 20 ┆ured collection of sub- objects ┆
0x0e660…0e680 6f 66 20 6f 74 68 65 72 20 28 73 69 6d 70 6c 65 72 29 20 74 79 70 65 73 2e 20 54 68 65 20 76 61 ┆of other (simpler) types. The va┆
0x0e680…0e6a0 6c 75 65 20 6f 66 20 73 75 63 68 20 61 6e 20 6f 62 6a 65 63 74 20 69 73 20 61 20 0a 73 74 72 75 ┆lue of such an object is a stru┆
0x0e6a0…0e6c0 63 74 75 72 65 64 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 76 61 6c 75 65 73 20 6f 66 20 74 ┆ctured collection of values of t┆
0x0e6c0…0e6e0 68 65 20 73 75 62 2d 6f 62 6a 65 63 74 73 2e 20 53 74 72 75 63 74 75 72 65 73 20 6d 61 79 20 62 ┆he sub-objects. Structures may b┆
0x0e6e0…0e700 65 20 0a 61 72 62 69 74 72 61 72 69 6c 79 20 64 65 65 70 2c 20 69 2e 65 2e 20 73 75 62 2d 6f 62 ┆e arbitrarily deep, i.e. sub-ob┆
0x0e700…0e720 6a 65 63 74 73 20 6f 66 20 61 20 73 74 72 75 63 74 75 72 65 64 20 6f 62 6a 65 63 74 20 6d 61 79 ┆jects of a structured object may┆
0x0e720…0e740 20 74 68 65 6d 73 65 6c 80 0a 76 65 73 20 62 65 20 6f 66 20 73 74 72 75 63 80 74 75 80 72 65 64 ┆ themselђ ves be of strucђtuђred┆
0x0e740…0e760 20 74 79 70 65 73 2e 20 54 68 65 20 74 79 70 65 73 20 6f 66 20 74 68 65 20 73 75 62 80 6f 62 6a ┆ types. The types of the subђobj┆
0x0e760…0e780 65 63 74 73 20 6f 66 20 6f 62 6a 65 63 74 73 20 6f 66 20 0a 61 20 73 74 72 75 63 74 75 72 65 64 ┆ects of objects of a structured┆
0x0e780…0e7a0 20 74 79 70 65 20 61 72 65 20 63 61 6c 6c 65 64 20 74 68 65 20 a0 bf dc d8 63 6f 6e 73 74 69 80 ┆ type are called the а┐▄пconstiђ┆
0x0e7a0…0e7c0 74 75 65 6e 74 20 74 79 70 65 73 e0 be 2e 20 53 75 62 2d 6f 62 6a 65 63 74 73 20 77 68 69 63 68 ┆tuent typesЯЙ. Sub-objects which┆
0x0e7c0…0e7e0 20 0a 61 72 65 20 6e 6f 74 20 6f 66 20 73 74 72 75 63 74 75 72 65 64 20 74 79 70 65 73 20 61 72 ┆ are not of structured types ar┆
0x0e7e0…0e800 65 20 63 61 6c 6c 65 64 20 a0 bf dc d8 63 6f 6d 80 70 6f 80 6e 65 6e 74 be 73 e0 2e 20 54 68 65 ┆e called а┐▄пcomђpoђnentЙsЯ. The┆
0x0e800…0e820 20 74 6f 74 61 6c 20 73 65 74 20 6f 66 20 0a 63 6f 6d 70 6f 6e 65 6e 74 73 20 6f 66 20 61 20 73 ┆ total set of components of a s┆
0x0e820…0e840 74 72 75 63 74 75 72 65 64 20 6f 62 6a 65 63 74 20 61 72 65 3a 20 74 68 6f 73 65 20 73 75 62 2d ┆tructured object are: those sub-┆
0x0e840…0e860 6f 62 6a 65 63 74 73 20 77 68 69 63 68 20 61 72 65 20 0a 74 68 65 6d 73 65 6c 76 65 73 20 63 6f ┆objects which are themselves co┆
0x0e860…0e880 6d 70 6f 6e 65 6e 74 73 20 70 6c 75 73 20 74 68 65 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 6f 66 20 ┆mponents plus the components of ┆
0x0e880…0e8a0 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 2d 0a 6f 62 6a 65 63 74 73 2e 0d 0a 0d 0a 49 ┆the remaining sub- objects. I┆
0x0e8a0…0e8c0 66 20 61 6e 79 20 63 6f 6d 70 6f 6e 65 6e 74 20 74 79 70 65 20 6f 66 20 61 20 73 74 72 75 63 74 ┆f any component type of a struct┆
0x0e8c0…0e8e0 75 72 65 64 20 74 79 70 65 20 69 73 20 bf dc d8 bf dc d8 70 72 6f 74 65 63 74 65 64 be be 20 28 ┆ured type is ┐▄п┐▄пprotectedЙЙ (┆
0x0e8e0…0e900 70 6f 80 69 6e 74 65 72 20 6f 72 20 0a 73 68 69 65 6c 64 65 64 29 20 74 68 65 20 73 74 72 75 63 ┆poђinter or shielded) the struc┆
0x0e900…0e920 74 75 72 65 64 20 74 79 70 65 20 69 73 20 61 6c 73 6f 20 73 61 69 64 20 74 6f 20 62 65 20 70 72 ┆tured type is also said to be pr┆
0x0e920…0e940 6f 74 65 63 74 65 64 2e 0d 0a 0d 0a 54 68 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f 70 65 72 61 ┆otected. The comparison opera┆
0x0e940…0e960 74 6f 72 73 20 3d 20 61 6e 64 20 3c 3e 20 6d 61 79 20 62 65 20 61 70 70 6c 69 65 64 20 74 6f 20 ┆tors = and <> may be applied to ┆
0x0e960…0e980 70 61 69 72 73 20 6f 66 20 0a 6f 70 65 72 61 6e 64 73 20 6f 66 20 74 68 65 20 73 61 6d 65 20 73 ┆pairs of operands of the same s┆
0x0e980…0e9a0 74 72 75 63 74 75 72 65 64 20 74 79 70 65 2c 20 70 72 6f 76 69 64 65 64 20 74 68 65 79 20 61 70 ┆tructured type, provided they ap┆
0x0e9a0…0e9c0 70 6c 79 20 74 6f 20 61 6c 6c 20 63 6f 6d 80 0a 70 6f 6e 65 6e 74 73 2e 20 54 68 65 20 72 65 73 ┆ply to all comђ ponents. The res┆
0x0e9c0…0e9e0 75 6c 74 20 70 72 6f 64 75 63 65 64 20 62 79 20 74 68 65 20 3d 20 6f 70 65 72 61 74 6f 72 20 69 ┆ult produced by the = operator i┆
0x0e9e0…0ea00 73 20 74 72 75 65 20 69 66 20 61 6c 6c 20 63 6f 6d 80 0a 70 6f 6e 65 6e 74 20 76 61 6c 75 65 73 ┆s true if all comђ ponent values┆
0x0ea00…0ea20 20 61 72 65 20 70 61 69 72 77 69 73 65 20 65 71 75 61 6c 2c 20 6f 74 68 65 72 77 69 73 65 20 66 ┆ are pairwise equal, otherwise f┆
0x0ea20…0ea40 61 6c 73 65 2e 20 54 68 65 20 72 65 73 75 6c 74 20 70 72 6f 64 75 63 65 64 20 0a 62 79 20 3c 3e ┆alse. The result produced by <>┆
0x0ea40…0ea60 20 69 73 20 6a 75 73 74 20 74 68 65 20 6f 70 70 6f 73 69 74 65 2c 20 69 2e 65 2e 20 74 72 75 65 ┆ is just the opposite, i.e. true┆
0x0ea60…0ea80 20 69 66 20 61 6e 79 20 70 61 69 72 20 6f 66 20 63 6f 6d 70 6f 6e 65 6e 74 20 76 61 6c 75 65 73 ┆ if any pair of component values┆
0x0ea80…0eaa0 20 0a 61 72 65 20 6e 6f 74 20 65 71 75 61 6c 2e 0d 0a 0d 0a 8c 86 c8 0a 41 20 73 74 72 75 63 74 ┆ are not equal. їє╚ A struct┆
0x0eaa0…0eac0 75 72 65 64 20 74 79 70 65 20 69 73 20 61 6e 20 bf dc d8 61 72 72 61 79 20 74 79 70 65 be 20 6f ┆ured type is an ┐▄пarray typeЙ o┆
0x0eac0…0eae0 72 20 61 20 bf dc d8 72 65 63 6f 72 64 20 74 79 70 65 be 2c 20 64 65 70 65 6e 80 80 64 69 6e 67 ┆r a ┐▄пrecord typeЙ, depenђђding┆
0x0eae0…0eb00 20 6f 6e 20 74 68 65 20 0a 77 61 79 20 69 74 20 69 73 20 62 75 69 6c 74 2e 0d 0a 16 6d 61 20 73 ┆ on the way it is built. ma s┆
0x0eb00…0eb20 79 6e 64 69 61 33 33 0d 0a 49 66 20 74 68 65 20 6b 65 79 77 6f 72 64 20 bf dc d8 50 41 43 4b 45 ┆yndia33 If the keyword ┐▄пPACKE┆
0x0eb20…0eb40 44 be 20 69 73 20 70 72 65 73 65 6e 74 20 74 68 65 20 64 65 66 69 6e 65 64 20 74 79 70 65 20 69 ┆DЙ is present the defined type i┆
0x0eb40…0eb60 73 20 63 61 6c 6c 65 64 20 61 20 0a 70 61 63 6b 65 64 20 74 79 70 65 2e 20 4f 62 6a 65 63 74 73 ┆s called a packed type. Objects┆
0x0eb60…0eb80 20 6f 66 20 74 68 65 20 74 79 70 65 20 61 72 65 20 61 6c 73 6f 20 63 61 6c 6c 65 64 20 70 61 63 ┆ of the type are also called pac┆
0x0eb80…0eba0 6b 65 64 2e 20 50 61 63 6b 65 64 20 74 79 80 0a 70 65 73 20 63 6f 6e 73 74 69 74 75 74 65 20 61 ┆ked. Packed tyђ pes constitute a┆
0x0eba0…0ebc0 20 73 75 62 2d 63 6c 61 73 73 20 6f 66 20 74 68 65 20 63 6c 61 73 73 20 6f 66 20 73 74 72 75 63 ┆ sub-class of the class of struc┆
0x0ebc0…0ebe0 80 74 75 80 72 65 64 20 74 79 70 65 73 2e 20 50 61 63 6b 69 6e 67 20 0a 69 6e 64 69 63 61 74 65 ┆ђtuђred types. Packing indicate┆
0x0ebe0…0ec00 73 20 74 68 61 74 20 74 68 65 20 63 6f 64 65 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 61 20 63 ┆s that the code generated by a c┆
0x0ec00…0ec20 6f 6d 70 69 6c 65 72 20 74 6f 20 61 63 80 63 65 73 73 20 6f 62 6a 65 63 74 73 20 6f 66 20 0a 74 ┆ompiler to acђcess objects of t┆
0x0ec20…0ec40 68 65 20 64 65 66 69 6e 65 64 20 74 79 70 65 20 73 68 6f 75 6c 64 20 62 65 20 6f 70 80 74 69 6d ┆he defined type should be opђtim┆
0x0ec40…0ec60 69 7a 65 64 20 66 6f 72 20 63 6f 6d 80 70 61 63 74 6e 65 73 73 20 6f 66 20 6f 62 6a 65 63 74 20 ┆ized for comђpactness of object ┆
0x0ec60…0ec80 72 65 80 0a 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 72 61 74 68 65 72 20 74 68 61 6e 20 65 78 65 ┆reђ presentation rather than exe┆
0x0ec80…0eca0 63 75 74 69 6f 6e 20 74 69 6d 65 2e 20 41 6e 20 69 6d 70 6f 72 74 61 6e 74 20 73 75 62 2d 63 6c ┆cution time. An important sub-cl┆
0x0eca0…0ecc0 61 73 73 20 6f 66 20 0a 70 61 63 6b 65 64 20 74 79 70 65 73 20 69 73 20 74 68 65 20 bf dc d8 64 ┆ass of packed types is the ┐▄пd┆
0x0ecc0…0ece0 65 73 63 72 69 70 74 69 76 65 20 74 79 70 65 be 73 2c 20 63 66 2e 20 73 65 63 74 69 6f 6e 20 33 ┆escriptive typeЙs, cf. section 3┆
0x0ece0…0ed00 2e 31 30 2e 0d 0a 0d 0a 41 20 70 61 63 6b 65 64 20 6f 62 6a 65 63 74 20 6d 61 79 20 63 6f 6e 74 ┆.10. A packed object may cont┆
0x0ed00…0ed20 61 69 6e 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 77 68 69 63 68 20 65 69 74 68 65 72 20 64 6f 20 6e ┆ain components which either do n┆
0x0ed20…0ed40 6f 74 20 73 74 61 72 74 20 6f 6e 20 0a 61 20 62 79 74 65 20 62 6f 75 6e 64 61 72 79 20 6f 72 20 ┆ot start on a byte boundary or ┆
0x0ed40…0ed60 64 6f 20 6e 6f 74 20 6f 63 63 75 70 79 20 61 20 6d 75 6c 74 69 70 6c 65 20 6f 66 20 38 20 62 69 ┆do not occupy a multiple of 8 bi┆
0x0ed60…0ed80 74 73 20 28 6f 72 20 62 6f 74 68 29 2e 20 0a 53 75 63 68 20 61 20 63 6f 6d 70 6f 6e 65 6e 74 20 ┆ts (or both). Such a component ┆
0x0ed80…0eda0 69 73 20 63 61 6c 6c 65 64 20 61 6e 20 bf dc d8 69 72 72 65 67 75 6c 61 72 20 6f 62 6a 65 63 74 ┆is called an ┐▄пirregular object┆
0x0eda0…0edc0 be 2e 20 49 74 20 6d 61 79 20 6e 6f 74 20 62 65 20 75 73 65 64 20 0a 66 6f 72 20 72 65 74 79 70 ┆Й. It may not be used for retyp┆
0x0edc0…0ede0 69 6e 67 20 69 6e 20 61 20 77 69 74 68 20 6f 72 20 6c 6f 63 6b 20 73 74 61 74 65 6d 65 6e 74 20 ┆ing in a with or lock statement ┆
0x0ede0…0ee00 28 63 66 2e 20 73 65 63 74 69 6f 6e 20 35 2e 38 29 20 6f 72 20 61 73 20 61 6e 20 0a 61 63 74 75 ┆(cf. section 5.8) or as an actu┆
0x0ee00…0ee20 61 6c 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 62 65 20 74 72 61 6e 73 66 65 72 72 65 64 20 62 ┆al parameter to be transferred b┆
0x0ee20…0ee40 79 20 61 64 80 64 72 65 73 73 20 28 63 66 2e 20 73 65 63 74 69 6f 6e 20 36 2e 32 29 2e 0d 0a 0d ┆y adђdress (cf. section 6.2). ┆
0x0ee40…0ee60 0a 41 72 72 61 79 20 61 6e 64 20 72 65 63 6f 72 64 20 74 79 70 65 73 20 61 72 65 20 64 65 73 63 ┆ Array and record types are desc┆
0x0ee60…0ee80 72 69 62 65 64 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 77 6f 20 73 75 62 80 73 ┆ribed in the following two subђs┆
0x0ee80…0eea0 65 63 74 69 6f 6e 73 2e 0d 0a 0d 0a 0e 0a a1 4e 6f 74 65 3a 0d 0a 55 6e 6c 65 73 73 20 61 20 70 ┆ections. АNote: Unless a p┆
0x0eea0…0eec0 61 63 6b 65 64 20 74 79 70 65 20 69 73 20 64 65 73 63 72 69 70 74 69 76 65 2c 20 63 66 2e 20 73 ┆acked type is descriptive, cf. s┆
0x0eec0…0eee0 65 63 74 69 6f 6e 20 33 2e 31 30 2c 20 74 68 65 20 70 72 65 63 69 73 65 20 65 66 80 0a 66 65 63 ┆ection 3.10, the precise efђ fec┆
0x0eee0…0ef00 74 20 6f 66 20 70 61 63 6b 69 6e 67 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2e 20 49 6e 20 ┆t of packing is not defined. In ┆
0x0ef00…0ef20 70 61 72 74 69 63 75 6c 61 72 2c 20 69 66 20 74 68 65 20 74 79 70 65 20 68 61 73 20 0a 63 6f 6e ┆particular, if the type has con┆
0x0ef20…0ef40 73 74 69 74 75 65 6e 74 20 74 79 70 65 73 20 77 68 69 63 68 20 61 72 65 20 6e 6f 74 20 73 74 61 ┆stituent types which are not sta┆
0x0ef40…0ef60 74 69 63 2c 20 70 61 63 6b 69 6e 67 20 63 61 6e 6e 6f 74 20 62 65 20 65 78 70 65 63 80 74 65 64 ┆tic, packing cannot be expecђted┆
0x0ef60…0ef80 20 74 6f 20 0a 68 61 76 65 20 61 6e 79 20 65 66 66 65 63 74 2e 0d 0a 0f 0a 16 73 63 0d 0a 41 72 ┆ to have any effect. sc Ar┆
0x0ef80…0efa0 72 61 79 20 54 79 70 65 73 0d 0a 54 68 65 20 73 75 62 2d 6f 62 6a 65 63 74 73 20 6f 66 20 61 6e ┆ray Types The sub-objects of an┆
0x0efa0…0efc0 20 61 72 72 61 79 20 61 72 65 20 63 61 6c 6c 65 64 20 bf dc d8 65 6c 65 6d 65 6e 74 73 be 2e 20 ┆ array are called ┐▄пelementsЙ. ┆
0x0efc0…0efe0 54 68 65 20 65 6c 65 80 80 6d 65 6e 74 73 20 61 72 65 20 6f 72 80 0a 67 61 6e 69 7a 65 64 20 62 ┆The eleђђments are orђ ganized b┆
0x0efe0…0f000 79 20 69 6e 64 65 78 69 6e 67 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 33 34 0d 0a 8c 84 f0 0a 54 ┆y indexing. ma syndia34 їё T┆
0x0f000…0f020 68 65 20 74 79 70 65 20 73 70 65 63 69 66 69 65 64 20 62 65 74 77 65 65 6e 20 74 68 65 20 70 61 ┆he type specified between the pa┆
0x0f020…0f040 72 65 6e 74 68 65 73 65 73 20 69 73 20 63 61 6c 6c 65 64 20 74 68 65 20 bf dc d8 a0 69 6e 80 64 ┆rentheses is called the ┐▄паinђd┆
0x0f040…0f060 65 78 20 74 79 70 65 be e0 2e 20 0a 49 74 20 6d 75 73 74 20 62 65 20 61 6e 20 6f 72 64 69 6e 61 ┆ex typeЙЯ. It must be an ordina┆
0x0f060…0f080 6c 20 74 79 70 65 2e 20 41 6c 6c 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 61 6e 20 6f 62 6a 65 63 ┆l type. All elements of an objec┆
0x0f080…0f0a0 74 20 6f 66 20 74 68 65 20 64 65 66 69 6e 65 64 20 0a 61 72 72 61 79 20 74 79 70 65 20 61 72 65 ┆t of the defined array type are┆
0x0f0a0…0f0c0 20 6f 66 20 74 68 65 20 74 79 70 65 20 73 70 65 63 69 66 69 65 64 20 66 6f 6c 6c 6f 77 69 6e 67 ┆ of the type specified following┆
0x0f0c0…0f0e0 20 4f 46 2c 20 63 61 6c 6c 65 64 20 74 68 65 20 bf dc d8 a0 65 6c 65 6d 65 6e 74 20 0a 19 80 80 ┆ OF, called the ┐▄паelement ђђ┆
0x0f0e0…0f100 c0 74 79 70 65 be e0 2e 20 45 76 65 72 79 20 6f 62 6a 65 63 74 20 6f 66 20 74 68 65 20 61 72 72 ┆└typeЙЯ. Every object of the arr┆
0x0f100…0f120 61 79 20 74 79 70 65 20 68 61 73 20 70 72 65 63 69 73 65 6c 79 20 6f 6e 65 20 65 6c 65 6d 65 6e ┆ay type has precisely one elemen┆
0x0f120…0f140 74 20 61 73 73 6f 80 0a 63 69 61 74 65 64 20 77 69 74 68 20 65 61 63 68 20 76 61 6c 75 65 20 6f ┆t assoђ ciated with each value o┆
0x0f140…0f160 66 20 74 68 65 20 69 6e 64 65 78 20 74 79 70 65 2e 0d 0a 0d 0a 54 68 65 20 73 79 6e 74 61 78 20 ┆f the index type. The syntax ┆
0x0f160…0f180 41 52 52 41 59 28 74 82 31 81 2c 20 74 82 32 81 2c 20 2e 2e 2e 2c 20 74 82 6e 81 29 20 4f 46 20 ┆ARRAY(tѓ1Ђ, tѓ2Ђ, ..., tѓnЂ) OF ┆
0x0f180…0f1a0 65 6c 65 6d 65 6e 74 5f 74 79 70 65 0d 0a 69 73 20 70 65 72 6d 69 73 73 69 62 6c 65 20 61 73 20 ┆element_type is permissible as ┆
0x0f1a0…0f1c0 73 68 6f 72 74 68 61 6e 64 20 66 6f 72 0d 0a 0d 0a 41 52 52 41 59 28 74 82 31 81 29 20 4f 46 20 ┆shorthand for ARRAY(tѓ1Ђ) OF ┆
0x0f1c0…0f1e0 41 52 52 41 59 28 74 82 32 81 29 20 4f 46 20 2e 2e 2e 20 41 52 52 41 59 28 74 82 6e 81 29 20 4f ┆ARRAY(tѓ2Ђ) OF ... ARRAY(tѓnЂ) O┆
0x0f1e0…0f200 46 20 65 6c 65 6d 65 6e 74 5f 74 79 70 65 2e 0d 0a 0d 0a 53 69 6d 69 6c 61 72 6c 79 20 50 41 43 ┆F element_type. Similarly PAC┆
0x0f200…0f220 4b 45 44 20 41 52 52 41 59 28 74 82 31 81 2c 20 74 82 32 81 2c 20 2e 2e 2e 2c 20 74 82 6e 81 29 ┆KED ARRAY(tѓ1Ђ, tѓ2Ђ, ..., tѓnЂ)┆
0x0f220…0f240 20 4f 46 20 65 6c 65 6d 65 6e 74 5f 74 79 70 65 0d 0a 0d 0a 69 73 20 6c 65 67 61 6c 20 73 68 6f ┆ OF element_type is legal sho┆
0x0f240…0f260 72 74 68 61 6e 64 20 66 6f 72 20 50 41 43 4b 45 44 20 41 52 52 41 59 28 74 82 31 81 29 20 4f 46 ┆rthand for PACKED ARRAY(tѓ1Ђ) OF┆
0x0f260…0f280 20 50 41 43 4b 45 44 20 0d 0a 41 52 52 41 59 28 74 82 32 81 29 20 4f 46 20 2e 2e 2e 20 50 41 43 ┆ PACKED ARRAY(tѓ2Ђ) OF ... PAC┆
0x0f280…0f2a0 4b 45 44 20 41 52 52 41 59 28 74 82 6e 81 29 20 4f 46 20 65 6c 65 6d 65 6e 74 5f 74 79 70 65 2e ┆KED ARRAY(tѓnЂ) OF element_type.┆
0x0f2a0…0f2c0 0d 0a 0d 0a 0d 0a 54 68 65 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 61 6e 20 61 72 72 61 79 20 6f ┆ The elements of an array o┆
0x0f2c0…0f2e0 62 6a 65 63 74 20 61 72 65 20 61 63 63 65 73 73 65 64 20 62 79 20 69 6e 64 65 78 69 6e 67 2e 0d ┆bject are accessed by indexing. ┆
0x0f2e0…0f300 0a 16 6d 61 20 73 79 6e 64 69 61 37 34 0d 0a 54 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 64 ┆ ma syndia74 The type of the d┆
0x0f300…0f320 65 6e 6f 74 65 64 20 6f 62 6a 65 63 74 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 20 74 ┆enoted object must be an array t┆
0x0f320…0f340 79 70 65 2e 20 54 68 65 20 69 6e 80 64 65 78 20 0a 65 78 70 72 65 73 73 69 6f 6e 20 6d 75 73 74 ┆ype. The inђdex expression must┆
0x0f340…0f360 20 62 65 20 61 73 73 69 67 6e 61 62 6c 65 20 74 6f 20 74 68 65 20 69 6e 64 65 78 20 74 79 70 65 ┆ be assignable to the index type┆
0x0f360…0f380 20 6f 66 20 74 68 69 73 20 74 79 80 70 65 2e 20 49 74 20 69 73 20 0a 65 76 61 6c 75 61 74 65 64 ┆ of this tyђpe. It is evaluated┆
0x0f380…0f3a0 20 77 68 65 6e 20 61 63 63 65 73 73 20 69 73 20 6d 61 64 65 20 74 6f 20 74 68 65 20 69 6e 64 65 ┆ when access is made to the inde┆
0x0f3a0…0f3c0 78 80 65 64 20 65 6c 65 6d 65 6e 74 2e 20 74 68 65 20 69 6e 64 65 78 65 64 20 0a 65 6c 65 6d 65 ┆xђed element. the indexed eleme┆
0x0f3c0…0f3e0 6e 74 20 69 73 20 74 68 61 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 61 72 72 61 79 20 ┆nt is that element of the array ┆
0x0f3e0…0f400 6f 62 6a 65 63 74 20 77 68 69 63 68 20 69 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 ┆object which is associated with ┆
0x0f400…0f420 0a 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 2e 20 54 68 ┆ the value of the expression. Th┆
0x0f420…0f440 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 69 6e 80 64 65 78 65 64 20 65 6c 65 6d 65 6e 74 20 69 ┆e type of the inђdexed element i┆
0x0f440…0f460 73 20 74 68 65 20 0a 65 6c 65 6d 65 6e 74 20 74 79 70 65 20 6f 66 20 74 68 65 20 61 72 72 61 79 ┆s the element type of the array┆
0x0f460…0f480 20 74 79 70 65 2e 0d 0a 0d 0a 54 68 65 20 73 79 6e 74 61 78 20 61 28 69 82 31 81 2c 20 69 82 32 ┆ type. The syntax a(iѓ1Ђ, iѓ2┆
0x0f480…0f4a0 81 2c 20 2e 2e 2e 2c 20 69 82 6e 81 29 2c 20 77 68 65 72 65 20 61 20 64 65 6e 6f 74 65 73 20 61 ┆Ђ, ..., iѓnЂ), where a denotes a┆
0x0f4a0…0f4c0 6e 20 61 72 72 61 79 20 6f 62 6a 65 63 74 2c 20 69 73 20 70 65 72 80 0a 6d 69 73 73 69 62 6c 65 ┆n array object, is perђ missible┆
0x0f4c0…0f4e0 20 61 73 20 73 68 6f 72 74 68 61 6e 64 20 66 6f 72 20 61 28 69 82 31 81 29 28 69 82 32 81 29 20 ┆ as shorthand for a(iѓ1Ђ)(iѓ2Ђ) ┆
0x0f4e0…0f500 2e 2e 2e 20 28 69 82 6e 81 29 2e 0d 0a 0d 0a 0e 0a a1 4e 6f 74 65 3a 0d 0a 54 68 65 20 61 62 6f ┆... (iѓnЂ). АNote: The abo┆
0x0f500…0f520 76 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 69 6d 70 6c 69 65 73 20 74 68 61 74 20 69 6e 20 67 ┆ve description implies that in g┆
0x0f520…0f540 65 6e 65 72 61 6c 20 61 20 72 61 6e 67 65 20 63 68 65 63 6b 20 69 73 20 70 65 72 80 0a 66 6f 72 ┆eneral a range check is perђ for┆
0x0f540…0f560 6d 65 64 20 77 68 65 6e 20 61 6e 20 61 72 72 61 79 20 65 6c 65 6d 65 6e 74 20 69 73 20 61 63 63 ┆med when an array element is acc┆
0x0f560…0f580 65 73 73 65 64 20 62 79 20 69 6e 64 65 78 69 6e 67 2e 20 41 20 63 6f 6d 70 69 6c 65 72 20 0a 6d ┆essed by indexing. A compiler m┆
0x0f580…0f5a0 61 79 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 61 6c 6c 6f 77 20 69 6e 64 65 78 20 63 68 65 63 6b 69 ┆ay optionally allow index checki┆
0x0f5a0…0f5c0 6e 67 20 74 6f 20 62 65 20 73 75 70 80 70 72 65 73 73 65 64 2e 0d 0a 0f 0a 0d 0a a1 45 78 61 6d ┆ng to be supђpressed. АExam┆
0x0f5c0…0f5e0 70 6c 65 e1 3a 20 28 63 66 2e 20 73 65 63 74 69 6f 6e 20 33 2e 33 29 0d 0a 56 41 52 0d 0a 20 20 ┆pleр: (cf. section 3.3) VAR ┆
0x0f5e0…0f600 61 6d 61 74 72 69 78 3a 20 6d 61 74 72 69 78 5f 31 30 3b 0d 0a 20 20 74 65 6d 70 5f 63 6f 6c 75 ┆amatrix: matrix_10; temp_colu┆
0x0f600…0f620 6d 6e 3a 20 63 6f 6c 75 6d 6e 28 31 30 29 3b 0d 0a 20 20 2e 2e 2e 0d 0a 20 20 74 65 6d 70 5f 63 ┆mn: column(10); ... temp_c┆
0x0f620…0f640 6f 6c 75 6d 6e 3a 3d 20 61 6d 61 74 72 69 78 28 69 29 3b 20 2d 2d 20 61 73 73 69 67 6e 6d 65 6e ┆olumn:= amatrix(i); -- assignmen┆
0x0f640…0f660 74 20 6f 66 20 63 6f 6d 70 6c 65 74 65 20 63 6f 6c 75 6d 6e 0d 0a 20 20 61 6d 61 74 72 69 78 28 ┆t of complete column amatrix(┆
0x0f660…0f680 69 2c 6a 29 3a 3d 20 61 6d 61 74 72 69 78 28 6a 2c 69 29 3b 20 2d 2d 20 73 69 6e 67 6c 65 20 63 ┆i,j):= amatrix(j,i); -- single c┆
0x0f680…0f6a0 6f 6d 70 6f 6e 65 6e 74 0d 0a 20 20 2e 2e 2e 0d 0a 16 73 63 0d 0a 52 65 63 6f 72 64 20 54 79 70 ┆omponent ... sc Record Typ┆
0x0f6a0…0f6c0 65 73 0d 0a 54 68 65 20 73 75 62 2d 6f 62 6a 65 63 74 73 20 6f 66 20 61 20 bf dc d8 72 65 63 6f ┆es The sub-objects of a ┐▄пreco┆
0x0f6c0…0f6e0 72 64 be 20 61 72 65 20 63 61 6c 6c 65 64 20 bf dc d8 66 69 65 6c 64 be 73 2e 20 54 68 65 20 66 ┆rdЙ are called ┐▄пfieldЙs. The f┆
0x0f6e0…0f700 69 65 6c 64 73 20 61 72 65 20 6f 72 80 67 61 6e 69 7a 65 64 20 0a 62 79 20 6e 61 6d 69 6e 67 2e ┆ields are orђganized by naming.┆
0x0f700…0f720 0d 0a 0d 0a 16 6d 61 20 73 79 6e 64 69 61 33 35 0d 0a 41 6c 6c 20 74 68 65 20 66 69 65 6c 64 20 ┆ ma syndia35 All the field ┆
0x0f720…0f740 6e 61 6d 65 73 20 69 6e 20 61 20 72 65 63 6f 72 64 20 74 79 70 65 20 64 65 66 69 6e 69 74 69 6f ┆names in a record type definitio┆
0x0f740…0f760 6e 20 6d 75 73 74 20 62 65 20 64 69 80 73 74 69 6e 63 74 2e 20 45 61 63 68 20 0a 66 69 65 6c 64 ┆n must be diђstinct. Each field┆
0x0f760…0f780 20 6e 61 6d 65 20 69 6e 74 72 6f 64 75 63 65 73 20 61 6e 64 20 69 64 65 6e 74 69 66 69 65 73 20 ┆ name introduces and identifies ┆
0x0f780…0f7a0 61 20 66 69 65 6c 64 2e 20 54 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 66 69 65 6c 64 2c 20 ┆a field. The type of the field, ┆
0x0f7a0…0f7c0 0a 63 61 6c 6c 65 64 20 74 68 65 20 66 69 65 6c 64 20 74 79 70 65 2c 20 69 73 20 73 70 65 63 69 ┆ called the field type, is speci┆
0x0f7c0…0f7e0 66 69 65 64 20 62 79 20 74 68 65 20 63 6f 6d 6d 6f 6e 20 74 79 70 65 20 73 70 65 63 69 66 69 63 ┆fied by the common type specific┆
0x0f7e0…0f800 61 74 69 6f 6e 20 0a 66 6f 6c 6c 6f 77 69 6e 67 20 3a 2e 20 41 20 66 69 65 6c 64 20 74 79 70 65 ┆ation following :. A field type┆
0x0f800…0f820 20 6d 61 79 20 6e 6f 74 20 62 65 20 73 70 65 63 69 66 69 65 64 20 62 79 20 61 6e 20 27 65 6e 75 ┆ may not be specified by an 'enu┆
0x0f820…0f840 6d 65 72 61 74 69 6f 6e 2d 74 79 80 0a 70 65 20 64 65 66 69 6e 69 74 69 6f 6e 27 2e 20 41 6e 20 ┆meration-tyђ pe definition'. An ┆
0x0f840…0f860 75 6e 75 73 65 64 20 66 69 65 6c 64 20 6f 66 20 61 20 72 65 63 6f 72 64 20 74 79 70 65 20 6d 61 ┆unused field of a record type ma┆
0x0f860…0f880 79 20 62 65 20 73 70 65 63 69 66 69 65 64 20 65 78 80 0a 70 6c 69 63 69 74 6c 79 2c 20 62 79 20 ┆y be specified exђ plicitly, by ┆
0x0f880…0f8a0 6d 65 61 6e 73 20 6f 66 20 61 20 3f 2c 20 63 61 6c 6c 65 64 20 61 6e 20 75 6e 75 73 65 64 2d 73 ┆means of a ?, called an unused-s┆
0x0f8a0…0f8c0 70 65 63 69 66 69 63 61 74 69 6f 6e 2c 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 0a 61 64 6a 75 73 ┆pecification, in order to adjus┆
0x0f8c0…0f8e0 74 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 69 6e 67 20 6f 66 20 73 75 62 73 65 71 75 65 6e 74 20 ┆t the positioning of subsequent ┆
0x0f8e0…0f900 66 69 65 6c 64 73 2e 20 41 6e 20 75 6e 75 73 65 64 2d 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 ┆fields. An unused-specification ┆
0x0f900…0f920 69 73 20 0a 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 74 68 65 20 64 65 63 6c 61 72 61 74 69 6f ┆is equivalent to the declaratio┆
0x0f920…0f940 6e 20 6f 66 20 61 20 66 69 65 6c 64 20 6f 66 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 74 79 ┆n of a field of the specified ty┆
0x0f940…0f960 70 65 2c 20 77 68 69 63 68 20 0a 6d 75 73 74 20 62 65 20 61 20 73 74 61 74 69 63 20 6f 72 64 69 ┆pe, which must be a static ordi┆
0x0f960…0f980 6e 61 6c 20 74 79 70 65 2e 20 54 68 65 20 66 69 65 6c 64 20 69 73 20 6e 6f 74 20 61 63 63 65 73 ┆nal type. The field is not acces┆
0x0f980…0f9a0 73 69 62 6c 65 2c 20 69 2e 65 2e 20 69 74 20 0a 63 61 6e 6e 6f 74 20 62 65 20 73 65 6c 65 63 74 ┆sible, i.e. it cannot be select┆
0x0f9a0…0f9c0 65 64 2e 20 41 73 73 69 67 6e 6d 65 6e 74 20 74 6f 20 61 6e 20 75 6e 75 73 65 64 20 66 69 65 6c ┆ed. Assignment to an unused fiel┆
0x0f9c0…0f9e0 64 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 6d 61 64 65 20 0a 62 79 20 61 73 73 69 67 6e 69 6e 67 ┆d can only be made by assigning┆
0x0f9e0…0fa00 20 61 20 76 61 6c 75 65 20 74 6f 20 74 68 65 20 72 65 63 6f 72 64 20 6f 62 6a 65 63 74 20 61 73 ┆ a value to the record object as┆
0x0fa00…0fa20 20 61 20 77 68 6f 6c 65 2e 0d 0a 16 73 6f 20 75 6e 75 73 65 64 2d 73 70 65 63 69 66 69 63 61 74 ┆ a whole. so unused-specificat┆
0x0fa20…0fa40 69 6f 6e 0d 0a 0d 0a 54 68 65 20 66 69 65 6c 64 73 20 6f 66 20 61 20 72 65 63 6f 72 64 20 61 72 ┆ion The fields of a record ar┆
0x0fa40…0fa60 65 20 61 63 63 65 73 73 65 64 20 62 79 20 73 65 6c 65 63 74 69 6f 6e 20 62 79 20 6e 61 6d 65 2e ┆e accessed by selection by name.┆
0x0fa60…0fa80 0d 0a 16 6d 61 20 73 79 6e 64 69 61 37 35 0d 0a 54 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 ┆ ma syndia75 The type of the ┆
0x0fa80…0faa0 64 65 6e 6f 74 65 64 20 6f 62 6a 65 63 74 20 6d 75 73 74 20 62 65 20 61 20 72 65 63 6f 72 64 20 ┆denoted object must be a record ┆
0x0faa0…0fac0 74 79 70 65 2e 20 54 68 65 20 66 69 65 6c 64 20 6e 61 80 0a 6d 65 20 6d 75 73 74 20 6f 63 63 75 ┆type. The field naђ me must occu┆
0x0fac0…0fae0 72 20 69 6e 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 72 65 63 6f 72 ┆r in the definition of the recor┆
0x0fae0…0fb00 64 20 74 79 70 65 2e 20 54 68 65 20 73 65 6c 65 63 80 74 65 64 20 66 69 65 6c 64 20 0a 69 73 20 ┆d type. The selecђted field is ┆
0x0fb00…0fb20 74 68 61 74 20 66 69 65 6c 64 20 6f 66 20 74 68 65 20 72 65 63 6f 72 64 20 6f 62 6a 65 63 74 20 ┆that field of the record object ┆
0x0fb20…0fb40 77 68 69 63 68 20 69 73 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 74 68 65 20 66 69 65 6c 64 ┆which is identified by the field┆
0x0fb40…0fb60 20 6e 61 80 0a 6d 65 2e 20 49 74 73 20 74 79 70 65 20 69 73 20 74 68 65 20 73 70 65 63 69 66 69 ┆ naђ me. Its type is the specifi┆
0x0fb60…0fb80 65 64 20 66 69 65 6c 64 20 74 79 70 65 2e 0d 0a 0d 0a 8c 8b e8 0a 41 6e 20 61 62 62 72 65 76 69 ┆ed field type. їІУ An abbrevi┆
0x0fb80…0fba0 61 74 65 64 20 73 79 6e 74 61 78 20 66 6f 72 20 66 69 65 6c 64 20 61 63 63 65 73 73 20 6d 61 79 ┆ated syntax for field access may┆
0x0fba0…0fbc0 20 62 65 20 75 73 65 64 20 69 6e 20 77 69 74 68 20 73 74 61 80 74 65 80 0a 6d 65 6e 74 73 2c 20 ┆ be used in with staђteђ ments, ┆
0x0fbc0…0fbe0 63 66 2e 20 73 65 63 74 69 6f 6e 20 35 2e 38 2e 0d 0a 0d 0a a1 45 78 61 6d 70 6c 65 3a 0d 0a 56 ┆cf. section 5.8. АExample: V┆
0x0fbe0…0fc00 41 52 0d 0a 20 20 72 65 63 3a 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 66 31 2c 66 32 3a 20 69 6e ┆AR rec: RECORD f1,f2: in┆
0x0fc00…0fc20 74 65 67 65 72 3b 0d 0a 09 66 33 3a 20 62 6f 6f 6c 65 61 6e 0d 0a 20 20 45 4e 44 28 2a 52 45 43 ┆teger; f3: boolean END(*REC┆
0x0fc20…0fc40 4f 52 44 2a 29 3b 0d 0a 20 20 2e 2e 2e 0d 0a 20 20 72 65 63 2e 66 31 3a 3d 20 72 65 63 2e 66 31 ┆ORD*); ... rec.f1:= rec.f1┆
0x0fc40…0fc60 2b 72 65 63 2e 66 32 0d 0a 20 20 6f 72 0d 0a 20 20 57 49 54 48 20 72 65 63 20 44 4f 20 66 31 3a ┆+rec.f2 or WITH rec DO f1:┆
0x0fc60…0fc80 3d 20 66 31 2b 66 32 0d 0a 0d 0a 16 73 63 0d 0a 4e 6f 74 61 74 69 6f 6e 20 66 6f 72 20 56 61 6c ┆= f1+f2 sc Notation for Val┆
0x0fc80…0fca0 75 65 73 20 6f 66 20 53 74 72 75 63 74 75 72 65 64 20 54 79 70 65 73 0d 0a 56 61 6c 75 65 73 20 ┆ues of Structured Types Values ┆
0x0fca0…0fcc0 6f 66 20 61 20 73 74 72 75 63 74 75 72 65 64 20 74 79 70 65 20 6d 61 79 20 62 65 20 64 65 6e 6f ┆of a structured type may be deno┆
0x0fcc0…0fce0 74 65 64 20 62 79 20 6c 69 73 74 73 20 6f 66 20 65 6c 65 80 6d 65 6e 74 20 6f 72 20 0a 66 69 65 ┆ted by lists of eleђment or fie┆
0x0fce0…0fd00 6c 64 20 76 61 6c 75 65 73 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 37 38 0d 0a 16 6d 61 20 73 79 ┆ld values. ma syndia78 ma sy┆
0x0fd00…0fd20 6e 64 69 61 37 39 0d 0a 54 68 65 20 27 62 6f 75 6e 64 2d 74 79 70 65 5f 6e 61 6d 65 27 20 6f 72 ┆ndia79 The 'bound-type_name' or┆
0x0fd20…0fd40 20 27 70 61 72 61 6d 65 74 65 72 69 7a 65 64 20 74 79 70 65 20 62 69 6e 64 69 6e 67 27 20 73 70 ┆ 'parameterized type binding' sp┆
0x0fd40…0fd60 65 63 69 80 66 69 65 73 20 74 68 65 20 0a 74 79 70 65 20 6f 66 20 74 68 65 20 73 74 72 75 63 74 ┆eciђfies the type of the struct┆
0x0fd60…0fd80 75 72 65 64 20 76 61 6c 75 65 2c 20 77 68 69 63 68 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 75 ┆ured value, which must be a stru┆
0x0fd80…0fda0 63 74 75 72 65 64 20 74 79 70 65 2e 20 54 68 65 20 0a 63 6f 6e 73 74 72 75 63 74 20 62 65 74 77 ┆ctured type. The construct betw┆
0x0fda0…0fdc0 65 65 6e 20 28 3a 20 61 6e 64 20 3a 29 20 69 73 20 65 76 61 6c 75 80 61 80 74 65 64 20 74 6f 20 ┆een (: and :) is evaluђaђted to ┆
0x0fdc0…0fde0 61 20 6c 69 73 74 20 6f 66 20 76 61 6c 75 65 73 2c 20 62 79 20 65 76 61 6c 75 80 0a 61 74 69 6e ┆a list of values, by evaluђ atin┆
0x0fde0…0fe00 67 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 73 20 69 6e 20 74 68 65 20 6f 72 64 65 72 20 6f ┆g the expressions in the order o┆
0x0fe00…0fe20 66 20 6f 63 63 75 72 72 65 6e 63 65 2e 20 49 66 20 74 68 65 20 74 79 70 65 20 69 73 20 73 70 65 ┆f occurrence. If the type is spe┆
0x0fe20…0fe40 63 69 80 0a 66 69 65 64 20 62 79 20 61 20 27 70 61 80 72 61 6d 65 74 65 72 69 7a 65 64 20 74 79 ┆ciђ fied by a 'paђrameterized ty┆
0x0fe40…0fe60 70 65 20 62 69 6e 64 69 6e 67 27 20 69 74 20 69 73 20 65 73 74 61 62 6c 69 73 68 65 64 20 62 65 ┆pe binding' it is established be┆
0x0fe60…0fe80 66 6f 72 65 20 74 68 65 20 0a 76 61 6c 75 65 20 6c 69 73 74 20 69 73 20 65 76 61 6c 75 61 74 65 ┆fore the value list is evaluate┆
0x0fe80…0fea0 64 2e 0d 0a 0d 0a 8c 84 c0 0a 49 66 20 74 68 65 20 73 74 72 75 63 74 75 72 65 64 20 74 79 70 65 ┆d. їё└ If the structured type┆
0x0fea0…0fec0 20 69 73 20 61 6e 20 61 72 72 61 79 20 74 79 70 65 20 74 68 65 20 76 61 6c 75 65 73 20 69 6e 20 ┆ is an array type the values in ┆
0x0fec0…0fee0 74 68 65 20 6c 69 73 74 20 61 72 65 20 74 68 65 20 0a 65 6c 65 6d 65 6e 74 20 76 61 6c 75 65 73 ┆the list are the element values┆
0x0fee0…0ff00 20 69 6e 20 69 6e 64 65 78 20 6f 72 64 65 72 2e 20 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 76 ┆ in index order. The number of v┆
0x0ff00…0ff20 61 6c 75 65 73 20 6d 75 73 74 20 65 71 75 61 6c 20 74 68 65 20 0a 6e 75 6d 62 65 72 20 6f 66 20 ┆alues must equal the number of ┆
0x0ff20…0ff40 65 6c 65 6d 65 6e 74 73 20 61 6e 64 20 74 68 65 20 74 79 70 65 20 6f 66 20 65 61 63 68 20 76 61 ┆elements and the type of each va┆
0x0ff40…0ff60 6c 75 65 20 6d 75 73 74 20 62 65 20 61 73 73 69 67 6e 61 62 6c 65 20 74 6f 20 0a 74 68 65 20 65 ┆lue must be assignable to the e┆
0x0ff60…0ff80 6c 65 6d 65 6e 74 20 74 79 70 65 3b 20 6f 74 68 65 72 77 69 73 65 20 61 20 66 61 75 6c 74 20 6f ┆lement type; otherwise a fault o┆
0x0ff80…0ffa0 63 80 63 75 72 73 2e 20 41 20 27 bf dc d8 72 65 70 65 61 74 65 64 20 76 61 6c 75 65 be 27 2c 20 ┆cђcurs. A '┐▄пrepeated valueЙ', ┆
0x0ffa0…0ffc0 69 66 20 0a 70 72 65 73 65 6e 74 2c 20 69 73 20 65 71 75 80 69 76 61 80 6c 65 6e 74 20 74 6f 20 ┆if present, is equђivaђlent to ┆
0x0ffc0…0ffe0 61 20 6e 75 6d 62 65 72 20 6f 66 20 72 65 70 65 61 74 65 64 20 6f 63 63 75 72 72 65 6e 63 65 73 ┆a number of repeated occurrences┆
0x0ffe0…10000 20 6f 66 20 69 74 73 20 0a 27 76 61 6c 75 65 80 5f 65 78 80 70 72 65 73 73 69 6f 6e 27 3b 20 68 ┆ of its 'valueђ_exђpression'; h┆
0x10000…10020 6f 77 65 76 65 72 2c 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 6f 6e 6c 79 20 65 ┆owever, the expression is only e┆
0x10020…10040 76 61 6c 75 61 74 65 64 20 6f 6e 80 63 65 2e 20 0a 54 68 65 20 6e 75 6d 62 65 72 20 69 73 20 67 ┆valuated onђce. The number is g┆
0x10040…10060 69 76 65 6e 20 62 79 20 74 68 65 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 65 20 63 6f 72 72 65 73 ┆iven by the ordinal value corres┆
0x10060…10080 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 0a 6f 66 20 74 68 65 20 27 72 65 ┆ponding to the value of the 're┆
0x10080…100a0 70 65 74 69 74 69 6f 6e 5f 65 78 80 70 72 65 73 73 69 6f 6e 27 20 77 68 69 63 68 20 6d 75 73 74 ┆petition_exђpression' which must┆
0x100a0…100c0 20 62 65 20 61 20 6e 6f 6e 2d 6e 65 67 61 74 69 76 65 20 69 6e 74 65 67 65 72 2e 20 0a 49 66 20 ┆ be a non-negative integer. If ┆
0x100c0…100e0 74 68 65 20 6e 75 6d 62 65 72 20 69 73 20 6e 65 67 61 74 69 76 65 20 61 20 66 61 75 6c 74 20 6f ┆the number is negative a fault o┆
0x100e0…10100 63 80 63 75 72 73 2e 0d 0a 0d 0a 49 66 20 74 68 65 20 73 74 72 75 63 74 75 72 65 64 20 74 79 70 ┆cђcurs. If the structured typ┆
0x10100…10120 65 20 69 73 20 61 20 72 65 63 6f 72 64 20 74 79 70 65 20 74 68 65 20 76 61 6c 75 65 73 20 69 6e ┆e is a record type the values in┆
0x10120…10140 20 74 68 65 20 6c 69 73 74 20 61 72 65 20 74 68 65 20 0a 66 69 65 6c 64 20 76 61 6c 75 65 73 20 ┆ the list are the field values ┆
0x10140…10160 69 6e 20 74 68 65 20 6f 72 64 65 72 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 66 69 65 6c 64 20 ┆in the order in which the field ┆
0x10160…10180 6e 61 6d 65 73 20 6f 63 63 75 72 20 69 6e 20 74 68 65 20 64 65 66 69 6e 69 80 0a 74 69 6f 6e 20 ┆names occur in the definiђ tion ┆
0x10180…101a0 6f 66 20 74 68 65 20 72 65 63 6f 72 64 20 74 79 70 65 2e 20 54 68 65 20 6e 75 6d 62 65 72 20 6f ┆of the record type. The number o┆
0x101a0…101c0 66 20 76 61 6c 75 65 73 20 6d 75 73 74 20 65 71 75 61 6c 20 74 68 65 20 6e 75 6d 62 65 72 20 0a ┆f values must equal the number ┆
0x101c0…101e0 6f 66 20 66 69 65 6c 64 73 20 61 6e 64 20 74 68 65 20 74 79 70 65 20 6f 66 20 65 61 63 68 20 76 ┆of fields and the type of each v┆
0x101e0…10200 61 6c 75 65 20 6d 75 73 74 20 62 65 20 61 73 73 69 67 6e 61 62 6c 65 20 74 6f 20 74 68 65 20 63 ┆alue must be assignable to the c┆
0x10200…10220 6f 72 80 0a 72 65 73 70 6f 6e 64 69 6e 67 20 66 69 65 6c 64 20 74 79 80 70 65 3b 20 6f 74 68 65 ┆orђ responding field tyђpe; othe┆
0x10220…10240 72 77 69 73 65 20 61 20 66 61 75 6c 74 20 6f 63 80 63 75 72 73 2e 20 49 66 20 74 68 65 20 72 65 ┆rwise a fault ocђcurs. If the re┆
0x10240…10260 63 6f 72 64 20 74 79 70 65 20 0a 63 6f 6e 74 61 69 6e 73 20 65 78 70 6c 69 63 69 74 20 73 70 65 ┆cord type contains explicit spe┆
0x10260…10280 63 69 66 69 65 64 20 75 6e 75 73 65 64 20 66 69 65 6c 64 73 20 28 63 66 2e 20 73 65 63 74 69 6f ┆cified unused fields (cf. sectio┆
0x10280…102a0 6e 20 33 2e 31 30 29 20 76 61 6c 75 65 73 20 6d 75 73 74 20 0a 62 65 20 67 69 76 65 6e 20 66 6f ┆n 3.10) values must be given fo┆
0x102a0…102c0 72 20 74 68 65 73 65 2e 20 54 68 65 79 20 61 72 65 20 69 6d 80 70 6c 69 63 69 74 6c 79 20 73 65 ┆r these. They are imђplicitly se┆
0x102c0…102e0 74 20 74 6f 20 76 61 6c 75 65 20 7a 65 72 6f 2e 20 49 6e 20 74 68 65 20 63 61 73 65 20 0a 6f 66 ┆t to value zero. In the case of┆
0x102e0…10300 20 61 20 72 65 63 6f 72 64 20 74 79 70 65 20 61 20 27 bf dc d8 72 65 80 70 65 61 74 65 64 20 76 ┆ a record type a '┐▄пreђpeated v┆
0x10300…10320 61 6c 75 65 be 27 20 6d 75 73 74 20 6e 6f 74 20 6f 63 63 75 72 2e 0d 0a 0d 0a 54 68 65 20 74 79 ┆alueЙ' must not occur. The ty┆
0x10320…10340 70 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 6d 61 79 20 62 65 20 6f 6d 69 74 74 65 64 20 ┆pe specification may be omitted ┆
0x10340…10360 77 68 65 6e 20 74 68 65 20 74 79 70 65 20 69 74 20 73 70 65 80 63 69 80 66 69 65 73 20 63 61 6e ┆when the type it speђciђfies can┆
0x10360…10380 20 0a 62 65 20 69 6e 66 65 72 72 65 64 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 74 65 78 74 2c 20 ┆ be inferred from the context, ┆
0x10380…103a0 69 2e 65 2e 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 80 77 69 6e 67 20 74 77 6f 20 73 69 74 75 61 ┆i.e. in the folloђwing two situa┆
0x103a0…103c0 74 69 6f 6e 73 3a 0d 0a 0d 0a 31 2e 20 84 54 68 65 20 27 73 74 72 75 63 74 75 72 65 64 20 76 61 ┆tions: 1. ёThe 'structured va┆
0x103c0…103e0 6c 75 65 27 20 6f 63 63 75 72 73 20 61 73 20 61 20 27 76 61 6c 75 65 5f 65 78 70 72 65 73 73 69 ┆lue' occurs as a 'value_expressi┆
0x103e0…10400 6f 6e 27 20 77 69 74 68 69 6e 20 61 20 6c 61 72 80 0a 19 83 80 80 67 65 72 20 27 73 74 72 75 63 ┆on' within a larђ Ѓђђger 'struc┆
0x10400…10420 74 75 72 65 64 20 76 61 6c 75 65 27 2e 0d 0a 0d 0a 32 2e 20 84 54 68 65 20 27 73 74 72 75 63 74 ┆tured value'. 2. ёThe 'struct┆
0x10420…10440 75 72 65 64 20 76 61 6c 75 65 27 20 6f 63 63 75 72 73 20 61 73 20 61 6e 20 27 69 6e 69 74 69 61 ┆ured value' occurs as an 'initia┆
0x10440…10460 6c 69 7a 61 80 74 69 6f 6e 5f 65 78 80 70 72 65 73 73 69 6f 6e 27 20 69 6e 20 61 20 0a 19 83 80 ┆lizaђtion_exђpression' in a Ѓђ┆
0x10460…10480 80 76 61 72 69 61 62 6c 65 20 6f 72 20 73 68 61 72 65 64 20 64 65 63 6c 61 72 61 74 69 6f 6e 2e ┆ђvariable or shared declaration.┆
0x10480…104a0 0d 0a 0d 0a a1 45 78 61 6d 70 6c 65 e1 3a 20 28 63 66 2e 20 73 65 63 74 69 6f 6e 20 33 2e 33 29 ┆ АExampleр: (cf. section 3.3)┆
0x104a0…104c0 0d 0a 43 4f 4e 53 54 0d 0a 20 20 69 64 65 6e 74 69 74 79 5f 33 3d 20 6d 61 74 72 69 78 5f 33 28 ┆ CONST identity_3= matrix_3(┆
0x104c0…104e0 3a 28 3a 31 2c 30 2c 30 3a 29 2c 20 28 3a 30 2c 31 2c 31 3a 29 2c 20 28 3a 30 2c 30 2c 31 3a 29 ┆:(:1,0,0:), (:0,1,1:), (:0,0,1:)┆
0x104e0…10500 3a 29 3b 0d 0a 20 20 6e 75 6c 5f 6c 69 73 74 3d 20 6c 69 73 74 28 3a 6c 65 6e 67 74 68 2a 2a 2a ┆:); nul_list= list(:length***┆
0x10500…10520 30 3a 29 3b 0d 0a 56 41 52 0d 0a 20 20 61 34 3a 20 6d 61 74 72 69 78 28 34 29 3a 3d 20 28 3a 34 ┆0:); VAR a4: matrix(4):= (:4┆
0x10520…10540 2a 2a 2a 28 3a 34 2a 2a 2a 30 3a 29 3a 29 3b 20 2d 2d 20 69 6e 69 74 69 61 6c 6c 79 20 6e 75 6c ┆***(:4***0:):); -- initially nul┆
0x10540…10560 6c 0d 0a 16 73 63 0d 0a 53 74 72 69 6e 67 20 54 79 70 65 73 0d 0a 54 68 65 20 66 61 6d 69 6c 79 ┆l sc String Types The family┆
0x10560…10580 20 6f 66 20 6f 6e 65 2d 64 69 6d 65 6e 73 69 6f 6e 61 6c 20 63 68 61 72 61 63 74 65 72 20 bf dc ┆ of one-dimensional character ┐▄┆
0x10580…105a0 d8 73 74 72 69 6e 67 be 20 28 61 72 72 61 79 29 20 74 79 70 65 73 20 69 73 20 70 72 65 64 65 80 ┆пstringЙ (array) types is predeђ┆
0x105a0…105c0 0a 66 69 6e 65 64 3a 0d 0a 0d 0a 73 74 72 69 6e 67 28 6c 65 6e 67 74 68 3a 20 62 79 74 65 29 3d ┆ fined: string(length: byte)=┆
0x105c0…105e0 20 41 52 52 41 59 28 31 2e 2e 6c 65 6e 67 74 68 29 20 4f 46 20 63 68 61 72 0d 0a 0d 0a 56 61 6c ┆ ARRAY(1..length) OF char Val┆
0x105e0…10600 75 65 73 20 6f 66 20 74 79 70 65 73 20 66 72 6f 6d 20 74 68 65 20 73 74 72 69 6e 67 20 66 61 6d ┆ues of types from the string fam┆
0x10600…10620 69 6c 79 20 6d 61 79 20 62 65 20 64 65 6e 6f 74 65 64 20 62 79 20 63 68 61 80 72 61 63 74 65 72 ┆ily may be denoted by chaђracter┆
0x10620…10640 20 0a 73 74 72 69 6e 67 73 2e 20 41 20 63 68 61 72 61 63 74 65 72 20 73 74 72 69 6e 67 20 69 73 ┆ strings. A character string is┆
0x10640…10660 20 61 20 73 74 72 69 6e 67 20 6f 66 20 67 72 61 70 68 69 63 20 73 79 6d 62 6f 6c 73 2c 20 65 61 ┆ a string of graphic symbols, ea┆
0x10660…10680 63 68 20 72 65 80 0a 70 72 65 73 65 6e 74 69 6e 67 20 61 20 63 68 61 72 61 63 74 65 72 20 76 61 ┆ch reђ presenting a character va┆
0x10680…106a0 6c 75 65 2c 20 65 6e 63 6c 6f 73 65 64 20 69 6e 20 64 6f 75 62 6c 65 20 71 75 6f 74 65 73 2e 20 ┆lue, enclosed in double quotes. ┆
0x106a0…106c0 54 68 65 20 64 6f 75 62 6c 65 20 0a 71 75 6f 74 65 20 63 68 61 72 61 63 74 65 72 20 6d 61 79 20 ┆The double quote character may ┆
0x106c0…106e0 69 74 73 65 6c 66 20 62 65 20 70 61 72 74 20 6f 66 20 61 20 63 68 61 72 61 63 74 65 72 20 73 74 ┆itself be part of a character st┆
0x106e0…10700 72 69 6e 67 2e 20 49 6e 20 74 68 69 73 20 63 61 73 65 20 0a 69 74 20 6d 75 73 74 20 62 65 20 69 ┆ring. In this case it must be i┆
0x10700…10720 6e 64 69 63 61 74 65 64 20 62 79 20 74 77 6f 20 61 64 6a 61 63 65 6e 74 20 6f 63 63 75 72 80 72 ┆ndicated by two adjacent occurђr┆
0x10720…10740 65 6e 63 65 73 20 6f 66 20 74 68 65 20 22 20 67 72 61 70 68 69 63 20 0a 73 79 6d 62 6f 6c 2e 20 ┆ences of the " graphic symbol. ┆
0x10740…10760 49 6e 64 69 76 69 64 75 61 6c 20 6e 6f 6e 2d 67 72 61 70 68 69 63 20 63 68 61 72 61 63 74 65 72 ┆Individual non-graphic character┆
0x10760…10780 73 20 6d 61 79 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 61 20 0a 63 68 61 72 61 63 74 65 ┆s may be included in a characte┆
0x10780…107a0 72 20 73 74 72 69 6e 67 20 62 79 20 6d 65 61 6e 73 20 6f 66 20 74 68 65 20 bf dc d8 63 6f 6e 63 ┆r string by means of the ┐▄пconc┆
0x107a0…107c0 61 74 65 80 6e 61 74 69 6f 6e be 20 6f 70 65 72 61 74 6f 72 20 26 2e 20 54 68 65 20 0a 63 68 61 ┆ateђnationЙ operator &. The cha┆
0x107c0…107e0 72 61 63 74 65 72 20 73 74 72 69 6e 67 20 6d 75 73 74 20 73 74 61 72 74 20 77 69 74 68 20 61 2c ┆racter string must start with a,┆
0x107e0…10800 20 70 6f 73 73 69 62 6c 79 20 65 6d 70 74 79 2c 20 73 74 72 69 6e 67 20 73 75 72 72 6f 75 6e 64 ┆ possibly empty, string surround┆
0x10800…10820 65 64 20 0a 62 79 20 64 6f 75 62 6c 65 20 71 75 6f 74 65 73 2e 0d 0a 0d 0a 54 68 65 20 73 70 65 ┆ed by double quotes. The spe┆
0x10820…10840 63 69 66 69 63 20 74 79 70 65 20 6f 66 20 61 20 63 68 61 72 61 63 74 65 72 20 73 74 72 69 6e 67 ┆cific type of a character string┆
0x10840…10860 2c 20 69 2e 65 2e 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 6d 65 6d 80 62 65 72 20 6f 66 ┆, i.e. the particular memђber of┆
0x10860…10880 20 0a 74 68 65 20 73 74 72 69 6e 67 20 66 61 6d 69 6c 79 20 6f 66 20 77 68 69 63 68 20 69 74 20 ┆ the string family of which it ┆
0x10880…108a0 64 65 6e 6f 74 65 73 20 61 20 76 61 6c 75 65 2c 20 69 73 20 64 65 74 65 72 6d 69 80 6e 65 64 20 ┆denotes a value, is determiђned ┆
0x108a0…108c0 62 79 20 69 74 73 20 0a 6c 65 6e 67 74 68 2c 20 69 2e 65 2e 20 74 68 65 20 6e 75 6d 62 65 72 20 ┆by its length, i.e. the number ┆
0x108c0…108e0 6f 66 20 63 68 61 72 61 63 74 65 72 73 20 69 74 20 63 6f 6e 73 69 73 74 73 20 6f 66 2e 0d 0a 0d ┆of characters it consists of. ┆
0x108e0…10900 0a 41 73 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 66 65 61 74 75 72 65 20 63 68 ┆ As an implementation feature ch┆
0x10900…10920 61 72 61 63 74 65 72 20 73 74 72 69 6e 67 73 20 6d 61 79 20 62 65 20 74 72 75 6e 80 63 61 74 65 ┆aracter strings may be trunђcate┆
0x10920…10940 64 20 6f 72 20 0a 65 78 74 65 6e 64 65 64 20 77 69 74 68 20 53 50 20 63 68 61 72 61 63 74 65 72 ┆d or extended with SP character┆
0x10940…10960 73 20 77 68 65 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 69 6e 20 74 68 65 20 63 6f 6e 74 65 78 ┆s when appropriate in the contex┆
0x10960…10980 74 2c 20 65 2e 67 2e 20 0a 77 68 65 6e 20 6f 63 63 75 72 72 69 6e 67 20 6f 6e 20 74 68 65 20 72 ┆t, e.g. when occurring on the r┆
0x10980…109a0 69 67 68 74 20 68 61 6e 64 20 73 69 64 65 20 6f 66 20 61 6e 20 61 73 73 69 67 6e 6d 65 6e 74 20 ┆ight hand side of an assignment ┆
0x109a0…109c0 73 74 61 80 74 65 6d 65 6e 74 20 0a 77 68 65 72 65 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 ┆staђtement where the correspond┆
0x109c0…109e0 69 6e 67 20 63 6f 6d 70 6f 6e 65 6e 74 20 6f 6e 20 74 68 65 20 6c 65 66 74 20 68 61 6e 64 20 73 ┆ing component on the left hand s┆
0x109e0…10a00 69 64 65 20 69 73 20 6f 66 20 61 20 0a 73 74 72 69 6e 67 20 74 79 70 65 20 77 69 74 68 20 64 69 ┆ide is of a string type with di┆
0x10a00…10a20 66 66 65 72 65 6e 74 20 6c 65 6e 67 74 68 2e 0d 0a 0d 0a a1 45 78 61 6d 70 6c 65 73 3a 0d 0a 22 ┆fferent length. АExamples: "┆
0x10a20…10a40 74 68 69 73 20 69 73 20 61 20 73 74 72 69 6e 67 22 0d 0a 22 78 22 22 78 22 20 28 2a 20 61 20 73 ┆this is a string" "x""x" (* a s┆
0x10a40…10a60 74 72 69 6e 67 20 6f 66 20 6c 65 6e 67 74 68 20 33 20 2a 29 0d 0a 22 2a 2a 2a 20 69 6c 6c 65 67 ┆tring of length 3 *) "*** illeg┆
0x10a60…10a80 61 6c 20 69 6e 70 75 74 20 6d 65 73 73 61 67 65 22 20 26 20 42 45 4c 20 26 20 43 52 20 26 20 4c ┆al input message" & BEL & CR & L┆
0x10a80…10aa0 46 20 2d 2d 20 73 74 72 69 6e 67 28 32 38 29 0d 0a 0d 0a 16 73 62 0d 0a 54 79 70 65 20 43 6f 6d ┆F -- string(28) sb Type Com┆
0x10aa0…10ac0 70 61 74 69 62 69 6c 69 74 79 0d 0a 16 73 6f 20 74 79 70 65 20 63 6f 6d 70 61 74 69 62 69 6c 69 ┆patibility so type compatibili┆
0x10ac0…10ae0 74 79 0d 0a 16 73 6f 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 6f 66 20 74 79 70 65 73 0d 0a ┆ty so compatibility of types ┆
0x10ae0…10b00 8c 8c b0 0a 54 68 65 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 72 65 6c 61 74 69 6f 6e 73 20 ┆її░ The compatibility relations ┆
0x10b00…10b20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 61 72 65 20 75 73 65 64 ┆defined in this section are used┆
0x10b20…10b40 20 74 6f 20 64 65 74 65 72 80 0a 6d 69 6e 65 20 77 68 65 6e 20 61 20 76 61 6c 75 65 20 6d 61 79 ┆ to deterђ mine when a value may┆
0x10b40…10b60 20 62 65 20 61 73 73 69 67 6e 65 64 20 74 6f 20 61 6e 20 6f 62 6a 65 63 74 2c 20 65 69 74 80 68 ┆ be assigned to an object, eitђh┆
0x10b60…10b80 65 72 20 65 78 70 6c 69 63 69 74 6c 79 20 0a 77 68 65 6e 20 61 6e 20 61 73 73 69 67 6e 6d 65 6e ┆er explicitly when an assignmen┆
0x10b80…10ba0 74 20 73 74 61 74 65 6d 65 6e 74 20 69 73 20 65 78 65 63 75 74 65 64 20 6f 72 20 69 6d 70 6c 69 ┆t statement is executed or impli┆
0x10ba0…10bc0 63 69 74 6c 79 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 0a 77 69 74 68 20 70 61 72 61 6d 65 ┆citly in connection with parame┆
0x10bc0…10be0 74 65 72 20 70 61 73 73 69 6e 67 2e 0d 0a 0d 0a 54 68 65 20 65 73 73 65 6e 74 69 61 6c 20 72 65 ┆ter passing. The essential re┆
0x10be0…10c00 6c 61 74 69 6f 6e 20 69 73 20 a0 61 73 73 69 67 6e 6d 65 6e 74 20 63 6f 6d 70 61 74 69 62 69 6c ┆lation is аassignment compatibil┆
0x10c00…10c20 69 74 79 e0 2e 20 48 6f 77 65 76 65 72 2c 20 74 68 65 20 62 61 73 69 73 20 0a 66 6f 72 20 74 68 ┆ityЯ. However, the basis for th┆
0x10c20…10c40 61 74 20 72 65 6c 61 74 69 6f 6e 20 69 73 20 74 68 65 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 ┆at relation is the compatibility┆
0x10c40…10c60 20 72 65 6c 61 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 74 79 80 70 65 73 20 77 68 69 63 68 20 69 ┆ relation between tyђpes which i┆
0x10c60…10c80 73 20 0a 74 68 65 72 65 66 6f 72 65 20 64 65 66 69 6e 65 64 20 66 69 72 73 74 2e 20 54 68 65 20 ┆s therefore defined first. The ┆
0x10c80…10ca0 63 6f 6d 70 61 74 69 80 62 69 6c 69 74 79 20 72 65 6c 61 74 69 6f 6e 20 61 70 70 6c 69 65 73 20 ┆compatiђbility relation applies ┆
0x10ca0…10cc0 74 6f 20 0a 65 73 74 61 62 6c 69 73 68 65 64 20 74 79 70 65 73 2e 0d 0a 0d 0a 0e 0a 54 77 6f 20 ┆to established types. Two ┆
0x10cc0…10ce0 74 79 70 65 73 20 61 72 65 20 73 61 69 64 20 74 6f 20 62 65 20 74 68 65 20 73 61 6d 65 20 69 66 ┆types are said to be the same if┆
0x10ce0…10d00 3a 0d 0a 2d 20 62 6f 74 68 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 70 72 65 64 65 66 69 6e 65 ┆: - both are the same predefine┆
0x10d00…10d20 64 20 74 79 70 65 2c 20 6f 72 0d 0a 2d 20 62 6f 74 68 20 61 72 65 20 73 70 65 63 69 66 69 65 64 ┆d type, or - both are specified┆
0x10d20…10d40 20 61 73 20 74 68 65 20 73 61 6d 65 20 62 6f 75 6e 64 2d 74 79 70 65 5f 6e 61 6d 65 2c 20 6f 72 ┆ as the same bound-type_name, or┆
0x10d40…10d60 0d 0a 2d 20 84 62 6f 74 68 20 61 72 65 20 73 70 65 63 69 66 69 65 64 20 61 73 20 61 20 62 69 6e ┆ - ёboth are specified as a bin┆
0x10d60…10d80 64 69 6e 67 20 6f 66 20 74 68 65 20 73 61 6d 65 20 70 61 72 61 6d 65 74 65 72 69 7a 65 64 2d 74 ┆ding of the same parameterized-t┆
0x10d80…10da0 79 80 70 65 5f 6e 61 80 0a 19 82 80 80 6d 65 20 61 6e 64 20 74 68 65 20 76 61 6c 75 65 73 20 6f ┆yђpe_naђ ѓђђme and the values o┆
0x10da0…10dc0 66 20 74 68 65 20 61 63 74 75 61 6c 20 74 79 70 65 20 70 61 72 61 6d 65 74 65 72 73 20 61 72 65 ┆f the actual type parameters are┆
0x10dc0…10de0 20 70 61 69 72 77 69 73 65 20 65 71 75 80 0a 19 82 80 80 61 6c 2e 0d 0a 0f 0a 0d 0a 0e 0a 54 77 ┆ pairwise equђ ѓђђal. Tw┆
0x10de0…10e00 6f 20 6f 62 6a 65 63 74 73 20 61 72 65 20 73 61 69 64 20 74 6f 20 62 65 20 6f 66 20 74 68 65 20 ┆o objects are said to be of the ┆
0x10e00…10e20 73 61 6d 65 20 74 79 70 65 20 69 66 3a 0d 0a 2d 20 74 68 65 69 72 20 74 79 70 65 73 20 61 72 65 ┆same type if: - their types are┆
0x10e20…10e40 20 74 68 65 20 73 61 6d 65 20 28 63 66 2e 20 61 62 6f 76 65 29 2c 20 6f 72 0d 0a 2d 20 84 69 66 ┆ the same (cf. above), or - ёif┆
0x10e40…10e60 20 74 68 65 79 20 61 72 65 20 76 61 72 69 61 62 6c 65 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69 ┆ they are variables introduced i┆
0x10e60…10e80 6e 20 74 68 65 20 73 61 6d 65 20 6c 69 73 74 20 6f 66 20 76 61 72 69 80 61 62 6c 65 20 6e 61 6d ┆n the same list of variђable nam┆
0x10e80…10ea0 65 73 2c 20 0a 19 82 80 80 63 66 2e 20 73 75 62 73 65 63 74 69 6f 6e 20 33 2e 31 31 2e 32 2c 20 ┆es, ѓђђcf. subsection 3.11.2, ┆
0x10ea0…10ec0 6f 72 0d 0a 2d 20 84 69 66 20 74 68 65 79 20 61 72 65 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 ┆or - ёif they are formal parame┆
0x10ec0…10ee0 74 65 72 73 20 6f 66 20 6b 69 6e 64 20 76 61 6c 75 65 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e ┆ters of kind value introduced in┆
0x10ee0…10f00 20 74 68 65 20 73 61 6d 65 20 0a 19 82 80 80 66 6f 72 6d 61 6c 20 6e 61 6d 65 20 6c 69 73 74 2c ┆ the same ѓђђformal name list,┆
0x10f00…10f20 20 63 66 2e 20 73 65 63 74 69 6f 6e 20 36 2e 31 2e 0d 0a 0f 0a 0d 0a 0e 0a 54 77 6f 20 74 79 70 ┆ cf. section 6.1. Two typ┆
0x10f20…10f40 65 73 20 61 72 65 20 73 61 69 64 20 74 6f 20 62 65 20 63 6f 6d 70 61 74 69 62 6c 65 20 69 66 3a ┆es are said to be compatible if:┆
0x10f40…10f60 0d 0a 2d 20 74 68 65 79 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 74 79 70 65 20 28 63 66 2e 20 ┆ - they are the same type (cf. ┆
0x10f60…10f80 61 62 6f 76 65 29 2c 20 6f 72 0d 0a 2d 20 84 6f 6e 65 20 69 73 20 61 20 73 75 62 72 61 6e 67 65 ┆above), or - ёone is a subrange┆
0x10f80…10fa0 20 6f 66 20 74 68 65 20 6f 74 68 65 72 20 28 6f 72 20 62 6f 74 68 20 61 72 65 20 73 75 62 72 61 ┆ of the other (or both are subra┆
0x10fa0…10fc0 6e 67 65 73 20 6f 66 20 74 68 65 20 73 61 6d 65 20 0a 19 82 80 80 74 79 70 65 29 2c 20 6f 72 0d ┆nges of the same ѓђђtype), or ┆
0x10fc0…10fe0 0a 2d 20 62 6f 74 68 20 61 72 65 20 73 65 74 20 74 79 70 65 73 20 61 6e 64 20 74 68 65 20 62 61 ┆ - both are set types and the ba┆
0x10fe0…11000 73 65 20 74 79 70 65 73 20 61 72 65 20 63 6f 6d 70 61 74 69 62 6c 65 2c 20 6f 72 0d 0a 2d 20 62 ┆se types are compatible, or - b┆
0x11000…11020 6f 74 68 20 61 72 65 20 73 70 65 63 69 66 69 65 64 20 61 73 20 5e 88 7c 74 6e 61 6d 65 2c 20 77 ┆oth are specified as ^ѕ|tname, w┆
0x11020…11040 68 65 72 65 20 74 6e 61 6d 65 20 69 73 20 61 20 74 79 70 65 20 6e 61 6d 65 2e 0d 0a 0f 0a 0d 0a ┆here tname is a type name. ┆
0x11040…11060 54 79 70 65 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 72 75 6c 65 73 20 61 72 65 20 64 65 66 69 6e ┆Type computation rules are defin┆
0x11060…11080 65 64 20 66 6f 72 20 65 78 70 72 65 73 73 69 6f 6e 73 20 28 63 66 2e 20 63 68 61 70 74 65 72 20 ┆ed for expressions (cf. chapter ┆
0x11080…110a0 34 29 20 73 6f 20 0a 61 73 20 74 6f 20 61 73 73 6f 63 69 61 74 65 20 65 76 65 72 79 20 65 78 70 ┆4) so as to associate every exp┆
0x110a0…110c0 72 65 73 73 69 6f 6e 20 77 69 74 68 20 61 20 74 79 70 65 2c 20 65 69 74 68 65 72 20 61 6e 20 65 ┆ression with a type, either an e┆
0x110c0…110e0 78 70 6c 69 63 69 74 6c 79 20 73 70 65 80 0a 63 69 66 69 65 64 20 74 79 70 65 2c 20 6f 72 20 61 ┆xplicitly speђ cified type, or a┆
0x110e0…11100 20 70 72 65 64 65 66 69 6e 65 64 20 74 79 70 65 20 64 65 74 65 72 6d 69 6e 65 64 20 69 6d 70 6c ┆ predefined type determined impl┆
0x11100…11120 69 80 63 69 74 6c 79 20 62 79 20 74 68 65 20 73 74 72 75 63 80 0a 74 75 72 65 20 6f 66 20 74 68 ┆iђcitly by the strucђ ture of th┆
0x11120…11140 65 20 65 78 70 72 65 73 73 69 6f 6e 2e 20 41 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 65 78 70 20 ┆e expression. An expression exp ┆
0x11140…11160 6f 66 20 74 79 70 65 20 74 82 32 81 20 69 73 20 64 65 66 69 6e 65 64 20 74 6f 20 62 65 20 0a 61 ┆of type tѓ2Ђ is defined to be a┆
0x11160…11180 73 73 69 67 6d 65 6e 74 20 63 6f 6d 80 70 61 80 74 69 62 6c 65 20 77 69 74 68 20 74 68 65 20 74 ┆ssigment comђpaђtible with the t┆
0x11180…111a0 79 70 65 20 74 82 31 81 20 69 66 3a 0d 0a 0d 0a 2d 20 84 74 82 31 81 20 61 6e 64 20 74 82 32 81 ┆ype tѓ1Ђ if: - ёtѓ1Ђ and tѓ2Ђ┆
0x111a0…111c0 84 09 84 61 72 65 20 63 6f 6d 70 61 74 69 62 6c 65 20 6f 72 64 69 6e 61 6c 20 74 79 70 65 73 20 ┆ё ёare compatible ordinal types ┆
0x111c0…111e0 61 6e 64 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 65 78 70 20 69 73 20 0a 19 8e 80 80 77 69 74 ┆and the value of exp is јђђwit┆
0x111e0…11200 68 69 6e 20 74 68 65 20 72 61 6e 67 65 20 73 70 65 63 69 66 69 65 64 20 66 6f 72 20 74 82 31 81 ┆hin the range specified for tѓ1Ђ┆
0x11200…11220 2c 20 69 66 20 61 6e 79 2c 20 6f 72 0d 0a 8c 87 a8 0a 2d 20 84 74 82 31 81 20 61 6e 64 20 74 82 ┆, if any, or їЄе - ёtѓ1Ђ and tѓ┆
0x11220…11240 32 81 84 09 84 61 72 65 20 63 6f 6d 70 61 74 69 62 6c 65 20 73 65 74 20 74 79 70 65 73 20 61 6e ┆2Ђё ёare compatible set types an┆
0x11240…11260 64 20 61 6c 6c 20 6d 65 6d 62 65 72 73 20 6f 66 20 74 68 65 20 76 61 6c 75 65 20 0a 19 8e 80 80 ┆d all members of the value јђђ┆
0x11260…11280 6f 66 20 65 78 70 20 61 72 65 20 77 69 74 68 69 6e 20 74 68 65 20 72 61 6e 67 65 20 73 70 65 63 ┆of exp are within the range spec┆
0x11280…112a0 69 66 69 65 64 20 66 6f 72 20 74 82 31 81 2c 20 6f 72 0d 0a 2d 20 84 74 82 31 81 20 61 6e 64 20 ┆ified for tѓ1Ђ, or - ёtѓ1Ђ and ┆
0x112a0…112c0 74 82 32 81 84 09 84 61 72 65 20 63 6f 6d 70 61 74 69 62 6c 65 20 70 6f 69 6e 74 65 72 2c 20 73 ┆tѓ2Ђё ёare compatible pointer, s┆
0x112c0…112e0 68 69 65 6c 64 65 64 2c 20 6f 72 20 73 74 72 75 63 74 75 72 65 64 20 74 79 80 70 65 73 2c 20 0a ┆hielded, or structured tyђpes, ┆
0x112e0…11300 19 8e 80 80 6f 72 0d 0a 2d 20 74 82 31 81 20 61 6e 64 20 74 82 32 81 09 84 61 72 65 20 62 6f 74 ┆ јђђor - tѓ1Ђ and tѓ2Ђ ёare bot┆
0x11300…11320 68 20 73 74 72 69 6e 67 20 74 79 70 65 73 2c 20 63 66 2e 20 73 75 62 73 65 63 74 69 6f 6e 20 33 ┆h string types, cf. subsection 3┆
0x11320…11340 2e 38 2e 34 2e 0d 0a 0d 0a 54 68 72 6f 75 67 68 6f 75 74 20 74 68 69 73 20 6d 61 6e 75 61 6c 20 ┆.8.4. Throughout this manual ┆
0x11340…11360 74 68 65 20 73 68 6f 72 74 68 61 6e 64 20 66 6f 72 6d 20 22 bf dc d8 61 73 73 69 67 6e 61 62 6c ┆the shorthand form "┐▄пassignabl┆
0x11360…11380 65 be 20 74 6f 22 20 6d 61 79 20 62 65 20 0a 75 73 65 64 20 69 6e 73 74 65 61 64 20 6f 66 20 22 ┆eЙ to" may be used instead of "┆
0x11380…113a0 61 73 73 69 67 6e 6d 65 6e 74 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 22 2e 0d 0a 0d 0a ┆assignment compatible with". ┆
0x113a0…113c0 a1 45 78 61 6d 70 6c 65 3a 0d 0a 49 6e 20 65 61 63 68 20 6c 69 6e 65 20 62 65 6c 6f 77 20 74 68 ┆АExample: In each line below th┆
0x113c0…113e0 65 20 74 79 70 65 73 20 6f 66 20 61 20 61 6e 64 20 62 20 61 72 65 20 63 6f 6d 70 61 74 69 62 6c ┆e types of a and b are compatibl┆
0x113e0…11400 65 2e 0d 0a 61 3a 20 62 6f 6f 6c 65 61 6e 3b 09 09 62 3a 20 62 6f 6f 6c 65 61 6e 3b 0d 0a 61 3a ┆e. a: boolean; b: boolean; a:┆
0x11400…11420 20 64 65 66 5f 74 79 70 65 3b 09 09 62 3a 20 64 65 66 5f 74 79 70 65 3b 0d 0a 61 3a 20 70 61 72 ┆ def_type; b: def_type; a: par┆
0x11420…11440 61 6d 5f 74 79 70 65 28 37 29 3b 09 62 3a 20 70 61 72 61 6d 5f 74 79 70 65 28 37 29 3b 0d 0a 61 ┆am_type(7); b: param_type(7); a┆
0x11440…11460 3a 20 31 2e 2e 31 30 3b 09 09 62 3a 20 32 2e 2e 31 35 3b 0d 0a 61 3a 20 53 45 54 20 4f 46 20 31 ┆: 1..10; b: 2..15; a: SET OF 1┆
0x11460…11480 2e 2e 31 30 3b 09 62 3a 20 53 45 54 20 4f 46 20 32 2e 2e 31 35 3b 0d 0a 61 3a 20 7c 88 5e 70 74 ┆..10; b: SET OF 2..15; a: |ѕ^pt┆
0x11480…114a0 72 74 79 70 65 3b 09 09 62 3a 20 5e 88 7c 70 74 72 74 79 70 65 3b 0d 0a 16 73 62 0d 0a 4f 62 6a ┆rtype; b: ^ѕ|ptrtype; sb Obj┆
0x114a0…114c0 65 63 74 20 4c 61 79 6f 75 74 0d 0a 49 6e 20 67 65 6e 65 72 61 6c 20 74 68 65 20 64 65 66 69 6e ┆ect Layout In general the defin┆
0x114c0…114e0 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 64 6f 65 73 20 6e 6f 74 20 70 ┆ition of the language does not p┆
0x114e0…11500 72 65 73 63 72 69 62 65 20 61 6e 79 20 73 70 65 80 0a 63 69 66 69 63 20 6c 61 79 6f 75 74 20 66 ┆rescribe any speђ cific layout f┆
0x11500…11520 6f 72 20 6f 62 6a 65 63 74 73 2c 20 61 6e 64 20 74 68 75 73 20 74 68 65 20 77 61 79 20 6f 62 6a ┆or objects, and thus the way obj┆
0x11520…11540 65 63 74 73 20 61 72 65 20 6c 61 69 64 20 6f 75 74 20 69 6e 20 6d 65 80 0a 6d 6f 72 79 20 61 6e ┆ects are laid out in meђ mory an┆
0x11540…11560 64 20 74 68 65 20 77 61 79 20 74 68 65 69 72 20 76 61 6c 75 65 73 20 61 72 65 20 72 65 80 70 72 ┆d the way their values are reђpr┆
0x11560…11580 65 80 73 65 6e 74 65 64 20 64 65 70 65 6e 64 20 6f 6e 20 74 68 65 20 69 6d 70 6c 65 80 0a 6d 65 ┆eђsented depend on the impleђ me┆
0x11580…115a0 6e 74 61 74 69 6f 6e 20 69 6e 20 71 75 65 73 74 69 6f 6e 2e 20 49 6e 20 6f 72 64 65 72 20 74 6f ┆ntation in question. In order to┆
0x115a0…115c0 20 61 6c 6c 6f 77 20 63 6f 6f 70 65 72 61 74 69 6f 6e 20 77 69 74 68 20 70 72 6f 63 65 73 73 65 ┆ allow cooperation with processe┆
0x115c0…115e0 73 20 0a 77 68 6f 73 65 20 70 72 6f 67 72 61 6d 73 20 61 72 65 20 6e 6f 74 20 77 72 69 74 74 65 ┆s whose programs are not writte┆
0x115e0…11600 6e 20 69 6e 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 74 68 65 73 65 20 61 73 70 65 ┆n in Real-Time Pascal these aspe┆
0x11600…11620 63 74 73 20 6f 66 20 0a 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 80 74 69 6f 6e 20 6d 75 73 74 20 ┆cts of an implementaђtion must ┆
0x11620…11640 61 6c 77 61 79 73 20 62 65 20 64 6f 63 75 80 6d 65 6e 74 65 64 20 63 61 72 65 66 75 6c 6c 79 2e ┆always be docuђmented carefully.┆
0x11640…11660 0d 0a 0d 0a 42 79 20 73 70 65 63 69 66 79 69 6e 67 20 61 20 bf dc d8 a0 64 65 73 63 72 69 70 74 ┆ By specifying a ┐▄паdescript┆
0x11660…11680 69 76 65 20 74 79 70 65 be e0 2c 20 68 6f 77 65 76 65 72 2c 20 69 74 20 69 73 20 70 6f 73 73 69 ┆ive typeЙЯ, however, it is possi┆
0x11680…116a0 62 6c 65 20 77 69 74 68 69 6e 20 63 65 72 74 61 69 6e 20 0a 6c 69 6d 69 74 73 20 66 6f 72 20 74 ┆ble within certain limits for t┆
0x116a0…116c0 68 65 20 70 72 6f 67 72 61 6d 6d 65 72 20 74 6f 20 65 78 70 6c 69 63 69 74 6c 79 20 64 65 80 74 ┆he programmer to explicitly deђt┆
0x116c0…116e0 65 72 6d 69 6e 65 20 74 68 65 20 6c 61 79 6f 75 74 20 6f 66 20 0a 6f 62 6a 65 63 74 73 2e 20 44 ┆ermine the layout of objects. D┆
0x116e0…11700 65 73 63 72 69 70 74 69 76 65 20 74 79 70 65 73 20 63 6f 6e 73 74 69 74 75 74 65 20 61 20 73 75 ┆escriptive types constitute a su┆
0x11700…11720 62 63 6c 61 73 73 20 6f 66 20 70 61 63 6b 65 64 20 74 79 70 65 73 2c 20 72 65 80 0a 63 75 72 73 ┆bclass of packed types, reђ curs┆
0x11720…11740 69 76 65 6c 79 20 64 65 66 69 6e 65 64 20 61 73 20 68 61 76 69 6e 67 20 63 6f 6e 73 74 69 74 75 ┆ively defined as having constitu┆
0x11740…11760 65 6e 74 20 74 79 70 65 73 20 77 68 69 63 68 20 61 72 65 20 61 6c 6c 20 73 74 61 74 69 63 20 6f ┆ent types which are all static o┆
0x11760…11780 72 80 0a 64 69 6e 61 6c 20 74 79 70 65 73 2c 20 6f 72 20 74 68 65 6d 73 65 6c 76 65 73 20 64 65 ┆rђ dinal types, or themselves de┆
0x11780…117a0 73 63 72 69 70 74 69 76 65 2e 0d 0a 0d 0a 8c 85 e8 0a 54 68 69 73 20 64 65 66 69 6e 69 74 69 6f ┆scriptive. їЁУ This definitio┆
0x117a0…117c0 6e 20 69 6d 70 6c 69 65 73 20 74 68 61 74 20 61 6c 6c 20 63 6f 6d 70 6f 6e 65 6e 74 20 74 79 70 ┆n implies that all component typ┆
0x117c0…117e0 65 73 20 6f 66 20 61 20 64 65 80 73 63 72 69 70 74 69 76 65 20 74 79 70 65 20 0a 61 72 65 20 6f ┆es of a deђscriptive type are o┆
0x117e0…11800 72 64 69 6e 61 6c 20 74 79 70 65 73 2e 20 54 68 65 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e ┆rdinal types. The representation┆
0x11800…11820 20 6f 66 20 6f 72 80 64 69 6e 61 6c 20 74 79 70 65 20 63 6f 6d 80 70 6f 6e 65 6e 74 73 20 69 73 ┆ of orђdinal type comђponents is┆
0x11820…11840 20 0a 70 72 65 73 65 6e 74 6c 79 20 64 65 73 63 72 69 62 65 64 2e 20 4e 6f 74 69 63 65 20 74 68 ┆ presently described. Notice th┆
0x11840…11860 61 74 20 74 68 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 6e 6c 79 20 63 6f 76 65 72 73 20 73 ┆at the description only covers s┆
0x11860…11880 75 62 2d 0a 6f 62 6a 65 63 74 73 20 6f 66 20 6f 62 6a 65 63 74 73 20 6f 66 20 64 65 80 73 63 72 ┆ub- objects of objects of deђscr┆
0x11880…118a0 69 70 74 69 76 65 20 74 79 70 65 73 2e 0d 0a 0d 0a 41 20 63 6f 6d 70 6f 6e 65 6e 74 20 6f 66 20 ┆iptive types. A component of ┆
0x118a0…118c0 61 6e 20 6f 72 64 69 6e 61 6c 20 74 79 70 65 20 69 73 20 72 65 70 72 65 73 65 6e 74 65 64 20 61 ┆an ordinal type is represented a┆
0x118c0…118e0 73 20 61 20 62 69 6e 61 72 79 20 6e 75 6d 80 62 65 72 20 69 6e 20 0a 61 20 6d 61 78 69 6d 75 6d ┆s a binary numђber in a maximum┆
0x118e0…11900 20 6f 66 20 31 36 20 62 69 74 73 2e 20 49 66 20 74 68 65 20 74 79 70 65 20 69 6e 63 6c 75 64 65 ┆ of 16 bits. If the type include┆
0x11900…11920 73 20 6e 65 80 67 61 74 69 80 76 65 20 76 61 6c 80 75 65 73 20 74 68 65 20 74 77 6f 27 73 20 0a ┆s neђgatiђve valђues the two's ┆
0x11920…11940 63 6f 6d 70 6c 65 6d 65 6e 74 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 69 73 20 75 73 65 ┆complement representation is use┆
0x11940…11960 64 2e 20 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 69 74 73 20 75 73 65 64 20 74 6f 20 72 65 ┆d. The number of bits used to re┆
0x11960…11980 80 0a 70 72 65 73 65 6e 74 20 6f 62 6a 65 63 74 73 20 6f 66 20 73 6f 6d 65 20 74 79 70 65 20 64 ┆ђ present objects of some type d┆
0x11980…119a0 65 80 70 65 6e 64 73 20 6f 6e 20 74 68 65 20 72 61 6e 80 67 65 20 6f 66 20 76 61 6c 75 65 73 2e ┆eђpends on the ranђge of values.┆
0x119a0…119c0 20 4c 65 74 20 0a 6d 69 6e 76 61 6c 20 61 6e 64 20 6d 61 78 76 61 6c 20 62 65 20 74 68 65 20 6f ┆ Let minval and maxval be the o┆
0x119c0…119e0 72 64 69 6e 61 6c 20 76 61 6c 75 65 73 20 63 6f 72 80 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 ┆rdinal values corђresponding to ┆
0x119e0…11a00 74 68 65 20 66 69 72 73 74 20 0a 61 6e 64 20 6c 61 73 74 20 76 61 6c 75 65 20 6f 66 20 74 68 65 ┆the first and last value of the┆
0x11a00…11a20 20 74 79 70 65 2c 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e 20 54 68 65 6e 20 74 68 65 20 6e 75 ┆ type, respectively. Then the nu┆
0x11a20…11a40 6d 62 65 72 20 6f 66 20 62 69 74 73 20 75 73 65 64 20 0a 66 6f 72 20 6f 62 6a 65 63 74 73 20 6f ┆mber of bits used for objects o┆
0x11a40…11a60 66 20 74 68 65 20 74 79 70 65 20 69 73 3a 0d 0a 0d 0a 0e 0a 6d 69 6e 76 61 6c 3c 30 2c 20 6d 61 ┆f the type is: minval<0, ma┆
0x11a60…11a80 78 76 61 6c 3c 30 3a 20 6c 6f 67 82 32 81 28 2d 6d 69 6e 76 61 6c 29 2b 31 0d 0a 6d 69 6e 76 61 ┆xval<0: logѓ2Ђ(-minval)+1 minva┆
0x11a80…11aa0 6c 3c 30 2c 20 6d 61 78 76 61 6c 3e 30 3a 20 6d 61 78 20 7b 6c 6f 67 82 32 81 28 2d 6d 69 6e 76 ┆l<0, maxval>0: max {logѓ2Ђ(-minv┆
0x11aa0…11ac0 61 6c 29 2c 20 6c 6f 67 82 32 81 28 6d 61 78 76 61 6c 2b 31 29 7d 2b 31 0d 0a 6d 69 6e 76 61 6c ┆al), logѓ2Ђ(maxval+1)}+1 minval┆
0x11ac0…11ae0 3e 30 2c 20 6d 61 78 76 61 6c 3e 30 3a 20 6c 6f 67 82 32 81 28 6d 61 78 76 61 6c 2b 31 29 0d 0a ┆>0, maxval>0: logѓ2Ђ(maxval+1) ┆
0x11ae0…11b00 0f 0a 0d 0a 54 68 65 20 6e 75 6d 62 65 72 73 20 6f 62 74 61 69 6e 65 64 20 62 79 20 74 68 65 73 ┆ The numbers obtained by thes┆
0x11b00…11b20 65 20 66 6f 72 6d 75 6c 61 65 20 6d 75 73 74 20 62 65 20 72 6f 75 6e 64 65 64 20 75 70 20 74 6f ┆e formulae must be rounded up to┆
0x11b20…11b40 20 6f 62 74 61 69 6e 20 0a 69 6e 74 65 67 72 61 6c 20 6e 75 6d 62 65 72 73 2e 0d 0a 0d 0a 41 73 ┆ obtain integral numbers. As┆
0x11b40…11b60 20 73 75 62 2d 6f 62 6a 65 63 74 73 20 6f 66 20 61 6e 20 6f 62 6a 65 63 74 20 6f 66 20 61 20 64 ┆ sub-objects of an object of a d┆
0x11b60…11b80 65 73 63 72 69 70 74 69 76 65 20 74 79 70 65 20 6e 65 65 64 20 6e 6f 74 20 6f 63 63 75 80 70 79 ┆escriptive type need not occuђpy┆
0x11b80…11ba0 20 0a 77 68 6f 6c 65 20 62 79 74 65 73 20 74 68 65 20 74 6f 74 61 6c 20 6f 62 6a 65 63 74 20 69 ┆ whole bytes the total object i┆
0x11ba0…11bc0 73 20 63 6f 6e 73 69 64 65 72 65 64 20 61 73 20 61 20 62 69 74 80 73 74 72 69 6e 67 20 72 61 80 ┆s considered as a bitђstring raђ┆
0x11bc0…11be0 74 68 65 72 20 74 68 61 6e 20 0a 61 73 20 61 20 62 79 74 65 73 74 72 69 6e 67 2e 20 54 68 65 20 ┆ther than as a bytestring. The ┆
0x11be0…11c00 6f 72 64 65 72 69 6e 67 20 6f 66 20 62 69 74 73 20 77 69 74 68 69 6e 20 73 75 63 68 20 61 20 62 ┆ordering of bits within such a b┆
0x11c00…11c20 69 74 73 74 72 69 6e 67 20 69 73 20 64 65 66 69 6e 65 64 20 0a 61 73 20 66 6f 6c 6c 6f 77 73 3a ┆itstring is defined as follows:┆
0x11c20…11c40 0d 0a 0d 0a 2d 20 62 69 74 73 20 77 69 74 68 69 6e 20 73 65 70 61 72 61 74 65 20 62 79 74 65 73 ┆ - bits within separate bytes┆
0x11c40…11c60 20 61 72 65 20 6f 72 64 65 72 65 64 20 62 79 20 62 79 74 65 20 61 64 64 72 65 73 73 2c 0d 0a 2d ┆ are ordered by byte address, -┆
0x11c60…11c80 20 84 62 69 74 73 20 77 69 74 68 69 6e 20 74 68 65 20 73 61 6d 65 20 62 79 74 65 20 61 72 65 20 ┆ ёbits within the same byte are ┆
0x11c80…11ca0 6f 72 64 65 72 65 64 20 62 79 20 73 69 67 6e 69 66 69 63 61 6e 63 65 2c 20 69 2e 65 2e 20 6c 65 ┆ordered by significance, i.e. le┆
0x11ca0…11cc0 61 73 74 20 0a 19 82 80 80 73 69 67 6e 69 66 69 63 61 6e 74 20 62 69 74 73 20 66 69 72 73 74 2e ┆ast ѓђђsignificant bits first.┆
0x11cc0…11ce0 0d 0a 0d 0a 54 68 69 73 20 69 6d 70 6c 69 65 73 20 74 68 61 74 20 74 68 65 20 77 68 6f 6c 65 20 ┆ This implies that the whole ┆
0x11ce0…11d00 62 69 74 73 74 72 69 6e 67 20 77 69 6c 6c 20 62 65 20 6f 72 64 65 72 65 64 20 62 79 20 73 69 80 ┆bitstring will be ordered by siђ┆
0x11d00…11d20 67 6e 69 66 69 80 63 61 6e 63 65 2c 20 0a 73 65 65 20 74 68 65 20 66 69 67 75 72 65 20 62 65 6c ┆gnifiђcance, see the figure bel┆
0x11d20…11d40 6f 77 2e 0d 0a 0d 0a 0e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 69 74 20 6e 75 6d 62 ┆ow. bit numb┆
0x11d40…11d60 65 72 0d 0a 0d 0a 04 00 2d 4c 00 00 06 00 00 00 00 02 01 41 31 00 00 00 00 00 00 00 00 00 00 00 ┆er -L A1 ┆
0x11d60…11d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 0a 0f 19 20 23 2d 37 41 4b 55 5f 69 73 7d ff 04 04 ┆ #-7AKU_is} ┆
0x11d80…11da0 00 2d 4c 00 00 06 00 00 00 00 02 01 41 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ -L A1 ┆
0x11da0…11dc0 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 4b 55 5f 69 ff ff ff ff ff 04 0a 09 09 20 20 20 30 20 ┆ #-7AKU_i 0 ┆
0x11dc0…11de0 31 20 32 20 33 20 34 20 35 20 36 20 37 20 0d 0a 20 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 32 ┆1 2 3 4 5 6 7 ramme "5 0 2┆
0x11de0…11e00 35 20 31 36 20 31 22 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 32 35 20 31 36 20 32 22 0d 0a 01 ┆5 16 1" ramme "5 0 25 16 2" ┆
0x11e00…11e20 72 61 6d 6d 65 20 22 35 20 30 20 32 35 20 31 36 20 33 22 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 ┆ramme "5 0 25 16 3" ramme "5 0┆
0x11e20…11e40 20 32 35 20 31 36 20 34 22 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 32 35 20 31 36 20 35 22 0d ┆ 25 16 4" ramme "5 0 25 16 5" ┆
0x11e40…11e60 0a 81 09 09 30 09 09 09 09 57 68 65 6e 20 76 69 65 77 65 64 20 69 6e 20 74 68 69 73 20 66 61 73 ┆ Ђ 0 When viewed in this fas┆
0x11e60…11e80 68 69 6f 6e 2c 82 0d 0a 81 72 65 6c 61 74 69 76 65 09 31 09 09 09 09 69 2e 65 2e 20 74 68 65 20 ┆hion,ѓ Ђrelative 1 i.e. the ┆
0x11e80…11ea0 73 69 67 6e 69 66 69 63 61 6e 63 65 20 6f 66 20 62 69 74 82 0d 0a 81 20 20 62 79 74 65 09 2e 09 ┆significance of bitѓ Ђ byte . ┆
0x11ea0…11ec0 09 09 09 69 20 69 73 20 74 68 65 20 69 74 68 20 70 6f 77 65 72 20 6f 66 20 32 2c 20 62 69 74 73 ┆ i is the ith power of 2, bits┆
0x11ec0…11ee0 82 0d 0a 81 20 61 64 64 72 65 73 73 09 2e 09 09 09 09 61 72 65 20 6f 72 64 65 72 65 64 20 61 73 ┆ѓ Ђ address . are ordered as┆
0x11ee0…11f00 20 74 68 65 20 63 68 61 72 61 63 74 65 72 73 82 0d 0a 81 09 09 6e 09 09 09 09 6f 6e 20 61 20 74 ┆ the charactersѓ Ђ n on a t┆
0x11f00…11f20 65 78 74 20 70 61 67 65 2e 82 0d 0a 0d 0a 16 73 66 20 32 0d 0a 42 69 74 73 74 72 69 6e 67 20 6f ┆ext page.ѓ sf 2 Bitstring o┆
0x11f20…11f40 72 64 65 72 69 6e 67 2e 0d 0a 0f 0a 0d 0a 41 6e 20 6f 72 64 65 72 69 6e 67 20 69 73 20 61 6c 73 ┆rdering. An ordering is als┆
0x11f40…11f60 6f 20 64 65 66 69 6e 65 64 20 66 6f 72 20 74 68 65 20 73 75 62 2d 6f 62 6a 65 63 74 73 20 6f 66 ┆o defined for the sub-objects of┆
0x11f60…11f80 20 61 6e 20 6f 62 6a 65 63 74 20 6f 66 20 61 20 0a 73 74 72 75 63 74 75 72 65 64 20 74 79 70 65 ┆ an object of a structured type┆
0x11f80…11fa0 3a 20 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 61 6e 20 61 72 72 61 79 20 74 79 70 65 20 62 ┆: in the case of an array type b┆
0x11fa0…11fc0 79 20 69 6e 64 65 78 3b 20 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 0a 61 20 72 65 63 6f 72 ┆y index; in the case of a recor┆
0x11fc0…11fe0 64 20 74 79 70 65 20 62 79 20 74 68 65 20 6f 72 64 65 72 20 6f 66 20 74 68 65 20 66 69 65 6c 64 ┆d type by the order of the field┆
0x11fe0…12000 20 6e 61 6d 65 73 20 69 6e 20 74 68 65 20 72 65 63 6f 72 64 20 74 79 70 65 20 64 65 80 0a 66 69 ┆ names in the record type deђ fi┆
0x12000…12020 6e 69 74 69 6f 6e 2e 0d 0a 0d 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 69 6d 70 6c 65 20 ┆nition. The following simple ┆
0x12020…12040 72 75 6c 65 20 64 65 66 69 6e 65 73 20 74 68 65 20 6c 61 79 6f 75 74 20 6f 66 20 6f 62 6a 65 63 ┆rule defines the layout of objec┆
0x12040…12060 74 73 20 6f 66 20 61 20 64 65 80 73 63 72 69 70 80 0a 74 69 76 65 20 74 79 70 65 3a 20 77 69 74 ┆ts of a deђscripђ tive type: wit┆
0x12060…12080 68 69 6e 20 74 68 65 20 62 69 74 73 74 72 69 6e 67 20 6f 63 63 75 70 69 65 64 20 62 79 20 74 68 ┆hin the bitstring occupied by th┆
0x12080…120a0 65 20 6f 62 6a 65 63 74 2c 20 73 75 62 80 6f 62 6a 65 63 74 73 20 61 72 65 20 0a 6c 6f 63 61 74 ┆e object, subђobjects are locat┆
0x120a0…120c0 65 64 20 63 6f 6e 74 69 67 75 6f 75 73 6c 79 20 61 6e 64 20 69 6e 20 6f 72 64 65 72 2e 20 4e 6f ┆ed contiguously and in order. No┆
0x120c0…120e0 74 69 63 65 20 74 68 61 74 20 74 68 69 73 20 72 75 6c 65 2c 20 6c 69 6b 65 20 74 68 65 20 64 65 ┆tice that this rule, like the de┆
0x120e0…12100 80 0a 66 69 6e 69 74 69 6f 6e 20 6f 66 20 61 20 64 65 73 63 72 69 70 74 69 76 65 20 74 79 70 65 ┆ђ finition of a descriptive type┆
0x12100…12120 2c 20 69 73 20 72 65 63 75 72 73 69 76 65 2e 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 6f ┆, is recursive. The following po┆
0x12120…12140 69 6e 74 73 20 0a 63 6f 6d 70 6c 65 74 65 20 74 68 65 20 72 75 6c 65 3a 0d 0a 0d 0a 2d 20 84 65 ┆ints complete the rule: - ёe┆
0x12140…12160 76 65 72 79 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 61 20 64 65 73 63 72 69 70 74 69 76 65 ┆very definition of a descriptive┆
0x12160…12180 20 74 79 70 65 20 69 73 20 69 6d 70 6c 69 63 69 74 6c 79 20 65 78 80 80 74 65 6e 64 65 64 20 77 ┆ type is implicitly exђђtended w┆
0x12180…121a0 69 74 68 20 61 6e 20 0a 19 82 80 80 75 6e 75 73 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 20 61 74 20 ┆ith an ѓђђunused component at ┆
0x121a0…121c0 74 68 65 20 65 6e 64 20 73 6f 20 74 68 61 74 20 6f 62 6a 65 63 74 73 20 6f 66 20 74 68 65 20 74 ┆the end so that objects of the t┆
0x121c0…121e0 79 70 65 20 6f 63 63 75 70 79 20 61 6e 20 0a 19 82 80 80 69 6e 74 65 67 72 61 6c 20 6e 75 6d 62 ┆ype occupy an ѓђђintegral numb┆
0x121e0…12200 65 72 20 6f 66 20 62 79 74 65 73 2c 20 69 66 20 74 68 69 73 20 70 72 6f 70 65 72 74 79 20 69 73 ┆er of bytes, if this property is┆
0x12200…12220 20 6e 6f 74 20 61 6c 72 65 61 64 79 20 73 61 74 69 73 66 69 65 64 20 62 79 20 0a 19 82 80 80 74 ┆ not already satisfied by ѓђђt┆
0x12220…12240 68 65 20 74 79 70 65 20 61 73 20 73 74 61 74 65 64 2c 0d 0a 2d 20 84 6e 6f 20 63 6f 6d 70 6f 6e ┆he type as stated, - ёno compon┆
0x12240…12260 65 6e 74 20 6d 61 79 20 63 72 6f 73 73 20 74 77 6f 20 62 79 74 65 20 62 6f 75 6e 64 61 72 69 65 ┆ent may cross two byte boundarie┆
0x12260…12280 73 2e 20 57 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 61 6e 20 0a 19 82 80 80 75 6e 75 73 65 64 ┆s. When possible, an ѓђђunused┆
0x12280…122a0 20 63 6f 6d 70 6f 6e 65 6e 74 20 69 73 20 69 6e 73 65 72 74 65 64 20 74 6f 20 66 69 6c 6c 20 75 ┆ component is inserted to fill u┆
0x122a0…122c0 70 20 61 20 62 79 74 65 20 73 6f 20 74 68 61 74 20 74 68 69 73 20 73 69 74 75 61 74 69 6f 6e 20 ┆p a byte so that this situation ┆
0x122c0…122e0 0a 19 82 80 80 69 73 20 61 76 6f 69 64 65 64 2e 0d 0a 0d 0a 0e 0a a1 4e 6f 74 65 3a 0d 0a 49 66 ┆ ѓђђis avoided. АNote: If┆
0x122e0…12300 20 74 68 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f 70 65 72 61 74 6f 72 20 3d 20 61 6e 64 20 3c ┆ the comparison operator = and <┆
0x12300…12320 3e 20 61 72 65 20 61 70 70 6c 69 65 64 20 74 6f 20 6f 62 6a 65 63 74 73 20 6f 66 20 73 74 72 75 ┆> are applied to objects of stru┆
0x12320…12340 63 80 0a 74 75 72 65 64 20 74 79 70 65 73 20 77 69 74 68 20 75 6e 75 73 65 64 20 63 6f 6d 70 6f ┆cђ tured types with unused compo┆
0x12340…12360 6e 65 6e 74 73 20 74 68 65 79 20 61 72 65 20 61 6c 73 6f 20 61 70 80 70 6c 69 65 64 20 74 6f 20 ┆nents they are also apђplied to ┆
0x12360…12380 75 6e 75 73 65 64 20 0a 66 69 65 6c 64 73 2e 0d 0a 0f 0a 0d 0a 0e 0a a1 45 78 61 6d 70 6c 65 3a ┆unused fields. АExample:┆
0x12380…123a0 0d 0a 43 6f 6e 73 69 64 65 72 20 74 68 65 20 74 79 70 65 73 0d 0a 20 20 72 65 63 5f 74 79 70 65 ┆ Consider the types rec_type┆
0x123a0…123c0 3d 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 61 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 20 20 20 20 62 ┆= RECORD a: integer; b┆
0x123c0…123e0 3a 20 62 79 74 65 3b 0d 0a 20 20 20 20 63 3a 20 30 2e 2e 37 3b 0d 0a 20 20 20 20 64 3a 20 2d 33 ┆: byte; c: 0..7; d: -3┆
0x123e0…12400 2e 2e 34 3b 0d 0a 20 20 20 20 65 3a 20 2d 31 30 30 30 2e 2e 31 30 30 30 3b 0d 0a 20 20 20 20 66 ┆..4; e: -1000..1000; f┆
0x12400…12420 3a 20 63 68 61 72 3b 0d 0a 20 20 20 20 67 3a 20 62 6f 6f 6c 65 61 6e 3b 0d 0a 20 20 20 20 68 3a ┆: char; g: boolean; h:┆
0x12420…12440 20 69 6e 74 65 67 65 72 0d 0a 20 20 45 4e 44 20 28 2a 52 45 43 4f 52 44 2a 29 0d 0a 0d 0a 20 20 ┆ integer END (*RECORD*) ┆
0x12440…12460 61 72 72 5f 74 79 70 65 3d 20 41 52 52 41 59 20 28 31 2e 2e 34 29 20 4f 46 20 30 2e 2e 32 30 30 ┆arr_type= ARRAY (1..4) OF 0..200┆
0x12460…12480 30 20 28 2a 20 31 31 20 62 69 74 73 20 2a 29 0d 0a 0f 0a 0d 0a 54 79 70 69 63 61 6c 20 6c 61 79 ┆0 (* 11 bits *) Typical lay┆
0x12480…124a0 6f 75 74 73 20 66 6f 72 20 6f 62 6a 65 63 74 73 20 6f 66 20 74 68 65 73 65 20 74 79 70 65 73 20 ┆outs for objects of these types ┆
0x124a0…124c0 61 72 65 20 73 68 6f 77 6e 20 74 6f 20 74 68 65 20 6c 65 66 74 20 69 6e 20 0a 74 68 65 20 66 69 ┆are shown to the left in the fi┆
0x124c0…124e0 67 75 72 65 20 62 65 6c 6f 77 3b 20 6e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 72 65 70 72 65 ┆gure below; note that this repre┆
0x124e0…12500 73 65 6e 74 61 74 69 6f 6e 20 69 73 20 6e 6f 74 20 73 70 65 63 69 80 66 69 65 64 20 62 79 20 74 ┆sentation is not speciђfied by t┆
0x12500…12520 68 65 20 0a 6c 61 6e 67 75 61 67 65 2e 20 48 6f 77 65 76 65 72 2c 20 69 66 20 74 68 65 20 6b 65 ┆he language. However, if the ke┆
0x12520…12540 79 77 6f 72 64 20 50 41 43 80 4b 45 44 20 68 61 64 20 62 65 65 6e 20 70 72 65 73 65 6e 74 20 62 ┆yword PACђKED had been present b┆
0x12540…12560 65 66 6f 72 65 20 0a 52 45 43 4f 52 44 2f 41 52 52 41 59 2c 20 74 68 65 20 74 79 70 65 73 20 77 ┆efore RECORD/ARRAY, the types w┆
0x12560…12580 6f 75 6c 64 20 68 61 76 65 20 62 65 65 6e 20 64 65 73 63 72 69 70 74 69 76 65 20 61 6e 64 20 74 ┆ould have been descriptive and t┆
0x12580…125a0 68 65 69 72 20 6c 61 79 80 0a 6f 75 74 20 70 72 65 73 63 72 69 62 65 64 20 74 6f 20 62 65 20 61 ┆heir layђ out prescribed to be a┆
0x125a0…125c0 73 20 73 68 6f 77 6e 20 74 6f 20 74 68 65 20 72 69 67 68 74 2e 20 54 68 65 20 2a 20 6d 61 72 6b ┆s shown to the right. The * mark┆
0x125c0…125e0 65 64 20 66 69 65 6c 64 73 20 61 72 65 20 0a 69 6d 70 6c 69 63 69 74 6c 79 20 69 6e 73 65 72 74 ┆ed fields are implicitly insert┆
0x125e0…12600 65 64 20 75 6e 75 73 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 73 2e 0d 0a 0d 0a 0d 0a 0e 0a 04 00 2d ┆ed unused components. -┆
0x12600…12620 4c 0a 00 06 00 00 00 00 02 01 41 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆L A1 ┆
0x12620…12640 00 00 00 00 00 09 24 2d 36 37 41 4b 55 5f 69 73 7d ff ff ff ff 04 04 00 2d 4c 00 00 06 00 00 00 ┆ $-67AKU_is} -L ┆
0x12640…12660 00 02 01 41 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 0a ┆ A1 ┆
0x12660…12680 0f 19 20 23 2d 37 41 4b 55 5f 69 73 7d ff 04 0a 72 65 63 5f 74 79 70 65 3a 0d 0a 20 20 20 20 20 ┆ #-7AKU_is} rec_type: ┆
0x12680…126a0 20 20 20 20 20 20 30 20 31 20 32 20 33 20 34 20 35 20 36 20 37 20 20 20 20 20 20 20 20 20 20 20 ┆ 0 1 2 3 4 5 6 7 ┆
0x126a0…126c0 20 30 20 31 20 32 20 33 20 34 20 35 20 36 20 37 20 0d 0a 20 0d 0a 01 72 61 6d 6d 65 20 22 35 20 ┆ 0 1 2 3 4 5 6 7 ramme "5 ┆
0x126c0…126e0 30 20 32 32 20 31 35 20 31 31 22 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 32 32 20 31 35 20 39 ┆0 22 15 11" ramme "5 0 22 15 9┆
0x126e0…12700 22 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 32 32 20 31 35 20 38 22 0d 0a 01 72 61 6d 6d 65 20 ┆" ramme "5 0 22 15 8" ramme ┆
0x12700…12720 22 35 20 30 20 32 32 20 31 35 20 37 22 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 32 32 20 31 35 ┆"5 0 22 15 7" ramme "5 0 22 15┆
0x12720…12740 20 35 22 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 32 32 20 31 35 20 34 22 0d 0a 01 72 61 6d 6d ┆ 5" ramme "5 0 22 15 4" ramm┆
0x12740…12760 65 20 22 35 20 30 20 32 32 20 31 35 20 33 22 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 32 32 20 ┆e "5 0 22 15 3" ramme "5 0 22 ┆
0x12760…12780 31 35 20 32 22 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 34 39 20 31 35 20 32 22 0d 0a 01 72 61 ┆15 2" ramme "5 0 49 15 2" ra┆
0x12780…127a0 6d 6d 65 20 22 35 20 30 20 34 39 20 31 35 20 33 22 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 34 ┆mme "5 0 49 15 3" ramme "5 0 4┆
0x127a0…127c0 39 20 31 35 20 34 22 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 34 39 20 31 35 20 35 22 0d 0a 01 ┆9 15 4" ramme "5 0 49 15 5" ┆
0x127c0…127e0 72 61 6d 6d 65 20 22 35 20 30 20 34 39 20 31 35 20 36 22 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 ┆ramme "5 0 49 15 6" ramme "5 0┆
0x127e0…12800 20 34 39 20 31 35 20 37 22 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 34 39 20 31 35 20 39 22 0d ┆ 49 15 7" ramme "5 0 49 15 9" ┆
0x12800…12820 0a 81 09 30 82 20 20 20 20 20 20 20 20 20 61 09 81 30 82 20 20 20 20 20 20 20 20 20 61 0d 0a 81 ┆ Ђ 0ѓ a Ђ0ѓ a Ђ┆
0x12820…12840 09 31 09 31 82 20 0d 0a 81 09 32 20 20 20 20 20 20 20 20 20 62 09 32 20 20 20 20 20 20 20 20 20 ┆ 1 1ѓ Ђ 2 b 2 ┆
0x12840…12860 62 20 82 0d 0a 81 09 33 20 20 20 20 20 20 20 20 20 63 09 33 20 20 20 20 63 20 20 20 20 20 20 64 ┆b ѓ Ђ 3 c 3 c d┆
0x12860…12880 20 20 20 20 2a 82 20 0d 0a 81 09 34 20 20 20 20 20 20 20 20 20 64 09 34 20 20 20 20 20 20 20 65 ┆ *ѓ Ђ 4 d 4 e┆
0x12880…128a0 2d 6c 6f 82 20 0d 0a 81 09 35 82 20 20 20 20 20 20 20 20 20 65 09 81 35 20 20 20 65 2d 68 69 20 ┆-loѓ Ђ 5ѓ e Ђ5 e-hi ┆
0x128a0…128c0 20 20 66 2d 6c 6f 82 20 0d 0a 81 09 36 09 36 20 20 20 66 2d 68 69 20 67 20 20 20 20 2a 82 20 0d ┆ f-loѓ Ђ 6 6 f-hi g *ѓ ┆
0x128c0…128e0 0a 81 09 37 20 20 20 20 20 20 20 20 20 66 20 09 37 82 20 20 20 20 20 20 20 20 20 68 0d 0a 81 09 ┆ Ђ 7 f 7ѓ h Ђ ┆
0x128e0…12900 38 20 20 20 20 20 20 20 20 20 67 09 38 20 20 20 20 20 20 20 20 82 20 0d 0a 81 09 39 82 20 20 20 ┆8 g 8 ѓ Ђ 9ѓ ┆
0x12900…12920 20 20 20 20 20 20 68 20 0d 0a 81 20 20 20 20 20 20 20 31 30 20 20 20 20 20 20 20 20 20 82 0d 0a ┆ h Ђ 10 ѓ ┆
0x12920…12940 0d 0a 61 72 72 5f 74 79 70 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 30 20 31 20 32 20 33 20 ┆ arr_type: 0 1 2 3 ┆
0x12940…12960 34 20 35 20 36 20 37 20 20 20 20 20 20 20 20 20 20 20 20 30 20 31 20 32 20 33 20 34 20 35 20 36 ┆4 5 6 7 0 1 2 3 4 5 6┆
0x12960…12980 20 37 20 0d 0a 20 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 32 32 20 31 35 20 32 22 0d 0a 01 72 ┆ 7 ramme "5 0 22 15 2" r┆
0x12980…129a0 61 6d 6d 65 20 22 35 20 30 20 32 32 20 31 35 20 34 22 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 ┆amme "5 0 22 15 4" ramme "5 0 ┆
0x129a0…129c0 32 32 20 31 35 20 36 22 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 32 32 20 31 35 20 38 22 0d 0a ┆22 15 6" ramme "5 0 22 15 8" ┆
0x129c0…129e0 01 72 61 6d 6d 65 20 22 35 20 30 20 34 39 20 31 35 20 33 22 0d 0a 01 72 61 6d 6d 65 20 22 35 20 ┆ ramme "5 0 49 15 3" ramme "5 ┆
0x129e0…12a00 30 20 34 39 20 31 35 20 36 22 0d 0a 09 81 30 20 20 20 20 20 20 20 82 28 31 29 81 09 30 82 20 20 ┆0 49 15 6" Ђ0 ѓ(1)Ђ 0ѓ ┆
0x12a00…12a20 20 28 31 29 20 0d 0a 09 81 31 82 09 31 82 20 20 20 20 20 20 20 20 20 28 32 29 20 0d 0a 09 81 32 ┆ (1) Ђ1ѓ 1ѓ (2) Ђ2┆
0x12a20…12a40 82 20 20 20 20 20 20 20 28 32 29 09 81 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 82 20 ┆ѓ (2) Ђ2 *ѓ ┆
0x12a40…12a60 0d 0a 09 81 33 20 20 20 20 20 20 20 09 33 82 20 20 20 28 33 29 20 0d 0a 09 81 34 82 20 20 20 20 ┆ Ђ3 3ѓ (3) Ђ4ѓ ┆
0x12a60…12a80 20 20 20 28 33 29 09 81 34 82 20 20 20 20 20 20 20 20 20 28 34 29 20 20 0d 0a 09 81 35 20 20 20 ┆ (3) Ђ4ѓ (4) Ђ5 ┆
0x12a80…12aa0 20 20 20 20 09 35 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 82 20 0d 0a 09 81 36 82 20 20 ┆ 5 *ѓ Ђ6ѓ ┆
0x12aa0…12ac0 20 20 20 20 20 28 34 29 20 0d 0a 09 81 37 20 20 20 20 20 82 20 20 0d 0a 04 00 2d 4c 00 00 06 00 ┆ (4) Ђ7 ѓ -L ┆
0x12ac0…12ae0 00 00 00 02 01 41 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ A1 ┆
0x12ae0…12b00 05 0f 19 23 2d 37 41 4b 55 5f 69 73 7d ff ff ff 04 04 00 2d 4c 0a 00 06 00 00 00 00 02 01 41 31 ┆ #-7AKU_is} -L A1┆
0x12b00…12b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 24 2d 36 37 41 4b ┆ $-67AK┆
0x12b20…12b40 55 5f 69 73 7d ff ff ff ff 04 0a 16 73 66 20 32 0d 0a 45 78 61 6d 70 6c 65 20 6f 66 20 6f 62 6a ┆U_is} sf 2 Example of obj┆
0x12b40…12b60 65 63 74 20 6c 61 79 6f 75 74 2e 0d 0a 0f 0a 0d 0a 16 73 62 0d 0a 4f 62 6a 65 63 74 20 44 65 63 ┆ect layout. sb Object Dec┆
0x12b60…12b80 6c 61 72 61 74 69 6f 6e 73 0d 0a 44 65 63 6c 61 72 61 74 69 6f 6e 73 20 6f 66 20 bf dc d8 6f 62 ┆larations Declarations of ┐▄пob┆
0x12b80…12ba0 6a 65 63 74 73 be 20 6d 61 79 20 6f 63 63 75 72 20 69 6e 20 74 68 65 20 64 65 63 6c 61 72 61 74 ┆jectsЙ may occur in the declarat┆
0x12ba0…12bc0 69 6f 6e 20 70 61 72 74 20 6f 66 20 61 20 0a 70 72 6f 80 67 72 61 6d 20 6f 72 20 72 6f 75 74 69 ┆ion part of a proђgram or routi┆
0x12bc0…12be0 6e 65 20 62 6c 6f 63 6b 2c 20 63 66 2e 20 63 68 61 70 74 65 72 20 36 2e 0d 0a 0d 0a 41 6e 20 6f ┆ne block, cf. chapter 6. An o┆
0x12be0…12c00 62 6a 65 63 74 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 69 6e 63 74 72 6f 64 75 63 65 73 20 61 6e ┆bject declaration inctroduces an┆
0x12c00…12c20 64 20 6e 61 6d 65 73 20 61 6e 20 6f 62 6a 65 63 74 20 77 68 69 63 68 20 6d 61 79 20 0a 62 65 20 ┆d names an object which may be ┆
0x12c20…12c40 75 73 65 64 20 69 6e 20 74 68 65 20 72 65 6d 61 69 6e 64 65 72 20 6f 66 20 74 68 65 20 62 6c 6f ┆used in the remainder of the blo┆
0x12c40…12c60 63 6b 2e 0d 0a 0d 0a 16 73 63 0d 0a 43 6f 6e 73 74 61 6e 74 20 44 65 63 6c 61 72 61 74 69 6f 6e ┆ck. sc Constant Declaration┆
0x12c60…12c80 73 0d 0a 41 20 bf dc d8 63 6f 6e 73 74 61 6e 74 20 64 65 63 6c 61 72 61 74 69 6f 6e be 20 73 65 ┆s A ┐▄пconstant declarationЙ se┆
0x12c80…12ca0 72 76 65 73 20 74 6f 20 6e 61 6d 65 20 61 20 63 6f 6e 73 74 61 6e 74 20 6f 62 6a 65 63 74 2c 20 ┆rves to name a constant object, ┆
0x12ca0…12cc0 69 2e 65 2e 20 61 6e 20 0a 6f 62 6a 65 63 74 20 77 68 6f 73 65 20 76 61 6c 75 65 20 63 61 6e 20 ┆i.e. an object whose value can ┆
0x12cc0…12ce0 62 65 20 63 6f 6d 70 75 74 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 61 6e 64 20 ┆be computed at compile-time and ┆
0x12ce0…12d00 77 68 69 63 68 20 63 61 6e 80 0a 6e 6f 74 20 62 65 20 61 6c 74 65 72 65 64 20 64 79 6e 61 6d 69 ┆which canђ not be altered dynami┆
0x12d00…12d20 63 61 6c 6c 79 20 62 79 20 61 73 73 69 67 6e 6d 65 6e 74 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 ┆cally by assignment. ma syndia┆
0x12d20…12d40 31 35 0d 0a 45 61 63 68 20 63 6f 6e 73 74 61 6e 74 20 6e 61 6d 65 20 69 6e 74 72 6f 64 75 63 65 ┆15 Each constant name introduce┆
0x12d40…12d60 64 20 69 6e 20 61 20 63 6f 6e 73 74 61 6e 74 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 64 65 80 6e ┆d in a constant declaration deђn┆
0x12d60…12d80 6f 74 65 73 20 61 20 0a 63 6f 6e 73 74 61 6e 74 20 6f 62 6a 65 63 74 20 74 68 65 20 74 79 70 65 ┆otes a constant object the type┆
0x12d80…12da0 20 61 6e 64 20 76 61 6c 75 65 20 6f 66 20 77 68 69 63 68 20 69 73 20 64 65 80 74 65 72 6d 69 6e ┆ and value of which is deђtermin┆
0x12da0…12dc0 65 64 20 62 79 20 74 68 65 20 0a 65 78 70 72 65 73 73 69 6f 6e 20 66 6f 6c 6c 6f 77 69 6e 67 20 ┆ed by the expression following ┆
0x12dc0…12de0 3d 2e 20 54 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 6d 75 73 74 20 62 65 20 61 20 63 6f 6e 73 ┆=. The expression must be a cons┆
0x12de0…12e00 74 61 6e 74 20 0a 65 78 70 72 65 73 73 69 6f 6e 20 61 73 20 64 65 73 63 72 69 62 65 64 20 69 6e ┆tant expression as described in┆
0x12e00…12e20 20 63 68 61 70 74 65 72 20 34 2e 20 54 68 65 20 74 79 70 65 20 6f 66 20 61 20 63 6f 6e 73 74 61 ┆ chapter 4. The type of a consta┆
0x12e20…12e40 6e 74 20 6d 75 73 74 20 0a 6e 6f 74 20 62 65 20 70 72 6f 80 74 65 63 74 65 64 2e 0d 0a 0d 0a 16 ┆nt must not be proђtected. ┆
0x12e40…12e60 73 63 0d 0a 56 61 72 69 61 62 6c 65 20 44 65 63 6c 61 72 61 74 69 6f 6e 73 0d 0a 41 20 bf dc d8 ┆sc Variable Declarations A ┐▄п┆
0x12e60…12e80 76 61 72 69 61 62 6c 65 be 20 6f 72 20 bf dc d8 73 68 61 72 65 64 be 20 64 65 63 6c 61 72 61 74 ┆variableЙ or ┐▄пsharedЙ declarat┆
0x12e80…12ea0 69 6f 6e 20 73 65 72 76 65 73 20 74 6f 20 6e 61 6d 65 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 0a ┆ion serves to name one or more ┆
0x12ea0…12ec0 73 74 61 63 6b 2d 61 6c 80 6c 6f 63 61 74 65 64 20 70 72 69 76 61 74 65 20 6f 72 20 73 68 61 72 ┆stack-alђlocated private or shar┆
0x12ec0…12ee0 65 64 20 76 61 72 69 61 62 6c 65 73 20 61 6e 64 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 74 6f 20 0a ┆ed variables and optionally to ┆
0x12ee0…12f00 73 70 65 80 63 69 66 79 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 73 20 66 6f 72 20 69 6e 73 74 ┆speђcify initial values for inst┆
0x12f00…12f20 61 6e 63 65 73 20 6f 66 20 73 75 63 68 20 76 61 72 69 61 62 6c 65 73 2e 0d 0a 16 6d 61 20 73 79 ┆ances of such variables. ma sy┆
0x12f20…12f40 6e 64 69 61 33 37 0d 0a 16 6d 61 20 73 79 6e 64 69 61 33 38 0d 0a 16 6d 61 20 73 79 6e 64 69 61 ┆ndia37 ma syndia38 ma syndia┆
0x12f40…12f60 33 39 0d 0a 8c 9a a0 0a 54 68 65 20 76 61 72 69 61 62 6c 65 73 20 69 6e 74 72 6f 64 75 63 65 64 ┆39 їџа The variables introduced┆
0x12f60…12f80 20 69 6e 20 61 20 27 76 61 72 69 61 62 6c 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 27 20 61 72 65 ┆ in a 'variable declaration' are┆
0x12f80…12fa0 20 70 72 69 76 61 74 65 20 0a 76 61 72 69 80 61 62 6c 65 73 2c 20 69 2e 65 2e 20 74 68 65 79 20 ┆ private variђables, i.e. they ┆
0x12fa0…12fc0 63 61 6e 20 6f 6e 6c 79 20 62 65 20 61 63 63 65 73 73 65 64 20 62 79 20 74 68 65 20 70 72 6f 63 ┆can only be accessed by the proc┆
0x12fc0…12fe0 65 73 73 20 69 6e 20 77 68 6f 80 73 65 20 0a 73 74 61 63 6b 20 74 68 65 79 20 61 72 65 20 61 6c ┆ess in whoђse stack they are al┆
0x12fe0…13000 6c 6f 63 61 74 65 64 2e 20 54 68 65 20 76 61 72 69 61 62 6c 65 73 20 69 6e 80 74 72 6f 64 75 63 ┆located. The variables inђtroduc┆
0x13000…13020 65 64 20 69 6e 20 61 20 27 73 68 61 80 72 65 64 20 0a 64 65 63 6c 61 72 61 74 69 6f 6e 27 20 61 ┆ed in a 'shaђred declaration' a┆
0x13020…13040 72 65 20 73 68 61 72 65 64 20 76 61 72 69 61 62 6c 65 73 20 77 68 69 63 68 20 63 61 6e 20 6f 6e ┆re shared variables which can on┆
0x13040…13060 6c 79 20 62 65 20 61 63 63 65 73 73 65 64 20 69 6e 20 0a 72 65 67 69 6f 6e 20 73 74 61 74 65 6d ┆ly be accessed in region statem┆
0x13060…13080 65 6e 74 73 2e 0d 0a 0d 0a 54 68 65 20 74 79 70 65 20 6f 66 20 65 61 63 68 20 76 61 72 69 61 62 ┆ents. The type of each variab┆
0x13080…130a0 6c 65 20 6e 61 6d 65 64 20 69 6e 20 61 20 76 61 72 69 61 62 6c 65 20 6f 72 20 73 68 61 72 65 64 ┆le named in a variable or shared┆
0x130a0…130c0 20 64 65 80 63 6c 61 80 72 61 74 69 6f 6e 20 0a 69 73 20 67 69 76 65 6e 20 62 79 20 74 68 65 20 ┆ deђclaђration is given by the ┆
0x130c0…130e0 66 69 72 73 74 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 79 70 65 20 73 70 65 63 69 66 69 63 61 80 74 ┆first following type specificaђt┆
0x130e0…13100 69 6f 6e 20 61 6e 64 20 74 68 65 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 20 0a 62 79 20 74 68 ┆ion and the initial value by th┆
0x13100…13120 65 20 65 78 70 72 65 73 73 69 6f 6e 20 66 6f 6c 6c 6f 77 69 6e 67 20 3a 3d 2c 20 69 66 20 70 72 ┆e expression following :=, if pr┆
0x13120…13140 65 73 65 6e 74 2e 20 54 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 65 78 70 72 65 73 73 69 6f ┆esent. The type of the expressio┆
0x13140…13160 6e 20 0a 6d 75 73 74 20 62 65 20 61 73 73 69 67 6e 61 62 6c 65 20 74 6f 20 74 68 65 20 73 70 65 ┆n must be assignable to the spe┆
0x13160…13180 63 69 66 69 65 64 20 74 79 70 65 20 6f 66 20 74 68 65 20 76 61 72 69 61 62 6c 65 2e 20 57 68 65 ┆cified type of the variable. Whe┆
0x13180…131a0 6e 20 73 65 76 65 72 61 6c 20 0a 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 73 20 61 72 65 20 6c 69 ┆n several variable names are li┆
0x131a0…131c0 73 74 65 64 2c 20 73 65 70 61 72 61 74 65 64 20 62 79 20 63 6f 6d 6d 61 73 2c 20 65 61 63 68 20 ┆sted, separated by commas, each ┆
0x131c0…131e0 6e 61 6d 65 20 69 6e 74 72 6f 64 75 63 65 73 20 0a 61 20 76 61 72 69 61 62 6c 65 20 6f 66 20 74 ┆name introduces a variable of t┆
0x131e0…13200 68 65 20 73 70 65 63 69 66 69 65 64 20 74 79 80 70 65 2e 20 41 6e 64 20 65 61 63 68 20 6f 66 20 ┆he specified tyђpe. And each of ┆
0x13200…13220 74 68 65 6d 20 61 72 65 20 67 69 76 65 6e 20 74 68 65 20 0a 69 6e 69 74 69 61 6c 20 76 61 6c 75 ┆them are given the initial valu┆
0x13220…13240 65 20 6f 66 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 69 66 20 70 72 65 73 65 6e 74 2e ┆e of the expression, if present.┆
0x13240…13260 20 54 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 0a 69 73 ┆ The value of the expression is┆
0x13260…13280 20 6f 6e 6c 79 20 65 76 61 6c 75 61 74 65 64 20 6f 6e 63 65 2e 20 54 68 65 20 74 79 70 65 20 6f ┆ only evaluated once. The type o┆
0x13280…132a0 66 20 61 20 73 68 61 72 65 64 20 76 61 72 69 80 61 62 6c 65 20 6d 75 73 74 20 6e 6f 74 20 62 65 ┆f a shared variђable must not be┆
0x132a0…132c0 20 0a 70 72 6f 63 65 73 73 2c 20 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 6d 2c 20 72 65 66 ┆ process, external program, ref┆
0x132c0…132e0 65 72 65 6e 63 65 2c 20 70 6f 69 6e 80 74 65 72 2c 20 6f 72 20 63 68 61 69 6e 3b 20 6e 6f 72 20 ┆erence, poinђter, or chain; nor ┆
0x132e0…13300 6d 61 79 20 74 68 65 73 65 20 0a 74 79 70 65 73 20 6f 63 63 75 72 20 61 73 20 63 6f 6d 70 6f 6e ┆may these types occur as compon┆
0x13300…13320 65 6e 74 20 74 79 70 65 73 20 69 6e 20 74 68 65 20 74 79 70 65 73 20 6f 66 20 73 68 61 72 65 64 ┆ent types in the types of shared┆
0x13320…13340 20 76 61 72 69 80 61 62 6c 65 73 2e 0d 0a 0d 0a 57 68 65 6e 20 61 20 76 61 72 69 61 62 6c 65 20 ┆ variђables. When a variable ┆
0x13340…13360 6f 72 20 73 68 61 72 65 64 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 69 73 20 65 6c 61 62 6f 72 61 ┆or shared declaration is elabora┆
0x13360…13380 74 65 64 20 74 68 65 20 73 70 65 80 63 69 66 69 65 64 20 74 79 80 0a 70 65 73 20 61 72 65 20 65 ┆ted the speђcified tyђ pes are e┆
0x13380…133a0 73 74 61 62 6c 69 73 68 65 64 3b 20 6d 65 6d 6f 72 79 20 69 73 20 61 6c 6c 6f 63 61 74 65 64 20 ┆stablished; memory is allocated ┆
0x133a0…133c0 6f 6e 20 74 68 65 20 73 74 61 63 6b 20 66 6f 72 20 61 6e 20 69 6e 73 74 61 6e 63 65 20 0a 6f 66 ┆on the stack for an instance of┆
0x133c0…133e0 20 65 61 63 68 20 6f 66 20 74 68 65 20 6e 61 6d 65 64 20 76 61 72 69 61 62 6c 65 73 3b 20 74 68 ┆ each of the named variables; th┆
0x133e0…13400 65 20 bf dc d8 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 65 78 80 70 72 65 73 73 69 6f 6e be ┆e ┐▄пinitialization exђpressionЙ┆
0x13400…13420 73 2c 20 69 66 20 0a 70 72 65 73 65 6e 74 2c 20 61 72 65 20 65 76 61 6c 75 61 74 65 64 3b 20 61 ┆s, if present, are evaluated; a┆
0x13420…13440 6e 64 20 74 68 65 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 65 78 80 70 72 65 73 73 69 6f 6e ┆nd the values of the exђpression┆
0x13440…13460 73 20 62 65 63 6f 6d 65 20 69 6e 80 0a 69 74 69 61 6c 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 ┆s become inђ itial values of the┆
0x13460…13480 20 76 61 72 69 61 62 6c 65 73 2e 20 41 6e 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 65 78 ┆ variables. An initialization ex┆
0x13480…134a0 70 72 65 73 73 69 6f 6e 20 6d 75 73 74 20 6e 6f 74 20 63 6f 6e 80 0a 74 61 69 6e 20 66 75 6e 63 ┆pression must not conђ tain func┆
0x134a0…134c0 74 69 6f 6e 20 63 61 6c 6c 73 2e 20 48 6f 77 65 76 65 72 2c 20 74 68 65 20 70 72 65 64 65 80 66 ┆tion calls. However, the predeђf┆
0x134c0…134e0 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 61 62 73 2c 20 63 68 72 2c 20 6f 72 64 2c 20 0a 70 ┆ined functions abs, chr, ord, p┆
0x134e0…13500 72 65 64 2c 20 61 6e 64 20 73 75 63 63 20 6d 61 79 20 62 65 20 75 73 65 64 2e 0d 0a 0d 0a 56 61 ┆red, and succ may be used. Va┆
0x13500…13520 72 69 61 62 6c 65 73 20 6f 66 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 66 6f 72 20 77 68 69 63 68 20 ┆riables of components for which ┆
0x13520…13540 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 73 20 6f 72 20 73 74 61 74 65 73 20 61 72 65 20 0a 70 72 ┆initial values or states are pr┆
0x13540…13560 65 64 65 80 66 69 6e 65 64 20 61 72 65 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 61 63 63 6f 72 64 ┆edeђfined are initialized accord┆
0x13560…13580 69 6e 67 6c 79 2e 20 54 68 65 20 69 6e 69 74 69 61 6c 20 76 61 80 6c 75 65 20 6f 66 20 61 20 0a ┆ingly. The initial vaђlue of a ┆
0x13580…135a0 76 61 80 72 69 61 62 6c 65 20 66 6f 72 20 77 68 69 63 68 20 61 6e 20 69 6e 69 74 69 61 6c 20 76 ┆vaђriable for which an initial v┆
0x135a0…135c0 61 6c 75 65 20 69 73 20 6e 65 69 74 68 65 72 20 70 72 65 80 64 65 66 69 6e 65 64 20 6e 6f 72 20 ┆alue is neither preђdefined nor ┆
0x135c0…135e0 0a 73 70 65 63 69 80 66 69 65 64 20 69 73 20 75 6e 64 65 66 69 6e 65 64 2e 0d 0a 0d 0a 49 6e 20 ┆ speciђfied is undefined. In ┆
0x135e0…13600 61 20 bf dc d8 73 74 72 75 63 74 75 72 65 64 20 76 61 6c 75 65 be 20 6f 63 63 75 72 72 69 6e 67 ┆a ┐▄пstructured valueЙ occurring┆
0x13600…13620 20 69 6e 20 61 6e 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 65 78 70 72 65 73 80 73 69 6f ┆ in an initialization expresђsio┆
0x13620…13640 6e 20 0a 74 68 65 20 6e 6f 74 61 74 69 6f 6e 20 3f 20 6d 61 79 20 62 65 20 75 73 65 64 20 66 6f ┆n the notation ? may be used fo┆
0x13640…13660 72 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 6f 66 20 70 72 6f 74 65 63 74 65 64 20 74 79 70 65 73 2e ┆r components of protected types.┆
0x13660…13680 20 0a 54 68 69 73 20 6d 61 80 6b 65 73 20 69 74 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 63 6f 6d ┆ This maђkes it possible to com┆
0x13680…136a0 62 69 6e 65 20 74 68 65 20 70 72 65 64 65 66 69 6e 65 64 20 69 6e 80 69 74 69 61 6c 69 7a 61 74 ┆bine the predefined inђitializat┆
0x136a0…136c0 69 6f 6e 20 0a 6f 66 20 74 68 65 73 65 20 63 6f 6d 80 70 6f 6e 65 6e 74 73 20 77 69 74 68 20 61 ┆ion of these comђponents with a┆
0x136c0…136e0 6e 20 65 78 70 6c 69 63 69 74 6c 79 20 73 70 65 63 69 80 80 66 69 65 64 20 69 6e 69 74 69 61 6c ┆n explicitly speciђђfied initial┆
0x136e0…13700 69 7a 61 74 69 6f 6e 20 0a 6f 66 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 63 6f 6d 70 6f 6e ┆ization of the remaining compon┆
0x13700…13720 65 6e 74 73 2e 0d 0a 0d 0a 41 20 bf dc d8 76 61 72 73 69 7a 65 20 63 61 6c 6c be 20 69 73 20 73 ┆ents. A ┐▄пvarsize callЙ is s┆
0x13720…13740 69 6d 69 6c 61 72 20 69 6e 20 66 6f 72 6d 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c ┆imilar in form to a function cal┆
0x13740…13760 6c 2e 20 49 74 20 61 6c 80 6c 6f 77 73 20 0a 74 68 65 20 73 69 7a 65 20 6f 66 20 61 20 76 61 72 ┆l. It alђlows the size of a var┆
0x13760…13780 69 61 62 6c 65 20 74 6f 20 62 65 20 75 73 65 64 20 69 6e 20 63 6f 6d 70 75 74 61 74 69 6f 6e 73 ┆iable to be used in computations┆
0x13780…137a0 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 38 34 0d 0a 8c 87 90 0a 54 68 65 20 27 76 61 72 69 61 62 ┆. ma syndia84 їЄљ The 'variab┆
0x137a0…137c0 6c 65 5f 6e 61 6d 65 27 20 6d 75 73 74 20 62 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 76 ┆le_name' must be the name of a v┆
0x137c0…137e0 61 72 69 61 62 6c 65 20 6f 72 20 61 20 72 65 80 63 6f 72 64 20 0a 66 69 65 6c 64 2c 20 6d 61 64 ┆ariable or a reђcord field, mad┆
0x137e0…13800 65 20 76 69 73 69 62 6c 65 20 62 79 20 6d 65 61 6e 73 20 6f 66 20 61 20 77 69 74 68 20 73 74 61 ┆e visible by means of a with sta┆
0x13800…13820 74 65 6d 65 6e 74 2e 20 49 74 20 6d 75 73 74 20 68 61 76 65 20 0a 62 65 65 6e 20 69 6e 74 72 6f ┆tement. It must have been intro┆
0x13820…13840 64 75 63 65 64 20 69 6e 20 61 20 76 61 72 69 61 62 6c 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 2e ┆duced in a variable declaration.┆
0x13840…13860 20 54 68 65 20 76 61 80 6c 75 65 20 6f 66 20 61 20 76 61 72 73 69 7a 65 20 0a 63 61 6c 6c 20 69 ┆ The vaђlue of a varsize call i┆
0x13860…13880 73 20 74 68 65 20 73 69 7a 65 20 28 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 29 20 6f 66 20 ┆s the size (number of bytes) of ┆
0x13880…138a0 74 68 65 20 76 61 72 69 61 62 6c 65 20 61 73 20 63 6f 6d 70 75 74 65 64 20 0a 77 68 65 6e 20 69 ┆the variable as computed when i┆
0x138a0…138c0 74 73 20 74 79 70 65 20 77 61 73 20 65 73 74 61 62 6c 69 73 68 65 64 2e 20 54 68 65 20 74 79 70 ┆ts type was established. The typ┆
0x138c0…138e0 65 20 6f 66 20 61 20 76 61 72 73 69 7a 65 20 63 61 6c 6c 20 69 73 20 69 6e 80 0a 74 65 67 65 72 ┆e of a varsize call is inђ teger┆
0x138e0…13900 2e 0d 0a 0d 0a 16 73 62 0d 0a 4e 6f 74 61 74 69 6f 6e 20 66 6f 72 20 4f 62 6a 65 63 74 73 20 61 ┆. sb Notation for Objects a┆
0x13900…13920 6e 64 20 56 61 6c 75 65 73 0d 0a 41 6e 20 6f 62 6a 65 63 74 20 77 68 69 63 68 20 69 73 20 64 65 ┆nd Values An object which is de┆
0x13920…13940 63 6c 61 72 65 64 20 6f 72 20 70 61 72 74 20 6f 66 20 61 20 28 6c 61 72 67 65 72 29 20 64 65 63 ┆clared or part of a (larger) dec┆
0x13940…13960 6c 61 72 65 64 20 6f 62 6a 65 63 74 20 0a 6f 72 20 61 63 63 65 73 73 65 64 20 74 68 72 6f 75 67 ┆lared object or accessed throug┆
0x13960…13980 68 20 61 20 64 65 63 6c 61 72 65 64 20 70 6f 69 6e 74 65 72 2c 20 6d 61 79 20 62 65 20 72 65 66 ┆h a declared pointer, may be ref┆
0x13980…139a0 65 72 80 72 65 64 20 74 6f 20 62 79 20 0a 64 65 6e 6f 74 61 80 74 69 6f 6e 2e 0d 0a 16 6d 61 20 ┆erђred to by denotaђtion. ma ┆
0x139a0…139c0 73 79 6e 64 69 61 37 33 0d 0a 54 68 65 20 64 65 6e 6f 74 65 64 20 6f 62 6a 65 63 74 20 69 73 20 ┆syndia73 The denoted object is ┆
0x139c0…139e0 73 61 69 64 20 74 6f 20 62 65 20 a0 61 63 63 65 73 73 65 64 e0 20 77 68 65 6e 3a 20 61 6e 20 61 ┆said to be аaccessedЯ when: an a┆
0x139e0…13a00 73 73 69 67 6e 80 80 6d 65 6e 74 20 0a 73 74 61 74 65 80 6d 65 6e 74 20 69 6e 20 77 68 69 63 68 ┆ssignђђment stateђment in which┆
0x13a00…13a20 20 69 74 20 61 70 70 65 61 72 73 20 6f 6e 20 74 68 65 20 6c 65 66 74 20 68 61 6e 64 20 73 69 64 ┆ it appears on the left hand sid┆
0x13a20…13a40 65 20 69 73 20 65 78 65 63 75 74 65 64 3b 20 0a 6f 72 20 74 68 65 20 66 61 63 74 6f 72 20 77 68 ┆e is executed; or the factor wh┆
0x13a40…13a60 69 63 68 20 69 74 20 63 6f 6e 73 74 69 74 75 74 65 73 20 69 6e 20 73 6f 6d 65 20 65 78 70 72 65 ┆ich it constitutes in some expre┆
0x13a60…13a80 73 80 73 69 6f 6e 20 69 73 20 65 76 61 6c 75 61 80 0a 74 65 64 2e 0d 0a 0d 0a 49 66 20 74 68 65 ┆sђsion is evaluaђ ted. If the┆
0x13a80…13aa0 20 27 6f 62 6a 65 63 74 20 64 65 6e 6f 74 61 74 69 6f 6e 27 20 69 73 20 61 6e 20 27 6f 62 6a 65 ┆ 'object denotation' is an 'obje┆
0x13aa0…13ac0 63 74 5f 6e 61 6d 65 27 20 69 74 73 20 74 79 70 65 20 69 73 20 74 68 65 20 0a 74 79 70 65 20 6f ┆ct_name' its type is the type o┆
0x13ac0…13ae0 66 20 74 68 65 20 6e 61 6d 65 64 20 6f 62 6a 65 63 74 20 61 73 20 64 65 74 65 72 6d 69 6e 65 64 ┆f the named object as determined┆
0x13ae0…13b00 20 62 79 20 69 74 73 20 64 65 63 6c 61 72 61 80 80 74 69 6f 6e 2e 20 54 68 65 20 0a 74 79 70 65 ┆ by its declaraђђtion. The type┆
0x13b00…13b20 73 20 6f 66 20 74 68 65 20 6f 74 68 65 72 20 66 6f 72 6d 73 20 6f 66 20 64 65 6e 6f 74 65 64 20 ┆s of the other forms of denoted ┆
0x13b20…13b40 6f 62 6a 65 63 74 73 20 61 72 65 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 0a 70 72 65 76 69 6f ┆objects are described in previo┆
0x13b40…13b60 75 73 20 73 65 63 74 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 63 68 61 70 74 65 72 2e 0d 0a 0d 0a ┆us sections of this chapter. ┆
0x13b60…13b80 54 68 65 20 74 61 72 67 65 74 20 6f 66 20 61 6e 20 61 73 73 69 67 6e 6d 65 6e 74 20 6d 61 79 20 ┆The target of an assignment may ┆
0x13b80…13ba0 65 69 74 68 65 72 20 62 65 20 61 20 76 61 72 69 61 62 6c 65 20 6f 62 6a 65 63 74 20 6f 72 20 0a ┆either be a variable object or ┆
0x13ba0…13bc0 74 68 65 20 69 6d 70 6c 69 63 69 74 20 72 65 73 75 6c 74 20 6f 62 6a 65 63 74 20 61 73 73 6f 63 ┆the implicit result object assoc┆
0x13bc0…13be0 69 61 74 65 64 20 77 69 74 68 20 61 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2e 0d 0a 16 6d 61 ┆iated with a function call. ma┆
0x13be0…13c00 20 73 79 6e 64 69 61 34 33 0d 0a 8c 84 a8 0a 57 68 65 6e 20 61 6e 20 6f 62 6a 65 63 74 20 64 65 ┆ syndia43 їёе When an object de┆
0x13c00…13c20 6e 6f 74 61 74 69 6f 6e 20 6f 63 63 75 72 73 20 61 73 20 61 20 76 61 72 69 61 62 6c 65 20 64 65 ┆notation occurs as a variable de┆
0x13c20…13c40 6e 6f 74 61 74 69 6f 6e 20 69 74 20 6d 75 73 74 20 0a 64 65 6e 6f 74 65 20 61 6e 20 6f 62 6a 65 ┆notation it must denote an obje┆
0x13c40…13c60 63 74 20 77 68 69 63 68 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 6f 72 20 70 61 72 74 20 6f ┆ct which is a variable or part o┆
0x13c60…13c80 66 20 61 20 76 61 72 69 80 61 62 6c 65 20 69 6e 20 74 68 65 20 0a 73 74 61 63 6b 20 6f 72 20 68 ┆f a variђable in the stack or h┆
0x13c80…13ca0 65 61 70 20 6f 66 20 61 20 70 72 6f 63 65 73 73 2c 20 6f 72 20 73 75 70 65 72 69 6d 70 6f 73 65 ┆eap of a process, or superimpose┆
0x13ca0…13cc0 64 20 6f 6e 20 61 20 6d 65 73 73 61 67 65 20 62 75 66 66 65 72 20 0a 69 6e 20 61 20 6c 6f 63 6b ┆d on a message buffer in a lock┆
0x13cc0…13ce0 20 73 74 61 74 65 6d 65 6e 74 2e 20 49 74 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 61 20 63 6f 6e ┆ statement. It must not be a con┆
0x13ce0…13d00 80 73 74 80 61 6e 74 20 6f 72 20 70 61 72 74 20 6f 66 20 61 20 0a 63 6f 6e 73 74 61 6e 74 2e 0d ┆ђstђant or part of a constant. ┆
0x13d00…13d20 0a 0d 0a 57 68 65 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 6f 63 63 75 72 73 20 61 ┆ When a function name occurs a┆
0x13d20…13d40 73 20 61 20 76 61 72 69 61 62 6c 65 20 64 65 6e 6f 74 61 74 69 6f 6e 20 69 74 20 64 65 80 6e 6f ┆s a variable denotation it deђno┆
0x13d40…13d60 74 65 73 20 0a 74 68 65 20 69 6d 70 6c 69 63 69 74 6c 79 20 64 65 63 6c 61 72 65 64 20 72 65 73 ┆tes the implicitly declared res┆
0x13d60…13d80 75 6c 74 20 6f 62 6a 65 63 74 20 6f 66 20 61 6e 20 61 63 74 69 76 61 80 74 69 6f 6e 20 6f 66 20 ┆ult object of an activaђtion of ┆
0x13d80…13da0 74 68 65 20 0a 66 75 6e 63 74 69 6f 6e 20 69 74 20 6e 61 6d 65 73 2e 20 41 20 66 75 6e 63 74 69 ┆the function it names. A functi┆
0x13da0…13dc0 6f 6e 20 6e 61 6d 65 20 6d 61 79 20 62 65 20 75 73 65 64 20 69 6e 20 74 68 69 73 20 66 61 73 68 ┆on name may be used in this fash┆
0x13dc0…13de0 69 6f 6e 20 0a 6f 6e 6c 79 20 69 6e 20 74 68 65 20 61 63 80 74 69 6f 6e 20 70 61 72 74 20 6f 66 ┆ion only in the acђtion part of┆
0x13de0…13e00 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2c 20 69 2e 65 2e 20 6e 6f 74 20 69 6e 20 69 6e 6e 65 72 ┆ the function, i.e. not in inner┆
0x13e00…13e20 20 0a 62 6c 6f 63 6b 73 2e 0d 0a 0d 0a 54 68 65 20 74 79 70 65 20 6f 66 20 61 20 76 61 72 69 61 ┆ blocks. The type of a varia┆
0x13e20…13e40 62 6c 65 20 64 65 6e 6f 74 61 74 69 6f 6e 20 69 73 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 ┆ble denotation is the type of th┆
0x13e40…13e60 65 20 64 65 6e 6f 74 65 64 20 0a 6f 62 6a 65 63 74 20 6f 72 20 74 68 65 20 72 65 73 75 6c 74 20 ┆e denoted object or the result ┆
0x13e60…13e80 74 79 70 65 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2c 20 77 68 69 63 68 65 76 65 72 20 ┆type of the function, whichever ┆
0x13e80…13ea0 61 70 80 70 6c 69 65 73 2e 0d 0a 0d 0a 56 61 6c 75 65 73 20 77 68 69 63 68 20 61 72 65 20 6e 6f ┆apђplies. Values which are no┆
0x13ea0…13ec0 74 20 74 68 65 20 76 61 6c 75 65 73 20 6f 66 20 6f 62 6a 65 63 74 73 20 6f 72 20 73 75 62 2d 6f ┆t the values of objects or sub-o┆
0x13ec0…13ee0 62 6a 65 63 74 73 20 6d 61 79 20 62 65 20 0a 75 73 65 64 20 69 6e 20 65 78 70 72 65 73 73 69 6f ┆bjects may be used in expressio┆
0x13ee0…13f00 6e 73 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 37 37 0d 0a 41 20 bf dc d8 76 61 6c 75 65 20 64 65 ┆ns. ma syndia77 A ┐▄пvalue de┆
0x13f00…13f20 6e 6f 74 61 74 69 6f 6e be 20 64 65 6e 6f 74 65 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 61 ┆notationЙ denotes the value of a┆
0x13f20…13f40 6e 20 61 6e 6f 6e 79 6d 6f 75 73 20 6f 62 6a 65 63 74 2c 20 74 68 65 20 0a 74 79 80 70 65 20 61 ┆n anonymous object, the tyђpe a┆
0x13f40…13f60 6e 64 20 76 61 6c 75 65 20 6f 66 20 77 68 69 63 68 20 69 73 20 61 73 20 64 65 73 63 72 69 62 65 ┆nd value of which is as describe┆
0x13f60…13f80 64 20 66 6f 72 20 74 68 65 20 72 65 6c 65 76 61 6e 74 20 6f 6e 65 20 6f 66 20 0a 74 68 65 20 70 ┆d for the relevant one of the p┆
0x13f80…13fa0 6f 73 73 69 62 6c 65 20 66 6f 72 6d 73 2e 0d 0a 0d 0a 41 20 bf dc d8 67 65 74 73 77 69 74 63 68 ┆ossible forms. A ┐▄пgetswitch┆
0x13fa0…13fc0 be 20 63 61 6c 6c 20 69 73 20 73 69 6d 69 6c 61 72 20 69 6e 20 66 6f 72 6d 20 74 6f 20 61 20 66 ┆Й call is similar in form to a f┆
0x13fc0…13fe0 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2e 20 49 74 20 61 6c 6c 6f 77 73 20 0a 74 68 65 20 76 61 6c ┆unction call. It allows the val┆
0x13fe0…14000 75 65 20 6f 66 20 61 20 63 6f 6d 70 69 6c 65 72 20 73 77 69 74 63 68 20 74 6f 20 62 65 20 75 73 ┆ue of a compiler switch to be us┆
0x14000…14020 65 64 20 69 6e 20 63 6f 6d 70 75 74 61 80 74 69 6f 6e 73 2c 20 69 2e 65 2e 20 0a 74 72 61 6e 73 ┆ed in computaђtions, i.e. trans┆
0x14020…14040 66 65 72 20 6f 66 20 76 61 6c 75 65 73 20 66 72 6f 6d 20 74 68 65 20 64 6f 6d 61 69 6e 20 6f 66 ┆fer of values from the domain of┆
0x14040…14060 20 73 77 69 74 63 68 20 6e 61 80 6d 65 73 20 74 6f 20 74 68 65 20 64 6f 80 6d 61 69 6e 20 0a 6f ┆ switch naђmes to the doђmain o┆
0x14060…14080 66 20 70 72 6f 67 72 61 6d 20 6e 61 6d 65 73 20 28 63 66 2e 20 63 68 61 70 74 65 72 20 31 32 29 ┆f program names (cf. chapter 12)┆
0x14080…140a0 2e 0d 0a 16 73 61 0d 0a 45 58 50 52 45 53 53 49 4f 4e 53 0d 0a 41 6e 20 65 78 70 72 65 73 73 69 ┆. sa EXPRESSIONS An expressi┆
0x140a0…140c0 6f 6e 20 64 65 73 63 72 69 62 65 73 20 65 69 74 68 65 72 20 61 6e 20 6f 62 6a 65 63 74 20 74 6f ┆on describes either an object to┆
0x140c0…140e0 20 62 65 20 61 64 64 72 65 73 73 65 64 20 6f 72 20 73 6f 6d 65 20 0a 63 6f 6d 70 75 74 61 74 69 ┆ be addressed or some computati┆
0x140e0…14100 6f 6e 20 74 6f 20 62 65 20 70 65 72 66 6f 72 6d 65 64 20 62 79 20 61 70 70 6c 79 69 6e 67 20 6f ┆on to be performed by applying o┆
0x14100…14120 70 65 72 61 74 6f 72 73 20 61 6e 64 20 66 75 6e 63 80 74 69 6f 6e 73 2c 20 0a 70 72 65 80 64 65 ┆perators and funcђtions, preђde┆
0x14120…14140 66 69 6e 65 64 20 61 73 20 77 65 6c 6c 20 61 73 20 70 72 6f 67 72 61 6d 6d 65 72 2d 64 65 66 69 ┆fined as well as programmer-defi┆
0x14140…14160 6e 65 64 2c 20 74 6f 20 76 61 80 6c 75 65 73 20 6f 66 20 6f 62 6a 65 63 74 73 20 61 73 20 0a 74 ┆ned, to vaђlues of objects as t┆
0x14160…14180 68 65 79 20 61 72 65 20 61 74 20 74 68 65 20 74 69 6d 65 20 6f 66 20 63 6f 6d 70 75 74 61 74 69 ┆hey are at the time of computati┆
0x14180…141a0 6f 6e 20 61 6e 64 20 74 6f 20 63 6f 6e 73 74 61 6e 74 20 76 61 6c 75 65 73 20 77 68 69 63 68 20 ┆on and to constant values which ┆
0x141a0…141c0 0a 6d 61 79 20 62 65 20 64 65 6e 6f 74 65 64 20 64 69 72 65 63 74 6c 79 20 69 6e 20 74 68 65 20 ┆ may be denoted directly in the ┆
0x141c0…141e0 65 78 80 70 72 65 73 73 69 6f 6e 2e 0d 0a 0d 0a 54 68 65 20 6f 70 65 72 61 74 6f 72 73 20 6f 66 ┆exђpression. The operators of┆
0x141e0…14200 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 61 72 65 20 64 69 76 69 64 65 64 20 69 6e 20 67 72 6f ┆ the language are divided in gro┆
0x14200…14220 75 70 73 20 77 69 74 68 20 64 69 66 66 65 80 0a 72 65 6e 74 20 70 72 65 63 65 64 65 6e 63 65 2e ┆ups with diffeђ rent precedence.┆
0x14220…14240 20 49 6e 20 6f 72 64 65 72 20 6f 66 20 69 6e 63 72 65 61 73 69 6e 67 20 70 72 65 63 65 64 65 6e ┆ In order of increasing preceden┆
0x14240…14260 63 65 20 74 68 65 20 67 72 6f 75 70 73 20 0a 61 72 65 3a 20 72 65 6c 61 80 74 69 6f 6e 61 6c 20 ┆ce the groups are: relaђtional ┆
0x14260…14280 6f 70 65 72 61 74 6f 72 73 2c 20 61 64 64 69 74 69 6f 6e 2d 74 79 70 65 20 6f 70 65 72 61 74 6f ┆operators, addition-type operato┆
0x14280…142a0 72 73 2c 20 0a 6d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 2d 74 79 70 65 20 6f 70 65 72 61 74 6f ┆rs, multiplication-type operato┆
0x142a0…142c0 72 73 2c 20 61 6e 64 20 74 68 65 20 6e 65 67 61 74 69 6f 6e 20 6f 70 65 72 61 74 6f 72 2e 0d 0a ┆rs, and the negation operator. ┆
0x142c0…142e0 0d 0a 41 6c 6c 20 6f 70 65 72 61 74 6f 72 73 20 61 72 65 20 64 65 73 63 72 69 62 65 64 20 69 6e ┆ All operators are described in┆
0x142e0…14300 20 63 68 61 70 74 65 72 20 33 20 69 6e 20 63 6f 6e 6a 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 74 ┆ chapter 3 in conjunction with t┆
0x14300…14320 68 65 20 0a 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 74 79 70 65 73 20 6f 66 20 ┆he description of the types of ┆
0x14320…14340 74 68 65 20 6f 70 65 72 61 6e 64 73 20 74 68 65 79 20 61 70 70 6c 79 20 74 6f 2e 20 53 6f 6d 65 ┆the operands they apply to. Some┆
0x14340…14360 20 0a 6f 70 65 72 61 74 6f 72 73 20 65 78 69 73 74 20 69 6e 20 73 65 76 65 72 61 6c 20 73 65 6d ┆ operators exist in several sem┆
0x14360…14380 61 6e 74 69 63 61 6c 6c 79 20 64 69 73 74 69 6e 63 74 20 76 65 72 73 80 69 6f 6e 73 2c 20 0a 61 ┆antically distinct versђions, a┆
0x14380…143a0 70 70 6c 69 63 80 61 62 6c 65 20 74 6f 20 64 69 66 66 65 72 65 6e 74 20 74 79 70 65 73 20 6f 66 ┆pplicђable to different types of┆
0x143a0…143c0 20 6f 70 65 72 61 6e 64 73 20 61 6e 64 20 70 72 6f 80 64 75 80 63 69 6e 67 20 72 65 73 75 6c 74 ┆ operands and proђduђcing result┆
0x143c0…143e0 73 20 0a 69 6e 20 64 69 66 80 66 65 72 65 6e 74 20 77 61 79 73 20 64 65 70 65 6e 64 69 6e 67 20 ┆s in difђferent ways depending ┆
0x143e0…14400 6f 6e 20 74 68 65 20 6f 70 65 72 61 6e 64 20 74 79 80 70 65 73 2c 20 65 2e 67 2e 20 3c 3d 20 6d ┆on the operand tyђpes, e.g. <= m┆
0x14400…14420 61 79 20 62 65 20 0a 75 73 65 64 20 66 6f 72 20 69 6e 74 65 67 65 72 20 28 6f 72 20 69 6e 20 67 ┆ay be used for integer (or in g┆
0x14420…14440 65 6e 65 72 61 6c 3a 20 6f 72 80 64 69 6e 61 6c 20 76 61 6c 75 65 29 20 63 6f 6d 70 61 72 69 73 ┆eneral: orђdinal value) comparis┆
0x14440…14460 6f 6e 2c 20 61 73 20 0a 77 65 6c 6c 20 61 73 20 66 6f 72 20 73 65 74 20 63 6f 6d 70 61 72 69 73 ┆on, as well as for set comparis┆
0x14460…14480 6f 6e 20 28 69 6e 63 6c 75 80 73 69 6f 6e 29 2e 0d 0a 0d 0a 49 6e 20 73 65 63 74 69 6f 6e 20 34 ┆on (incluђsion). In section 4┆
0x14480…144a0 2e 31 20 72 65 66 65 72 65 6e 63 65 20 69 73 20 67 69 76 65 6e 2c 20 66 6f 72 20 65 61 63 68 20 ┆.1 reference is given, for each ┆
0x144a0…144c0 6f 70 65 72 61 74 6f 72 2c 20 74 6f 20 61 6c 6c 20 73 65 63 80 0a 74 69 6f 6e 73 20 77 68 65 72 ┆operator, to all secђ tions wher┆
0x144c0…144e0 65 20 61 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 61 74 20 6f 70 65 72 61 74 6f 72 20 69 73 20 ┆e a version of that operator is ┆
0x144e0…14500 64 65 73 63 72 69 62 65 64 2e 20 54 68 65 20 66 6f 6c 6c 6f 77 80 0a 69 6e 67 20 73 65 6c 65 63 ┆described. The followђ ing selec┆
0x14500…14520 74 69 6f 6e 20 72 75 6c 65 20 69 73 20 75 73 65 64 20 69 6e 20 74 68 65 20 61 70 70 6c 69 63 61 ┆tion rule is used in the applica┆
0x14520…14540 74 69 6f 6e 20 6f 66 20 6f 70 65 80 72 61 74 6f 72 73 20 6f 63 63 75 72 80 0a 72 69 6e 67 20 69 ┆tion of opeђrators occurђ ring i┆
0x14540…14560 6e 20 65 78 70 72 65 73 73 69 6f 6e 73 3a 20 49 66 20 74 68 65 20 74 79 70 65 73 20 6f 66 20 74 ┆n expressions: If the types of t┆
0x14560…14580 68 65 20 6f 70 65 80 72 61 6e 64 28 73 29 20 70 72 6f 76 69 64 65 64 20 66 6f 72 20 0a 61 6e 20 ┆he opeђrand(s) provided for an ┆
0x14580…145a0 6f 70 65 72 61 74 6f 72 20 63 6f 72 72 65 73 70 6f 6e 64 20 74 6f 20 6f 6e 65 20 6f 66 20 74 68 ┆operator correspond to one of th┆
0x145a0…145c0 65 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 61 74 20 6f 70 65 72 61 74 6f 72 2c 20 0a 74 68 ┆e versions of that operator, th┆
0x145c0…145e0 65 6e 20 74 68 61 74 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 6f 70 65 72 61 74 6f 72 20 ┆en that version of the operator ┆
0x145e0…14600 69 73 20 73 65 6c 65 63 74 65 64 2e 20 4f 74 68 65 72 77 69 73 65 20 74 68 65 20 65 78 80 0a 70 ┆is selected. Otherwise the exђ p┆
0x14600…14620 72 65 73 73 69 6f 6e 20 69 73 20 69 6c 6c 65 67 61 6c 2e 20 54 68 65 20 74 79 70 65 20 6f 66 20 ┆ression is illegal. The type of ┆
0x14620…14640 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 64 65 74 65 72 6d 69 6e 65 64 20 61 63 63 6f 72 80 0a ┆the result is determined accorђ ┆
0x14640…14660 64 69 6e 67 20 74 6f 20 74 68 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 73 ┆ding to the description of the s┆
0x14660…14680 65 6c 65 63 74 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 6f 70 65 72 61 74 6f 72 2e ┆elected version of the operator.┆
0x14680…146a0 20 0a 54 68 65 20 72 65 73 75 6c 74 20 6d 61 79 20 61 67 61 69 6e 20 62 65 20 75 73 65 64 20 61 ┆ The result may again be used a┆
0x146a0…146c0 73 20 61 6e 20 6f 70 65 72 61 6e 64 20 6f 66 20 61 6e 6f 74 68 65 72 20 6f 70 65 72 61 74 6f 72 ┆s an operand of another operator┆
0x146c0…146e0 20 0a 61 6e 64 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 72 75 6c 65 20 6d 61 79 20 74 68 65 ┆ and the selection rule may the┆
0x146e0…14700 6e 20 62 65 20 61 70 70 6c 69 65 64 20 72 65 70 65 80 61 74 65 64 6c 79 2e 0d 0a 0d 0a 8c 8a c0 ┆n be applied repeђatedly. їі└┆
0x14700…14720 0a 41 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 61 73 20 ┆ An expression which is used as ┆
0x14720…14740 61 6e 20 61 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 20 77 68 65 72 65 20 74 68 65 20 6b 69 ┆an actual parameter where the ki┆
0x14740…14760 6e 64 20 0a 6f 66 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 66 6f 72 6d 61 6c 20 ┆nd of the corresponding formal ┆
0x14760…14780 70 61 72 61 6d 65 74 65 72 20 69 73 20 76 61 72 69 61 62 6c 65 2c 20 73 68 61 80 72 65 64 20 6f ┆parameter is variable, shaђred o┆
0x14780…147a0 72 20 0a 69 6e 73 70 65 63 74 20 28 63 66 2e 20 63 68 61 70 74 65 72 20 36 29 20 6d 75 73 74 20 ┆r inspect (cf. chapter 6) must ┆
0x147a0…147c0 68 61 76 65 20 74 68 65 20 66 6f 72 6d 20 6f 66 20 61 6e 20 27 6f 80 62 6a 65 63 74 20 64 65 6e ┆have the form of an 'oђbject den┆
0x147c0…147e0 6f 80 0a 74 61 74 69 6f 6e 27 2e 20 53 75 63 68 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69 ┆oђ tation'. Such an expression i┆
0x147e0…14800 73 20 63 61 6c 6c 65 64 20 61 6e 20 a0 bf dc d8 6f 62 6a 65 63 74 20 65 78 70 72 65 73 73 69 6f ┆s called an а┐▄пobject expressio┆
0x14800…14820 6e be e0 2e 20 54 68 65 20 0a 65 76 61 6c 75 61 74 69 6f 6e 20 6f 66 20 61 6e 20 6f 62 6a 65 63 ┆nЙЯ. The evaluation of an objec┆
0x14820…14840 74 20 65 78 70 72 65 73 73 69 6f 6e 20 73 74 6f 70 73 20 77 68 65 6e 20 74 68 65 20 61 64 64 72 ┆t expression stops when the addr┆
0x14840…14860 65 73 73 20 6f 66 20 74 68 65 20 0a 64 65 6e 6f 74 65 64 20 6f 62 6a 65 63 74 20 68 61 73 20 62 ┆ess of the denoted object has b┆
0x14860…14880 65 65 6e 20 63 6f 6d 70 75 74 65 64 2e 20 49 6e 20 61 6c 6c 20 6f 74 68 65 72 20 63 61 73 65 73 ┆een computed. In all other cases┆
0x14880…148a0 20 74 68 65 20 65 76 61 6c 80 0a 75 61 74 69 6f 6e 20 6f 66 20 61 6e 20 65 78 70 72 65 73 73 69 ┆ the evalђ uation of an expressi┆
0x148a0…148c0 6f 6e 20 70 72 6f 63 65 65 64 73 20 75 6e 80 74 69 6c 20 61 20 76 61 6c 75 65 20 68 61 73 20 62 ┆on proceeds unђtil a value has b┆
0x148c0…148e0 65 65 6e 20 6f 62 74 61 69 80 6e 65 64 2c 20 0a 61 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 ┆een obtaiђned, as described in ┆
0x148e0…14900 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 65 63 74 69 6f 6e 2e 0d 0a 16 73 62 0d 0a 45 76 61 ┆the following section. sb Eva┆
0x14900…14920 6c 75 61 74 69 6f 6e 20 6f 66 20 45 78 70 72 65 73 73 69 6f 6e 73 0d 0a 54 68 65 20 65 76 61 6c ┆luation of Expressions The eval┆
0x14920…14940 75 61 74 69 6f 6e 20 6f 66 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 79 69 65 6c 64 73 20 61 ┆uation of an expression yields a┆
0x14940…14960 20 74 79 70 65 20 61 6e 64 20 61 20 76 61 6c 75 65 2e 20 54 68 69 73 20 0a 73 65 63 80 74 69 6f ┆ type and a value. This secђtio┆
0x14960…14980 6e 20 64 65 73 63 72 69 62 65 73 20 68 6f 77 20 74 68 65 20 74 79 70 65 20 61 6e 64 20 76 61 6c ┆n describes how the type and val┆
0x14980…149a0 75 65 20 61 72 65 20 6f 62 74 61 69 6e 65 64 20 66 72 6f 6d 20 74 68 65 20 0a 74 79 70 65 73 20 ┆ue are obtained from the types ┆
0x149a0…149c0 61 6e 64 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 65 ┆and values of the parts of the e┆
0x149c0…149e0 78 70 72 65 73 73 69 6f 6e 20 77 68 69 63 68 20 63 6f 6e 73 74 69 74 75 74 65 20 0a 74 68 65 20 ┆xpression which constitute the ┆
0x149e0…14a00 6f 70 65 72 61 6e 64 73 20 61 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 73 74 61 67 65 73 20 6f ┆operands at the various stages o┆
0x14a00…14a20 66 20 63 6f 6d 80 70 75 74 61 74 69 6f 6e 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 36 36 0d 0a 16 ┆f comђputation. ma syndia66 ┆
0x14a20…14a40 6d 61 20 73 79 6e 64 69 61 36 37 0d 0a 54 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 65 ┆ma syndia67 The expression is e┆
0x14a40…14a60 76 61 6c 75 61 74 65 64 20 62 79 20 65 76 61 6c 75 61 74 69 6e 67 20 74 68 65 20 73 69 6d 70 6c ┆valuated by evaluating the simpl┆
0x14a60…14a80 65 20 65 78 70 72 65 73 80 0a 73 69 6f 6e 28 73 29 20 69 6e 20 74 68 65 20 6f 72 64 65 72 20 6f ┆e expresђ sion(s) in the order o┆
0x14a80…14aa0 66 20 6f 63 63 75 72 72 65 6e 63 65 2e 20 54 68 65 6e 2c 20 69 66 20 6e 6f 20 6f 70 65 72 61 74 ┆f occurrence. Then, if no operat┆
0x14aa0…14ac0 6f 72 20 69 73 20 70 72 65 80 0a 73 65 6e 74 2c 20 74 68 65 20 74 79 70 65 20 61 6e 64 20 76 61 ┆or is preђ sent, the type and va┆
0x14ac0…14ae0 6c 75 65 20 6f 66 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 61 72 65 20 74 68 65 20 74 79 ┆lue of the expression are the ty┆
0x14ae0…14b00 70 65 20 61 6e 64 20 76 61 6c 80 75 65 20 0a 6f 66 20 74 68 65 20 28 6f 6e 6c 79 29 20 73 69 6d ┆pe and valђue of the (only) sim┆
0x14b00…14b20 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 2e 20 4f 74 68 65 72 77 69 73 65 20 74 68 65 20 61 70 ┆ple expression. Otherwise the ap┆
0x14b20…14b40 80 70 72 6f 70 72 69 61 74 65 20 0a 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 6f 70 65 72 61 ┆ђpropriate version of the opera┆
0x14b40…14b60 74 6f 72 20 69 73 20 61 70 70 6c 69 65 64 20 74 6f 20 74 68 65 20 76 61 6c 75 65 73 20 6f 66 20 ┆tor is applied to the values of ┆
0x14b60…14b80 74 68 65 20 73 69 6d 70 6c 65 20 0a 65 78 70 72 65 73 73 69 6f 6e 73 3b 20 74 68 65 20 72 65 73 ┆the simple expressions; the res┆
0x14b80…14ba0 75 6c 74 20 69 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 65 78 70 72 65 73 73 69 ┆ult is the value of the expressi┆
0x14ba0…14bc0 6f 6e 2c 20 69 74 73 20 74 79 70 65 20 0a 62 65 69 6e 67 20 62 6f 6f 6c 65 61 6e 20 66 6f 72 20 ┆on, its type being boolean for ┆
0x14bc0…14be0 61 6c 6c 20 72 65 6c 61 74 69 6f 6e 61 6c 20 6f 70 65 72 61 80 74 6f 72 73 2e 0d 0a 16 6d 61 20 ┆all relational operaђtors. ma ┆
0x14be0…14c00 73 79 6e 64 69 61 36 38 0d 0a 8c 83 e0 0a 41 20 6c 65 61 64 69 6e 67 20 2b 20 6f 72 20 2d 20 69 ┆syndia68 їЃЯ A leading + or - i┆
0x14c00…14c20 6d 70 6c 69 65 73 20 61 6e 20 69 6d 70 6c 69 63 69 74 20 6c 65 66 74 20 74 65 72 6d 20 77 69 74 ┆mplies an implicit left term wit┆
0x14c20…14c40 68 20 74 79 70 65 20 69 6e 80 74 65 67 65 72 20 0a 61 6e 64 20 76 61 6c 75 65 20 30 2e 0d 0a 16 ┆h type inђteger and value 0. ┆
0x14c40…14c60 6d 61 20 73 79 6e 64 69 61 36 39 0d 0a 54 68 65 20 65 76 61 6c 75 61 74 69 6f 6e 20 6f 66 20 61 ┆ma syndia69 The evaluation of a┆
0x14c60…14c80 20 73 69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 20 70 72 6f 63 65 65 64 73 20 66 72 6f 6d ┆ simple expression proceeds from┆
0x14c80…14ca0 20 6c 65 66 74 20 74 6f 20 0a 72 69 67 68 74 2e 20 54 68 65 20 6c 65 66 74 6d 6f 73 74 20 74 65 ┆ left to right. The leftmost te┆
0x14ca0…14cc0 72 6d 20 28 70 6f 73 73 69 62 6c 79 20 61 6e 20 69 6d 70 6c 69 63 69 74 20 30 29 20 69 73 20 65 ┆rm (possibly an implicit 0) is e┆
0x14cc0…14ce0 76 61 6c 75 80 61 74 65 64 2c 20 0a 79 69 65 6c 64 69 6e 67 20 61 20 a0 70 72 65 6c 69 80 6d 69 ┆valuђated, yielding a аpreliђmi┆
0x14ce0…14d00 6e 61 72 79 20 72 65 73 75 6c 74 e0 2e 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 73 20 74 ┆nary resultЯ. The following is t┆
0x14d00…14d20 68 65 6e 20 70 65 72 66 6f 72 6d 65 64 20 0a 72 65 70 65 61 74 65 64 6c 79 3a 0d 0a 0d 0a 54 68 ┆hen performed repeatedly: Th┆
0x14d20…14d40 65 20 70 72 65 6c 69 6d 69 6e 61 72 79 20 72 65 73 75 6c 74 20 69 73 20 75 73 65 64 20 61 73 20 ┆e preliminary result is used as ┆
0x14d40…14d60 6c 65 66 74 20 6f 70 65 72 61 6e 64 20 6f 66 20 74 68 65 20 6c 65 66 74 80 6d 6f 73 74 20 0a 72 ┆left operand of the leftђmost r┆
0x14d60…14d80 65 6d 61 69 80 6e 69 6e 67 20 6f 70 65 72 61 74 6f 72 2e 20 54 68 65 20 6c 65 66 74 6d 6f 73 74 ┆emaiђning operator. The leftmost┆
0x14d80…14da0 20 72 65 6d 61 69 6e 69 6e 67 20 74 65 72 6d 20 69 73 20 65 76 61 80 6c 75 61 74 65 64 20 61 6e ┆ remaining term is evaђluated an┆
0x14da0…14dc0 64 20 0a 75 73 65 64 20 61 73 20 72 69 67 68 74 20 6f 70 65 72 61 6e 64 2e 20 54 68 65 20 61 70 ┆d used as right operand. The ap┆
0x14dc0…14de0 70 72 6f 70 72 69 61 74 65 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 6f 70 65 72 61 74 6f ┆propriate version of the operato┆
0x14de0…14e00 72 20 69 73 20 0a 74 68 65 6e 20 61 70 70 6c 69 65 64 20 61 6e 64 20 70 72 6f 64 75 63 65 73 20 ┆r is then applied and produces ┆
0x14e00…14e20 61 20 6e 65 77 20 70 72 65 6c 69 80 6d 69 6e 61 72 79 20 72 65 73 75 6c 74 2e 0d 0a 0d 0a 57 68 ┆a new preliђminary result. Wh┆
0x14e20…14e40 65 6e 20 6e 6f 20 6d 6f 72 65 20 6f 70 65 72 61 74 6f 72 73 20 61 6e 64 20 74 65 72 6d 73 20 61 ┆en no more operators and terms a┆
0x14e40…14e60 72 65 20 6c 65 66 74 20 74 68 65 20 73 69 6d 70 6c 65 20 65 78 70 72 65 73 80 73 69 6f 6e 20 0a ┆re left the simple expresђsion ┆
0x14e60…14e80 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 6c 65 74 65 6c 79 20 65 76 61 6c 75 61 74 65 64 3b 20 74 ┆has been completely evaluated; t┆
0x14e80…14ea0 68 65 20 66 69 6e 61 6c 20 74 79 70 65 20 61 6e 64 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 0a ┆he final type and value of the ┆
0x14ea0…14ec0 70 72 65 6c 69 6d 69 6e 61 72 79 20 72 65 73 75 6c 74 20 63 6f 6e 73 74 69 74 75 74 65 20 74 68 ┆preliminary result constitute th┆
0x14ec0…14ee0 65 20 74 79 70 65 20 61 6e 64 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 73 69 6d 70 6c 65 20 0a ┆e type and value of the simple ┆
0x14ee0…14f00 65 78 70 72 65 73 73 69 6f 6e 2e 0d 0a 0d 0a 54 68 65 72 65 20 69 73 20 6f 6e 65 20 65 78 63 65 ┆expression. There is one exce┆
0x14f00…14f20 70 74 69 6f 6e 20 74 6f 20 74 68 65 20 72 75 6c 65 20 64 65 73 63 72 69 62 65 64 20 61 62 6f 76 ┆ption to the rule described abov┆
0x14f20…14f40 65 3a 20 69 66 20 74 68 65 20 6c 65 66 74 20 0a 6f 70 65 72 61 6e 64 20 6f 66 20 74 68 65 20 4f ┆e: if the left operand of the O┆
0x14f40…14f60 52 2d 6f 70 65 72 61 74 6f 72 20 69 73 20 6f 66 20 74 79 70 65 20 62 6f 6f 6c 65 61 6e 20 61 6e ┆R-operator is of type boolean an┆
0x14f60…14f80 64 20 68 61 73 20 76 61 6c 75 65 20 74 72 75 65 2c 20 0a 74 68 65 6e 20 74 68 65 20 65 76 61 6c ┆d has value true, then the eval┆
0x14f80…14fa0 75 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 72 69 67 68 74 20 6f 70 65 72 61 6e 64 20 69 73 20 6f ┆uation of the right operand is o┆
0x14fa0…14fc0 6d 69 74 74 65 64 3b 20 68 6f 77 80 65 76 65 72 2c 20 69 74 73 20 0a 74 79 70 65 20 6d 75 73 74 ┆mitted; howђever, its type must┆
0x14fc0…14fe0 20 73 74 69 6c 6c 20 62 65 20 62 6f 6f 6c 65 61 6e 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 37 30 ┆ still be boolean. ma syndia70┆
0x14fe0…15000 0d 0a 16 6d 61 20 73 79 6e 64 69 61 37 31 0d 0a 8c 83 f8 0a 54 68 65 20 65 76 61 6c 75 61 74 69 ┆ ma syndia71 їЃЭ The evaluati┆
0x15000…15020 6f 6e 20 6f 66 20 61 20 74 65 72 6d 20 70 72 6f 63 65 65 64 73 20 66 72 6f 6d 20 6c 65 66 74 20 ┆on of a term proceeds from left ┆
0x15020…15040 74 6f 20 72 69 67 68 74 20 69 6e 20 74 68 65 20 73 61 6d 65 20 0a 66 61 73 68 69 6f 6e 20 61 73 ┆to right in the same fashion as┆
0x15040…15060 20 66 6f 72 20 61 20 73 69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 20 28 69 2e 65 2e 20 73 ┆ for a simple expression (i.e. s┆
0x15060…15080 75 62 73 74 69 74 75 74 65 20 27 66 61 63 74 6f 72 27 20 66 6f 72 20 0a 27 74 65 72 6d 27 20 61 ┆ubstitute 'factor' for 'term' a┆
0x15080…150a0 6e 64 20 27 74 65 72 6d 27 20 66 6f 72 20 27 73 69 6d 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e ┆nd 'term' for 'simple expression┆
0x150a0…150c0 27 20 69 6e 20 74 68 65 20 61 62 6f 76 65 20 64 65 80 0a 73 63 72 69 70 74 69 6f 6e 29 2e 0d 0a ┆' in the above deђ scription). ┆
0x150c0…150e0 0d 0a 54 68 65 72 65 20 69 73 20 6f 6e 65 20 65 78 63 65 70 74 69 6f 6e 20 74 6f 20 74 68 65 20 ┆ There is one exception to the ┆
0x150e0…15100 67 65 6e 65 72 61 6c 20 72 75 6c 65 3a 20 69 66 20 74 68 65 20 6c 65 66 74 20 6f 70 65 80 72 61 ┆general rule: if the left opeђra┆
0x15100…15120 6e 64 20 0a 6f 66 20 74 68 65 20 41 4e 44 2d 6f 70 65 72 61 74 6f 72 20 69 73 20 6f 66 20 74 79 ┆nd of the AND-operator is of ty┆
0x15120…15140 70 65 20 62 6f 6f 6c 65 61 6e 20 61 6e 64 20 68 61 73 20 76 61 6c 75 65 20 66 61 6c 73 65 2c 20 ┆pe boolean and has value false, ┆
0x15140…15160 74 68 65 6e 20 0a 74 68 65 20 65 76 61 6c 75 61 80 74 69 6f 6e 20 6f 66 20 74 68 65 20 72 69 67 ┆then the evaluaђtion of the rig┆
0x15160…15180 68 74 20 6f 70 65 72 61 6e 64 20 69 73 20 6f 6d 69 74 74 65 64 3b 20 68 6f 77 65 76 65 72 2c 20 ┆ht operand is omitted; however, ┆
0x15180…151a0 69 74 73 20 74 79 70 65 20 0a 6d 75 73 74 20 73 74 69 6c 6c 20 62 65 20 62 6f 6f 6c 65 61 6e 2e ┆its type must still be boolean.┆
0x151a0…151c0 0d 0a 16 6d 61 20 73 79 6e 64 69 61 37 32 0d 0a 54 68 65 20 74 79 70 65 20 61 6e 64 20 76 61 6c ┆ ma syndia72 The type and val┆
0x151c0…151e0 75 65 20 6f 66 20 61 20 66 61 63 74 6f 72 20 61 72 65 20 6f 62 74 61 69 6e 65 64 20 61 73 20 64 ┆ue of a factor are obtained as d┆
0x151e0…15200 65 73 63 72 69 62 65 64 20 62 65 80 6c 6f 77 20 0a 66 6f 72 20 65 61 63 68 20 6f 66 20 74 68 65 ┆escribed beђlow for each of the┆
0x15200…15220 20 70 6f 73 73 69 62 6c 65 20 66 6f 72 6d 73 3a 0d 0a 0d 0a 6f 62 6a 65 63 74 20 64 65 6e 6f 74 ┆ possible forms: object denot┆
0x15220…15240 61 74 69 6f 6e 3a 0d 0a 8c 82 b8 0a 54 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 66 61 63 ┆ation: їѓИ The value of the fac┆
0x15240…15260 74 6f 72 20 69 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 64 65 6e 6f 74 65 64 20 ┆tor is the value of the denoted ┆
0x15260…15280 6f 62 6a 65 63 74 20 61 74 20 74 68 65 20 74 69 80 0a 6d 65 20 6f 66 20 65 76 61 6c 75 61 74 69 ┆object at the tiђ me of evaluati┆
0x15280…152a0 6f 6e 2e 20 54 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 66 61 63 74 6f 72 20 69 73 20 74 68 ┆on. The type of the factor is th┆
0x152a0…152c0 65 20 74 79 80 70 65 20 6f 66 20 74 68 65 20 64 65 6e 6f 74 65 64 20 0a 6f 62 6a 65 63 74 2c 20 ┆e tyђpe of the denoted object, ┆
0x152c0…152e0 65 78 63 65 70 74 20 69 66 20 74 68 69 73 20 74 79 70 65 20 69 73 20 61 20 73 75 62 72 61 6e 67 ┆except if this type is a subrang┆
0x152e0…15300 65 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 74 68 65 20 74 79 70 65 20 6f 66 20 0a 74 68 65 ┆e in which case the type of the┆
0x15300…15320 20 66 61 63 74 6f 72 20 69 73 20 74 68 65 20 62 61 73 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 ┆ factor is the base type of the ┆
0x15320…15340 73 75 62 72 61 6e 67 65 2e 20 49 66 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 0a 6f ┆subrange. If the value of the o┆
0x15340…15360 62 6a 65 63 74 20 69 73 20 75 6e 64 65 66 69 6e 65 64 20 28 6e 6f 74 20 69 6e 80 69 80 74 69 61 ┆bject is undefined (not inђiђtia┆
0x15360…15380 6c 69 7a 65 64 29 20 74 68 65 20 65 66 66 65 63 74 20 6f 66 20 65 76 61 6c 75 61 74 69 6e 67 20 ┆lized) the effect of evaluating ┆
0x15380…153a0 74 68 65 20 66 61 63 80 0a 74 6f 72 20 69 73 20 6e 6f 74 20 64 65 80 66 69 80 6e 65 64 2e 0d 0a ┆the facђ tor is not deђfiђned. ┆
0x153a0…153c0 0d 0a 76 61 6c 75 65 20 64 65 6e 6f 74 61 74 69 6f 6e 3a 0d 0a 54 68 65 20 74 79 70 65 20 61 6e ┆ value denotation: The type an┆
0x153c0…153e0 64 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 66 61 63 74 6f 72 20 61 72 65 20 74 68 65 20 74 79 ┆d value of the factor are the ty┆
0x153e0…15400 70 65 20 61 6e 64 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 0a 64 65 6e 6f 74 65 64 20 76 61 6c ┆pe and value of the denoted val┆
0x15400…15420 75 65 2c 20 63 66 2e 20 73 65 63 74 69 6f 6e 20 33 2e 31 32 2e 0d 0a 04 00 2d 4c 00 00 06 00 00 ┆ue, cf. section 3.12. -L ┆
0x15420…15440 00 00 02 01 41 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 ┆ A1 ┆
0x15440…15460 0f 19 24 2d 37 41 4b 55 5f 69 73 7d ff ff ff 04 04 00 2d 4c 00 00 06 00 00 00 00 02 01 41 31 00 ┆ $-7AKU_is} -L A1 ┆
0x15460…15480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 4b ┆ #-7AK┆
0x15480…154a0 55 5f 69 73 7d ff ff ff 04 0a 0d 0a 0e 0a 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 3a 09 34 2e 32 ┆U_is} function call: 4.2┆
0x154a0…154c0 0d 0a 74 79 70 65 73 69 7a 65 20 63 61 6c 6c 3a 09 33 2e 32 0d 0a 76 61 72 73 69 7a 65 20 63 61 ┆ typesize call: 3.2 varsize ca┆
0x154c0…154e0 6c 6c 3a 09 09 33 2e 31 31 2e 32 0d 0a 6c 69 6e 6b 20 63 61 6c 6c 3a 09 09 39 2e 31 0d 0a 75 6e ┆ll: 3.11.2 link call: 9.1 un┆
0x154e0…15500 6c 69 6e 6b 20 63 61 6c 6c 3a 09 09 39 2e 31 0d 0a 63 72 65 61 74 65 20 63 61 6c 6c 3a 09 09 39 ┆link call: 9.1 create call: 9┆
0x15500…15520 2e 31 0d 0a 0d 0a 0f 0a 54 68 65 20 74 79 70 65 20 61 6e 64 20 76 61 6c 75 65 20 6f 66 20 74 68 ┆.1 The type and value of th┆
0x15520…15540 65 20 66 61 63 74 6f 72 20 61 72 65 20 74 68 65 20 74 79 70 65 20 61 6e 64 20 76 61 6c 75 65 20 ┆e factor are the type and value ┆
0x15540…15560 6f 66 20 74 68 65 20 63 61 6c 6c 2c 20 0a 61 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 74 68 ┆of the call, as described in th┆
0x15560…15580 65 20 69 6e 64 69 63 61 74 65 64 20 73 65 63 74 69 6f 6e 2e 0d 0a 0d 0a 28 65 78 70 72 65 73 73 ┆e indicated section. (express┆
0x15580…155a0 69 6f 6e 29 3a 0d 0a 54 68 65 20 66 61 63 74 6f 72 20 69 73 20 65 76 61 6c 75 61 74 65 64 20 62 ┆ion): The factor is evaluated b┆
0x155a0…155c0 79 20 65 76 61 6c 75 61 74 69 6e 67 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 2e 20 54 68 65 ┆y evaluating the expression. The┆
0x155c0…155e0 20 74 79 70 65 20 61 6e 64 20 0a 76 61 6c 75 65 20 6f 66 20 74 68 65 20 66 61 63 74 6f 72 20 61 ┆ type and value of the factor a┆
0x155e0…15600 72 65 20 74 68 65 20 74 79 70 65 20 61 6e 64 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 65 78 70 ┆re the type and value of the exp┆
0x15600…15620 72 65 73 80 73 69 6f 6e 2e 0d 0a 0d 0a 4e 4f 54 20 6e 65 67 5f 66 61 63 74 6f 72 3a 0d 0a 74 68 ┆resђsion. NOT neg_factor: th┆
0x15620…15640 65 20 74 79 70 65 20 61 6e 64 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 66 61 63 74 6f 72 20 61 ┆e type and value of the factor a┆
0x15640…15660 72 65 20 6f 62 74 61 69 6e 65 64 20 62 79 20 65 76 61 6c 75 61 74 69 6e 67 20 74 68 65 20 0a 6e ┆re obtained by evaluating the n┆
0x15660…15680 65 67 5f 66 61 63 74 6f 72 20 61 6e 64 20 61 70 70 6c 79 69 6e 67 20 74 68 65 20 61 70 70 72 6f ┆eg_factor and applying the appro┆
0x15680…156a0 70 72 69 61 74 65 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 4e 4f 54 2d 6f 70 65 80 72 61 ┆priate version of the NOT-opeђra┆
0x156a0…156c0 74 6f 72 20 0a 74 6f 20 74 68 65 20 72 65 73 75 6c 74 2e 20 54 68 65 20 76 65 72 73 69 6f 6e 73 ┆tor to the result. The versions┆
0x156c0…156e0 20 6f 66 20 74 68 65 20 4e 4f 54 2d 6f 70 65 72 61 74 6f 72 20 61 72 65 20 64 65 80 73 63 72 69 ┆ of the NOT-operator are deђscri┆
0x156e0…15700 62 65 64 20 69 6e 20 73 75 62 80 0a 73 65 63 74 69 6f 6e 73 20 33 2e 34 2e 31 20 61 6e 64 20 33 ┆bed in subђ sections 3.4.1 and 3┆
0x15700…15720 2e 34 2e 33 2e 0d 0a 0d 0a a1 4e 6f 74 65 3a 0d 0a 54 68 65 20 70 72 65 63 65 64 65 6e 63 65 20 ┆.4.3. АNote: The precedence ┆
0x15720…15740 72 75 6c 65 73 20 6f 66 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 61 72 65 20 74 68 ┆rules of Real-Time Pascal are th┆
0x15740…15760 6f 73 65 20 6f 66 20 73 74 61 6e 80 64 61 72 64 20 0a 50 61 73 63 61 6c 20 77 68 69 63 68 20 64 ┆ose of stanђdard Pascal which d┆
0x15760…15780 69 66 66 65 72 20 66 72 6f 6d 20 74 68 65 20 72 75 6c 65 73 20 6f 66 20 6f 74 68 65 72 20 70 72 ┆iffer from the rules of other pr┆
0x15780…157a0 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e 67 75 61 80 67 65 73 20 0a 28 65 2e 67 2e 20 41 4c 47 4f ┆ogramming languaђges (e.g. ALGO┆
0x157a0…157c0 4c 20 61 6e 64 20 50 4c 2f 4d 20 6c 61 6e 67 75 61 67 65 73 29 2e 0d 0a 0d 0a a1 45 78 61 6d 70 ┆L and PL/M languages). АExamp┆
0x157c0…157e0 6c 65 3a 0d 0a 41 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 6f 66 20 74 68 65 20 70 72 65 ┆le: As a consequence of the pre┆
0x157e0…15800 63 65 64 65 6e 63 65 20 72 75 6c 65 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 73 20 6e ┆cedence rules the following is n┆
0x15800…15820 6f 74 20 61 20 6c 65 67 61 6c 20 0a 65 78 70 72 65 73 73 69 6f 6e 3a 0d 0a 20 09 30 3c 78 20 41 ┆ot a legal expression: 0<x A┆
0x15820…15840 4e 44 20 78 3c 31 30 0d 0a 54 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 73 68 6f 75 6c 64 20 62 ┆ND x<10 The expression should b┆
0x15840…15860 65 20 77 72 69 74 74 65 6e 20 61 73 3a 0d 0a 09 28 30 3c 78 29 20 41 4e 44 20 28 78 3c 31 30 29 ┆e written as: (0<x) AND (x<10)┆
0x15860…15880 0d 0a 16 73 62 0d 0a 46 75 6e 63 74 69 6f 6e 20 43 61 6c 6c 0d 0a 41 20 66 75 6e 63 74 69 6f 6e ┆ sb Function Call A function┆
0x15880…158a0 20 63 61 6c 6c 20 63 61 75 73 65 73 20 61 20 76 61 6c 75 65 20 74 6f 20 62 65 20 63 6f 6d 70 75 ┆ call causes a value to be compu┆
0x158a0…158c0 74 65 64 20 62 79 20 61 6e 20 61 63 74 69 76 61 80 74 69 6f 6e 20 6f 66 20 0a 74 68 65 20 69 6e ┆ted by an activaђtion of the in┆
0x158c0…158e0 64 69 63 61 74 65 64 20 66 75 6e 63 74 69 6f 6e 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 35 35 0d ┆dicated function. ma syndia55 ┆
0x158e0…15900 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 6d 75 73 74 20 62 65 20 74 68 65 20 6e ┆ The function name must be the n┆
0x15900…15920 61 6d 65 20 6f 66 20 61 20 66 75 6e 63 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 70 72 65 80 64 65 ┆ame of a function, either preђde┆
0x15920…15940 66 69 6e 65 64 20 0a 6f 72 20 70 72 6f 67 72 61 6d 6d 65 72 2d 64 65 66 69 6e 65 64 2e 20 45 76 ┆fined or programmer-defined. Ev┆
0x15940…15960 61 6c 75 61 74 69 6f 6e 20 6f 66 20 61 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 74 61 80 6b ┆aluation of a function call taђk┆
0x15960…15980 65 73 20 70 6c 61 63 65 20 69 6e 20 0a 74 77 6f 20 73 74 65 70 73 3a 0d 0a 0d 0a 31 2e 20 84 54 ┆es place in two steps: 1. ёT┆
0x15980…159a0 68 65 20 61 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 73 20 61 72 65 20 65 76 61 6c 75 61 74 ┆he actual parameters are evaluat┆
0x159a0…159c0 65 64 20 69 6e 20 74 68 65 20 6f 72 64 65 72 20 6f 66 20 6f 63 80 80 63 75 72 80 72 65 6e 63 65 ┆ed in the order of ocђђcurђrence┆
0x159c0…159e0 2e 0d 0a 32 2e 20 84 41 6e 20 61 63 74 69 76 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 62 6c 6f 63 ┆. 2. ёAn activation of the bloc┆
0x159e0…15a00 6b 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e ┆k associated with the function n┆
0x15a00…15a20 61 6d 65 20 69 73 20 0a 19 83 80 80 63 72 65 61 74 65 64 20 61 6e 64 20 65 78 65 63 75 74 65 64 ┆ame is Ѓђђcreated and executed┆
0x15a20…15a40 2c 20 63 66 2e 20 63 68 61 70 74 65 72 20 36 2e 0d 0a 0d 0a 54 68 65 20 74 79 70 65 20 6f 66 20 ┆, cf. chapter 6. The type of ┆
0x15a40…15a60 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 69 73 20 74 68 65 20 72 65 73 75 6c 74 20 ┆the function call is the result ┆
0x15a60…15a80 74 79 70 65 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2e 20 54 68 65 20 0a 76 61 6c 75 65 ┆type of the function. The value┆
0x15a80…15aa0 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 69 73 20 74 68 65 20 76 61 6c ┆ of the function call is the val┆
0x15aa0…15ac0 75 65 20 6f 66 20 74 68 65 20 69 6d 70 6c 69 63 69 74 20 72 65 73 75 6c 74 20 6f 62 6a 65 63 74 ┆ue of the implicit result object┆
0x15ac0…15ae0 20 0a 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20 61 63 74 69 76 61 74 69 6f 6e ┆ associated with the activation┆
0x15ae0…15b00 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 62 6c 6f 63 6b 20 77 68 65 6e 20 74 68 65 20 ┆ of the function block when the ┆
0x15b00…15b20 65 78 65 63 75 80 0a 74 69 6f 6e 20 6f 66 20 69 74 73 20 61 63 74 69 6f 6e 20 70 61 72 74 20 74 ┆execuђ tion of its action part t┆
0x15b20…15b40 65 72 80 6d 69 80 6e 61 74 65 73 2e 20 49 66 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 75 6e 80 ┆erђmiђnates. If the value is unђ┆
0x15b40…15b60 64 65 66 69 6e 65 64 20 28 6e 6f 20 61 73 80 0a 73 69 67 6e 6d 65 6e 74 29 20 74 68 65 20 65 66 ┆defined (no asђ signment) the ef┆
0x15b60…15b80 80 66 65 63 74 20 6f 66 20 65 76 61 6c 75 61 74 69 6e 67 20 74 68 65 20 66 75 6e 63 74 69 6f 6e ┆ђfect of evaluating the function┆
0x15b80…15ba0 20 63 61 6c 6c 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2e 0d 0a 0d 0a 44 65 74 61 69 6c 65 ┆ call is not defined. Detaile┆
0x15ba0…15bc0 64 20 72 75 6c 65 73 20 66 6f 72 20 61 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 73 20 61 72 ┆d rules for actual parameters ar┆
0x15bc0…15be0 65 20 64 65 63 72 69 62 65 64 20 69 6e 20 73 65 63 74 69 6f 6e 20 36 2e 31 2e 0d 0a 16 73 62 0d ┆e decribed in section 6.1. sb ┆
0x15be0…15c00 0a 43 6f 6e 73 74 61 6e 74 20 45 78 70 72 65 73 73 69 6f 6e 73 0d 0a 43 6f 6e 73 74 61 6e 74 20 ┆ Constant Expressions Constant ┆
0x15c00…15c20 65 78 70 72 65 73 73 69 6f 6e 73 20 63 61 6e 20 62 65 20 65 76 61 6c 75 61 74 65 64 20 61 74 20 ┆expressions can be evaluated at ┆
0x15c20…15c40 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 20 4f 6e 6c 79 20 bf dc d8 63 6f 6e 73 74 61 6e 74 20 0a ┆compile-time. Only ┐▄пconstant ┆
0x15c40…15c60 65 78 70 72 65 73 73 69 6f 6e be 73 20 6d 61 79 20 62 65 20 75 73 65 64 20 69 6e 20 63 6f 6e 73 ┆expressionЙs may be used in cons┆
0x15c60…15c80 74 61 6e 74 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2e 20 49 66 20 61 6c 6c 20 65 78 70 72 65 73 ┆tant declarations. If all expres┆
0x15c80…15ca0 73 69 6f 6e 73 20 0a 75 73 65 64 20 69 6e 20 61 20 74 79 70 65 20 64 65 66 69 6e 69 74 69 6f 6e ┆sions used in a type definition┆
0x15ca0…15cc0 20 61 72 65 20 63 6f 6e 73 74 61 6e 74 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 68 65 20 74 79 ┆ are constant expressions the ty┆
0x15cc0…15ce0 70 65 20 69 73 20 73 61 69 64 20 74 6f 20 0a 62 65 20 73 74 61 74 69 63 2e 0d 0a 0d 0a 8c 8c b0 ┆pe is said to be static. її░┆
0x15ce0…15d00 0a 43 6f 6e 73 74 61 6e 74 20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 72 65 63 75 72 73 ┆ Constant expressions are recurs┆
0x15d00…15d20 69 76 65 6c 79 20 64 65 66 69 6e 65 64 20 62 79 20 74 68 65 20 66 6f 6c 6c 6f 80 80 77 69 6e 67 ┆ively defined by the folloђђwing┆
0x15d20…15d40 20 72 65 80 73 74 72 69 63 80 0a 74 69 6f 6e 73 2e 0d 0a 0d 0a 31 2e 20 41 6c 6c 20 64 65 6e 6f ┆ reђstricђ tions. 1. All deno┆
0x15d40…15d60 74 65 64 20 6f 62 6a 65 63 74 73 20 6d 75 73 74 20 62 65 20 63 6f 6e 73 74 61 6e 74 73 2e 0d 0a ┆ted objects must be constants. ┆
0x15d60…15d80 32 2e 20 84 4f 6e 6c 79 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 28 70 72 65 64 65 66 69 6e ┆2. ёOnly the following (predefin┆
0x15d80…15da0 65 64 29 20 66 75 6e 63 74 69 6f 6e 73 20 6d 61 79 20 62 65 20 63 61 6c 6c 65 64 3a 20 61 62 73 ┆ed) functions may be called: abs┆
0x15da0…15dc0 2c 20 63 68 72 2c 20 0a 19 83 80 80 6f 72 64 2c 20 70 72 65 64 2c 20 61 6e 64 20 73 75 63 63 2e ┆, chr, Ѓђђord, pred, and succ.┆
0x15dc0…15de0 0d 0a 33 2e 20 41 6e 79 20 74 79 70 65 73 69 7a 65 20 63 61 6c 6c 20 6d 75 73 74 20 6e 61 6d 65 ┆ 3. Any typesize call must name┆
0x15de0…15e00 20 61 20 73 74 61 74 69 63 20 74 79 70 65 2e 0d 0a 34 2e 20 84 27 6c 69 6e 6b 20 63 61 6c 6c 27 ┆ a static type. 4. ё'link call'┆
0x15e00…15e20 2c 20 27 75 6e 6c 69 6e 6b 20 63 61 6c 6c 27 2c 20 61 6e 64 20 27 63 72 65 61 74 65 20 63 61 6c ┆, 'unlink call', and 'create cal┆
0x15e20…15e40 6c 27 20 6d 75 73 74 20 6e 6f 74 20 6f 63 63 75 72 2e 0d 0a 35 2e 20 46 61 63 74 6f 72 73 20 6f ┆l' must not occur. 5. Factors o┆
0x15e40…15e60 66 20 73 65 74 20 74 79 70 65 73 20 6d 75 73 74 20 6e 6f 74 20 6f 63 63 75 72 2e 0d 0a 16 73 61 ┆f set types must not occur. sa┆
0x15e60…15e80 0d 0a 53 54 41 54 45 4d 45 4e 54 53 0d 0a 54 68 69 73 20 63 68 61 70 74 65 72 20 63 6f 6e 74 61 ┆ STATEMENTS This chapter conta┆
0x15e80…15ea0 69 6e 73 20 73 75 62 73 65 63 74 69 6f 6e 73 20 64 65 73 63 72 69 62 69 6e 67 20 74 68 65 20 73 ┆ins subsections describing the s┆
0x15ea0…15ec0 79 6e 74 61 78 20 61 6e 64 20 74 68 65 20 75 73 65 20 6f 66 20 0a 74 68 65 20 64 69 66 66 65 72 ┆yntax and the use of the differ┆
0x15ec0…15ee0 65 6e 74 20 73 74 61 74 65 6d 65 6e 74 73 20 77 68 69 63 68 20 61 72 65 20 69 6e 63 6c 75 64 65 ┆ent statements which are include┆
0x15ee0…15f00 64 20 69 6e 20 74 68 65 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 0a 6c 61 6e 67 75 ┆d in the Real-Time Pascal langu┆
0x15f00…15f20 61 67 65 2e 20 4d 6f 73 74 20 6f 66 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 73 20 61 72 65 20 ┆age. Most of the statements are ┆
0x15f20…15f40 61 6c 73 6f 20 66 6f 75 6e 64 20 69 6e 20 73 74 61 6e 64 61 72 64 20 50 61 73 63 61 6c 20 0a 61 ┆also found in standard Pascal a┆
0x15f40…15f60 6e 64 20 61 72 65 20 77 65 6c 6c 20 6b 6e 6f 77 6e 20 6c 61 6e 67 75 61 67 65 20 65 6c 65 6d 65 ┆nd are well known language eleme┆
0x15f60…15f80 6e 74 73 2e 0d 0a 16 73 62 0d 0a 43 6f 6d 70 6f 75 6e 64 20 53 74 61 74 65 6d 65 6e 74 0d 0a 0d ┆nts. sb Compound Statement ┆
0x15f80…15fa0 0a 54 68 65 20 73 74 61 74 65 6d 65 6e 74 73 20 6f 66 20 61 20 70 72 6f 67 72 61 6d 20 64 65 73 ┆ The statements of a program des┆
0x15fa0…15fc0 63 72 69 62 65 20 74 68 65 20 61 63 74 69 6f 6e 73 20 77 68 69 63 68 20 61 72 65 20 65 78 80 65 ┆cribe the actions which are exђe┆
0x15fc0…15fe0 63 75 74 65 64 20 0a 62 79 20 61 6e 20 69 6e 63 61 72 6e 61 74 69 6f 6e 2e 20 54 68 65 73 65 20 ┆cuted by an incarnation. These ┆
0x15fe0…16000 73 74 61 74 65 6d 65 6e 74 73 20 61 72 65 20 63 6f 6c 6c 65 63 74 65 64 20 69 6e 20 61 20 63 6f ┆statements are collected in a co┆
0x16000…16020 6d 70 6f 75 6e 64 20 0a 73 74 61 74 65 6d 65 6e 74 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 34 30 ┆mpound statement. ma syndia40┆
0x16020…16040 0d 0a 54 68 65 20 73 74 61 74 65 6d 65 6e 74 73 20 61 72 65 20 65 78 65 63 75 74 65 64 20 6f 6e ┆ The statements are executed on┆
0x16040…16060 65 20 61 74 20 61 20 74 69 6d 65 20 69 6e 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 6f 72 80 ┆e at a time in the specified orђ┆
0x16060…16080 64 65 72 2e 20 0a 57 68 65 6e 20 61 6c 6c 20 68 61 76 65 20 62 65 65 6e 20 65 78 65 63 75 74 65 ┆der. When all have been execute┆
0x16080…160a0 64 20 74 68 65 20 63 6f 6d 70 6f 75 6e 64 20 73 74 61 74 65 6d 65 6e 74 20 68 61 73 20 62 65 65 ┆d the compound statement has bee┆
0x160a0…160c0 6e 20 0a 63 6f 6d 70 6c 65 74 65 6c 79 20 65 78 65 63 75 74 65 64 20 6f 72 20 a0 65 78 68 61 75 ┆n completely executed or аexhau┆
0x160c0…160e0 73 74 65 64 e0 2e 0d 0a 0d 0a 42 65 6c 6f 77 2c 20 61 6c 6c 20 73 74 61 74 65 6d 65 6e 74 20 66 ┆stedЯ. Below, all statement f┆
0x160e0…16100 6f 72 6d 73 20 61 72 65 20 67 69 76 65 6e 20 74 6f 67 65 74 68 65 72 20 77 69 74 68 20 72 65 66 ┆orms are given together with ref┆
0x16100…16120 65 72 65 6e 63 65 20 74 6f 20 74 68 65 69 72 20 0a 70 72 65 63 69 73 65 20 64 65 63 72 69 70 74 ┆erence to their precise decript┆
0x16120…16140 69 6f 6e 3a 0d 0a 16 6d 61 20 73 79 6e 64 69 61 34 31 0d 0a 8c 84 d8 0a a1 4e 6f 74 65 3a 0d 0a ┆ion: ma syndia41 їёп АNote: ┆
0x16140…16160 53 74 61 74 65 6d 65 6e 74 20 6d 61 79 20 62 65 20 65 6d 70 74 79 2e 0d 0a 16 73 62 0d 0a 44 61 ┆Statement may be empty. sb Da┆
0x16160…16180 74 61 20 54 72 61 6e 73 66 65 72 20 53 74 61 74 65 6d 65 6e 74 73 0d 0a 41 73 73 69 67 6e 6d 65 ┆ta Transfer Statements Assignme┆
0x16180…161a0 6e 74 20 61 6e 64 20 65 78 63 68 61 6e 67 65 20 73 74 61 74 65 6d 65 6e 74 73 20 61 72 65 20 74 ┆nt and exchange statements are t┆
0x161a0…161c0 68 65 20 62 61 73 69 63 20 62 75 69 6c 64 69 6e 67 20 62 6c 6f 63 6b 73 20 66 6f 72 20 0a 6f 74 ┆he basic building blocks for ot┆
0x161c0…161e0 68 65 72 20 74 79 70 65 73 20 6f 66 20 73 74 61 74 65 6d 65 6e 74 73 2e 20 54 68 65 79 20 73 65 ┆her types of statements. They se┆
0x161e0…16200 72 76 65 20 74 6f 20 74 72 61 6e 73 66 65 72 20 76 61 6c 75 65 73 20 74 6f 20 6f 62 6a 65 63 74 ┆rve to transfer values to object┆
0x16200…16220 73 2e 0d 0a 16 73 63 0d 0a 41 73 73 69 67 6e 6d 65 6e 74 20 53 74 61 74 65 6d 65 6e 74 0d 0a 54 ┆s. sc Assignment Statement T┆
0x16220…16240 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6e 20 bf dc d8 61 73 73 69 67 6e 6d 65 6e 74 ┆he execution of an ┐▄пassignment┆
0x16240…16260 20 73 74 61 74 65 6d 65 6e 74 be 20 63 61 75 73 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 76 ┆ statementЙ causes the current v┆
0x16260…16280 61 6c 75 65 20 6f 66 20 0a 61 20 76 61 72 69 61 62 6c 65 20 74 6f 20 62 65 20 72 65 70 6c 61 63 ┆alue of a variable to be replac┆
0x16280…162a0 65 64 20 77 69 74 68 20 61 20 6e 65 77 20 76 61 6c 75 65 20 73 70 65 63 69 80 80 66 69 65 64 20 ┆ed with a new value speciђђfied ┆
0x162a0…162c0 62 79 20 61 6e 20 65 78 70 72 65 73 80 0a 73 69 6f 6e 2e 20 54 68 65 20 72 69 67 68 74 20 68 61 ┆by an expresђ sion. The right ha┆
0x162c0…162e0 6e 64 20 73 69 64 65 20 65 78 70 72 65 73 73 69 6f 6e 20 6d 75 73 74 20 62 65 20 6f 66 20 61 20 ┆nd side expression must be of a ┆
0x162e0…16300 74 79 70 65 20 77 68 69 63 68 20 69 73 20 61 73 80 0a 73 69 67 6e 6d 65 6e 74 20 63 6f 6d 70 61 ┆type which is asђ signment compa┆
0x16300…16320 74 69 62 6c 65 20 28 63 66 2e 20 73 65 63 74 69 6f 6e 20 33 2e 39 29 20 77 69 74 68 20 74 68 65 ┆tible (cf. section 3.9) with the┆
0x16320…16340 20 74 79 70 65 20 6f 66 20 74 68 65 20 76 61 72 69 61 62 6c 65 2e 0d 0a 16 6d 61 20 73 79 6e 64 ┆ type of the variable. ma synd┆
0x16340…16360 69 61 34 32 0d 0a 54 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6e 20 61 73 73 69 67 6e ┆ia42 The execution of an assign┆
0x16360…16380 6d 65 6e 74 20 73 74 61 74 65 6d 65 6e 74 20 74 61 6b 65 73 20 70 6c 61 63 65 20 69 6e 20 66 6f ┆ment statement takes place in fo┆
0x16380…163a0 75 72 20 73 74 65 70 73 3a 0d 0a 0d 0a 31 29 20 84 54 68 65 20 76 61 72 69 61 62 6c 65 20 64 65 ┆ur steps: 1) ёThe variable de┆
0x163a0…163c0 6e 6f 74 61 74 69 6f 6e 20 69 73 20 65 76 61 6c 75 61 74 65 64 20 61 73 20 61 6e 20 6f 62 6a 65 ┆notation is evaluated as an obje┆
0x163c0…163e0 63 74 20 65 78 70 72 65 73 80 73 69 6f 6e 2e 0d 0a 0d 0a 32 29 20 54 68 65 20 72 69 67 68 74 20 ┆ct expresђsion. 2) The right ┆
0x163e0…16400 68 61 6e 64 20 73 69 64 65 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 65 76 61 6c 75 61 74 65 ┆hand side expression is evaluate┆
0x16400…16420 64 2e 0d 0a 0d 0a 33 29 20 84 74 68 65 20 72 75 6e 2d 74 69 6d 65 20 70 61 72 74 20 6f 66 20 74 ┆d. 3) ёthe run-time part of t┆
0x16420…16440 68 65 20 74 79 70 65 20 63 68 65 63 6b 69 6e 67 2c 20 69 6e 63 6c 75 64 69 6e 67 20 74 65 73 74 ┆he type checking, including test┆
0x16440…16460 73 20 66 6f 72 20 72 61 6e 67 65 20 0a 19 83 80 80 63 6f 6e 73 74 72 61 69 6e 74 73 2c 20 69 73 ┆s for range Ѓђђconstraints, is┆
0x16460…16480 20 70 65 72 66 6f 72 6d 65 64 2e 20 41 20 66 61 75 6c 74 20 6f 63 63 75 72 73 20 69 66 20 73 6f ┆ performed. A fault occurs if so┆
0x16480…164a0 6d 65 20 63 6f 6e 80 73 74 72 61 69 6e 74 20 69 73 20 0a 19 83 80 80 76 69 6f 6c 61 74 65 64 2e ┆me conђstraint is Ѓђђviolated.┆
0x164a0…164c0 0d 0a 0d 0a 34 29 20 84 54 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 65 78 70 72 65 73 73 ┆ 4) ёThe value of the express┆
0x164c0…164e0 69 6f 6e 20 72 65 70 6c 61 63 65 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 76 61 ┆ion replaces the value of the va┆
0x164e0…16500 80 72 69 80 61 62 6c 65 2e 0d 0a 0d 0a 8c 84 90 0a 41 73 73 69 67 6e 6d 65 6e 74 73 20 63 61 6e ┆ђriђable. їёљ Assignments can┆
0x16500…16520 6e 6f 74 20 62 65 20 6d 61 64 65 20 74 6f 20 76 61 72 69 61 62 6c 65 73 20 6f 66 20 73 68 69 65 ┆not be made to variables of shie┆
0x16520…16540 6c 64 65 64 20 74 79 70 65 73 20 6f 72 20 6f 66 20 0a 73 74 72 75 63 74 75 72 65 64 20 74 79 70 ┆lded types or of structured typ┆
0x16540…16560 65 73 20 77 69 74 68 20 73 68 69 65 6c 64 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 20 74 79 70 65 73 ┆es with shielded component types┆
0x16560…16580 2e 0d 0a 0d 0a a1 45 78 61 6d 70 6c 65 73 3a 0d 0a 63 75 72 72 65 6e 74 5f 69 6e 64 65 78 3a 3d ┆. АExamples: current_index:=┆
0x16580…165a0 20 63 75 72 72 65 6e 74 5f 69 6e 64 65 78 2b 31 0d 0a 63 61 74 61 6c 6f 67 28 63 75 72 72 65 6e ┆ current_index+1 catalog(curren┆
0x165a0…165c0 74 5f 69 6e 64 65 78 29 2e 61 75 74 68 6f 72 3a 3d 20 22 41 6e 64 65 72 73 65 6e 20 48 20 43 22 ┆t_index).author:= "Andersen H C"┆
0x165c0…165e0 0d 0a 6d 61 74 72 69 78 3a 3d 20 6d 61 74 72 69 78 5f 74 79 70 65 28 3a 84 28 3a 31 2c 20 30 2c ┆ matrix:= matrix_type(:ё(:1, 0,┆
0x165e0…16600 20 30 3a 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 30 2c 20 ┆ 0:), (:0, ┆
0x16600…16620 31 2c 20 30 3a 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 30 ┆1, 0:), (:0┆
0x16620…16640 2c 20 30 2c 20 31 3a 29 3a 29 0d 0a 16 73 63 0d 0a 45 78 63 68 61 6e 67 65 20 53 74 61 74 65 6d ┆, 0, 1:):) sc Exchange Statem┆
0x16640…16660 65 6e 74 0d 0a 54 68 65 20 76 61 6c 75 65 73 20 6f 66 20 74 77 6f 20 76 61 72 69 61 62 6c 65 73 ┆ent The values of two variables┆
0x16660…16680 20 6d 61 79 20 62 65 20 65 78 63 68 61 6e 67 65 64 20 62 79 20 74 68 65 20 65 78 65 63 75 80 80 ┆ may be exchanged by the execuђђ┆
0x16680…166a0 74 69 6f 6e 20 6f 66 20 61 6e 20 0a bf dc d8 65 78 63 68 61 6e 67 65 20 73 74 61 74 65 6d 65 6e ┆tion of an ┐▄пexchange statemen┆
0x166a0…166c0 74 be 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 34 34 0d 0a 54 68 65 20 64 65 6e 6f 74 65 64 20 6f ┆tЙ. ma syndia44 The denoted o┆
0x166c0…166e0 62 6a 65 63 74 73 20 6d 75 73 74 20 62 65 20 76 61 72 69 61 62 6c 65 73 2c 20 61 6e 64 20 74 68 ┆bjects must be variables, and th┆
0x166e0…16700 65 79 20 6d 75 73 74 20 62 65 20 6f 66 20 74 68 65 20 73 61 6d 65 20 0a 74 79 70 65 2c 20 63 66 ┆ey must be of the same type, cf┆
0x16700…16720 2e 20 73 65 63 74 69 6f 6e 20 33 2e 39 2e 20 54 68 69 73 20 74 79 70 65 2c 20 6f 72 20 61 6e 79 ┆. section 3.9. This type, or any┆
0x16720…16740 20 6f 66 20 69 74 73 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 74 79 70 65 73 2c 20 6d 75 73 74 20 0a ┆ of its components types, must ┆
0x16740…16760 6e 6f 74 20 62 65 20 6d 61 69 6c 62 6f 78 2c 20 70 6f 6f 6c 2c 20 63 68 61 69 6e 2c 20 6f 72 20 ┆not be mailbox, pool, chain, or ┆
0x16760…16780 70 6f 72 74 2e 0d 0a 0d 0a 54 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6e 20 65 78 63 ┆port. The execution of an exc┆
0x16780…167a0 68 61 6e 67 65 20 73 74 61 74 65 6d 65 6e 74 20 74 61 6b 65 73 20 70 6c 61 63 65 20 69 6e 20 74 ┆hange statement takes place in t┆
0x167a0…167c0 77 6f 20 73 74 65 70 73 3a 0d 0a 0d 0a 31 29 20 84 54 68 65 20 61 64 64 72 65 73 73 65 73 20 6f ┆wo steps: 1) ёThe addresses o┆
0x167c0…167e0 66 20 74 68 65 20 6c 65 66 74 20 68 61 6e 64 20 73 69 64 65 20 61 6e 64 20 72 69 67 68 74 20 68 ┆f the left hand side and right h┆
0x167e0…16800 61 6e 64 20 73 69 64 65 20 76 61 72 69 80 61 62 6c 65 73 20 0a 19 83 80 80 61 72 65 20 65 76 61 ┆and side variђables Ѓђђare eva┆
0x16800…16820 6c 75 61 74 65 64 2c 20 69 6e 20 74 68 61 74 20 6f 72 64 65 72 2e 0d 0a 0d 0a 32 29 20 84 54 68 ┆luated, in that order. 2) ёTh┆
0x16820…16840 65 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 73 20 6c 6f 63 61 74 65 64 20 ┆e values of the objects located ┆
0x16840…16860 61 74 20 74 68 65 20 61 64 64 72 65 73 73 65 73 20 65 76 61 6c 75 80 61 74 65 64 20 69 6e 20 0a ┆at the addresses evaluђated in ┆
0x16860…16880 19 83 80 80 73 74 65 70 20 31 20 61 72 65 20 69 6e 74 65 72 63 68 61 6e 67 65 64 2e 0d 0a 0d 0a ┆ Ѓђђstep 1 are interchanged. ┆
0x16880…168a0 49 66 20 74 68 65 20 74 77 6f 20 76 61 72 69 61 62 6c 65 73 20 61 72 65 20 6f 66 20 74 79 70 65 ┆If the two variables are of type┆
0x168a0…168c0 20 72 65 66 65 72 65 6e 63 65 2c 20 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 6d 2c 20 6f 72 ┆ reference, external program, or┆
0x168c0…168e0 20 0a 70 72 6f 63 65 73 73 20 6f 72 20 69 66 20 74 68 65 79 20 68 61 76 65 20 63 6f 6d 70 6f 6e ┆ process or if they have compon┆
0x168e0…16900 65 6e 74 73 20 6f 66 20 74 68 65 73 65 20 74 79 70 65 73 2c 20 74 68 65 20 69 6e 74 65 72 63 68 ┆ents of these types, the interch┆
0x16900…16920 61 6e 67 65 20 0a 74 61 6b 65 73 20 70 6c 61 63 65 20 61 73 20 61 6e 20 69 6e 80 64 69 76 69 73 ┆ange takes place as an inђdivis┆
0x16920…16940 69 62 6c 65 20 6f 70 65 72 61 74 69 6f 6e 20 73 6f 20 74 68 61 74 20 74 68 65 20 69 6e 74 65 67 ┆ible operation so that the integ┆
0x16940…16960 72 69 74 79 20 6f 66 20 0a 72 65 66 65 72 65 6e 63 65 73 20 74 6f 20 6d 65 73 73 61 67 65 73 20 ┆rity of references to messages ┆
0x16960…16980 61 6e 64 20 70 72 6f 63 65 73 73 65 73 20 69 73 20 70 72 65 73 65 72 76 65 64 2e 0d 0a 0d 0a a1 ┆and processes is preserved. А┆
0x16980…169a0 45 78 61 6d 70 6c 65 73 3a 0d 0a 63 75 72 72 65 6e 74 5f 6d 65 73 73 61 67 65 5f 72 65 66 3a 3d ┆Examples: current_message_ref:=┆
0x169a0…169c0 3a 74 65 6d 70 5f 6d 65 73 73 61 67 65 0d 0a 6d 61 74 72 69 78 28 69 29 3a 3d 3a 6d 61 74 72 69 ┆:temp_message matrix(i):=:matri┆
0x169c0…169e0 78 28 6a 29 0d 0a 16 73 62 0d 0a 49 66 20 53 74 61 74 65 6d 65 6e 74 0d 0a 41 6e 20 bf dc d8 69 ┆x(j) sb If Statement An ┐▄пi┆
0x169e0…16a00 66 20 73 74 61 74 65 6d 65 6e 74 be 20 73 65 6c 65 63 74 73 20 66 6f 72 20 65 78 65 63 75 74 69 ┆f statementЙ selects for executi┆
0x16a00…16a20 6f 6e 20 6f 6e 65 20 6f 66 20 74 77 6f 20 28 70 6f 73 73 69 62 6c 79 20 65 6d 70 80 74 79 29 20 ┆on one of two (possibly empђty) ┆
0x16a20…16a40 0a 73 74 61 74 65 6d 65 6e 74 73 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 76 61 6c ┆ statements depending on the val┆
0x16a40…16a60 75 65 20 6f 66 20 61 20 63 6f 6e 64 69 74 69 6f 6e 2e 20 54 68 65 20 65 78 80 70 72 65 73 73 69 ┆ue of a condition. The exђpressi┆
0x16a60…16a80 6f 6e 20 73 70 65 80 0a 63 69 66 79 69 6e 67 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 20 6d 75 ┆on speђ cifying the condition mu┆
0x16a80…16aa0 73 74 20 62 65 20 6f 66 20 74 68 65 20 70 72 65 64 65 80 66 69 80 6e 65 64 20 74 79 70 65 20 62 ┆st be of the predeђfiђned type b┆
0x16aa0…16ac0 6f 6f 6c 65 61 6e 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 34 35 0d 0a 54 68 65 20 65 78 65 63 75 ┆oolean. ma syndia45 The execu┆
0x16ac0…16ae0 74 69 6f 6e 20 6f 66 20 61 6e 20 69 66 20 73 74 61 74 65 6d 65 6e 74 20 74 61 6b 65 73 20 70 6c ┆tion of an if statement takes pl┆
0x16ae0…16b00 61 63 65 20 69 6e 20 74 77 6f 20 73 74 65 70 73 3a 0d 0a 0d 0a 31 29 20 54 68 65 20 76 61 6c 75 ┆ace in two steps: 1) The valu┆
0x16b00…16b20 65 20 6f 66 20 74 68 65 20 62 6f 6f 6c 65 61 6e 5f 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 65 ┆e of the boolean_expression is e┆
0x16b20…16b40 76 61 6c 75 61 74 65 64 2e 0d 0a 0d 0a 32 29 20 84 49 66 20 74 68 65 20 65 78 70 72 65 73 73 69 ┆valuated. 2) ёIf the expressi┆
0x16b40…16b60 6f 6e 20 65 76 61 6c 75 61 74 65 73 20 74 6f 20 74 72 75 65 20 74 68 65 20 73 74 61 74 65 6d 65 ┆on evaluates to true the stateme┆
0x16b60…16b80 6e 74 20 66 6f 6c 6c 6f 80 77 69 6e 67 20 54 48 45 4e 20 0a 19 83 80 80 69 73 20 65 78 65 63 75 ┆nt folloђwing THEN Ѓђђis execu┆
0x16b80…16ba0 74 65 64 2e 20 4f 74 68 65 72 77 69 73 65 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 20 61 66 74 ┆ted. Otherwise the statement aft┆
0x16ba0…16bc0 65 72 20 45 4c 53 45 20 28 69 66 20 70 72 65 73 65 6e 74 29 20 69 73 20 0a 19 83 80 80 65 78 65 ┆er ELSE (if present) is Ѓђђexe┆
0x16bc0…16be0 63 75 74 65 64 2e 0d 0a 0d 0a 54 68 65 20 61 6d 62 69 67 75 6f 75 73 20 73 74 61 74 65 6d 65 6e ┆cuted. The ambiguous statemen┆
0x16be0…16c00 74 3a 0d 0a 09 09 49 46 20 65 31 20 54 48 45 4e 20 49 46 20 65 32 20 54 48 45 4e 20 73 31 20 45 ┆t: IF e1 THEN IF e2 THEN s1 E┆
0x16c00…16c20 4c 53 45 20 73 32 0d 0a 69 73 20 64 65 66 69 6e 65 64 20 74 6f 20 62 65 20 65 71 75 69 76 61 6c ┆LSE s2 is defined to be equival┆
0x16c20…16c40 65 6e 74 20 74 6f 3a 0d 0a 09 09 49 46 20 65 31 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 20 ┆ent to: IF e1 THEN ┆
0x16c40…16c60 20 20 20 20 20 42 45 47 49 4e 0d 0a 09 09 20 20 49 46 20 65 32 20 54 48 45 4e 20 73 31 20 45 4c ┆ BEGIN IF e2 THEN s1 EL┆
0x16c60…16c80 53 45 20 73 32 0d 0a 09 09 45 4e 44 0d 0a 0d 0a a1 45 78 61 6d 70 6c 65 73 3a 0d 0a 49 46 20 64 ┆SE s2 END АExamples: IF d┆
0x16c80…16ca0 61 79 3d 53 61 74 75 72 64 61 79 20 54 48 45 4e 0d 0a 20 20 64 61 79 3a 3d 20 53 75 6e 64 61 79 ┆ay=Saturday THEN day:= Sunday┆
0x16ca0…16cc0 0d 0a 45 4c 53 45 0d 0a 20 20 64 61 79 3a 3d 20 73 75 63 63 28 64 61 79 29 0d 0a 0d 0a 49 46 20 ┆ ELSE day:= succ(day) IF ┆
0x16cc0…16ce0 74 65 73 74 20 54 48 45 4e 20 70 72 6f 64 75 63 65 5f 74 65 73 74 5f 72 65 63 6f 72 64 0d 0a 16 ┆test THEN produce_test_record ┆
0x16ce0…16d00 73 62 0d 0a 43 61 73 65 20 53 74 61 74 65 6d 65 6e 74 0d 0a 41 20 bf dc d8 63 61 73 65 20 73 74 ┆sb Case Statement A ┐▄пcase st┆
0x16d00…16d20 61 74 65 6d 65 6e 74 be 20 73 65 6c 65 63 74 73 20 66 6f 72 20 65 78 65 63 75 74 69 6f 6e 20 6f ┆atementЙ selects for execution o┆
0x16d20…16d40 6e 65 20 6f 66 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 61 6c 80 74 65 72 6e 61 74 69 76 65 20 0a ┆ne of a number of alђternative ┆
0x16d40…16d60 73 74 61 74 65 6d 65 6e 74 73 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 76 61 6c ┆statements, depending on the val┆
0x16d60…16d80 75 65 20 6f 66 20 61 6e 20 65 78 70 72 65 73 80 73 69 6f 6e 2e 20 54 68 65 20 65 78 70 72 65 73 ┆ue of an expresђsion. The expres┆
0x16d80…16da0 73 69 6f 6e 20 0a 6d 75 73 74 20 62 65 20 6f 66 20 61 6e 20 6f 72 64 69 6e 61 6c 20 74 79 70 65 ┆sion must be of an ordinal type┆
0x16da0…16dc0 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 34 36 0d 0a 16 6d 61 20 73 79 6e 64 69 61 34 37 0d 0a 16 ┆. ma syndia46 ma syndia47 ┆
0x16dc0…16de0 6d 61 20 73 79 6e 64 69 61 34 38 0d 0a 41 20 63 61 73 65 20 65 6c 65 6d 65 6e 74 20 69 73 20 61 ┆ma syndia48 A case element is a┆
0x16de0…16e00 20 73 74 61 74 65 6d 65 6e 74 20 6c 61 62 65 6c 6c 65 64 20 62 79 20 6f 6e 65 20 6f 72 20 6d 6f ┆ statement labelled by one or mo┆
0x16e00…16e20 72 65 20 63 6f 6e 73 74 80 61 6e 74 20 0a 65 78 70 72 65 73 73 69 6f 6e 73 2e 20 54 68 65 73 65 ┆re constђant expressions. These┆
0x16e20…16e40 20 63 6f 6e 73 74 61 6e 74 20 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 63 61 6c 6c 65 64 20 63 61 ┆ constant expressions, called ca┆
0x16e40…16e60 73 65 20 6c 61 80 62 65 6c 73 2c 20 6d 75 73 74 20 61 6c 6c 20 62 65 20 0a 6f 66 20 61 20 74 79 ┆se laђbels, must all be of a ty┆
0x16e60…16e80 70 65 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 74 68 61 74 20 6f 66 20 74 68 65 20 73 ┆pe compatible with that of the s┆
0x16e80…16ea0 65 80 6c 65 63 74 69 6e 67 20 65 78 70 72 65 73 80 73 69 6f 6e 2e 20 43 6f 6e 73 65 80 0a 63 75 ┆eђlecting expresђsion. Conseђ cu┆
0x16ea0…16ec0 74 69 76 65 20 76 61 6c 75 65 73 20 6d 61 79 20 62 65 20 67 69 76 65 6e 20 61 73 20 61 20 72 61 ┆tive values may be given as a ra┆
0x16ec0…16ee0 6e 67 65 2c 20 65 2e 67 2e 20 66 69 72 73 74 2e 2e 6c 61 73 74 2e 20 41 6c 6c 20 74 68 65 20 63 ┆nge, e.g. first..last. All the c┆
0x16ee0…16f00 61 73 65 20 0a 6c 61 62 65 6c 73 20 6f 66 20 6f 6e 65 20 63 61 73 65 20 73 74 61 74 65 6d 65 6e ┆ase labels of one case statemen┆
0x16f00…16f20 74 20 6d 75 73 74 20 62 65 20 64 69 73 74 69 6e 63 74 2e 0d 0a 0d 0a 54 68 65 20 65 78 65 63 75 ┆t must be distinct. The execu┆
0x16f20…16f40 74 69 6f 6e 20 6f 66 20 61 20 63 61 73 65 20 73 74 61 74 65 6d 65 6e 74 20 74 61 6b 65 73 20 70 ┆tion of a case statement takes p┆
0x16f40…16f60 6c 61 63 65 20 69 6e 20 74 68 72 65 65 20 73 74 65 70 73 3a 20 0d 0a 0d 0a 31 29 20 45 76 61 6c ┆lace in three steps: 1) Eval┆
0x16f60…16f80 75 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 73 65 6c 65 63 74 69 6e 67 20 65 78 70 72 65 73 73 69 ┆uation of the selecting expressi┆
0x16f80…16fa0 6f 6e 2e 0d 0a 0d 0a 32 29 20 84 54 68 65 20 63 61 73 65 20 65 6c 65 6d 65 6e 74 20 77 69 74 68 ┆on. 2) ёThe case element with┆
0x16fa0…16fc0 20 74 68 65 20 6c 61 62 65 6c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 ┆ the label corresponding to the ┆
0x16fc0…16fe0 76 61 80 6c 75 65 20 6f 66 20 74 68 65 20 0a 19 83 80 80 73 65 6c 65 63 74 69 6e 67 20 65 78 70 ┆vaђlue of the Ѓђђselecting exp┆
0x16fe0…17000 72 65 73 73 69 6f 6e 20 69 73 20 73 65 6c 65 63 74 65 64 20 66 6f 72 20 65 78 65 63 75 80 80 74 ┆ression is selected for execuђђt┆
0x17000…17020 69 6f 6e 2e 0d 0a 0d 0a 8c 8e a0 0a 20 20 20 84 54 68 65 20 22 6c 61 62 65 6c 22 20 4f 54 48 45 ┆ion. їја ёThe "label" OTHE┆
0x17020…17040 52 57 49 53 45 20 28 6b 65 79 77 6f 72 64 29 20 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 61 ┆RWISE (keyword) corresponds to a┆
0x17040…17060 6c 6c 20 76 61 6c 75 65 73 20 6f 66 20 0a 19 83 80 80 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 ┆ll values of Ѓђђthe type of th┆
0x17060…17080 65 20 73 65 6c 65 63 74 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 20 77 68 69 63 68 20 64 6f 20 ┆e selecting expression which do ┆
0x17080…170a0 6e 6f 74 20 6f 63 80 63 75 72 20 61 73 20 63 61 73 65 20 0a 19 83 80 80 6c 61 62 65 6c 73 2e 20 ┆not ocђcur as case Ѓђђlabels. ┆
0x170a0…170c0 41 20 66 61 75 6c 74 20 6f 63 63 75 72 73 20 69 66 20 6e 6f 20 63 61 73 65 20 65 6c 65 6d 65 6e ┆A fault occurs if no case elemen┆
0x170c0…170e0 74 20 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 0a 19 83 80 80 ┆t corresponds to the value Ѓђђ┆
0x170e0…17100 6f 66 20 74 68 65 20 73 65 6c 65 63 74 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 2e 0d 0a 0d 0a ┆of the selecting expression. ┆
0x17100…17120 33 29 20 45 78 65 63 75 74 69 6f 6e 20 6f 66 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 20 6f 66 ┆3) Execution of the statement of┆
0x17120…17140 20 74 68 65 20 73 65 6c 65 63 74 65 64 20 63 61 73 65 20 65 6c 65 6d 65 6e 74 2e 0d 0a 0d 0a a1 ┆ the selected case element. А┆
0x17140…17160 4e 6f 74 65 3a 0d 0a 55 70 6f 6e 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 6f 66 20 74 68 65 20 73 65 ┆Note: Upon completion of the se┆
0x17160…17180 6c 65 63 74 65 64 20 73 74 61 74 65 6d 65 6e 74 20 74 68 65 20 63 61 73 65 20 73 74 61 74 65 6d ┆lected statement the case statem┆
0x17180…171a0 65 6e 74 20 69 73 20 61 6c 73 6f 20 0a 63 6f 6d 70 6c 65 74 65 64 2e 0d 0a 0d 0a a1 45 78 61 6d ┆ent is also completed. АExam┆
0x171a0…171c0 70 6c 65 3a 0d 0a 43 41 53 45 20 6d 6f 6e 74 68 20 4f 46 0d 0a 20 20 4a 61 6e 75 61 72 79 2e 2e ┆ple: CASE month OF January..┆
0x171c0…171e0 4d 61 79 3a 09 2e 2e 2e 2e 3b 0d 0a 20 20 4f 63 74 6f 62 65 72 2c 20 44 65 63 65 6d 62 65 72 3a ┆May: ....; October, December:┆
0x171e0…17200 09 2e 2e 2e 2e 0d 0a 4f 54 48 45 52 57 49 53 45 09 09 2e 2e 2e 2e 0d 0a 45 4e 44 20 28 2a 20 6f ┆ .... OTHERWISE .... END (* o┆
0x17200…17220 66 20 63 61 73 65 20 2a 29 0d 0a 16 73 62 0d 0a 52 65 70 65 74 69 74 69 76 65 20 53 74 61 74 65 ┆f case *) sb Repetitive State┆
0x17220…17240 6d 65 6e 74 73 0d 0a 41 20 72 65 70 65 74 69 74 69 76 65 20 73 74 61 74 65 6d 65 6e 74 20 73 70 ┆ments A repetitive statement sp┆
0x17240…17260 65 63 69 66 69 65 73 20 74 68 61 74 20 61 20 73 74 61 74 65 6d 65 6e 74 20 69 73 20 74 6f 20 62 ┆ecifies that a statement is to b┆
0x17260…17280 65 20 65 78 65 80 63 75 74 65 64 20 0a 72 65 70 65 61 74 65 64 6c 79 2c 20 7a 65 72 6f 20 6f 72 ┆e exeђcuted repeatedly, zero or┆
0x17280…172a0 20 6d 6f 72 65 20 74 69 6d 65 73 2e 0d 0a 16 73 63 0d 0a 46 6f 72 20 53 74 61 74 65 6d 65 6e 74 ┆ more times. sc For Statement┆
0x172a0…172c0 0d 0a 16 73 6f 20 66 6f 72 20 73 74 61 74 65 6d 65 6e 74 0d 0a 41 20 66 6f 72 20 6c 6f 6f 70 20 ┆ so for statement A for loop ┆
0x172c0…172e0 6d 61 79 20 62 65 20 75 73 65 64 20 69 66 20 61 20 73 74 61 74 65 6d 65 6e 74 20 69 73 20 74 6f ┆may be used if a statement is to┆
0x172e0…17300 20 62 65 20 65 78 65 63 75 74 65 64 20 61 20 66 69 78 65 64 20 0a 6e 75 6d 62 65 72 20 6f 66 20 ┆ be executed a fixed number of ┆
0x17300…17320 74 69 6d 65 73 20 61 6e 64 2f 6f 72 20 65 6c 61 62 6f 72 61 74 65 73 20 6f 6e 20 63 6f 6e 73 65 ┆times and/or elaborates on conse┆
0x17320…17340 63 75 74 69 76 65 20 76 61 80 6c 75 65 73 20 6f 66 20 61 6e 20 6f 62 6a 65 63 74 20 0a 28 69 74 ┆cutive vaђlues of an object (it┆
0x17340…17360 65 72 61 74 69 6f 6e 29 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 34 39 0d 0a 16 6d 61 20 73 79 6e ┆eration). ma syndia49 ma syn┆
0x17360…17380 64 69 61 35 30 0d 0a 54 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 20 66 6f 72 20 73 74 ┆dia50 The execution of a for st┆
0x17380…173a0 61 74 65 6d 65 6e 74 20 74 61 6b 65 73 20 70 6c 61 63 65 20 69 6e 20 66 69 76 65 20 73 74 65 70 ┆atement takes place in five step┆
0x173a0…173c0 73 2c 20 77 68 65 80 72 65 20 0a 74 68 72 65 65 20 6d 61 79 20 62 65 20 72 65 70 65 61 74 65 64 ┆s, wheђre three may be repeated┆
0x173c0…173e0 3a 0d 0a 0d 0a 8c 85 88 0a 31 29 20 84 54 68 65 20 73 74 61 72 74 20 61 6e 64 20 73 74 6f 70 20 ┆: їЁѕ 1) ёThe start and stop ┆
0x173e0…17400 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 65 76 61 6c 75 61 74 65 64 20 61 6e 64 20 64 65 ┆expressions are evaluated and de┆
0x17400…17420 66 69 6e 65 20 61 6e 20 6f 72 64 69 6e 61 6c 20 0a 19 83 80 80 74 79 70 65 2c 20 69 2e 65 2e 20 ┆fine an ordinal Ѓђђtype, i.e. ┆
0x17420…17440 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 73 20 6d 75 73 74 20 62 65 20 6f 66 20 74 68 65 20 73 ┆the expressions must be of the s┆
0x17440…17460 61 6d 65 20 74 79 70 65 2c 20 77 68 69 63 68 20 6d 75 73 74 20 62 65 20 0a 19 83 80 80 61 6e 20 ┆ame type, which must be Ѓђђan ┆
0x17460…17480 6f 72 64 69 6e 61 6c 20 74 79 70 65 2e 0d 0a 0d 0a 16 73 6f 20 63 6f 6e 74 72 6f 6c 6c 69 6e 67 ┆ordinal type. so controlling┆
0x17480…174a0 20 76 61 72 69 61 62 6c 65 0d 0a 32 29 20 84 54 68 65 20 a0 63 6f 6e 74 72 6f 6c 6c 69 6e 67 20 ┆ variable 2) ёThe аcontrolling ┆
0x174a0…174c0 76 61 72 69 61 62 6c 65 e0 20 69 73 20 61 6c 6c 6f 63 61 74 65 64 20 61 73 20 61 6e 20 69 6d 70 ┆variableЯ is allocated as an imp┆
0x174c0…174e0 6c 69 63 69 74 6c 79 20 64 65 63 6c 61 72 65 64 20 76 61 72 69 80 0a 19 83 80 80 61 62 6c 65 2c ┆licitly declared variђ Ѓђђable,┆
0x174e0…17500 20 6c 6f 63 61 6c 20 74 6f 20 74 68 65 20 66 6f 72 20 73 74 61 74 65 6d 65 6e 74 2e 20 49 74 73 ┆ local to the for statement. Its┆
0x17500…17520 20 6e 61 6d 65 20 69 73 20 74 68 65 20 27 66 6f 72 5f 6e 61 80 6d 65 27 2e 20 54 68 65 20 0a 19 ┆ name is the 'for_naђme'. The ┆
0x17520…17540 83 80 80 74 79 70 65 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 69 6e 67 20 76 61 72 69 61 ┆Ѓђђtype of the controlling varia┆
0x17540…17560 62 6c 65 20 69 73 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 73 74 61 72 74 20 61 6e 64 ┆ble is the type of the start and┆
0x17560…17580 20 73 74 6f 70 20 0a 19 83 80 80 65 78 70 72 65 73 73 69 6f 6e 73 2e 20 54 68 65 20 69 6e 69 74 ┆ stop Ѓђђexpressions. The init┆
0x17580…175a0 69 80 61 6c 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 80 6c 69 6e 67 20 76 ┆iђal value of the controlђling v┆
0x175a0…175c0 61 72 69 61 62 6c 65 20 69 73 20 74 68 61 74 20 6f 66 20 0a 19 83 80 80 74 68 65 20 73 74 61 72 ┆ariable is that of Ѓђђthe star┆
0x175c0…175e0 74 20 65 78 70 72 65 73 73 69 6f 6e 2e 0d 0a 0d 0a 33 29 20 84 54 68 65 20 74 65 72 6d 69 6e 61 ┆t expression. 3) ёThe termina┆
0x175e0…17600 74 69 6f 6e 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 20 74 65 73 74 65 64 2e 20 54 68 61 74 20 69 ┆tion condition is tested. That i┆
0x17600…17620 73 2c 20 69 66 20 54 4f 20 69 73 20 73 70 65 63 69 80 66 69 65 64 2c 20 0a 19 83 80 80 65 78 65 ┆s, if TO is speciђfied, Ѓђђexe┆
0x17620…17640 63 75 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 6f 72 20 73 74 61 74 65 6d 65 6e 74 20 74 65 72 6d ┆cution of the for statement term┆
0x17640…17660 69 6e 61 74 65 73 20 77 68 65 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 0a 19 83 ┆inates when the value of the Ѓ┆
0x17660…17680 80 80 63 6f 6e 74 72 6f 6c 6c 69 6e 67 20 76 61 72 69 61 62 6c 65 20 69 73 20 67 72 65 61 74 65 ┆ђђcontrolling variable is greate┆
0x17680…176a0 72 20 74 68 61 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 73 74 6f 70 20 65 78 70 ┆r than the value of the stop exp┆
0x176a0…176c0 72 65 73 80 0a 19 83 80 80 73 69 6f 6e 3b 20 69 66 20 44 4f 57 4e 54 4f 20 69 73 20 73 70 65 63 ┆resђ Ѓђђsion; if DOWNTO is spec┆
0x176c0…176e0 69 66 69 65 64 2c 20 77 68 65 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 63 6f 6e ┆ified, when the value of the con┆
0x176e0…17700 74 72 6f 6c 6c 69 6e 67 20 0a 19 83 80 80 76 61 72 69 61 62 6c 65 20 69 73 20 6c 65 73 73 20 74 ┆trolling Ѓђђvariable is less t┆
0x17700…17720 68 61 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 73 74 6f 70 20 65 78 70 72 65 73 ┆han the value of the stop expres┆
0x17720…17740 73 69 6f 6e 2e 0d 0a 0d 0a 34 29 20 84 54 68 65 20 73 74 61 74 65 6d 65 6e 74 20 66 6f 6c 6c 6f ┆sion. 4) ёThe statement follo┆
0x17740…17760 77 69 6e 67 20 44 4f 20 69 73 20 65 78 65 63 75 74 65 64 20 77 69 74 68 20 74 68 65 20 63 6f 6e ┆wing DO is executed with the con┆
0x17760…17780 74 72 6f 6c 80 6c 69 6e 67 20 76 61 72 69 80 0a 19 83 80 80 61 62 6c 65 20 61 63 74 69 6e 67 20 ┆trolђling variђ Ѓђђable acting ┆
0x17780…177a0 61 73 20 61 20 63 6f 6e 73 74 61 6e 74 20 28 69 2e 65 2e 20 69 74 20 6d 75 73 74 20 6e 6f 74 20 ┆as a constant (i.e. it must not ┆
0x177a0…177c0 61 70 80 70 65 61 72 20 6f 6e 20 74 68 65 20 6c 65 66 74 20 68 61 6e 64 20 0a 19 83 80 80 73 69 ┆apђpear on the left hand Ѓђђsi┆
0x177c0…177e0 64 65 20 6f 66 20 61 6e 20 61 73 73 69 67 6e 6d 65 6e 74 20 73 74 61 74 65 6d 65 6e 74 2c 20 6e ┆de of an assignment statement, n┆
0x177e0…17800 6f 72 20 6d 61 79 20 69 74 20 62 65 20 70 61 73 73 65 64 20 61 73 20 61 20 76 61 72 69 80 0a 19 ┆or may it be passed as a variђ ┆
0x17800…17820 83 80 80 61 62 6c 65 20 70 61 72 61 6d 65 74 65 72 20 6f 66 20 61 20 72 6f 75 74 69 6e 65 20 63 ┆Ѓђђable parameter of a routine c┆
0x17820…17840 61 6c 6c 29 2e 0d 0a 0d 0a 35 29 20 84 54 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 63 6f ┆all). 5) ёThe value of the co┆
0x17840…17860 6e 74 72 6f 6c 6c 69 6e 67 20 76 61 72 69 61 62 6c 65 20 69 73 20 75 70 64 61 74 65 64 2c 20 65 ┆ntrolling variable is updated, e┆
0x17860…17880 78 63 65 70 74 20 69 66 20 69 74 20 68 61 73 20 0a 19 83 80 80 61 6c 72 65 61 64 79 20 72 65 61 ┆xcept if it has Ѓђђalready rea┆
0x17880…178a0 63 68 65 64 20 74 68 65 20 75 70 70 65 72 20 6f 72 20 6c 6f 77 65 72 20 62 6f 75 6e 64 20 6f 66 ┆ched the upper or lower bound of┆
0x178a0…178c0 20 74 68 65 20 70 65 72 6d 69 73 80 73 69 62 6c 65 20 72 61 6e 67 65 20 0a 19 83 80 80 69 6e 20 ┆ the permisђsible range Ѓђђin ┆
0x178c0…178e0 77 68 69 63 68 20 63 61 73 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 6f 72 20 ┆which case execution of the for ┆
0x178e0…17900 73 74 61 80 74 65 6d 65 6e 74 20 74 65 72 6d 69 6e 61 74 65 73 20 69 6d 6d 65 64 69 80 0a 19 83 ┆staђtement terminates immediђ Ѓ┆
0x17900…17920 80 80 61 74 65 6c 79 2e 20 54 68 65 20 69 74 65 72 61 74 69 6f 6e 20 63 61 6e 20 65 69 74 68 65 ┆ђђately. The iteration can eithe┆
0x17920…17940 72 20 62 65 20 77 69 74 68 20 69 6e 80 63 72 65 61 73 69 6e 67 20 76 61 6c 75 65 73 20 6f 66 20 ┆r be with inђcreasing values of ┆
0x17940…17960 74 68 65 20 0a 19 83 80 80 63 6f 6e 74 72 6f 6c 6c 69 6e 67 20 76 61 72 69 80 61 62 6c 65 20 6f ┆the Ѓђђcontrolling variђable o┆
0x17960…17980 72 20 77 69 74 68 20 64 65 63 72 65 61 73 69 6e 67 20 76 61 6c 75 65 73 2e 20 49 66 20 54 4f 20 ┆r with decreasing values. If TO ┆
0x17980…179a0 69 73 20 73 70 65 63 69 66 69 65 64 20 0a 19 83 80 80 74 68 65 20 6f 72 64 69 6e 61 6c 20 76 61 ┆is specified Ѓђђthe ordinal va┆
0x179a0…179c0 6c 75 65 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 6c 69 6e 67 20 76 61 72 69 61 62 6c 65 20 ┆lue of the controlling variable ┆
0x179c0…179e0 69 73 20 69 6e 63 72 65 6d 65 6e 74 65 64 20 69 6e 20 0a 19 83 80 80 73 74 65 70 73 20 6f 66 20 ┆is incremented in Ѓђђsteps of ┆
0x179e0…17a00 6f 6e 65 20 28 73 75 63 63 29 2e 20 49 66 20 44 4f 57 4e 54 4f 20 69 73 20 73 70 65 63 69 66 69 ┆one (succ). If DOWNTO is specifi┆
0x17a00…17a20 65 64 20 74 68 65 20 69 74 65 72 61 80 74 69 6f 6e 20 69 73 20 77 69 74 68 20 0a 19 83 80 80 64 ┆ed the iteraђtion is with Ѓђђd┆
0x17a20…17a40 65 63 72 65 61 73 69 6e 67 20 76 61 6c 75 65 73 20 28 70 72 65 64 29 2e 20 54 68 65 20 65 78 65 ┆ecreasing values (pred). The exe┆
0x17a40…17a60 63 75 74 69 6f 6e 20 63 6f 6e 80 74 69 6e 75 65 73 20 61 74 20 73 74 65 70 20 33 2e 0d 0a 0d 0a ┆cution conђtinues at step 3. ┆
0x17a60…17a80 a1 4e 6f 74 65 3a 0d 0a 8c 85 e8 0a 54 68 65 20 74 77 6f 20 65 78 70 72 65 73 73 69 6f 6e 73 20 ┆АNote: їЁУ The two expressions ┆
0x17a80…17aa0 61 72 65 20 65 76 61 6c 75 61 74 65 64 20 6f 6e 63 65 2c 20 62 65 66 6f 72 65 20 74 68 65 20 72 ┆are evaluated once, before the r┆
0x17aa0…17ac0 65 70 65 74 69 80 80 74 69 6f 6e 2e 20 49 66 20 74 68 65 20 0a 74 65 72 6d 69 6e 61 74 69 6f 6e ┆epetiђђtion. If the termination┆
0x17ac0…17ae0 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 20 73 61 74 69 73 66 69 65 64 20 62 65 66 6f 72 65 20 74 ┆ condition is satisfied before t┆
0x17ae0…17b00 68 65 20 76 65 72 79 20 66 69 72 73 74 20 72 65 80 70 65 74 69 74 69 6f 6e 20 74 68 65 20 0a 73 ┆he very first reђpetition the s┆
0x17b00…17b20 74 61 74 65 6d 65 6e 74 20 28 66 6f 6c 6c 6f 77 69 6e 67 20 44 4f 29 20 6f 66 20 74 68 65 20 66 ┆tatement (following DO) of the f┆
0x17b20…17b40 6f 72 20 73 74 61 74 65 6d 65 6e 74 20 69 73 20 6e 6f 74 20 65 78 65 63 75 74 65 64 20 61 74 20 ┆or statement is not executed at ┆
0x17b40…17b60 61 6c 6c 2e 0d 0a 0d 0a a1 45 78 61 6d 70 6c 65 3a 0d 0a 46 4f 52 20 6d 6f 6e 74 68 3a 3d 20 4a ┆all. АExample: FOR month:= J┆
0x17b60…17b80 61 6e 75 61 72 79 20 54 4f 20 44 65 63 65 6d 62 65 72 20 44 4f 0d 0a 20 20 46 4f 52 20 64 61 74 ┆anuary TO December DO FOR dat┆
0x17b80…17ba0 65 3a 3d 20 31 20 54 4f 20 6e 75 6d 62 65 72 5f 6f 66 5f 64 61 79 73 28 6d 6f 6e 74 68 29 20 44 ┆e:= 1 TO number_of_days(month) D┆
0x17ba0…17bc0 4f 0d 0a 20 20 20 20 64 61 69 6c 79 5f 61 63 74 69 76 69 74 79 28 64 61 74 65 2c 6d 6f 6e 74 68 ┆O daily_activity(date,month┆
0x17bc0…17be0 29 0d 0a 16 73 63 0d 0a 4c 6f 6f 70 20 53 74 61 74 65 6d 65 6e 74 0d 0a 54 68 65 20 bf dc d8 6c ┆) sc Loop Statement The ┐▄пl┆
0x17be0…17c00 6f 6f 70 20 73 74 61 74 65 6d 65 6e 74 be 20 63 6f 6e 73 74 69 74 75 74 65 73 20 61 6e 20 75 6e ┆oop statementЙ constitutes an un┆
0x17c00…17c20 63 6f 6e 64 69 74 69 6f 6e 61 6c 20 72 65 70 65 74 69 74 69 76 65 20 63 6f 6e 80 74 72 6f 6c 20 ┆conditional repetitive conђtrol ┆
0x17c20…17c40 0a 73 74 72 75 63 74 75 72 65 2c 20 77 68 69 63 68 20 6d 61 79 20 62 65 20 75 73 65 64 20 74 6f ┆ structure, which may be used to┆
0x17c40…17c60 20 64 65 66 69 6e 65 20 61 6e 20 22 69 6e 66 69 6e 69 74 65 22 20 6d 61 69 6e 20 6c 6f 6f 70 20 ┆ define an "infinite" main loop ┆
0x17c60…17c80 6f 66 20 61 20 0a 70 72 6f 67 72 61 6d 2c 20 6f 6e 6c 79 20 74 65 72 6d 69 6e 61 74 65 64 20 69 ┆of a program, only terminated i┆
0x17c80…17ca0 6e 20 63 61 73 65 20 6f 66 20 61 20 66 61 75 6c 74 20 6f 72 20 70 61 72 65 6e 74 20 65 6e 66 6f ┆n case of a fault or parent enfo┆
0x17ca0…17cc0 72 63 65 64 20 70 72 6f 80 0a 63 65 73 73 20 74 65 72 6d 69 6e 61 74 69 6f 6e 2e 0d 0a 16 6d 61 ┆rced proђ cess termination. ma┆
0x17cc0…17ce0 20 73 79 6e 64 69 61 35 31 0d 0a 54 68 65 20 6c 6f 6f 70 20 73 74 61 74 65 6d 65 6e 74 20 73 70 ┆ syndia51 The loop statement sp┆
0x17ce0…17d00 65 63 69 66 69 65 73 20 72 65 70 65 61 74 65 64 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 74 68 ┆ecifies repeated execution of th┆
0x17d00…17d20 65 20 73 74 61 80 74 65 80 6d 65 6e 74 20 73 65 80 0a 71 75 65 6e 63 65 20 69 6e 20 74 68 65 20 ┆e staђteђment seђ quence in the ┆
0x17d20…17d40 73 74 61 74 65 64 20 6f 72 64 65 72 2e 20 54 68 65 20 6c 6f 6f 70 20 6d 61 79 20 62 65 20 6c 65 ┆stated order. The loop may be le┆
0x17d40…17d60 66 74 20 61 73 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 0a 65 78 65 63 75 74 69 ┆ft as the result of the executi┆
0x17d60…17d80 6f 6e 20 6f 66 20 61 20 6a 75 6d 70 20 73 74 61 74 65 6d 65 6e 74 20 28 63 66 2e 20 73 65 63 80 ┆on of a jump statement (cf. secђ┆
0x17d80…17da0 74 69 6f 6e 20 35 2e 37 29 2e 0d 0a 0d 0a 0e 0a a1 45 78 61 6d 70 6c 65 3a 0d 0a 4c 4f 4f 50 0d ┆tion 5.7). АExample: LOOP ┆
0x17da0…17dc0 0a 20 20 6e 65 78 74 5f 6d 3a 3d 20 72 65 61 64 5f 6e 65 78 74 5f 6d 65 73 73 61 67 65 3b 0d 0a ┆ next_m:= read_next_message; ┆
0x17dc0…17de0 20 20 70 72 65 70 61 72 65 5f 6d 65 73 73 61 67 65 28 6e 65 78 74 5f 6d 29 3b 0d 0a 20 20 73 65 ┆ prepare_message(next_m); se┆
0x17de0…17e00 6e 64 5f 6d 65 73 73 61 67 65 28 6e 65 78 74 5f 6d 29 0d 0a 45 4e 44 4c 4f 4f 50 0d 0a 0f 0a 16 ┆nd_message(next_m) ENDLOOP ┆
0x17e00…17e20 73 63 0d 0a 57 68 69 6c 65 20 53 74 61 74 65 6d 65 6e 74 0d 0a 43 6f 6e 64 69 74 69 6f 6e 61 6c ┆sc While Statement Conditional┆
0x17e20…17e40 20 72 65 70 65 74 69 74 69 6f 6e 20 6f 66 20 61 20 73 74 61 74 65 6d 65 6e 74 20 77 68 65 72 65 ┆ repetition of a statement where┆
0x17e40…17e60 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 20 63 68 65 63 6b 65 64 20 0a 62 65 66 6f 72 ┆ the condition is checked befor┆
0x17e60…17e80 65 20 65 61 63 68 20 65 78 65 63 75 74 69 6f 6e 20 6d 61 79 20 62 65 20 61 63 68 69 65 76 65 64 ┆e each execution may be achieved┆
0x17e80…17ea0 20 62 79 20 6d 65 61 6e 73 20 6f 66 20 61 20 bf dc d8 77 68 69 6c 65 20 73 74 61 74 65 80 0a 6d ┆ by means of a ┐▄пwhile stateђ m┆
0x17ea0…17ec0 65 6e 74 be 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 35 32 0d 0a 8c 85 88 0a 54 68 65 20 76 61 6c ┆entЙ. ma syndia52 їЁѕ The val┆
0x17ec0…17ee0 75 65 20 6f 66 20 74 68 65 20 62 6f 6f 6c 65 61 6e 5f 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 ┆ue of the boolean_expression is ┆
0x17ee0…17f00 65 76 61 6c 75 61 74 65 64 20 62 65 66 6f 72 65 20 65 61 63 68 20 65 78 65 63 75 80 0a 74 69 6f ┆evaluated before each execuђ tio┆
0x17f00…17f20 6e 20 6f 66 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 2e 20 54 68 65 20 74 65 73 74 2d 61 6e 64 ┆n of the statement. The test-and┆
0x17f20…17f40 2d 65 78 65 63 75 74 65 20 73 65 71 75 65 6e 63 65 20 67 6f 65 73 20 6f 6e 20 61 73 20 6c 6f 6e ┆-execute sequence goes on as lon┆
0x17f40…17f60 67 20 0a 61 73 20 74 68 65 20 65 76 61 6c 75 61 74 69 6f 6e 20 79 69 65 6c 64 73 20 74 72 75 65 ┆g as the evaluation yields true┆
0x17f60…17f80 2c 20 77 68 65 6e 20 74 68 65 20 72 65 80 73 75 6c 74 20 62 65 63 6f 6d 80 65 73 20 66 61 6c 73 ┆, when the reђsult becomђes fals┆
0x17f80…17fa0 65 2c 20 70 6f 73 73 69 62 6c 79 20 0a 74 68 65 20 66 69 72 73 74 20 74 69 6d 65 2c 20 65 78 65 ┆e, possibly the first time, exe┆
0x17fa0…17fc0 63 75 74 69 6f 6e 20 6f 66 20 74 68 65 20 77 68 69 6c 65 20 73 74 61 74 65 80 6d 65 6e 74 20 74 ┆cution of the while stateђment t┆
0x17fc0…17fe0 65 72 6d 69 6e 61 74 65 73 2e 0d 0a 0d 0a 54 68 65 20 77 68 69 6c 65 20 73 74 61 74 65 6d 65 6e ┆erminates. The while statemen┆
0x17fe0…18000 74 3a 0d 0a 20 20 57 48 49 4c 45 20 65 78 70 20 44 4f 20 73 74 0d 0a 69 73 20 65 71 75 69 76 61 ┆t: WHILE exp DO st is equiva┆
0x18000…18020 6c 65 6e 74 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 62 69 6e 61 74 69 6f ┆lent to the following combinatio┆
0x18020…18040 6e 20 6f 66 20 6c 6f 6f 70 2c 20 69 66 20 61 6e 64 20 65 78 69 74 80 6c 6f 6f 70 20 0a 73 74 61 ┆n of loop, if and exitђloop sta┆
0x18040…18060 74 65 6d 65 6e 74 73 3a 0d 0a 20 20 4c 4f 4f 50 20 49 46 20 4e 4f 54 20 65 78 70 20 54 48 45 4e ┆tements: LOOP IF NOT exp THEN┆
0x18060…18080 20 45 58 49 54 4c 4f 4f 50 3b 20 73 74 20 45 4e 44 4c 4f 4f 50 0d 0a 0d 0a a1 45 78 61 6d 70 6c ┆ EXITLOOP; st ENDLOOP АExampl┆
0x18080…180a0 65 3a 0d 0a 63 75 72 72 65 6e 74 5f 69 6e 64 65 78 3a 3d 20 66 69 72 73 74 5f 69 6e 64 65 78 3b ┆e: current_index:= first_index;┆
0x180a0…180c0 0d 0a 57 48 49 4c 45 20 74 61 62 6c 65 28 63 75 72 72 65 6e 74 5f 69 6e 64 65 78 29 3c 3e 73 6f ┆ WHILE table(current_index)<>so┆
0x180c0…180e0 75 67 68 74 5f 65 6c 65 6d 65 6e 74 20 44 4f 0d 0a 20 20 63 75 72 72 65 6e 74 5f 69 6e 64 65 78 ┆ught_element DO current_index┆
0x180e0…18100 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 64 65 78 2b 31 0d 0a 16 73 63 0d 0a 52 65 70 65 61 74 20 ┆:= current_index+1 sc Repeat ┆
0x18100…18120 53 74 61 74 65 6d 65 6e 74 0d 0a 45 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 20 73 65 71 75 65 6e ┆Statement Execution of a sequen┆
0x18120…18140 63 65 20 6f 66 20 73 74 61 74 65 6d 65 6e 74 73 20 75 6e 74 69 6c 20 73 6f 6d 65 20 63 6f 6e 64 ┆ce of statements until some cond┆
0x18140…18160 69 74 69 6f 6e 20 69 73 20 73 61 74 69 73 80 0a 66 69 65 64 20 6d 61 79 20 62 65 20 61 63 68 69 ┆ition is satisђ fied may be achi┆
0x18160…18180 65 76 65 64 20 62 79 20 6d 65 61 6e 73 20 6f 66 20 61 20 bf dc d8 72 65 70 65 61 74 20 73 74 61 ┆eved by means of a ┐▄пrepeat sta┆
0x18180…181a0 74 65 6d 65 6e 74 be 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 35 33 0d 0a 45 76 65 72 79 20 74 69 ┆tementЙ. ma syndia53 Every ti┆
0x181a0…181c0 6d 65 20 74 68 65 20 73 65 71 75 65 6e 63 65 20 6f 66 20 73 74 61 74 65 6d 65 6e 74 73 20 68 61 ┆me the sequence of statements ha┆
0x181c0…181e0 73 20 62 65 65 6e 20 65 78 65 63 75 74 65 64 2c 20 74 68 65 20 76 61 6c 75 65 20 0a 6f 66 20 74 ┆s been executed, the value of t┆
0x181e0…18200 68 65 20 62 6f 6f 6c 65 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 65 76 61 6c 75 61 74 ┆he boolean expression is evaluat┆
0x18200…18220 65 64 20 61 6e 64 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 74 68 65 20 72 65 70 65 61 74 20 0a ┆ed and execution of the repeat ┆
0x18220…18240 73 74 61 74 65 6d 65 6e 74 20 74 65 72 6d 69 6e 61 74 65 73 20 77 68 65 6e 20 74 68 65 20 65 76 ┆statement terminates when the ev┆
0x18240…18260 61 6c 75 61 74 69 6f 6e 20 79 69 65 6c 64 73 20 74 72 75 65 2e 0d 0a 0d 0a 54 68 65 20 72 65 70 ┆aluation yields true. The rep┆
0x18260…18280 65 61 74 20 73 74 61 74 65 6d 65 6e 74 0d 0a 20 20 52 45 50 45 41 54 20 73 31 3b 20 2e 2e 3b 20 ┆eat statement REPEAT s1; ..; ┆
0x18280…182a0 73 6e 20 55 4e 54 49 4c 20 65 78 70 0d 0a 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 74 ┆sn UNTIL exp is equivalent to t┆
0x182a0…182c0 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 70 65 63 69 61 6c 20 66 6f 72 6d 20 6f 66 20 74 68 65 ┆he following special form of the┆
0x182c0…182e0 20 6c 6f 6f 70 20 73 74 61 80 74 65 80 6d 65 6e 74 3a 0d 0a 20 20 4c 4f 4f 50 20 73 31 3b 20 2e ┆ loop staђteђment: LOOP s1; .┆
0x182e0…18300 2e 2e 3b 20 73 6e 3b 20 49 46 20 65 78 70 20 54 48 45 4e 20 45 58 49 54 4c 4f 4f 50 20 45 4e 44 ┆..; sn; IF exp THEN EXITLOOP END┆
0x18300…18320 4c 4f 4f 50 0d 0a 0d 0a 8c 85 88 0a 0e 0a a1 45 78 61 6d 70 6c 65 3a 0d 0a 52 45 50 45 41 54 0d ┆LOOP їЁѕ АExample: REPEAT ┆
0x18320…18340 0a 20 20 77 61 69 74 28 72 65 66 2c 20 6d 61 69 6e 5f 6d 61 69 6c 62 6f 78 29 3b 0d 0a 20 20 66 ┆ wait(ref, main_mailbox); f┆
0x18340…18360 69 6e 61 6c 5f 6d 65 73 73 61 67 65 3a 3d 20 64 6f 5f 70 72 6f 63 65 73 73 28 72 65 66 29 3b 0d ┆inal_message:= do_process(ref); ┆
0x18360…18380 0a 20 20 72 65 74 75 72 6e 28 72 65 66 29 0d 0a 55 4e 54 49 4c 20 66 69 6e 61 6c 5f 6d 65 73 73 ┆ return(ref) UNTIL final_mess┆
0x18380…183a0 61 67 65 0d 0a 0f 0a 16 73 62 0d 0a 50 72 6f 63 65 64 75 72 65 20 43 61 6c 6c 0d 0a 41 20 bf dc ┆age sb Procedure Call A ┐▄┆
0x183a0…183c0 d8 70 72 6f 63 65 64 75 72 65 20 63 61 6c 6c be 20 73 65 72 76 65 73 20 74 6f 20 65 73 74 61 62 ┆пprocedure callЙ serves to estab┆
0x183c0…183e0 6c 69 73 68 20 61 20 62 69 6e 64 69 6e 67 20 62 65 74 77 65 65 6e 20 61 63 74 75 80 61 6c 20 61 ┆lish a binding between actuђal a┆
0x183e0…18400 6e 64 20 0a 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 73 2c 20 74 6f 20 61 6c 6c 6f 63 61 ┆nd formal parameters, to alloca┆
0x18400…18420 74 65 20 6c 6f 63 61 6c 6c 79 20 64 65 63 6c 61 72 65 64 20 76 61 72 69 80 61 62 6c 65 73 2c 20 ┆te locally declared variђables, ┆
0x18420…18440 61 6e 64 20 74 6f 20 69 6e 76 6f 80 0a 6b 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 74 68 65 ┆and to invoђ ke execution of the┆
0x18440…18460 20 63 6f 6d 70 6f 75 6e 64 20 73 74 61 74 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 70 72 6f 80 63 ┆ compound statement of the proђc┆
0x18460…18480 65 64 75 72 65 20 62 6c 6f 63 6b 20 69 6e 20 69 74 73 20 0a 70 72 6f 70 65 72 20 73 75 72 72 6f ┆edure block in its proper surro┆
0x18480…184a0 75 6e 64 69 6e 67 73 2e 20 41 20 70 72 6f 63 65 64 75 72 65 20 63 61 6c 6c 20 63 6f 6e 73 69 73 ┆undings. A procedure call consis┆
0x184a0…184c0 74 73 20 6f 66 20 74 68 65 20 70 72 6f 63 65 64 75 72 65 20 6e 61 6d 65 20 0a 66 6f 6c 6c 6f 77 ┆ts of the procedure name follow┆
0x184c0…184e0 65 64 20 62 79 20 61 20 6c 69 73 74 20 6f 66 20 61 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 ┆ed by a list of actual parameter┆
0x184e0…18500 73 2e 20 49 66 20 74 68 65 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 64 65 63 6c 61 72 65 64 20 ┆s. If the procedure is declared ┆
0x18500…18520 0a 77 69 74 68 6f 75 74 20 66 6f 72 80 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 73 2c 20 74 68 65 ┆ without forђmal parameters, the┆
0x18520…18540 20 63 61 6c 6c 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 74 68 65 20 70 72 6f 63 65 64 75 72 65 20 ┆ call consists of the procedure ┆
0x18540…18560 6e 61 6d 65 20 0a 6f 6e 80 6c 79 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 35 34 0d 0a 54 68 65 20 ┆name onђly. ma syndia54 The ┆
0x18560…18580 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 20 70 72 6f 63 65 64 75 72 65 20 63 61 6c 6c 20 74 61 ┆execution of a procedure call ta┆
0x18580…185a0 6b 65 73 20 70 6c 61 63 65 20 69 6e 20 74 77 6f 20 73 74 65 70 73 3a 0d 0a 0d 0a 31 29 20 84 54 ┆kes place in two steps: 1) ёT┆
0x185a0…185c0 68 65 20 61 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 73 20 61 72 65 20 65 76 61 6c 75 61 74 ┆he actual parameters are evaluat┆
0x185c0…185e0 65 64 20 69 6e 20 74 68 65 20 6f 72 64 65 72 20 6f 66 20 6f 63 80 80 63 75 72 80 72 65 6e 63 65 ┆ed in the order of ocђђcurђrence┆
0x185e0…18600 2e 0d 0a 0d 0a 32 29 20 84 41 6e 20 61 63 74 69 76 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 62 6c ┆. 2) ёAn activation of the bl┆
0x18600…18620 6f 63 6b 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20 70 72 6f 63 65 64 75 72 ┆ock associated with the procedur┆
0x18620…18640 65 20 6e 61 80 6d 65 20 69 73 20 0a 19 83 80 80 63 72 65 61 74 65 64 2c 20 69 6e 63 6c 75 64 69 ┆e naђme is Ѓђђcreated, includi┆
0x18640…18660 6e 67 20 70 61 72 61 6d 65 74 65 72 20 70 61 73 73 69 6e 67 2c 20 61 6e 64 20 74 68 65 20 61 63 ┆ng parameter passing, and the ac┆
0x18660…18680 80 74 69 6f 6e 20 70 61 72 74 20 6f 66 20 74 68 65 20 0a 19 83 80 80 62 6c 6f 63 6b 20 69 73 20 ┆ђtion part of the Ѓђђblock is ┆
0x18680…186a0 65 78 65 63 75 74 65 64 20 28 63 66 2e 20 63 68 61 70 74 65 72 20 36 29 2e 20 57 68 65 6e 20 74 ┆executed (cf. chapter 6). When t┆
0x186a0…186c0 68 65 20 65 78 65 80 63 75 74 69 6f 6e 20 74 65 72 6d 69 6e 61 74 65 73 20 0a 19 83 80 80 74 68 ┆he exeђcution terminates Ѓђђth┆
0x186c0…186e0 65 20 70 72 6f 63 65 64 75 72 65 20 63 61 6c 6c 20 69 73 20 63 6f 6d 70 6c 65 74 65 64 2e 0d 0a ┆e procedure call is completed. ┆
0x186e0…18700 0d 0a 44 65 74 61 69 6c 65 64 20 72 75 6c 65 73 20 66 6f 72 20 61 63 74 75 61 6c 20 70 61 72 61 ┆ Detailed rules for actual para┆
0x18700…18720 6d 65 74 65 72 73 20 61 72 65 20 64 65 63 72 69 62 65 64 20 69 6e 20 73 65 63 74 69 6f 6e 20 36 ┆meters are decribed in section 6┆
0x18720…18740 2e 31 2e 0d 0a 8c 84 c0 0a 16 73 62 0d 0a 4a 75 6d 70 20 53 74 61 74 65 6d 65 6e 74 73 0d 0a 54 ┆.1. їё└ sb Jump Statements T┆
0x18740…18760 68 65 20 73 74 61 74 65 6d 65 6e 74 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 74 68 69 73 20 ┆he statements described in this ┆
0x18760…18780 73 65 63 74 69 6f 6e 20 73 65 72 76 65 20 74 6f 20 65 78 70 6c 69 63 69 74 6c 79 20 6d 6f 80 64 ┆section serve to explicitly moђd┆
0x18780…187a0 69 66 79 20 74 68 65 20 0a 6f 72 64 65 72 20 6f 66 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 73 ┆ify the order of execution of s┆
0x187a0…187c0 74 61 74 65 6d 65 6e 74 73 20 62 79 20 74 72 61 6e 73 66 65 72 72 69 6e 67 20 63 6f 6e 74 72 6f ┆tatements by transferring contro┆
0x187c0…187e0 6c 20 74 6f 20 61 6e 20 69 6d 70 6c 69 80 0a 63 69 74 6c 79 20 6f 72 20 65 78 70 6c 69 63 69 74 ┆l to an impliђ citly or explicit┆
0x187e0…18800 6c 79 20 69 6e 64 69 63 61 74 65 64 20 73 74 61 74 65 6d 65 6e 74 2e 0d 0a 16 73 63 0d 0a 45 78 ┆ly indicated statement. sc Ex┆
0x18800…18820 69 74 6c 6f 6f 70 20 53 74 61 74 65 6d 65 6e 74 0d 0a 45 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 ┆itloop Statement Execution of a┆
0x18820…18840 6e 20 bf dc d8 65 78 69 74 6c 6f 6f 70 20 73 74 61 74 65 6d 65 6e 74 be 20 63 61 75 73 65 73 20 ┆n ┐▄пexitloop statementЙ causes ┆
0x18840…18860 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6e 20 0a 65 6e 63 6c 6f 73 69 6e 67 20 72 ┆the execution of an enclosing r┆
0x18860…18880 65 70 65 74 69 74 69 76 65 20 73 74 61 74 65 6d 65 6e 74 20 28 63 66 2e 20 73 65 63 74 69 6f 6e ┆epetitive statement (cf. section┆
0x18880…188a0 20 35 2e 35 29 20 74 6f 20 74 65 72 80 6d 69 6e 61 74 65 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 ┆ 5.5) to terђminate. ma syndia┆
0x188a0…188c0 35 37 0d 0a 54 68 65 20 72 65 70 65 74 69 74 69 6f 6e 20 65 78 69 74 65 64 20 69 73 20 74 68 65 ┆57 The repetition exited is the┆
0x188c0…188e0 20 69 6e 6e 65 72 6d 6f 73 74 20 6f 6e 65 2e 20 41 6e 20 65 78 69 74 6c 6f 6f 70 20 73 74 61 80 ┆ innermost one. An exitloop staђ┆
0x188e0…18900 74 65 80 6d 65 6e 74 20 6d 61 79 20 0a 6f 6e 6c 79 20 61 70 70 65 61 72 20 77 69 74 68 69 6e 20 ┆teђment may only appear within ┆
0x18900…18920 61 20 72 65 70 65 74 69 74 69 76 65 20 73 74 61 74 65 6d 65 6e 74 2c 20 69 2e 65 2e 20 72 65 70 ┆a repetitive statement, i.e. rep┆
0x18920…18940 65 61 74 2c 20 66 6f 72 2c 20 77 68 69 6c 65 20 6f 72 20 0a 6c 6f 6f 70 20 73 74 61 74 65 6d 65 ┆eat, for, while or loop stateme┆
0x18940…18960 6e 74 2e 0d 0a 0d 0a 0e 0a a1 45 78 61 6d 70 6c 65 3a 0d 0a 54 68 65 20 67 65 6e 65 72 61 6c 69 ┆nt. АExample: The generali┆
0x18960…18980 7a 65 64 20 6c 6f 6f 70 20 63 6f 6e 74 72 6f 6c 20 73 74 72 75 63 74 75 72 65 20 6d 61 79 20 62 ┆zed loop control structure may b┆
0x18980…189a0 65 20 63 6f 6e 73 74 72 75 63 74 65 64 20 61 73 20 61 20 63 6f 6d 80 0a 62 69 6e 61 74 69 6f 6e ┆e constructed as a comђ bination┆
0x189a0…189c0 20 6f 66 20 61 20 6c 6f 6f 70 20 73 74 61 74 65 6d 65 6e 74 2c 20 61 6e 20 69 66 20 73 74 61 74 ┆ of a loop statement, an if stat┆
0x189c0…189e0 65 6d 65 6e 74 2c 20 61 6e 64 20 61 6e 20 65 78 69 74 80 6c 6f 6f 70 20 73 74 61 74 65 80 0a 6d ┆ement, and an exitђloop stateђ m┆
0x189e0…18a00 65 6e 74 3a 0d 0a 0d 0a 4c 4f 4f 50 0d 0a 20 20 73 5f 31 5f 31 3b 20 2e 2e 2e 3b 20 73 5f 31 5f ┆ent: LOOP s_1_1; ...; s_1_┆
0x18a00…18a20 6e 3b 0d 0a 20 20 49 46 20 62 6f 6f 6c 5f 63 6f 6e 64 69 74 69 6f 6e 20 54 48 45 4e 20 45 58 49 ┆n; IF bool_condition THEN EXI┆
0x18a20…18a40 54 4c 4f 4f 50 3b 0d 0a 20 20 73 5f 32 5f 31 3b 20 2e 2e 2e 3b 20 73 5f 32 5f 6d 0d 0a 45 4e 44 ┆TLOOP; s_2_1; ...; s_2_m END┆
0x18a40…18a60 4c 4f 4f 50 0d 0a 0f 0a 16 73 63 0d 0a 43 6f 6e 74 69 6e 75 65 6c 6f 6f 70 20 53 74 61 74 65 6d ┆LOOP sc Continueloop Statem┆
0x18a60…18a80 65 6e 74 0d 0a 54 68 65 20 bf dc d8 63 6f 6e 74 69 6e 75 65 6c 6f 6f 70 20 73 74 61 74 65 6d 65 ┆ent The ┐▄пcontinueloop stateme┆
0x18a80…18aa0 6e 74 be 20 73 70 65 63 69 66 69 65 73 20 74 68 61 74 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 ┆ntЙ specifies that the remaining┆
0x18aa0…18ac0 20 70 61 72 74 20 6f 66 20 61 6e 20 0a 69 74 65 72 61 74 69 6f 6e 20 6f 66 20 61 20 6c 6f 6f 70 ┆ part of an iteration of a loop┆
0x18ac0…18ae0 20 69 73 20 74 6f 20 62 65 20 73 6b 69 70 70 65 64 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 35 38 ┆ is to be skipped. ma syndia58┆
0x18ae0…18b00 0d 0a 8c 84 c0 0a 54 68 65 20 73 74 61 74 65 6d 65 6e 74 20 61 70 70 6c 69 65 73 20 74 6f 20 74 ┆ їё└ The statement applies to t┆
0x18b00…18b20 68 65 20 69 6e 6e 65 72 6d 6f 73 74 20 65 6e 63 6c 6f 73 69 6e 67 20 72 65 70 65 74 69 74 69 76 ┆he innermost enclosing repetitiv┆
0x18b20…18b40 65 20 73 74 61 80 74 65 6d 65 6e 74 20 0a 77 68 69 63 68 20 6d 75 73 74 20 74 68 65 72 65 66 6f ┆e staђtement which must therefo┆
0x18b40…18b60 72 65 20 65 78 69 73 74 2e 20 44 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 6b 69 6e 64 20 ┆re exist. Depending on the kind ┆
0x18b60…18b80 6f 66 20 72 65 80 70 65 74 69 74 69 6f 6e 20 0a 73 74 61 74 65 6d 65 6e 74 20 28 63 66 2e 20 73 ┆of reђpetition statement (cf. s┆
0x18b80…18ba0 65 63 74 69 6f 6e 20 35 2e 35 29 20 74 68 65 20 73 70 65 63 69 66 69 63 20 65 66 80 80 66 65 63 ┆ection 5.5) the specific efђђfec┆
0x18ba0…18bc0 74 20 6f 66 20 74 68 65 20 63 6f 6e 74 69 6e 75 65 6c 6f 6f 70 20 0a 73 74 61 74 65 6d 65 6e 74 ┆t of the continueloop statement┆
0x18bc0…18be0 20 69 73 3a 0d 0a 0d 0a a1 66 6f 72 20 73 74 61 74 65 6d 65 6e 74 3a 0d 0a 53 74 65 70 20 34 20 ┆ is: Аfor statement: Step 4 ┆
0x18be0…18c00 74 65 72 6d 69 6e 61 74 65 73 2c 20 61 6e 64 20 65 78 65 63 75 74 69 6f 6e 20 63 6f 6e 74 69 6e ┆terminates, and execution contin┆
0x18c00…18c20 75 65 73 20 61 74 20 73 74 65 70 20 35 2e 0d 0a 0d 0a a1 6c 6f 6f 70 20 73 74 61 74 65 6d 65 6e ┆ues at step 5. Аloop statemen┆
0x18c20…18c40 74 3a 0d 0a 45 78 65 63 75 74 69 6f 6e 20 63 6f 6e 74 69 6e 75 65 73 20 77 69 74 68 20 74 68 65 ┆t: Execution continues with the┆
0x18c40…18c60 20 66 69 72 73 74 20 73 74 61 74 65 6d 65 6e 74 20 61 66 74 65 72 20 4c 4f 4f 50 2e 0d 0a 0d 0a ┆ first statement after LOOP. ┆
0x18c60…18c80 0e 0a a1 77 68 69 6c 65 20 73 74 61 74 65 6d 65 6e 74 3a 0d 0a 54 68 65 20 72 65 6d 61 69 6e 64 ┆ Аwhile statement: The remaind┆
0x18c80…18ca0 65 72 20 6f 66 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 20 66 6f 6c 6c 6f 77 69 6e 67 20 44 4f ┆er of the statement following DO┆
0x18ca0…18cc0 20 69 73 20 73 6b 69 70 70 65 64 2e 20 45 78 65 80 63 75 80 74 69 6f 6e 20 0a 63 6f 6e 74 69 6e ┆ is skipped. Exeђcuђtion contin┆
0x18cc0…18ce0 75 65 73 20 77 69 74 68 20 74 68 65 20 65 76 61 6c 75 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6c ┆ues with the evaluation of the l┆
0x18ce0…18d00 6f 6f 70 20 63 6f 6e 64 69 74 69 6f 6e 2e 0d 0a 0f 0a 0d 0a 0e 0a a1 72 65 70 65 61 74 20 73 74 ┆oop condition. Аrepeat st┆
0x18d00…18d20 61 74 65 6d 65 6e 74 3a 0d 0a 54 68 65 20 72 65 6d 61 69 6e 64 65 72 20 6f 66 20 74 68 65 20 73 ┆atement: The remainder of the s┆
0x18d20…18d40 74 61 74 65 6d 65 6e 74 20 73 65 71 75 65 6e 63 65 20 75 70 20 74 6f 20 55 4e 54 49 4c 20 69 73 ┆tatement sequence up to UNTIL is┆
0x18d40…18d60 20 73 6b 69 70 80 70 65 64 2e 20 45 78 80 0a 65 63 75 74 69 6f 6e 20 63 6f 6e 74 69 6e 75 65 73 ┆ skipђped. Exђ ecution continues┆
0x18d60…18d80 20 77 69 74 68 20 74 68 65 20 65 76 61 6c 75 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6c 6f 6f 70 ┆ with the evaluation of the loop┆
0x18d80…18da0 20 63 6f 6e 64 69 80 74 69 6f 6e 2e 0d 0a 0f 0a 16 73 63 0d 0a 45 78 69 74 20 53 74 61 74 65 6d ┆ condiђtion. sc Exit Statem┆
0x18da0…18dc0 65 6e 74 0d 0a 41 6e 20 bf dc d8 65 78 69 74 20 73 74 61 74 65 6d 65 6e 74 be 20 68 61 73 20 74 ┆ent An ┐▄пexit statementЙ has t┆
0x18dc0…18de0 68 65 20 65 66 66 65 63 74 20 6f 66 20 61 20 6a 75 6d 70 20 74 6f 20 74 68 65 20 45 4e 44 20 6f ┆he effect of a jump to the END o┆
0x18de0…18e00 66 20 74 68 65 20 63 6f 6d 80 0a 70 6f 75 6e 64 20 73 74 61 74 65 6d 65 6e 74 20 6f 66 20 74 68 ┆f the comђ pound statement of th┆
0x18e00…18e20 65 20 65 6e 63 6c 6f 73 69 6e 67 20 62 6c 6f 63 6b 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 35 39 ┆e enclosing block. ma syndia59┆
0x18e20…18e40 0d 0a 45 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6e 20 65 78 69 74 20 73 74 61 74 65 6d 65 6e 74 ┆ Execution of an exit statement┆
0x18e40…18e60 20 63 61 75 73 65 73 20 74 65 72 6d 69 6e 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 65 78 80 65 63 ┆ causes termination of the exђec┆
0x18e60…18e80 75 80 74 69 6f 6e 20 6f 66 20 0a 74 68 65 20 61 63 74 69 6f 6e 20 70 61 72 74 20 6f 66 20 74 68 ┆uђtion of the action part of th┆
0x18e80…18ea0 65 20 6e 65 61 72 65 73 74 20 65 6e 63 6c 6f 73 69 6e 67 20 72 6f 75 74 69 6e 65 20 6f 72 20 70 ┆e nearest enclosing routine or p┆
0x18ea0…18ec0 72 6f 80 67 72 61 6d 20 62 6c 6f 63 6b 20 61 73 20 0a 69 66 20 74 68 65 20 63 6f 6d 70 6f 75 6e ┆roђgram block as if the compoun┆
0x18ec0…18ee0 64 20 73 74 61 74 65 6d 65 6e 74 20 68 61 64 20 62 65 65 6e 20 65 78 80 80 68 61 75 73 74 65 64 ┆d statement had been exђђhausted┆
0x18ee0…18f00 2e 0d 0a 0d 0a a1 45 78 61 6d 70 6c 65 3a 0d 0a 42 45 47 49 4e 20 28 2a 20 6d 61 69 6e 20 70 72 ┆. АExample: BEGIN (* main pr┆
0x18f00…18f20 6f 67 72 61 6d 20 2a 29 0d 0a 20 20 2e 2e 2e 0d 0a 20 20 49 46 20 65 72 72 6f 72 73 2d 64 65 74 ┆ogram *) ... IF errors-det┆
0x18f20…18f40 65 63 74 65 64 20 54 48 45 4e 20 28 2a 20 74 65 72 6d 69 6e 61 74 65 20 74 68 65 20 70 72 6f 63 ┆ected THEN (* terminate the proc┆
0x18f40…18f60 65 73 73 20 2a 29 0d 0a 20 20 20 20 45 58 49 54 3b 0d 0a 20 20 2e 2e 2e 0d 0a 45 4e 44 0d 0a 16 ┆ess *) EXIT; ... END ┆
0x18f60…18f80 73 63 0d 0a 47 6f 74 6f 20 61 6e 64 20 4c 61 62 65 6c 6c 65 64 20 53 74 61 74 65 6d 65 6e 74 0d ┆sc Goto and Labelled Statement ┆
0x18f80…18fa0 0a 54 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 20 bf dc d8 67 6f 74 6f 20 73 74 61 74 ┆ The execution of a ┐▄пgoto stat┆
0x18fa0…18fc0 65 6d 65 6e 74 be 20 72 65 73 75 6c 74 73 20 69 6e 20 61 6e 20 65 78 70 6c 69 63 69 74 20 74 72 ┆ementЙ results in an explicit tr┆
0x18fc0…18fe0 61 6e 73 66 65 72 20 6f 66 20 0a 63 6f 6e 74 72 6f 6c 20 74 6f 20 61 6e 6f 74 68 65 72 20 73 74 ┆ansfer of control to another st┆
0x18fe0…19000 61 74 65 6d 65 6e 74 20 73 70 65 63 69 66 69 65 64 20 62 79 20 61 20 6c 61 80 62 65 6c 2e 0d 0a ┆atement specified by a laђbel. ┆
0x19000…19020 16 6d 61 20 73 79 6e 64 69 61 36 30 0d 0a 16 6d 61 20 73 79 6e 64 69 61 36 31 0d 0a 41 20 6c 61 ┆ ma syndia60 ma syndia61 A la┆
0x19020…19040 62 65 6c 6c 65 64 20 73 74 61 74 65 6d 65 6e 74 20 69 6e 74 72 6f 64 75 63 65 73 20 74 68 65 20 ┆belled statement introduces the ┆
0x19040…19060 6c 61 62 65 6c 20 6e 61 6d 65 20 61 73 20 64 65 6e 6f 74 69 6e 67 20 61 20 6c 61 80 62 65 6c 20 ┆label name as denoting a laђbel ┆
0x19060…19080 6f 66 20 0a 74 68 65 20 27 73 74 61 74 65 6d 65 6e 74 27 20 66 6f 6c 6c 6f 77 69 6e 67 20 3a 2e ┆of the 'statement' following :.┆
0x19080…190a0 0d 0a 0d 0a 41 20 bf dc d8 6c 61 62 65 6c 6c 65 64 20 73 74 61 74 65 6d 65 6e 74 be 20 69 73 20 ┆ A ┐▄пlabelled statementЙ is ┆
0x190a0…190c0 65 78 65 63 75 74 65 64 20 62 79 20 65 78 65 63 75 74 69 6e 67 20 74 68 65 20 27 73 74 61 74 65 ┆executed by executing the 'state┆
0x190c0…190e0 80 80 6d 65 6e 74 27 2e 0d 0a 0d 0a 45 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 20 67 6f 74 6f 20 ┆ђђment'. Execution of a goto ┆
0x190e0…19100 73 74 61 74 65 6d 65 6e 74 20 63 61 75 73 65 73 20 74 68 65 20 6e 6f 72 6d 61 6c 20 6f 72 64 65 ┆statement causes the normal orde┆
0x19100…19120 72 20 6f 66 20 65 78 80 65 80 63 75 74 69 6f 6e 20 0a 6f 66 20 74 68 65 20 73 74 61 74 65 6d 65 ┆r of exђeђcution of the stateme┆
0x19120…19140 6e 74 73 20 77 69 74 68 69 6e 20 61 20 63 6f 6d 70 6f 75 6e 64 20 73 74 61 74 65 6d 65 6e 74 20 ┆nts within a compound statement ┆
0x19140…19160 74 6f 20 62 65 20 62 72 6f 6b 65 6e 2e 20 45 78 65 63 75 80 0a 74 69 6f 6e 20 69 73 20 72 65 73 ┆to be broken. Execuђ tion is res┆
0x19160…19180 75 6d 65 64 20 61 74 20 74 68 65 20 6c 61 62 65 6c 6c 65 64 20 73 74 61 74 65 6d 65 6e 74 20 77 ┆umed at the labelled statement w┆
0x19180…191a0 68 6f 73 65 20 27 6c 61 62 65 6c 5f 6e 61 6d 65 27 20 69 73 20 69 64 65 6e 80 0a 74 69 63 61 6c ┆hose 'label_name' is idenђ tical┆
0x191a0…191c0 20 74 6f 20 74 68 65 20 6f 6e 65 20 6f 63 63 75 72 72 69 6e 67 20 69 6e 20 74 68 65 20 67 6f 74 ┆ to the one occurring in the got┆
0x191c0…191e0 6f 20 73 74 61 74 65 80 6d 65 6e 74 2e 20 54 68 65 20 6c 61 62 65 6c 20 6d 75 73 74 20 62 65 20 ┆o stateђment. The label must be ┆
0x191e0…19200 0a 76 69 73 69 62 6c 65 20 61 74 20 74 68 65 20 70 6f 69 6e 74 20 77 68 65 72 65 20 74 68 65 20 ┆ visible at the point where the ┆
0x19200…19220 67 6f 74 6f 20 73 74 61 80 74 65 6d 65 6e 74 20 6f 63 63 75 72 73 2e 0d 0a 0d 0a 41 20 67 6f 74 ┆goto staђtement occurs. A got┆
0x19220…19240 6f 20 73 74 61 74 65 6d 65 6e 74 20 63 61 6e 6e 6f 74 20 62 65 20 75 73 65 64 20 74 6f 20 74 72 ┆o statement cannot be used to tr┆
0x19240…19260 61 6e 73 66 65 72 20 63 6f 6e 74 72 6f 6c 20 66 72 6f 6d 20 74 68 65 20 6f 75 74 73 69 64 65 20 ┆ansfer control from the outside ┆
0x19260…19280 0a 69 6e 74 6f 20 6f 72 20 66 72 6f 6d 20 74 68 65 20 69 6e 73 69 64 65 20 6f 75 74 20 6f 66 20 ┆ into or from the inside out of ┆
0x19280…192a0 74 68 65 20 73 74 61 74 65 6d 65 6e 74 20 66 6f 6c 6c 6f 80 77 69 6e 67 20 44 4f 20 6f 66 20 61 ┆the statement folloђwing DO of a┆
0x192a0…192c0 20 66 6f 72 2c 20 0a 77 69 74 68 2c 20 6c 6f 63 6b 2c 20 6f 72 20 72 65 67 69 6f 6e 20 73 74 61 ┆ for, with, lock, or region sta┆
0x192c0…192e0 74 65 6d 65 6e 74 2e 0d 0a 0d 0a a1 4e 6f 74 65 3a 0d 0a 47 6f 74 6f 20 69 6e 74 6f 20 6f 72 20 ┆tement. АNote: Goto into or ┆
0x192e0…19300 6f 75 74 20 6f 66 20 61 20 62 6c 6f 63 6b 20 69 73 20 69 6d 70 6f 73 73 69 62 6c 65 2e 0d 0a 16 ┆out of a block is impossible. ┆
0x19300…19320 73 62 0d 0a 57 69 74 68 20 53 74 61 74 65 6d 65 6e 74 0d 0a 41 20 bf dc d8 77 69 74 68 20 73 74 ┆sb With Statement A ┐▄пwith st┆
0x19320…19340 61 74 65 6d 65 6e 74 be 20 6d 61 79 20 62 65 20 75 73 65 64 20 66 6f 72 20 74 68 72 65 65 20 70 ┆atementЙ may be used for three p┆
0x19340…19360 75 72 70 6f 73 65 73 3a 0d 0a 0d 0a 2d 20 73 68 6f 72 74 68 61 6e 64 20 6e 6f 74 61 74 69 6f 6e ┆urposes: - shorthand notation┆
0x19360…19380 20 66 6f 72 20 66 69 65 6c 64 20 61 63 63 65 73 73 20 69 6e 20 61 20 72 65 63 6f 72 64 20 6f 62 ┆ for field access in a record ob┆
0x19380…193a0 6a 65 63 74 2c 0d 0a 2d 20 6f 62 6a 65 63 74 20 72 65 6e 61 6d 69 6e 67 2c 0d 0a 2d 20 6f 62 6a ┆ject, - object renaming, - obj┆
0x193a0…193c0 65 63 74 20 72 65 74 79 70 69 6e 67 2e 0d 0a 0d 0a 54 68 65 20 6c 61 74 74 65 72 20 69 73 20 61 ┆ect retyping. The latter is a┆
0x193c0…193e0 20 66 61 63 69 6c 69 74 79 20 61 6c 6c 6f 77 69 6e 67 20 61 20 70 72 6f 67 72 61 6d 6d 65 72 2d ┆ facility allowing a programmer-┆
0x193e0…19400 64 65 66 69 6e 65 64 20 74 79 70 65 20 74 6f 20 62 65 20 73 75 80 0a 70 65 72 69 6d 70 6f 73 65 ┆defined type to be suђ perimpose┆
0x19400…19420 64 20 6f 6e 20 61 20 6d 65 73 73 61 67 65 20 62 75 66 66 65 72 20 77 68 65 6e 20 61 70 70 6c 69 ┆d on a message buffer when appli┆
0x19420…19440 65 64 20 69 6e 20 61 20 6c 6f 63 6b 20 73 74 61 80 74 65 80 6d 65 6e 74 2e 0d 0a 16 6d 61 20 73 ┆ed in a lock staђteђment. ma s┆
0x19440…19460 79 6e 64 69 61 36 32 0d 0a 16 6d 61 20 73 79 6e 64 69 61 36 33 0d 0a 16 6d 61 20 77 69 74 68 72 ┆yndia62 ma syndia63 ma withr┆
0x19460…19480 65 6e 0d 0a 54 68 65 20 64 65 6e 6f 74 65 64 20 6f 62 6a 65 63 74 20 69 73 20 63 61 6c 6c 65 64 ┆en The denoted object is called┆
0x19480…194a0 20 74 68 65 20 a0 77 69 74 68 2d 6f 62 6a 65 63 74 e0 2e 20 49 74 20 6d 75 73 74 20 6e 6f 74 20 ┆ the аwith-objectЯ. It must not ┆
0x194a0…194c0 62 65 20 61 6e 20 69 72 72 65 80 0a 67 75 6c 61 72 20 6f 62 6a 65 63 74 20 28 63 66 2e 20 73 65 ┆be an irreђ gular object (cf. se┆
0x194c0…194e0 63 74 69 6f 6e 20 33 2e 38 29 2e 20 54 68 65 20 74 79 70 65 20 73 70 65 63 69 66 69 65 64 20 62 ┆ction 3.8). The type specified b┆
0x194e0…19500 79 20 74 68 65 20 27 63 6f 6d 6d 6f 6e 20 74 79 80 0a 70 65 20 73 70 65 63 69 66 69 63 61 74 69 ┆y the 'common tyђ pe specificati┆
0x19500…19520 6f 6e 27 2c 20 69 66 20 70 72 65 73 65 6e 74 2c 20 69 73 20 63 61 6c 6c 65 64 20 74 68 65 20 a0 ┆on', if present, is called the а┆
0x19520…19540 6c 6f 63 61 6c 20 74 79 70 65 e0 2e 20 54 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 0a 77 69 ┆local typeЯ. The type of the wi┆
0x19540…19560 74 68 2d 6f 62 6a 65 63 74 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 70 72 6f 74 65 63 80 74 65 64 ┆th-object must not be protecђted┆
0x19560…19580 2c 20 6e 6f 72 20 6d 61 79 20 74 68 65 20 6c 6f 63 61 6c 20 74 79 70 65 2e 20 54 68 65 20 73 69 ┆, nor may the local type. The si┆
0x19580…195a0 7a 65 20 0a 6f 66 20 74 68 65 20 6c 6f 63 61 6c 20 74 79 70 65 20 6d 75 73 74 20 62 65 20 6c 65 ┆ze of the local type must be le┆
0x195a0…195c0 73 73 20 74 68 61 6e 20 6f 72 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 73 69 7a 65 20 6f 66 20 ┆ss than or equal to the size of ┆
0x195c0…195e0 74 68 65 20 77 69 74 68 2d 0a 6f 62 6a 65 63 74 2e 0d 0a 0d 0a 49 66 20 74 68 65 20 41 53 2d 70 ┆the with- object. If the AS-p┆
0x195e0…19600 61 72 74 20 6f 66 20 61 20 77 69 74 68 20 73 74 61 74 65 6d 65 6e 74 20 69 73 20 65 6d 70 74 79 ┆art of a with statement is empty┆
0x19600…19620 20 73 65 76 65 72 61 6c 20 77 69 74 68 2d 6f 62 6a 65 63 74 73 20 6d 61 79 20 0a 62 65 20 6c 69 ┆ several with-objects may be li┆
0x19620…19640 73 74 65 64 2e 20 4d 6f 72 65 20 73 70 65 63 69 66 69 63 61 6c 6c 79 0d 0a 0d 0a 20 20 20 20 57 ┆sted. More specifically W┆
0x19640…19660 49 54 48 20 64 82 31 81 2c 20 64 82 32 81 2c 20 2e 2e 2e 2c 20 64 82 6e 81 20 44 4f 20 73 74 0d ┆ITH dѓ1Ђ, dѓ2Ђ, ..., dѓnЂ DO st ┆
0x19660…19680 0a 0d 0a 69 73 20 61 63 63 65 70 74 61 62 6c 65 20 61 73 20 73 68 6f 72 74 68 61 6e 64 20 66 6f ┆ is acceptable as shorthand fo┆
0x19680…196a0 72 0d 0a 0d 0a 20 20 20 20 57 49 54 48 20 64 82 31 81 20 44 4f 20 57 49 54 48 20 64 82 32 81 20 ┆r WITH dѓ1Ђ DO WITH dѓ2Ђ ┆
0x196a0…196c0 44 4f 20 2e 2e 2e 20 57 49 54 48 20 64 82 6e 81 20 44 4f 20 73 74 0d 0a 0d 0a 77 68 65 72 65 20 ┆DO ... WITH dѓnЂ DO st where ┆
0x196c0…196e0 74 68 65 20 64 82 69 81 20 61 72 65 20 6f 62 6a 65 63 74 20 64 65 6e 6f 74 61 74 69 6f 6e 73 2e ┆the dѓiЂ are object denotations.┆
0x196e0…19700 0d 0a 0d 0a 41 20 77 69 74 68 20 73 74 61 74 65 6d 65 6e 74 20 69 73 20 65 78 65 63 75 74 65 64 ┆ A with statement is executed┆
0x19700…19720 20 69 6e 20 74 68 72 65 65 20 73 74 65 70 73 3a 0d 0a 31 2e 20 84 74 68 65 20 64 65 6e 6f 74 61 ┆ in three steps: 1. ёthe denota┆
0x19720…19740 74 69 6f 6e 20 6f 66 20 74 68 65 20 77 69 74 68 2d 6f 62 6a 65 63 74 20 69 73 20 65 76 61 6c 75 ┆tion of the with-object is evalu┆
0x19740…19760 61 74 65 64 20 61 73 20 61 6e 20 6f 62 6a 65 63 74 20 65 78 70 72 65 73 80 0a 19 83 80 80 73 69 ┆ated as an object expresђ Ѓђђsi┆
0x19760…19780 6f 6e 2c 20 69 2e 65 2e 20 74 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 6f 62 6a 65 ┆on, i.e. the address of the obje┆
0x19780…197a0 63 74 20 69 73 20 65 73 74 61 62 6c 69 73 68 65 64 3b 0d 0a 32 2e 20 74 68 65 20 6c 6f 63 61 6c ┆ct is established; 2. the local┆
0x197a0…197c0 20 74 79 70 65 2c 20 69 66 20 70 72 65 73 65 6e 74 2c 20 69 73 20 65 73 74 61 62 6c 69 73 68 65 ┆ type, if present, is establishe┆
0x197c0…197e0 64 3b 0d 0a 33 2e 20 84 74 68 65 20 73 74 61 74 65 6d 65 6e 74 20 66 6f 6c 6c 6f 77 69 6e 67 20 ┆d; 3. ёthe statement following ┆
0x197e0…19800 44 4f 20 69 73 20 65 78 65 63 75 74 65 64 20 6f 62 73 65 72 76 69 6e 67 20 74 68 65 20 72 75 80 ┆DO is executed observing the ruђ┆
0x19800…19820 6c 65 73 20 64 65 73 63 72 69 80 0a 19 83 80 80 62 65 64 20 62 65 6c 6f 77 2e 0d 0a 0d 0a a1 66 ┆les descriђ Ѓђђbed below. Аf┆
0x19820…19840 69 65 6c 64 20 61 63 63 65 73 73 3a 0d 0a 49 6e 20 74 68 65 20 73 69 6d 70 6c 65 20 66 6f 72 6d ┆ield access: In the simple form┆
0x19840…19860 20 6f 66 20 74 68 65 20 77 69 74 68 20 73 74 61 74 65 6d 65 6e 74 2c 20 69 2e 65 2e 20 77 69 74 ┆ of the with statement, i.e. wit┆
0x19860…19880 68 6f 75 74 20 72 65 6e 61 6d 69 6e 67 2c 20 61 6e 64 20 0a 69 66 20 74 68 65 20 74 79 70 65 20 ┆hout renaming, and if the type ┆
0x19880…198a0 6f 66 20 74 68 65 20 77 69 74 68 2d 6f 62 6a 65 63 74 20 69 73 20 61 20 72 65 63 6f 72 64 20 74 ┆of the with-object is a record t┆
0x198a0…198c0 79 70 65 20 61 6e 64 20 66 6e 61 6d 65 20 69 73 20 61 20 66 69 65 6c 64 20 0a 6e 61 6d 65 20 6f ┆ype and fname is a field name o┆
0x198c0…198e0 66 20 74 68 69 73 20 72 65 63 6f 72 64 20 74 79 70 65 20 74 68 65 6e 0d 0a 20 20 20 20 66 6e 61 ┆f this record type then fna┆
0x198e0…19900 6d 65 0d 0a 6d 61 79 20 62 65 20 75 73 65 64 20 61 73 20 73 68 6f 72 74 68 61 6e 64 20 66 6f 72 ┆me may be used as shorthand for┆
0x19900…19920 0d 0a 20 20 20 20 6f 62 6a 2e 66 6e 61 6d 65 0d 0a 77 68 65 72 65 20 6f 62 6a 20 69 73 20 61 6e ┆ obj.fname where obj is an┆
0x19920…19940 20 6f 62 6a 65 63 74 20 64 65 6e 6f 74 61 74 69 6f 6e 20 64 65 6e 6f 74 69 6e 67 20 74 68 65 20 ┆ object denotation denoting the ┆
0x19940…19960 77 69 74 68 2d 6f 62 6a 65 63 74 2e 0d 0a 0d 0a a1 72 65 6e 61 6d 69 6e 67 3a 0d 0a 61 20 6e 6f ┆with-object. Аrenaming: a no┆
0x19960…19980 6e 2d 65 6d 70 74 79 20 41 53 2d 70 61 72 74 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f ┆n-empty AS-part is equivalent to┆
0x19980…199a0 20 61 20 6c 6f 63 61 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 6f 66 20 61 6e 20 6f 62 6a 65 63 ┆ a local declaration of an objec┆
0x199a0…199c0 74 2c 20 0a 63 61 6c 6c 65 64 20 74 68 65 20 a0 6c 6f 63 61 6c 20 6f 62 6a 65 63 74 e0 2c 20 77 ┆t, called the аlocal objectЯ, w┆
0x199c0…199e0 69 74 68 20 74 68 65 20 73 61 6d 65 20 61 64 64 72 65 73 73 20 61 73 20 74 68 65 20 77 69 74 68 ┆ith the same address as the with┆
0x199e0…19a00 2d 6f 62 6a 65 63 74 2e 20 54 68 65 20 0a 27 6c 6f 63 61 6c 5f 6e 61 6d 65 27 20 64 65 6e 6f 74 ┆-object. The 'local_name' denot┆
0x19a00…19a20 65 73 20 74 68 65 20 6c 6f 63 61 6c 20 6f 62 6a 65 63 74 2e 0d 0a 0d 0a a1 72 65 74 79 70 69 6e ┆es the local object. Аretypin┆
0x19a20…19a40 67 3a 0d 0a 54 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 6c 6f 63 61 6c 20 6f 62 6a 65 63 74 ┆g: The type of the local object┆
0x19a40…19a60 20 69 73 20 74 68 65 20 6c 6f 63 61 6c 20 74 79 70 65 2c 20 69 66 20 73 70 65 63 69 80 80 66 69 ┆ is the local type, if speciђђfi┆
0x19a60…19a80 65 64 3b 20 6f 74 68 65 72 77 69 73 65 20 0a 69 74 20 69 73 20 74 68 65 20 74 79 70 65 20 6f 66 ┆ed; otherwise it is the type of┆
0x19a80…19aa0 20 74 68 65 20 77 69 74 68 2d 6f 62 6a 65 63 74 2e 0d 0a 0d 0a a1 4e 6f 74 65 73 3a 0d 0a 74 68 ┆ the with-object. АNotes: th┆
0x19aa0…19ac0 65 20 77 69 74 68 2d 6f 62 6a 65 63 74 20 69 73 20 6e 6f 74 20 72 65 73 74 72 69 63 74 65 64 20 ┆e with-object is not restricted ┆
0x19ac0…19ae0 74 6f 20 62 65 20 6f 66 20 61 20 72 65 63 6f 72 64 20 74 79 70 65 2c 20 65 76 65 6e 20 28 73 74 ┆to be of a record type, even (st┆
0x19ae0…19b00 72 75 63 80 0a 74 75 72 65 64 29 20 63 6f 6e 73 74 61 6e 74 73 20 61 72 65 20 61 6c 6c 6f 77 65 ┆rucђ tured) constants are allowe┆
0x19b00…19b20 64 2e 0d 0a 0d 0a 54 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 ┆d. The address of the object ┆
0x19b20…19b40 69 73 20 65 76 61 6c 75 61 74 65 64 20 6f 6e 6c 79 20 6f 6e 63 65 20 62 65 66 6f 72 65 20 74 68 ┆is evaluated only once before th┆
0x19b40…19b60 65 20 73 74 61 80 74 65 6d 65 6e 74 20 0a 66 6f 6c 6c 6f 77 69 6e 67 20 44 4f 20 69 73 20 65 78 ┆e staђtement following DO is ex┆
0x19b60…19b80 65 63 75 74 65 64 2e 0d 0a 0d 0a 8c 94 e8 0a 54 68 65 20 72 65 74 79 70 69 6e 67 20 6f 66 20 61 ┆ecuted. їћУ The retyping of a┆
0x19b80…19ba0 6e 20 6f 62 6a 65 63 74 20 69 73 20 61 20 6c 6f 77 2d 6c 65 76 65 6c 20 66 61 63 69 6c 69 74 79 ┆n object is a low-level facility┆
0x19ba0…19bc0 20 6f 66 20 74 68 65 20 6c 61 6e 67 75 61 80 67 65 2c 20 69 6e 80 0a 74 65 6e 64 65 64 20 66 6f ┆ of the languaђge, inђ tended fo┆
0x19bc0…19be0 72 20 75 73 65 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 6d 65 73 73 61 67 65 ┆r use in connection with message┆
0x19be0…19c00 73 20 77 68 6f 73 65 20 65 78 61 63 74 20 74 79 70 65 20 69 73 20 6e 6f 74 20 0a 6b 6e 6f 77 6e ┆s whose exact type is not known┆
0x19c00…19c20 20 62 65 66 6f 72 65 68 61 6e 64 20 28 73 6f 6d 65 20 6f 66 20 74 68 65 20 74 79 70 65 20 69 6e ┆ beforehand (some of the type in┆
0x19c20…19c40 66 6f 72 80 6d 61 80 74 69 6f 6e 20 6d 61 79 20 62 65 20 70 61 72 74 20 6f 66 20 74 68 65 20 0a ┆forђmaђtion may be part of the ┆
0x19c40…19c60 6d 65 73 73 61 67 65 20 62 75 66 66 65 72 29 2e 20 42 75 74 20 74 68 65 20 66 61 63 69 6c 69 74 ┆message buffer). But the facilit┆
0x19c60…19c80 79 20 6d 61 79 20 62 65 20 75 73 65 64 20 66 72 65 65 6c 79 20 74 6f 20 61 63 68 69 65 76 65 20 ┆y may be used freely to achieve ┆
0x19c80…19ca0 61 20 0a 72 65 6c 61 78 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6f 74 68 65 72 77 69 73 65 20 72 ┆a relaxation of the otherwise r┆
0x19ca0…19cc0 69 67 6f 72 6f 75 73 20 6f 62 6a 65 63 74 20 74 79 70 69 6e 67 2c 20 77 68 69 63 68 20 69 73 20 ┆igorous object typing, which is ┆
0x19cc0…19ce0 6f 6e 65 20 6f 66 20 0a 74 68 65 20 62 61 73 69 63 20 66 65 61 74 75 72 65 73 20 6f 66 20 74 68 ┆one of the basic features of th┆
0x19ce0…19d00 65 20 6c 61 6e 67 75 61 80 67 65 2e 20 54 68 69 73 20 6d 65 74 68 6f 64 20 64 65 6d 61 6e 64 73 ┆e languaђge. This method demands┆
0x19d00…19d20 20 61 6e 20 65 78 80 70 6c 69 63 69 74 20 0a 61 6e 64 20 63 6c 65 61 72 20 72 65 74 79 70 69 6e ┆ an exђplicit and clear retypin┆
0x19d20…19d40 67 20 73 74 61 74 65 64 20 77 68 65 72 65 20 69 74 20 69 73 20 75 73 65 64 20 69 6e 20 74 68 65 ┆g stated where it is used in the┆
0x19d40…19d60 20 70 72 6f 67 72 61 6d 2c 20 69 6e 20 63 6f 6e 74 72 61 73 74 20 0a 74 6f 20 74 68 65 20 73 74 ┆ program, in contrast to the st┆
0x19d60…19d80 61 6e 64 61 72 64 20 50 61 73 63 61 6c 20 73 6f 6c 75 74 69 6f 6e 20 75 73 69 6e 67 20 76 61 72 ┆andard Pascal solution using var┆
0x19d80…19da0 69 61 6e 74 20 72 65 63 6f 72 64 73 2e 0d 0a 0d 0a 54 68 65 20 65 66 66 65 63 74 20 6f 66 20 61 ┆iant records. The effect of a┆
0x19da0…19dc0 73 73 69 67 6e 6d 65 6e 74 20 6f 72 20 65 78 63 68 61 6e 67 65 20 62 65 74 77 65 65 6e 20 70 61 ┆ssignment or exchange between pa┆
0x19dc0…19de0 72 74 69 61 6c 6c 79 20 6f 76 65 72 80 6c 61 70 80 70 69 6e 67 20 0a 6f 62 6a 65 63 74 73 20 69 ┆rtially overђlapђping objects i┆
0x19de0…19e00 73 20 75 6e 64 65 66 69 6e 65 64 2e 0d 0a 0d 0a 0e 0a a1 45 78 61 6d 70 6c 65 3a 0d 0a 4c 65 74 ┆s undefined. АExample: Let┆
0x19e00…19e20 20 72 65 63 5f 76 61 72 20 62 65 20 61 20 72 65 63 6f 72 64 20 77 69 74 68 20 61 20 66 69 65 6c ┆ rec_var be a record with a fiel┆
0x19e20…19e40 64 20 6e 61 6d 65 64 20 72 65 63 5f 66 69 65 6c 64 2c 20 61 6e 64 20 6c 65 74 20 6c 6f 80 0a 63 ┆d named rec_field, and let loђ c┆
0x19e40…19e60 61 6c 5f 74 79 70 65 20 63 6f 6e 74 61 69 6e 20 61 20 66 69 65 6c 64 20 6e 61 6d 65 64 20 6c 6f ┆al_type contain a field named lo┆
0x19e60…19e80 63 5f 72 65 63 5f 66 69 65 6c 64 2c 20 74 68 65 6e 20 74 68 65 20 66 69 65 6c 64 73 20 6d 61 79 ┆c_rec_field, then the fields may┆
0x19e80…19ea0 20 62 65 20 0a 61 63 63 65 73 73 65 64 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 77 ┆ be accessed in the following w┆
0x19ea0…19ec0 61 79 73 20 69 6e 20 74 68 65 20 73 74 61 74 65 80 80 6d 65 6e 74 20 66 6f 6c 6c 6f 77 80 69 6e ┆ays in the stateђђment followђin┆
0x19ec0…19ee0 67 20 44 4f 3a 0d 0a 0d 0a 31 29 20 84 57 49 54 48 20 72 65 63 5f 76 61 72 20 44 4f 20 28 2a 20 ┆g DO: 1) ёWITH rec_var DO (* ┆
0x19ee0…19f00 74 68 65 20 77 65 6c 6c 2d 6b 6e 6f 77 6e 20 73 74 61 6e 64 61 72 64 20 50 61 73 63 61 6c 20 66 ┆the well-known standard Pascal f┆
0x19f00…19f20 6f 72 6d 20 2a 29 0d 0a 20 20 20 72 65 63 5f 76 61 72 2e 72 65 63 5f 66 69 65 6c 64 20 6f 72 0d ┆orm *) rec_var.rec_field or ┆
0x19f20…19f40 0a 20 20 20 72 65 63 5f 66 69 65 6c 64 0d 0a 0f 0a 0d 0a 32 29 20 57 49 54 48 20 72 65 63 5f 76 ┆ rec_field 2) WITH rec_v┆
0x19f40…19f60 61 72 20 41 53 20 6c 6f 63 5f 76 61 72 20 44 4f 20 28 2a 20 73 69 6d 70 6c 65 20 72 65 6e 61 6d ┆ar AS loc_var DO (* simple renam┆
0x19f60…19f80 69 6e 67 20 2a 29 0d 0a 20 20 20 72 65 63 5f 76 61 72 2e 72 65 63 5f 66 69 65 6c 64 20 6f 72 0d ┆ing *) rec_var.rec_field or ┆
0x19f80…19fa0 0a 20 20 20 6c 6f 63 5f 76 61 72 2e 72 65 63 5f 66 69 65 6c 64 0d 0a 0d 0a 33 29 20 57 49 54 48 ┆ loc_var.rec_field 3) WITH┆
0x19fa0…19fc0 20 72 65 63 5f 76 61 72 20 41 53 20 6c 6f 63 5f 76 61 72 3a 20 6c 6f 63 61 6c 5f 74 79 70 65 20 ┆ rec_var AS loc_var: local_type ┆
0x19fc0…19fe0 44 4f 0d 0a 20 20 20 28 2a 20 72 65 6e 61 6d 69 6e 67 20 61 6e 64 20 72 65 74 79 70 69 6e 67 20 ┆DO (* renaming and retyping ┆
0x19fe0…1a000 2a 29 0d 0a 20 20 20 72 65 63 5f 76 61 72 2e 72 65 63 5f 66 69 65 6c 64 20 6f 72 0d 0a 20 20 20 ┆*) rec_var.rec_field or ┆
0x1a000…1a020 6c 6f 63 5f 76 61 72 2e 6c 6f 63 5f 72 65 63 5f 66 69 65 6c 64 0d 0a 0d 0a 0e 0a a1 45 78 61 6d ┆loc_var.loc_rec_field АExam┆
0x1a020…1a040 70 65 6c 3a 0d 0a 54 59 50 45 0d 0a 20 20 63 61 74 5f 72 65 63 6f 72 64 3d 20 52 45 43 4f 52 44 ┆pel: TYPE cat_record= RECORD┆
0x1a040…1a060 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 69 74 6c 65 3a 20 20 2e 2e 2e 2e 0d ┆ title: .... ┆
0x1a060…1a080 0a 09 09 20 20 61 75 74 68 6f 72 3a 20 2e 2e 2e 2e 0d 0a 09 09 45 4e 44 3b 0d 0a 56 41 52 0d 0a ┆ author: .... END; VAR ┆
0x1a080…1a0a0 20 20 62 5f 63 61 74 61 6c 6f 67 3a 20 41 52 52 41 59 28 31 2e 2e 63 61 74 5f 73 69 7a 65 29 20 ┆ b_catalog: ARRAY(1..cat_size) ┆
0x1a0a0…1a0c0 4f 46 20 63 61 74 5f 72 65 63 6f 72 64 3b 0d 0a 20 20 73 65 61 72 63 68 5f 6f 62 6a 65 63 74 3a ┆OF cat_record; search_object:┆
0x1a0c0…1a0e0 20 63 61 74 5f 72 65 63 6f 72 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 2e 2e 2e 0d 0a 8c 87 c0 ┆ cat_record; ... їЄ└┆
0x1a0e0…1a100 0a 20 20 57 49 54 48 20 73 65 61 72 63 68 5f 6f 62 6a 65 63 74 20 41 53 20 73 5f 6f 20 44 4f 0d ┆ WITH search_object AS s_o DO ┆
0x1a100…1a120 0a 20 20 20 20 57 48 49 4c 45 20 4e 4f 54 20 66 6f 75 6e 64 20 44 4f 0d 0a 20 20 20 20 20 20 57 ┆ WHILE NOT found DO W┆
0x1a120…1a140 49 54 48 20 62 5f 63 61 74 61 6c 6f 67 28 63 75 72 72 65 6e 74 5f 69 6e 64 65 78 29 20 44 4f 0d ┆ITH b_catalog(current_index) DO ┆
0x1a140…1a160 0a 20 20 20 20 20 20 20 20 49 46 20 61 75 74 68 6f 72 28 2a 20 6f 66 20 62 5f 63 61 74 61 6c 6f ┆ IF author(* of b_catalo┆
0x1a160…1a180 67 20 2a 29 3c 3e 73 5f 6f 2e 61 75 74 68 6f 72 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 ┆g *)<>s_o.author then ┆
0x1a180…1a1a0 20 63 75 72 72 65 6e 74 5f 69 6e 64 65 78 3a 3d 20 63 75 72 72 65 6e 74 5f 69 6e 64 65 78 2b 31 ┆ current_index:= current_index+1┆
0x1a1a0…1a1c0 0d 0a 20 20 20 20 20 20 20 20 45 4c 53 45 0d 0a 20 20 20 20 20 20 20 20 20 20 2e 2e 2e 0d 0a 0f ┆ ELSE ... ┆
0x1a1c0…1a1e0 0a 16 73 62 0d 0a 4c 6f 63 6b 20 53 74 61 74 65 6d 65 6e 74 0d 0a 54 68 65 20 bf dc d8 6c 6f 63 ┆ sb Lock Statement The ┐▄пloc┆
0x1a1e0…1a200 6b 20 73 74 61 74 65 6d 65 6e 74 be 20 69 73 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 63 6f 6e ┆k statementЙ is the language con┆
0x1a200…1a220 73 74 72 75 63 74 20 77 68 69 63 68 20 70 72 6f 76 69 64 65 73 20 61 63 80 63 65 73 73 20 74 6f ┆struct which provides acђcess to┆
0x1a220…1a240 20 0a 74 68 65 20 61 63 74 75 61 6c 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 61 20 6d 65 73 73 61 ┆ the actual contents of a messa┆
0x1a240…1a260 67 65 20 62 75 66 66 65 72 2c 20 69 2e 65 2e 20 74 6f 20 74 68 65 20 74 6f 70 20 6e 6f 6e 2d 65 ┆ge buffer, i.e. to the top non-e┆
0x1a260…1a280 6d 70 74 79 20 0a 6d 65 73 73 61 67 65 20 69 6e 20 61 20 6d 65 73 73 61 67 65 20 73 74 61 63 6b ┆mpty message in a message stack┆
0x1a280…1a2a0 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 36 34 0d 0a 16 6d 61 20 6c 6f 63 6b 64 65 66 0d 0a 54 68 ┆. ma syndia64 ma lockdef Th┆
0x1a2a0…1a2c0 65 20 64 65 6e 6f 74 65 64 20 6f 62 6a 65 63 74 20 6d 75 73 74 20 62 65 20 61 20 76 61 72 69 61 ┆e denoted object must be a varia┆
0x1a2c0…1a2e0 62 6c 65 20 6f 66 20 74 79 70 65 20 72 65 66 65 72 65 6e 63 65 20 6f 72 20 63 68 61 69 6e 2e 20 ┆ble of type reference or chain. ┆
0x1a2e0…1a300 49 66 20 0a 69 74 20 69 73 20 61 20 72 65 66 65 72 65 6e 63 65 20 69 74 73 20 76 61 6c 75 65 20 ┆If it is a reference its value ┆
0x1a300…1a320 6d 75 73 74 20 6e 6f 74 20 62 65 20 4e 49 4c 2c 20 61 6e 64 20 69 66 20 69 74 20 69 73 20 61 20 ┆must not be NIL, and if it is a ┆
0x1a320…1a340 63 68 61 69 6e 20 69 74 20 0a 6d 75 73 74 20 6e 6f 74 20 62 65 20 65 6d 70 74 79 2e 20 4f 74 68 ┆chain it must not be empty. Oth┆
0x1a340…1a360 65 72 77 69 73 65 20 61 20 66 61 75 6c 74 20 6f 63 80 63 75 72 73 2e 20 54 68 65 20 6d 65 73 73 ┆erwise a fault ocђcurs. The mess┆
0x1a360…1a380 61 67 65 20 64 65 73 69 67 6e 61 74 65 64 20 0a 62 79 20 74 68 65 20 72 65 66 65 72 65 6e 63 65 ┆age designated by the reference┆
0x1a380…1a3a0 2c 20 6f 72 20 74 68 65 20 63 75 72 80 80 72 65 6e 74 20 6d 65 73 73 61 67 65 20 6f 66 20 74 68 ┆, or the curђђrent message of th┆
0x1a3a0…1a3c0 65 20 63 68 61 69 6e 2c 20 77 68 69 63 68 65 76 65 72 20 0a 61 70 70 6c 69 65 73 2c 20 6d 61 79 ┆e chain, whichever applies, may┆
0x1a3c0…1a3e0 20 62 65 20 61 63 63 65 73 80 73 65 64 20 69 6e 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 20 66 ┆ be accesђsed in the statement f┆
0x1a3e0…1a400 6f 6c 6c 6f 77 69 6e 67 20 44 4f 20 61 73 20 61 6e 20 69 6d 70 6c 69 80 0a 63 69 74 6c 79 20 64 ┆ollowing DO as an impliђ citly d┆
0x1a400…1a420 65 63 6c 61 72 65 64 20 76 61 72 69 61 62 6c 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 77 68 69 ┆eclared variable the name of whi┆
0x1a420…1a440 63 68 20 69 73 20 73 70 65 63 69 66 69 65 64 20 62 79 20 74 68 65 20 27 6d 65 73 73 61 80 0a 67 ┆ch is specified by the 'messaђ g┆
0x1a440…1a460 65 5f 6e 61 80 6d 65 27 2e 20 45 69 74 68 65 72 20 74 68 65 20 77 68 6f 6c 65 20 62 75 66 80 66 ┆e_naђme'. Either the whole bufђf┆
0x1a460…1a480 65 72 20 6f 72 20 6f 6e 6c 79 20 69 74 73 20 64 61 74 61 20 61 72 65 61 20 69 73 20 61 63 63 65 ┆er or only its data area is acce┆
0x1a480…1a4a0 73 80 73 69 62 6c 65 2c 20 0a 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 6c 6f 63 6b 80 ┆sђsible, depending on the lockђ┆
0x1a4a0…1a4c0 77 6f 72 64 20 28 4c 4f 43 4b 42 55 46 20 6f 72 20 4c 4f 43 4b 44 41 54 41 29 2e 0d 0a 0d 0a 49 ┆word (LOCKBUF or LOCKDATA). I┆
0x1a4c0…1a4e0 66 20 6e 6f 20 72 65 74 79 70 69 6e 67 20 69 73 20 73 70 65 63 69 66 69 65 64 20 66 6f 72 20 74 ┆f no retyping is specified for t┆
0x1a4e0…1a500 68 65 20 62 75 66 66 65 72 2f 64 61 74 61 20 61 72 65 61 20 74 68 65 20 61 70 80 70 72 6f 80 70 ┆he buffer/data area the apђproђp┆
0x1a500…1a520 72 69 61 74 65 20 6f 66 20 0a 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 79 70 65 73 20 69 73 ┆riate of the following types is┆
0x1a520…1a540 20 61 73 73 75 6d 65 64 2e 0d 0a 0d 0a 49 66 20 74 68 65 20 6c 6f 63 6b 77 6f 72 64 20 69 73 20 ┆ assumed. If the lockword is ┆
0x1a540…1a560 4c 4f 43 4b 44 41 54 41 20 74 68 65 20 64 61 74 61 20 61 72 65 61 20 69 73 20 61 63 63 65 73 73 ┆LOCKDATA the data area is access┆
0x1a560…1a580 69 62 6c 65 20 61 73 20 61 20 76 61 72 69 80 0a 61 62 6c 65 20 6f 66 20 61 20 74 79 70 65 20 62 ┆ible as a variђ able of a type b┆
0x1a580…1a5a0 65 6c 6f 6e 67 69 6e 67 20 74 6f 20 74 68 65 20 70 72 65 64 65 66 69 6e 65 64 20 66 61 6d 69 6c ┆elonging to the predefined famil┆
0x1a5a0…1a5c0 79 0d 0a 0d 0a 20 20 20 20 64 61 74 61 61 72 65 61 28 6f 66 66 73 65 74 2c 20 74 6f 70 3a 20 30 ┆y dataarea(offset, top: 0┆
0x1a5c0…1a5e0 2e 2e 6d 61 78 69 6e 74 29 3d 0d 0a 09 09 20 20 50 41 43 4b 45 44 20 41 52 52 41 59 28 6f 66 66 ┆..maxint)= PACKED ARRAY(off┆
0x1a5e0…1a600 73 65 74 2e 2e 74 6f 70 2d 31 29 20 4f 46 20 62 79 74 65 0d 0a 0d 0a 8c 85 b8 0a 77 68 65 72 65 ┆set..top-1) OF byte їЁИ where┆
0x1a600…1a620 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 76 61 6c 75 65 73 20 61 72 65 20 65 71 75 61 6c 20 ┆ the parameter values are equal ┆
0x1a620…1a640 74 6f 20 74 68 65 20 6d 65 73 73 61 67 65 20 61 74 74 72 69 80 62 75 80 74 65 73 20 77 69 74 68 ┆to the message attriђbuђtes with┆
0x1a640…1a660 20 0a 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 73 2e 20 54 68 65 20 61 64 64 72 65 73 73 20 6f 66 ┆ the same names. The address of┆
0x1a660…1a680 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 61 73 20 77 65 6c 6c 20 61 73 20 74 68 65 20 70 61 72 ┆ the variable as well as the par┆
0x1a680…1a6a0 61 6d 65 74 65 72 20 0a 76 61 6c 75 65 73 20 61 72 65 20 65 76 61 6c 75 61 74 65 64 20 62 65 66 ┆ameter values are evaluated bef┆
0x1a6a0…1a6c0 6f 72 65 20 74 68 65 20 73 74 61 74 65 80 6d 65 6e 74 20 66 6f 6c 6c 6f 77 69 6e 67 20 44 4f 20 ┆ore the stateђment following DO ┆
0x1a6c0…1a6e0 69 73 20 65 78 65 63 75 74 65 64 2e 0d 0a 0d 0a 49 66 20 74 68 65 20 6c 6f 63 6b 77 6f 72 64 20 ┆is executed. If the lockword ┆
0x1a6e0…1a700 69 73 20 4c 4f 43 4b 42 55 46 20 74 68 65 20 77 68 6f 6c 65 20 6d 65 73 73 61 67 65 20 62 75 66 ┆is LOCKBUF the whole message buf┆
0x1a700…1a720 66 65 72 20 69 73 20 61 63 80 63 65 73 80 73 69 62 6c 65 20 0a 61 73 20 61 20 76 61 72 69 61 62 ┆fer is acђcesђsible as a variab┆
0x1a720…1a740 6c 65 20 6f 66 20 61 20 74 79 70 65 20 62 65 6c 6f 6e 67 69 6e 67 20 74 6f 20 74 68 65 20 70 72 ┆le of a type belonging to the pr┆
0x1a740…1a760 65 64 65 66 69 6e 65 64 20 66 61 6d 69 6c 79 0d 0a 0d 0a 0e 0a 20 20 20 20 62 75 66 66 65 72 28 ┆edefined family buffer(┆
0x1a760…1a780 62 75 66 73 69 7a 65 3a 20 30 2e 2e 6d 61 78 69 6e 74 29 3d 20 0d 0a 20 20 20 20 20 20 20 20 20 ┆bufsize: 0..maxint)= ┆
0x1a780…1a7a0 20 20 20 20 20 20 20 20 20 20 20 50 41 43 4b 45 44 20 41 52 52 41 59 28 30 2e 2e 62 75 66 73 69 ┆ PACKED ARRAY(0..bufsi┆
0x1a7a0…1a7c0 7a 65 2d 31 29 20 4f 46 20 62 79 74 65 0d 0a 0f 0a 0d 0a 77 68 65 72 65 20 74 68 65 20 76 61 6c ┆ze-1) OF byte where the val┆
0x1a7c0…1a7e0 75 65 20 6f 66 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 65 71 75 61 6c 73 20 74 68 65 20 73 ┆ue of the parameter equals the s┆
0x1a7e0…1a800 69 7a 65 20 6f 66 20 74 68 65 20 62 75 66 80 66 65 72 2e 0d 0a 0d 0a 49 66 20 61 20 6c 6f 63 6b ┆ize of the bufђfer. If a lock┆
0x1a800…1a820 20 73 74 61 74 65 6d 65 6e 74 20 69 73 20 61 70 70 6c 69 65 64 20 74 6f 20 61 20 6d 65 73 73 61 ┆ statement is applied to a messa┆
0x1a820…1a840 67 65 20 73 74 61 63 6b 20 77 69 74 68 20 6e 6f 20 6e 6f 6e 2d 65 6d 70 74 79 20 0a 6d 65 73 73 ┆ge stack with no non-empty mess┆
0x1a840…1a860 61 67 65 20 61 20 66 61 75 6c 74 20 6f 63 63 75 72 73 2e 0d 0a 0d 0a 54 68 65 20 66 6f 6c 6c 6f ┆age a fault occurs. The follo┆
0x1a860…1a880 77 69 6e 67 20 72 65 73 74 72 69 63 74 69 6f 6e 73 20 61 72 65 20 69 6d 70 6f 73 65 64 20 6f 6e ┆wing restrictions are imposed on┆
0x1a880…1a8a0 20 74 68 65 20 75 73 65 20 6f 66 20 74 68 65 20 6c 6f 63 6b 65 64 20 76 61 72 69 80 0a 61 62 6c ┆ the use of the locked variђ abl┆
0x1a8a0…1a8c0 65 20 77 68 69 6c 65 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 20 66 6f 6c 6c 6f 77 69 6e 67 20 ┆e while the statement following ┆
0x1a8c0…1a8e0 44 4f 20 69 73 20 62 65 69 6e 67 20 65 78 65 63 75 74 65 64 2c 20 69 6e 80 63 6c 75 64 69 6e 67 ┆DO is being executed, inђcluding┆
0x1a8e0…1a900 20 0a 61 6e 79 20 72 6f 75 74 69 6e 65 20 63 61 6c 6c 73 20 6d 61 64 65 3a 20 49 66 20 61 20 72 ┆ any routine calls made: If a r┆
0x1a900…1a920 65 66 65 72 65 6e 63 65 2c 20 69 74 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 75 73 65 64 20 61 73 ┆eference, it must not be used as┆
0x1a920…1a940 20 70 61 72 74 20 6f 66 20 0a 61 6e 20 65 78 63 68 61 6e 67 65 20 73 74 61 74 65 6d 65 6e 74 20 ┆ part of an exchange statement ┆
0x1a940…1a960 6f 72 20 61 73 20 61 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 73 69 67 6e 61 6c 2c 20 72 65 74 ┆or as a parameter to signal, ret┆
0x1a960…1a980 75 72 6e 2c 20 6f 72 20 72 65 6c 65 61 73 65 20 0a 28 63 66 2e 20 63 68 61 70 74 65 72 20 39 29 ┆urn, or release (cf. chapter 9)┆
0x1a980…1a9a0 2c 20 6f 72 20 62 65 20 64 65 6c 69 76 65 72 65 64 20 74 6f 20 74 68 65 20 49 4d 43 20 28 63 66 ┆, or be delivered to the IMC (cf┆
0x1a9a0…1a9c0 2e 20 63 68 61 70 74 65 72 20 31 31 29 2e 20 57 68 65 74 68 65 72 20 0a 61 20 63 68 61 69 6e 20 ┆. chapter 11). Whether a chain ┆
0x1a9c0…1a9e0 6f 72 20 61 20 72 65 66 65 72 65 6e 63 65 2c 20 69 74 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 75 ┆or a reference, it must not be u┆
0x1a9e0…1aa00 73 65 64 20 61 73 20 61 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 61 6e 79 20 6f 66 20 0a 74 68 ┆sed as a parameter to any of th┆
0x1aa00…1aa20 65 20 6d 65 73 73 61 67 65 20 73 74 61 63 6b 20 6f 72 20 63 68 61 69 6e 20 6d 61 6e 69 70 75 6c ┆e message stack or chain manipul┆
0x1aa20…1aa40 61 74 69 6f 6e 20 72 6f 75 74 69 6e 65 73 20 28 63 66 2e 20 63 68 61 70 80 74 65 72 20 31 30 29 ┆ation routines (cf. chapђter 10)┆
0x1aa40…1aa60 2e 20 0a 48 6f 77 65 76 65 72 2c 20 69 74 20 69 73 20 6c 65 67 61 6c 20 74 6f 20 28 64 79 6e 61 ┆. However, it is legal to (dyna┆
0x1aa60…1aa80 6d 69 63 61 6c 6c 79 29 20 61 70 70 6c 79 20 6d 75 6c 74 69 80 70 6c 65 20 6c 6f 63 6b 73 20 74 ┆mically) apply multiђple locks t┆
0x1aa80…1aaa0 6f 20 74 68 65 20 73 61 6d 65 20 0a 72 65 66 65 72 65 6e 63 65 20 6f 72 20 63 68 61 69 6e 20 28 ┆o the same reference or chain (┆
0x1aaa0…1aac0 65 2e 67 2e 20 69 6e 20 61 20 72 6f 75 74 69 6e 65 20 63 61 6c 80 6c 65 64 20 66 72 6f 6d 20 77 ┆e.g. in a routine calђled from w┆
0x1aac0…1aae0 69 74 68 69 6e 20 61 20 6c 6f 63 6b 20 73 74 61 74 65 80 0a 6d 65 6e 74 29 2e 0d 0a 0d 0a a1 45 ┆ithin a lock stateђ ment). АE┆
0x1aae0…1ab00 78 61 6d 70 6c 65 3a 0d 0a 4c 4f 43 4b 44 41 54 41 20 72 65 66 20 54 4f 20 64 61 74 61 5f 70 61 ┆xample: LOCKDATA ref TO data_pa┆
0x1ab00…1ab20 72 74 3a 20 6d 79 5f 64 61 74 61 5f 74 79 70 65 20 44 4f 0d 0a 20 20 20 20 2e 2e 2e 0d 0a 16 73 ┆rt: my_data_type DO ... s┆
0x1ab20…1ab40 62 0d 0a 52 65 67 69 6f 6e 20 53 74 61 74 65 6d 65 6e 74 0d 0a 54 68 65 20 72 65 67 69 6f 6e 20 ┆b Region Statement The region ┆
0x1ab40…1ab60 73 74 61 74 65 6d 65 6e 74 20 70 72 6f 76 69 64 65 73 20 61 63 63 65 73 73 20 74 6f 20 73 68 61 ┆statement provides access to sha┆
0x1ab60…1ab80 72 65 64 20 76 61 72 69 61 62 6c 65 73 20 61 6e 64 20 69 74 20 69 73 20 0a 65 6e 73 75 72 65 64 ┆red variables and it is ensured┆
0x1ab80…1aba0 20 74 68 61 74 20 74 68 65 20 61 63 63 65 73 73 20 69 73 20 65 78 63 6c 75 73 69 76 65 2e 0d 0a ┆ that the access is exclusive. ┆
0x1aba0…1abc0 16 6d 61 20 73 79 6e 64 69 61 36 35 0d 0a 8c 86 80 0a 54 68 65 20 64 65 6e 6f 74 65 64 20 6f 62 ┆ ma syndia65 їєђ The denoted ob┆
0x1abc0…1abe0 6a 65 63 74 20 6d 75 73 74 20 62 65 20 61 20 73 68 61 72 65 64 20 76 61 72 69 61 62 6c 65 2e 20 ┆ject must be a shared variable. ┆
0x1abe0…1ac00 41 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 65 76 65 72 79 20 0a 73 68 61 72 65 64 20 76 61 ┆Associated with every shared va┆
0x1ac00…1ac20 72 69 61 62 6c 65 20 69 73 20 61 6e 20 a0 61 63 63 65 73 73 20 63 6f 75 6e 74 e0 20 77 68 69 63 ┆riable is an аaccess countЯ whic┆
0x1ac20…1ac40 68 20 69 73 20 69 6e 80 69 80 74 69 61 6c 6c 79 20 7a 65 72 6f 2e 20 41 20 72 65 67 69 6f 6e 20 ┆h is inђiђtially zero. A region ┆
0x1ac40…1ac60 0a 73 74 61 74 65 6d 65 6e 74 20 69 73 20 65 78 65 63 75 74 65 64 20 69 6e 20 74 68 72 65 65 20 ┆ statement is executed in three ┆
0x1ac60…1ac80 73 74 65 70 73 2e 0d 0a 0d 0a 31 2e 20 84 55 6e 6c 65 73 73 20 74 68 65 20 70 72 6f 63 65 73 73 ┆steps. 1. ёUnless the process┆
0x1ac80…1aca0 20 65 78 65 63 75 74 69 6e 67 20 74 68 65 20 72 65 67 69 6f 6e 20 73 74 61 74 65 6d 65 6e 74 20 ┆ executing the region statement ┆
0x1aca0…1acc0 69 73 20 61 6c 80 72 65 61 64 79 20 65 78 65 80 0a 19 83 80 80 63 75 74 69 6e 67 20 28 64 79 6e ┆is alђready exeђ Ѓђђcuting (dyn┆
0x1acc0…1ace0 61 6d 69 63 61 6c 6c 79 20 69 6e 73 69 64 65 29 20 61 20 72 65 67 69 6f 6e 20 73 74 61 74 65 6d ┆amically inside) a region statem┆
0x1ace0…1ad00 65 6e 74 20 61 63 63 65 73 73 69 6e 67 20 74 68 65 20 73 61 6d 65 20 0a 19 83 80 80 73 68 61 72 ┆ent accessing the same Ѓђђshar┆
0x1ad00…1ad20 65 64 20 76 61 72 69 61 62 6c 65 20 69 74 20 77 61 69 74 73 20 28 69 73 20 73 75 73 70 65 6e 80 ┆ed variable it waits (is suspenђ┆
0x1ad20…1ad40 80 64 65 64 29 20 75 6e 74 69 6c 20 74 68 65 20 61 63 80 63 65 73 73 20 63 6f 75 6e 74 20 6f 66 ┆ђded) until the acђcess count of┆
0x1ad40…1ad60 20 0a 19 83 80 80 74 68 65 20 76 61 72 69 61 62 6c 65 20 69 73 20 7a 65 72 6f 2e 20 53 75 62 80 ┆ Ѓђђthe variable is zero. Subђ┆
0x1ad60…1ad80 73 65 71 75 65 6e 74 6c 79 20 74 68 65 20 61 63 63 65 73 73 20 63 6f 75 6e 74 20 69 73 20 69 6e ┆sequently the access count is in┆
0x1ad80…1ada0 63 72 65 6d 65 6e 74 65 64 2e 20 0a 19 83 80 80 49 66 20 73 65 76 65 72 61 6c 20 70 72 6f 63 65 ┆cremented. ЃђђIf several proce┆
0x1ada0…1adc0 73 73 65 73 20 77 61 69 74 20 66 6f 72 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 20 73 61 6d 65 ┆sses wait for access to the same┆
0x1adc0…1ade0 20 73 68 61 72 65 64 20 76 61 72 69 61 62 6c 65 20 0a 19 83 80 80 74 68 65 79 20 6f 62 73 65 72 ┆ shared variable Ѓђђthey obser┆
0x1ade0…1ae00 76 65 20 61 20 66 69 66 6f 20 64 69 73 63 69 70 6c 69 6e 65 2e 0d 0a 0d 0a 32 2e 20 84 54 68 65 ┆ve a fifo discipline. 2. ёThe┆
0x1ae00…1ae20 20 73 74 61 74 65 6d 65 6e 74 20 66 6f 6c 6c 6f 77 69 6e 67 20 44 4f 20 69 73 20 65 78 65 63 75 ┆ statement following DO is execu┆
0x1ae20…1ae40 74 65 64 2e 20 49 6e 20 74 68 69 73 20 73 74 61 74 65 6d 65 6e 74 20 74 68 65 20 0a 19 83 80 80 ┆ted. In this statement the Ѓђђ┆
0x1ae40…1ae60 73 68 61 72 65 64 20 76 61 72 69 61 62 6c 65 20 6d 61 79 20 62 65 20 61 63 63 65 73 73 65 64 20 ┆shared variable may be accessed ┆
0x1ae60…1ae80 69 6e 20 74 68 65 20 73 61 6d 65 20 66 61 73 68 69 6f 6e 20 61 73 20 61 6e 20 6f 72 80 0a 19 83 ┆in the same fashion as an orђ Ѓ┆
0x1ae80…1aea0 80 80 64 69 6e 61 72 79 20 28 70 72 69 76 61 74 65 29 20 76 61 72 69 61 62 6c 65 2e 0d 0a 0d 0a ┆ђђdinary (private) variable. ┆
0x1aea0…1aec0 33 2e 20 54 68 65 20 61 63 63 65 73 73 20 63 6f 75 6e 74 20 6f 66 20 74 68 65 20 73 68 61 72 65 ┆3. The access count of the share┆
0x1aec0…1aee0 64 20 76 61 72 69 61 62 6c 65 20 69 73 20 64 65 63 72 65 6d 65 6e 74 65 64 2e 0d 0a 0d 0a a1 45 ┆d variable is decremented. АE┆
0x1aee0…1af00 78 61 6d 70 6c 65 3a 0d 0a 0d 0a 53 48 41 52 45 44 0d 0a 20 20 72 6f 75 74 65 5f 74 61 62 6c 65 ┆xample: SHARED route_table┆
0x1af00…1af20 3a 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 2e 2e 2e 0d 0a 20 20 50 52 4f 43 45 44 55 52 45 20 63 ┆: RECORD ... PROCEDURE c┆
0x1af20…1af40 6c 6f 73 65 5f 64 6f 77 6e 28 6e 6f 64 65 3a 20 6e 6f 64 65 5f 69 64 65 6e 74 29 3b 0d 0a 20 20 ┆lose_down(node: node_ident); ┆
0x1af40…1af60 20 20 2e 2e 2e 0d 0a 20 20 20 20 52 45 47 49 4f 4e 20 72 6f 75 74 65 5f 74 61 62 6c 65 20 44 4f ┆ ... REGION route_table DO┆
0x1af60…1af80 0d 0a 20 20 20 20 20 20 72 6f 75 74 65 5f 74 61 62 6c 65 2e 6f 70 65 6e 5f 72 6f 75 74 65 73 28 ┆ route_table.open_routes(┆
0x1af80…1afa0 6e 6f 64 65 29 3a 3d 20 63 6c 6f 73 65 64 3b 0d 0a 20 20 20 20 20 20 2e 2e 2e 0d 0a 16 73 61 0d ┆node):= closed; ... sa ┆
0x1afa0…1afc0 0a 50 52 4f 47 52 41 4d 53 20 41 4e 44 20 52 4f 55 54 49 4e 45 53 0d 0a 50 72 6f 67 72 61 6d 73 ┆ PROGRAMS AND ROUTINES Programs┆
0x1afc0…1afe0 20 61 6e 64 20 72 6f 75 74 69 6e 65 73 20 61 72 65 20 76 65 72 79 20 73 69 6d 69 6c 61 72 2e 20 ┆ and routines are very similar. ┆
0x1afe0…1b000 42 6f 74 68 20 68 61 76 65 20 74 68 65 20 67 65 80 6e 65 80 72 61 6c 20 66 6f 72 6d 20 6f 66 20 ┆Both have the geђneђral form of ┆
0x1b000…1b020 0a 61 20 68 65 61 64 69 6e 67 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 62 6c 6f 63 6b 2e 20 ┆ a heading followed by a block. ┆
0x1b020…1b040 49 6e 63 61 72 6e 61 74 69 6f 6e 73 20 6f 66 20 70 72 6f 67 72 61 6d 20 61 6e 64 20 72 6f 75 74 ┆Incarnations of program and rout┆
0x1b040…1b060 69 6e 65 20 0a 62 6c 6f 63 6b 73 20 61 6c 73 6f 20 65 78 68 69 62 69 74 20 66 75 6e 64 61 6d 65 ┆ine blocks also exhibit fundame┆
0x1b060…1b080 6e 74 61 6c 20 73 69 80 6d 69 6c 61 80 72 69 74 69 65 73 2e 20 49 6e 20 62 6f 74 68 20 63 61 73 ┆ntal siђmilaђrities. In both cas┆
0x1b080…1b0a0 65 73 20 74 68 65 20 6c 69 66 65 20 6f 66 20 0a 61 6e 20 69 6e 63 61 72 6e 61 74 69 6f 6e 20 68 ┆es the life of an incarnation h┆
0x1b0a0…1b0c0 61 73 20 74 68 72 65 65 20 73 74 61 67 65 73 3a 20 70 61 72 61 6d 65 74 65 72 20 70 61 73 73 69 ┆as three stages: parameter passi┆
0x1b0c0…1b0e0 6e 67 2c 20 65 6c 61 62 6f 72 61 74 69 6f 6e 20 6f 66 20 0a 64 65 63 6c 61 72 61 74 69 6f 6e 80 ┆ng, elaboration of declarationђ┆
0x1b0e0…1b100 73 2c 20 61 6e 64 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6e 20 61 63 74 69 6f 6e 20 70 61 ┆s, and execution of an action pa┆
0x1b100…1b120 72 74 2e 20 54 68 65 20 64 69 66 66 65 72 65 6e 63 65 73 20 68 61 76 65 20 74 6f 20 0a 64 6f 20 ┆rt. The differences have to do ┆
0x1b120…1b140 77 69 74 68 20 74 77 6f 20 61 73 70 65 63 74 73 3a 20 63 6f 6e 74 72 6f 6c 20 61 6e 64 20 65 6e ┆with two aspects: control and en┆
0x1b140…1b160 76 69 72 6f 6e 6d 65 6e 74 2e 0d 0a 0d 0a 41 6e 20 69 6e 63 61 72 6e 61 74 69 6f 6e 20 6f 66 20 ┆vironment. An incarnation of ┆
0x1b160…1b180 61 20 70 72 6f 67 72 61 6d 20 62 6c 6f 63 6b 20 69 73 20 61 20 70 72 6f 63 65 73 73 20 6f 6e 20 ┆a program block is a process on ┆
0x1b180…1b1a0 69 74 73 20 6f 77 6e 20 77 68 69 63 68 20 6c 69 76 65 73 20 0a 61 75 74 6f 6e 6f 6d 6f 75 73 6c ┆its own which lives autonomousl┆
0x1b1a0…1b1c0 79 20 65 78 63 65 70 74 20 66 6f 72 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 65 78 65 72 63 69 73 ┆y except for the control exercis┆
0x1b1c0…1b1e0 65 64 20 62 79 20 69 74 73 20 70 61 80 72 65 6e 74 2c 20 77 68 65 72 65 61 73 20 0a 61 6e 20 69 ┆ed by its paђrent, whereas an i┆
0x1b1e0…1b200 6e 63 61 72 6e 61 74 69 6f 6e 2c 20 6f 72 20 a0 61 63 74 69 76 61 74 69 6f 6e e0 2c 20 6f 66 20 ┆ncarnation, or аactivationЯ, of ┆
0x1b200…1b220 61 20 72 6f 75 80 74 69 6e 65 20 62 6c 6f 63 6b 20 69 73 20 6d 65 72 65 6c 79 20 61 6e 20 65 70 ┆a rouђtine block is merely an ep┆
0x1b220…1b240 69 73 6f 64 65 20 0a 69 6e 20 74 68 65 20 6c 69 66 65 20 6f 66 20 61 20 70 72 6f 63 65 73 73 2e ┆isode in the life of a process.┆
0x1b240…1b260 20 54 68 65 20 61 63 74 69 76 61 74 69 6f 6e 2c 20 75 6e 80 6c 65 73 73 20 69 74 20 63 68 6f 6f ┆ The activation, unђless it choo┆
0x1b260…1b280 73 65 73 20 74 6f 20 6c 6f 6f 70 20 69 6e 80 0a 66 69 6e 69 74 65 6c 79 20 6f 72 20 63 6f 6d 80 ┆ses to loop inђ finitely or comђ┆
0x1b280…1b2a0 6d 69 74 73 20 61 20 66 61 75 6c 74 2c 20 68 61 73 20 6e 6f 20 63 68 6f 69 63 65 20 62 75 74 20 ┆mits a fault, has no choice but ┆
0x1b2a0…1b2c0 74 6f 20 72 65 74 75 72 6e 20 74 6f 20 74 68 65 20 70 6f 69 6e 74 20 0a 77 68 65 72 65 20 69 74 ┆to return to the point where it┆
0x1b2c0…1b2e0 20 77 61 73 20 63 61 6c 6c 65 64 2e 0d 0a 0d 0a 41 20 70 72 6f 63 65 73 73 20 68 61 73 20 6e 6f ┆ was called. A process has no┆
0x1b2e0…1b300 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6f 66 20 64 61 74 61 20 74 6f 20 61 63 63 65 73 73 20 61 ┆ environment of data to access a┆
0x1b300…1b320 70 61 72 74 20 66 72 6f 6d 20 70 72 65 80 64 65 66 69 6e 65 64 20 0a 69 74 65 6d 73 20 61 6e 64 ┆part from preђdefined items and┆
0x1b320…1b340 20 69 74 73 20 70 61 72 61 6d 65 74 65 72 73 2e 20 41 20 72 6f 75 74 69 6e 65 20 62 6c 6f 63 6b ┆ its parameters. A routine block┆
0x1b340…1b360 20 61 63 74 69 76 61 80 74 69 6f 6e 2c 20 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 0a 74 68 ┆ activaђtion, in addition to th┆
0x1b360…1b380 65 73 65 2c 20 68 61 73 20 69 74 73 20 73 74 61 74 69 63 20 73 75 72 72 6f 75 6e 64 69 6e 67 73 ┆ese, has its static surroundings┆
0x1b380…1b3a0 3a 20 61 6c 6c 20 74 68 65 20 73 74 61 63 6b 2d 61 6c 6c 6f 80 63 61 74 65 64 20 6f 62 6a 65 63 ┆: all the stack-alloђcated objec┆
0x1b3a0…1b3c0 74 73 20 0a 28 69 6e 63 6c 75 64 69 6e 67 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 73 ┆ts (including formal parameters┆
0x1b3c0…1b3e0 29 20 64 65 63 6c 61 72 65 64 20 69 6e 20 65 6e 63 6c 6f 73 69 6e 67 20 62 6c 6f 63 6b 73 2c 20 ┆) declared in enclosing blocks, ┆
0x1b3e0…1b400 65 78 63 65 70 74 20 0a 74 68 6f 73 65 20 77 68 69 63 68 20 68 61 76 65 20 62 65 65 6e 20 6d 61 ┆except those which have been ma┆
0x1b400…1b420 64 65 20 69 6e 76 69 73 69 62 6c 65 20 62 79 20 72 65 64 65 63 6c 61 80 72 61 74 69 6f 6e 20 6f ┆de invisible by redeclaђration o┆
0x1b420…1b440 66 20 74 68 65 69 72 20 6e 61 6d 65 73 2c 20 0a 63 66 2e 20 63 68 61 70 74 65 72 20 38 2e 0d 0a ┆f their names, cf. chapter 8. ┆
0x1b440…1b460 0d 0a 41 20 70 72 6f 67 72 61 6d 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 6d 61 79 20 61 70 70 65 ┆ A program declaration may appe┆
0x1b460…1b480 61 72 20 61 74 20 74 68 65 20 6f 75 74 65 72 20 6c 65 76 65 6c 20 6f 66 20 61 20 27 63 6f 6d 80 ┆ar at the outer level of a 'comђ┆
0x1b480…1b4a0 70 69 6c 61 80 0a 74 69 6f 6e 20 75 6e 69 74 27 2c 20 63 66 2e 20 73 65 63 74 69 6f 6e 20 38 2e ┆pilaђ tion unit', cf. section 8.┆
0x1b4a0…1b4c0 32 2c 20 6f 72 20 69 6e 20 74 68 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 70 61 72 74 20 6f 66 ┆2, or in the declaration part of┆
0x1b4c0…1b4e0 20 61 20 70 72 6f 67 72 61 6d 20 0a 62 6c 6f 63 6b 2e 20 49 74 20 73 65 72 76 65 73 20 74 6f 20 ┆ a program block. It serves to ┆
0x1b4e0…1b500 6e 61 6d 65 20 61 6e 64 20 64 65 66 69 6e 65 20 61 20 70 72 6f 80 67 72 61 6d 2e 0d 0a 16 6d 61 ┆name and define a proђgram. ma┆
0x1b500…1b520 20 73 79 6e 64 69 61 30 34 0d 0a 16 6d 61 20 73 79 6e 64 69 61 30 36 0d 0a 8c 89 e0 0a 54 68 65 ┆ syndia04 ma syndia06 їЅЯ The┆
0x1b520…1b540 20 68 65 61 64 69 6e 67 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 ┆ heading specifies the name of t┆
0x1b540…1b560 68 65 20 70 72 6f 67 72 61 6d 20 61 6e 64 20 69 74 73 20 66 6f 72 6d 61 6c 20 70 61 72 61 80 0a ┆he program and its formal paraђ ┆
0x1b560…1b580 6d 65 74 65 72 73 2c 20 69 66 20 61 6e 79 2e 0d 0a 0d 0a 41 20 72 6f 75 74 69 6e 65 20 64 65 63 ┆meters, if any. A routine dec┆
0x1b580…1b5a0 6c 61 72 61 74 69 6f 6e 20 6d 61 79 20 61 6c 73 6f 20 61 70 70 65 61 72 20 61 74 20 74 68 65 20 ┆laration may also appear at the ┆
0x1b5a0…1b5c0 6f 75 74 65 72 20 6c 65 76 65 6c 20 6f 66 20 61 20 27 63 6f 6d 80 0a 70 69 6c 61 74 69 6f 6e 20 ┆outer level of a 'comђ pilation ┆
0x1b5c0…1b5e0 75 6e 69 74 27 2c 20 6f 72 20 69 6e 20 74 68 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 70 61 72 ┆unit', or in the declaration par┆
0x1b5e0…1b600 74 20 6f 66 20 61 20 62 6c 6f 63 6b 2e 20 49 74 20 73 65 72 80 76 65 73 20 74 6f 20 6e 61 80 0a ┆t of a block. It serђves to naђ ┆
0x1b600…1b620 6d 65 20 61 6e 64 20 64 65 66 69 6e 65 20 61 20 72 6f 75 74 69 6e 65 2e 0d 0a 16 6d 61 20 73 79 ┆me and define a routine. ma sy┆
0x1b620…1b640 6e 64 69 61 30 35 0d 0a 16 6d 61 20 66 75 6e 63 74 68 65 61 0d 0a 16 6d 61 20 70 72 6f 63 68 65 ┆ndia05 ma functhea ma proche┆
0x1b640…1b660 61 64 0d 0a 54 68 65 20 69 6e 69 74 69 61 6c 20 6b 65 79 77 6f 72 64 20 69 6e 20 61 20 72 6f 75 ┆ad The initial keyword in a rou┆
0x1b660…1b680 74 69 6e 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 73 70 65 63 69 66 69 65 73 20 77 68 65 74 80 ┆tine declaration specifies whetђ┆
0x1b680…1b6a0 68 65 72 20 74 68 65 20 0a 72 6f 75 74 69 6e 65 20 69 73 20 61 20 bf dc d8 66 75 6e 63 74 69 6f ┆her the routine is a ┐▄пfunctio┆
0x1b6a0…1b6c0 6e be 20 6f 72 20 61 20 bf dc d8 70 72 6f 63 65 64 75 72 65 be 2e 20 49 6e 20 61 64 64 69 74 69 ┆nЙ or a ┐▄пprocedureЙ. In additi┆
0x1b6c0…1b6e0 6f 6e 20 74 68 65 20 64 65 63 6c 61 80 72 61 74 69 6f 6e 20 73 70 65 80 0a 63 69 66 69 65 73 20 ┆on the declaђration speђ cifies ┆
0x1b6e0…1b700 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 72 6f 75 74 69 6e 65 2c 20 69 74 73 20 66 6f 72 ┆the name of the routine, its for┆
0x1b700…1b720 80 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 73 2c 20 69 66 20 61 6e 79 2c 20 61 6e 64 20 69 6e 20 ┆ђmal parameters, if any, and in ┆
0x1b720…1b740 0a 74 68 65 20 63 61 73 65 20 6f 66 20 61 20 66 75 6e 63 74 69 6f 6e 2c 20 69 74 73 20 72 65 73 ┆ the case of a function, its res┆
0x1b740…1b760 75 6c 74 20 74 79 70 65 2c 20 77 68 69 63 68 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 61 20 70 72 ┆ult type, which must not be a pr┆
0x1b760…1b780 6f 74 65 63 74 65 64 20 0a 74 79 70 65 2e 20 54 68 65 20 27 72 6f 75 74 69 80 6e 65 20 62 6c 6f ┆otected type. The 'routiђne blo┆
0x1b780…1b7a0 63 6b 27 20 75 6e 6c 65 73 73 20 73 70 65 63 69 80 66 69 65 64 20 62 79 20 6f 6e 65 20 6f 66 20 ┆ck' unless speciђfied by one of ┆
0x1b7a0…1b7c0 74 68 65 20 6b 65 79 77 6f 72 64 73 20 45 58 80 0a 54 45 52 4e 41 4c 20 6f 72 20 46 4f 52 57 41 ┆the keywords EXђ TERNAL or FORWA┆
0x1b7c0…1b7e0 52 44 20 28 73 65 65 20 62 6c 6f 77 29 20 69 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 ┆RD (see blow) is associated with┆
0x1b7e0…1b800 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6f 72 20 0a 70 72 6f 63 65 64 75 72 65 20 6e 61 6d 65 ┆ the function or procedure name┆
0x1b800…1b820 2e 0d 0a 0d 0a 54 68 65 20 70 61 72 61 6d 65 74 65 72 73 20 61 6e 64 20 62 6c 6f 63 6b 73 20 6f ┆. The parameters and blocks o┆
0x1b820…1b840 66 20 70 72 6f 67 72 61 6d 73 20 61 73 20 77 65 6c 6c 20 61 73 20 72 6f 75 74 69 6e 65 73 20 61 ┆f programs as well as routines a┆
0x1b840…1b860 72 65 20 64 65 73 63 72 69 80 0a 62 65 64 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 ┆re descriђ bed in the following ┆
0x1b860…1b880 74 77 6f 20 73 65 63 74 69 6f 6e 73 2e 0d 0a 0d 0a a1 45 78 61 6d 70 6c 65 73 3a 0d 0a 50 52 4f ┆two sections. АExamples: PRO┆
0x1b880…1b8a0 47 52 41 4d 20 72 6f 75 74 65 72 28 49 4e 53 50 45 43 54 20 72 6f 75 74 73 3a 20 72 6f 75 74 65 ┆GRAM router(INSPECT routs: route┆
0x1b8a0…1b8c0 5f 74 61 62 6c 65 29 0d 0a 46 55 4e 43 54 49 4f 4e 20 73 65 61 72 63 68 5f 6e 61 6d 65 28 6e 61 ┆_table) FUNCTION search_name(na┆
0x1b8c0…1b8e0 6d 65 3a 20 6e 61 6d 65 5f 6e 6f 64 65 29 3a 20 62 6f 6f 6c 65 61 6e 0d 0a 50 52 4f 43 45 44 55 ┆me: name_node): boolean PROCEDU┆
0x1b8e0…1b900 52 45 20 69 6e 73 65 72 74 5f 6e 61 6d 65 28 56 41 52 20 70 6f 73 3a 20 74 61 62 6c 65 5f 69 6e ┆RE insert_name(VAR pos: table_in┆
0x1b900…1b920 64 65 78 3b 20 6e 61 6d 65 3a 20 6e 61 6d 65 5f 72 65 63 6f 72 64 29 0d 0a 16 73 62 0d 0a 50 61 ┆dex; name: name_record) sb Pa┆
0x1b920…1b940 72 61 6d 65 74 65 72 73 0d 0a 54 68 65 20 27 bf dc d8 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 ┆rameters The '┐▄пformal paramet┆
0x1b940…1b960 65 72 be 73 27 20 6f 66 20 61 20 70 72 6f 67 72 61 6d 20 6f 72 20 72 6f 75 74 69 6e 65 20 68 65 ┆erЙs' of a program or routine he┆
0x1b960…1b980 61 64 69 6e 67 20 73 70 65 80 63 69 66 79 20 74 68 65 20 0a 6e 61 6d 65 73 2c 20 6b 69 6e 64 73 ┆ading speђcify the names, kinds┆
0x1b980…1b9a0 20 61 6e 64 20 74 79 70 65 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 ┆ and types of the formal paramet┆
0x1b9a0…1b9c0 65 72 73 20 6f 66 20 74 68 65 20 70 72 6f 80 67 72 61 6d 20 6f 72 20 0a 72 6f 75 74 69 6e 65 2e ┆ers of the proђgram or routine.┆
0x1b9c0…1b9e0 0d 0a 16 6d 61 20 73 79 6e 64 69 61 30 38 0d 0a 45 61 63 68 20 27 66 6f 72 6d 61 6c 5f 6e 61 6d ┆ ma syndia08 Each 'formal_nam┆
0x1b9e0…1ba00 65 27 20 69 6e 74 72 6f 64 75 63 65 73 20 6f 6e 65 20 70 61 72 61 6d 65 74 65 72 2e 20 53 65 76 ┆e' introduces one parameter. Sev┆
0x1ba00…1ba20 65 72 61 6c 20 70 61 72 61 80 6d 65 80 80 74 65 72 73 20 6d 61 79 20 0a 62 65 20 6e 61 6d 65 64 ┆eral paraђmeђђters may be named┆
0x1ba20…1ba40 20 69 6e 20 61 20 6c 69 73 74 2c 20 73 65 70 61 72 61 74 65 64 20 62 79 20 63 6f 6d 6d 61 73 2e ┆ in a list, separated by commas.┆
0x1ba40…1ba60 20 53 75 63 68 20 70 61 72 61 80 6d 65 80 74 65 72 73 20 68 61 76 65 20 74 68 65 20 0a 73 61 6d ┆ Such paraђmeђters have the sam┆
0x1ba60…1ba80 65 20 6b 69 6e 64 20 61 6e 64 20 74 79 70 65 2e 0d 0a 0d 0a 54 68 65 20 6b 69 6e 64 20 6f 66 20 ┆e kind and type. The kind of ┆
0x1ba80…1baa0 61 20 70 61 72 61 6d 65 74 65 72 2c 20 77 68 69 63 68 20 6d 61 79 20 62 65 20 a0 76 61 72 69 61 ┆a parameter, which may be аvaria┆
0x1baa0…1bac0 62 6c 65 2c 20 69 6e 73 70 65 63 74 2c 20 73 68 61 72 65 64 20 6f 72 20 0a 19 80 80 c0 76 61 6c ┆ble, inspect, shared or ђђ└val┆
0x1bac0…1bae0 75 65 e0 2c 20 69 73 20 73 70 65 63 69 66 69 65 64 20 62 79 20 74 68 65 20 28 70 6f 73 73 69 62 ┆ueЯ, is specified by the (possib┆
0x1bae0…1bb00 6c 65 29 20 6b 65 79 77 6f 72 64 20 70 72 65 80 63 65 64 69 6e 67 20 69 74 73 20 6e 61 6d 65 2e ┆le) keyword preђceding its name.┆
0x1bb00…1bb20 20 49 6e 20 0a 74 68 65 20 62 6c 6f 63 6b 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 6d 20 6f 72 ┆ In the block of the program or┆
0x1bb20…1bb40 20 72 6f 75 74 69 6e 65 20 65 61 63 68 20 70 61 72 61 6d 65 74 65 72 20 61 63 74 73 20 61 73 20 ┆ routine each parameter acts as ┆
0x1bb40…1bb60 61 6e 20 0a 6f 62 6a 65 63 74 2e 20 54 68 65 20 70 61 72 61 6d 65 74 65 72 20 6b 69 6e 64 20 64 ┆an object. The parameter kind d┆
0x1bb60…1bb80 65 74 65 72 6d 69 6e 65 73 20 68 6f 77 20 74 68 69 73 20 6f 62 6a 65 63 74 20 6d 61 79 20 62 65 ┆etermines how this object may be┆
0x1bb80…1bba0 20 75 73 65 64 3a 0d 0a 0d 0a a1 6b 65 79 77 6f 72 64 09 70 61 72 61 6d 65 74 65 72 20 6b 69 6e ┆ used: Аkeyword parameter kin┆
0x1bba0…1bbc0 64 09 75 73 65 20 6f 66 20 6f 62 6a 65 63 74 05 5f 0d 0a 56 41 52 09 09 76 61 72 69 61 62 6c 65 ┆d use of object _ VAR variable┆
0x1bbc0…1bbe0 09 09 61 73 20 61 20 70 72 69 76 61 74 65 20 76 61 72 69 61 62 6c 65 0d 0a 49 4e 53 50 45 43 54 ┆ as a private variable INSPECT┆
0x1bbe0…1bc00 09 69 6e 73 70 65 63 74 09 09 61 73 20 61 20 63 6f 6e 73 74 61 6e 74 0d 0a 53 48 41 52 45 44 09 ┆ inspect as a constant SHARED ┆
0x1bc00…1bc20 73 68 61 72 65 64 09 09 61 73 20 61 20 73 68 61 72 65 64 20 76 61 72 69 61 62 6c 65 0d 0a 6e 6f ┆shared as a shared variable no┆
0x1bc20…1bc40 6e 65 09 76 61 6c 75 65 09 09 61 73 20 61 20 70 72 69 76 61 74 65 20 76 61 72 69 61 62 6c 65 0d ┆ne value as a private variable ┆
0x1bc40…1bc60 0a 0d 0a 54 68 65 20 74 79 70 65 20 6f 66 20 65 61 63 68 20 70 61 72 61 6d 65 74 65 72 2c 20 69 ┆ The type of each parameter, i┆
0x1bc60…1bc80 2e 65 2e 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 61 ┆.e. of the object which can be a┆
0x1bc80…1bca0 63 80 63 65 73 73 65 64 20 0a 69 6e 20 74 68 65 20 62 6c 6f 63 6b 20 6f 66 20 74 68 65 20 70 72 ┆cђcessed in the block of the pr┆
0x1bca0…1bcc0 6f 67 72 61 6d 20 6f 72 20 72 6f 75 74 69 6e 65 2c 20 69 73 20 64 65 74 65 72 80 6d 69 80 6e 65 ┆ogram or routine, is deterђmiђne┆
0x1bcc0…1bce0 64 20 62 79 20 74 68 65 20 27 66 6f 72 6d 61 6c 20 0a 74 79 70 65 20 73 70 65 63 69 66 69 63 61 ┆d by the 'formal type specifica┆
0x1bce0…1bd00 74 69 6f 6e 27 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 ┆tion' following the name of the ┆
0x1bd00…1bd20 70 61 72 61 80 6d 65 74 65 72 2e 20 49 66 20 74 68 65 20 27 66 6f 72 80 0a 6d 61 6c 20 74 79 70 ┆paraђmeter. If the 'forђ mal typ┆
0x1bd20…1bd40 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 27 20 69 73 20 61 20 27 70 61 80 72 61 6d 65 74 65 ┆e specification' is a 'paђramete┆
0x1bd40…1bd60 72 69 7a 65 64 2d 74 79 80 70 65 5f 6e 61 6d 65 27 2c 20 69 2e 65 2e 20 74 68 65 20 6e 61 6d 65 ┆rized-tyђpe_name', i.e. the name┆
0x1bd60…1bd80 20 0a 6f 66 20 61 20 66 61 6d 69 6c 79 20 6f 66 20 63 6f 6e 80 66 6f 72 80 6d 61 6e 74 20 74 79 ┆ of a family of conђforђmant ty┆
0x1bd80…1bda0 70 65 73 2c 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 66 6f 72 6d 61 6c 20 70 61 72 61 ┆pes, the type of the formal para┆
0x1bda0…1bdc0 6d 65 74 65 72 20 69 73 20 0a 64 65 74 65 72 80 6d 69 6e 65 64 20 66 6f 72 20 65 61 63 68 20 69 ┆meter is deterђmined for each i┆
0x1bdc0…1bde0 6e 63 61 72 6e 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 6d 20 6f 72 20 72 6f 75 ┆ncarnation of the program or rou┆
0x1bde0…1be00 74 69 6e 65 20 62 79 20 74 68 65 20 74 79 80 0a 70 65 20 6f 66 20 74 68 65 20 61 63 74 75 61 6c ┆tine by the tyђ pe of the actual┆
0x1be00…1be20 20 70 61 72 61 6d 65 74 65 72 2e 0d 0a 0d 0a 8c 89 80 0a 41 6e 20 69 6e 63 61 72 6e 61 74 69 6f ┆ parameter. їЅђ An incarnatio┆
0x1be20…1be40 6e 20 6f 66 20 61 20 70 72 6f 67 72 61 6d 20 6f 72 20 72 6f 75 74 69 6e 65 20 69 73 20 63 72 65 ┆n of a program or routine is cre┆
0x1be40…1be60 61 74 65 64 20 61 73 20 61 20 72 65 80 73 75 6c 74 20 6f 66 20 61 20 0a 27 63 72 65 61 74 65 20 ┆ated as a reђsult of a 'create ┆
0x1be60…1be80 63 61 6c 6c 27 2c 20 27 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 27 2c 20 6f 72 20 27 70 72 6f 63 ┆call', 'function call', or 'proc┆
0x1be80…1bea0 65 64 75 72 65 20 63 61 6c 6c 27 20 62 65 69 6e 67 20 65 76 61 6c 75 61 80 74 65 64 20 6f 72 20 ┆edure call' being evaluaђted or ┆
0x1bea0…1bec0 0a 65 78 65 63 75 74 65 64 2e 20 54 68 65 20 63 61 6c 6c 20 63 6f 6e 74 61 69 6e 73 20 61 20 64 ┆ executed. The call contains a d┆
0x1bec0…1bee0 65 80 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 61 63 74 75 61 6c 20 70 61 72 61 6d 65 ┆eђscription of the actual parame┆
0x1bee0…1bf00 74 65 72 73 20 74 6f 20 0a 62 65 20 62 6f 75 6e 64 20 74 6f 20 74 68 65 20 66 6f 72 80 6d 61 6c ┆ters to be bound to the forђmal┆
0x1bf00…1bf20 20 70 61 72 61 6d 65 74 65 72 73 20 66 6f 72 20 74 68 65 20 70 61 72 74 69 80 63 75 6c 61 72 20 ┆ parameters for the partiђcular ┆
0x1bf20…1bf40 69 6e 63 61 72 6e 61 74 69 6f 6e 20 6f 66 20 0a 74 68 65 20 70 72 6f 67 72 61 6d 20 6f 72 20 72 ┆incarnation of the program or r┆
0x1bf40…1bf60 6f 75 74 69 6e 65 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 35 36 0d 0a 45 61 63 68 20 bf dc d8 61 ┆outine. ma syndia56 Each ┐▄пa┆
0x1bf60…1bf80 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 be 20 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 ┆ctual parameterЙ corresponds to ┆
0x1bf80…1bfa0 74 68 65 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 20 69 6e 20 74 68 65 20 0a 73 61 6d ┆the formal parameter in the sam┆
0x1bfa0…1bfc0 65 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 74 68 65 20 27 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 ┆e position in the 'formal parame┆
0x1bfc0…1bfe0 74 65 72 73 27 2e 20 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 61 63 80 74 75 61 6c 20 70 61 72 ┆ters'. The number of acђtual par┆
0x1bfe0…1c000 61 80 0a 6d 65 74 65 72 73 20 6d 75 73 74 20 65 71 75 61 6c 20 74 68 65 20 6e 75 6d 62 65 72 20 ┆aђ meters must equal the number ┆
0x1c000…1c020 6f 66 20 66 6f 72 6d 61 6c 20 70 61 72 61 80 6d 65 80 74 65 72 73 2e 20 41 6e 20 61 63 74 75 61 ┆of formal paraђmeђters. An actua┆
0x1c020…1c040 6c 20 70 61 72 61 80 0a 6d 65 74 65 72 20 6f 66 20 6b 69 6e 64 20 76 61 72 69 61 62 6c 65 2c 20 ┆l paraђ meter of kind variable, ┆
0x1c040…1c060 69 6e 73 70 65 63 74 2c 20 6f 72 20 73 68 61 80 72 65 64 20 6d 75 73 74 20 62 65 20 6f 66 20 74 ┆inspect, or shaђred must be of t┆
0x1c060…1c080 68 65 20 73 61 6d 65 20 74 79 70 65 20 0a 61 73 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 ┆he same type as the correspondi┆
0x1c080…1c0a0 6e 67 20 66 6f 72 6d 61 6c 20 70 61 80 72 61 6d 65 74 65 72 2e 20 41 6e 20 61 63 74 75 61 6c 20 ┆ng formal paђrameter. An actual ┆
0x1c0a0…1c0c0 70 61 72 61 6d 65 74 65 72 20 6f 66 20 6b 69 6e 64 20 0a 76 61 6c 75 65 20 6e 65 65 64 20 6f 6e ┆parameter of kind value need on┆
0x1c0c0…1c0e0 6c 79 20 62 65 20 61 73 80 73 69 67 6e 61 62 6c 65 20 74 6f 20 74 68 65 20 66 6f 72 6d 61 6c 20 ┆ly be asђsignable to the formal ┆
0x1c0e0…1c100 70 61 72 61 6d 65 74 65 72 20 28 63 66 2e 20 73 65 63 74 69 6f 6e 20 0a 33 2e 39 29 2e 20 57 68 ┆parameter (cf. section 3.9). Wh┆
0x1c100…1c120 65 6e 20 74 68 65 20 74 79 70 65 20 6f 66 20 61 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 80 74 ┆en the type of a formal parameђt┆
0x1c120…1c140 65 72 20 69 73 20 73 70 65 63 69 66 69 65 64 20 61 73 20 74 68 65 20 6e 61 6d 65 20 0a 6f 66 20 ┆er is specified as the name of ┆
0x1c140…1c160 61 20 66 61 80 6d 69 6c 79 20 6f 66 20 74 79 70 65 73 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 ┆a faђmily of types the type of t┆
0x1c160…1c180 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 61 63 74 75 61 6c 20 70 61 72 61 80 6d 65 74 ┆he corresponding actual paraђmet┆
0x1c180…1c1a0 65 72 20 0a 6d 61 79 20 62 65 20 61 6e 79 20 74 79 70 65 20 69 6e 20 74 68 61 74 20 66 61 80 6d ┆er may be any type in that faђm┆
0x1c1a0…1c1c0 69 6c 79 2e 0d 0a 0d 0a 54 68 65 20 73 79 6d 62 6f 6c 20 3f 20 6d 61 79 20 62 65 20 75 73 65 64 ┆ily. The symbol ? may be used┆
0x1c1c0…1c1e0 20 69 6e 20 70 6c 61 63 65 20 6f 66 20 61 6e 20 61 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 ┆ in place of an actual parameter┆
0x1c1e0…1c200 20 65 78 80 70 72 65 73 73 69 6f 6e 20 0a 77 68 65 6e 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 ┆ exђpression when the parameter┆
0x1c200…1c220 20 69 73 20 6e 6f 74 20 6f 66 20 6b 69 6e 64 20 76 61 6c 75 65 2c 20 72 65 67 61 72 64 80 6c 65 ┆ is not of kind value, regardђle┆
0x1c220…1c240 73 73 20 6f 66 20 74 68 65 20 74 79 70 65 20 6f 66 20 0a 74 68 65 20 66 6f 72 6d 61 6c 20 70 61 ┆ss of the type of the formal pa┆
0x1c240…1c260 72 61 6d 65 74 65 72 2e 0d 0a 0d 0a 54 68 65 20 62 69 6e 64 69 6e 67 20 6f 66 20 61 6e 20 61 63 ┆rameter. The binding of an ac┆
0x1c260…1c280 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 ┆tual parameter to the correspond┆
0x1c280…1c2a0 69 6e 67 20 66 6f 72 80 6d 61 6c 20 70 61 72 61 80 0a 6d 65 74 65 72 20 74 61 6b 65 73 20 70 6c ┆ing forђmal paraђ meter takes pl┆
0x1c2a0…1c2c0 61 63 65 20 65 69 74 68 65 72 20 62 79 20 61 20 76 61 6c 75 65 20 74 72 61 6e 73 66 65 72 20 28 ┆ace either by a value transfer (┆
0x1c2c0…1c2e0 22 63 61 6c 6c 20 62 79 20 76 61 6c 80 75 65 22 29 2c 20 6f 72 20 62 79 20 0a 61 6e 20 61 64 64 ┆"call by valђue"), or by an add┆
0x1c2e0…1c300 72 65 73 73 20 74 72 61 6e 73 66 65 72 20 28 22 63 61 6c 6c 20 62 79 20 72 65 66 65 72 65 6e 63 ┆ress transfer ("call by referenc┆
0x1c300…1c320 65 22 29 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 6b 69 6e 64 20 6f 66 20 74 68 65 ┆e") depending on the kind of the┆
0x1c320…1c340 20 0a 70 61 72 61 6d 65 74 65 72 2e 20 56 61 6c 75 65 20 70 61 72 61 6d 65 74 65 72 73 20 61 72 ┆ parameter. Value parameters ar┆
0x1c340…1c360 65 20 70 61 73 73 65 64 20 62 79 20 76 61 6c 75 65 20 74 72 61 6e 73 66 65 72 2c 20 61 6c 6c 20 ┆e passed by value transfer, all ┆
0x1c360…1c380 6f 74 68 65 72 20 0a 6b 69 6e 64 73 20 62 79 20 61 64 64 72 65 73 73 20 74 72 61 6e 73 80 66 65 ┆other kinds by address transђfe┆
0x1c380…1c3a0 72 2e 0d 0a 0d 0a a1 76 61 6c 75 65 20 74 72 61 6e 73 66 65 72 3a 0d 0a 54 68 65 20 76 61 6c 75 ┆r. Аvalue transfer: The valu┆
0x1c3a0…1c3c0 65 20 6f 66 20 74 68 65 20 61 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 20 62 65 63 6f 6d 65 ┆e of the actual parameter become┆
0x1c3c0…1c3e0 73 20 74 68 65 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 0a 66 6f 72 6d ┆s the initial value of the form┆
0x1c3e0…1c400 61 6c 20 70 61 72 61 6d 65 74 65 72 20 77 68 69 63 68 20 69 73 20 61 6c 6c 6f 63 61 74 65 64 20 ┆al parameter which is allocated ┆
0x1c400…1c420 6f 6e 20 74 68 65 20 73 74 61 63 6b 20 61 73 20 61 6e 20 6f 62 6a 65 63 74 20 6c 6f 63 61 6c 20 ┆on the stack as an object local ┆
0x1c420…1c440 0a 74 6f 20 74 68 65 20 69 6e 63 61 72 6e 61 74 69 6f 6e 2e 0d 0a 0d 0a 8c 85 d0 0a a1 61 64 64 ┆ to the incarnation. їЁл Аadd┆
0x1c440…1c460 72 65 73 73 20 74 72 61 6e 73 65 72 3a 0d 0a 54 68 65 20 61 63 74 75 61 6c 20 70 61 72 61 6d 65 ┆ress transer: The actual parame┆
0x1c460…1c480 74 65 72 20 69 73 20 61 6e 20 6f 62 6a 65 63 74 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 63 66 2e ┆ter is an object expression, cf.┆
0x1c480…1c4a0 20 63 68 61 70 74 65 72 20 34 2e 20 49 74 20 6d 75 73 74 20 0a 6e 6f 74 20 64 65 6e 6f 74 65 20 ┆ chapter 4. It must not denote ┆
0x1c4a0…1c4c0 61 6e 20 69 72 72 65 67 75 6c 61 72 20 6f 62 6a 65 63 74 20 28 63 66 2e 20 73 65 63 74 69 6f 6e ┆an irregular object (cf. section┆
0x1c4c0…1c4e0 20 33 2e 38 29 2e 20 45 76 61 6c 75 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 61 63 80 0a 74 75 61 ┆ 3.8). Evaluation of the acђ tua┆
0x1c4e0…1c500 6c 20 70 61 72 61 6d 65 74 65 72 20 79 69 65 6c 64 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6f ┆l parameter yields the address o┆
0x1c500…1c520 66 20 61 6e 20 6f 62 6a 65 63 74 20 6f 66 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 74 79 70 ┆f an object of the parameter typ┆
0x1c520…1c540 65 2e 20 0a 54 68 72 6f 75 67 68 6f 75 74 20 74 68 65 20 6c 69 66 65 20 6f 66 20 74 68 65 20 69 ┆e. Throughout the life of the i┆
0x1c540…1c560 6e 80 63 61 72 6e 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 6d 20 6f 72 20 72 6f ┆nђcarnation of the program or ro┆
0x1c560…1c580 75 74 69 6e 65 20 74 68 65 20 0a 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 20 6e 61 80 6d ┆utine the formal parameter naђm┆
0x1c580…1c5a0 65 20 77 69 6c 6c 20 64 65 6e 6f 74 65 20 74 68 69 73 20 6f 62 6a 65 63 74 2e 0d 0a 0d 0a 41 6e ┆e will denote this object. An┆
0x1c5a0…1c5c0 20 61 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 20 6f 62 6a 65 63 74 20 70 61 73 73 65 64 20 ┆ actual parameter object passed ┆
0x1c5c0…1c5e0 74 6f 20 61 20 70 72 6f 63 65 73 73 20 6d 75 73 74 20 62 65 20 64 65 80 63 6c 61 72 65 64 20 61 ┆to a process must be deђclared a┆
0x1c5e0…1c600 74 20 0a 74 68 65 20 6f 75 74 65 72 20 62 6c 6f 63 6b 20 6c 65 76 65 6c 20 6f 66 20 74 68 65 20 ┆t the outer block level of the ┆
0x1c600…1c620 70 61 72 65 6e 74 20 70 72 6f 63 65 73 73 2c 20 69 2e 65 2e 20 65 69 74 68 65 72 20 69 74 20 6d ┆parent process, i.e. either it m┆
0x1c620…1c640 75 73 74 20 69 74 73 65 6c 66 20 0a 62 65 20 61 20 70 72 6f 63 65 73 73 20 70 61 72 61 6d 65 74 ┆ust itself be a process paramet┆
0x1c640…1c660 65 72 20 6f 72 20 69 74 20 6d 75 73 74 20 62 65 20 64 65 63 6c 61 72 65 64 20 69 6e 20 74 68 65 ┆er or it must be declared in the┆
0x1c660…1c680 20 70 72 6f 67 72 61 6d 20 0a 64 65 63 6c 61 72 61 74 69 6f 6e 20 70 61 72 74 2e 0d 0a 0d 0a 49 ┆ program declaration part. I┆
0x1c680…1c6a0 66 20 74 68 65 20 61 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 20 69 73 20 73 70 65 63 69 66 ┆f the actual parameter is specif┆
0x1c6a0…1c6c0 69 65 64 20 61 73 20 3f 20 74 68 65 72 65 20 69 73 20 6e 6f 20 70 61 72 61 80 6d 65 74 65 72 20 ┆ied as ? there is no paraђmeter ┆
0x1c6c0…1c6e0 0a 6f 62 6a 65 63 74 2e 20 49 66 20 61 6e 20 61 74 74 65 6d 70 74 20 69 73 20 6d 61 64 65 20 74 ┆ object. If an attempt is made t┆
0x1c6e0…1c700 6f 20 61 63 63 65 73 73 20 73 75 63 68 20 61 20 6e 6f 6e 2d 65 78 80 69 73 74 69 6e 67 20 70 61 ┆o access such a non-exђisting pa┆
0x1c700…1c720 80 72 61 6d 65 74 65 72 20 0a 6f 62 6a 65 63 74 20 61 20 66 61 75 6c 74 20 6f 63 63 75 72 73 2e ┆ђrameter object a fault occurs.┆
0x1c720…1c740 0d 0a 0d 0a 49 66 20 74 68 65 20 6b 69 6e 64 20 6f 66 20 74 68 65 20 66 6f 72 6d 61 6c 20 70 61 ┆ If the kind of the formal pa┆
0x1c740…1c760 72 61 6d 65 74 65 72 20 69 73 20 76 61 72 69 61 62 6c 65 20 74 68 65 20 61 63 74 75 61 6c 20 70 ┆rameter is variable the actual p┆
0x1c760…1c780 61 72 61 80 6d 65 74 65 72 20 0a 6f 62 6a 65 63 74 20 6d 75 73 74 20 62 65 20 61 20 70 72 69 76 ┆araђmeter object must be a priv┆
0x1c780…1c7a0 61 74 65 20 76 61 72 69 61 62 6c 65 20 6f 72 20 63 6f 6d 70 6f 6e 65 6e 74 20 6f 66 20 61 20 70 ┆ate variable or component of a p┆
0x1c7a0…1c7c0 72 69 80 76 61 74 65 20 76 61 72 69 61 62 6c 65 2e 20 0a 49 66 20 74 68 65 20 6b 69 6e 64 20 6f ┆riђvate variable. If the kind o┆
0x1c7c0…1c7e0 66 20 74 68 65 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 20 69 73 20 73 68 61 72 65 64 ┆f the formal parameter is shared┆
0x1c7e0…1c800 20 74 68 65 20 61 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 20 0a 6f 62 6a 65 63 74 20 6d 75 ┆ the actual parameter object mu┆
0x1c800…1c820 73 74 20 62 65 20 61 20 73 68 61 72 65 64 20 76 61 72 69 80 61 80 62 6c 65 2e 20 43 6f 6e 76 65 ┆st be a shared variђaђble. Conve┆
0x1c820…1c840 72 73 65 6c 79 2c 20 69 66 20 74 68 65 20 61 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 20 0a ┆rsely, if the actual parameter ┆
0x1c840…1c860 69 73 20 73 68 61 72 65 64 2c 20 74 68 65 20 6b 69 6e 64 20 6f 66 20 74 68 65 20 66 6f 72 6d 61 ┆is shared, the kind of the forma┆
0x1c860…1c880 6c 20 70 61 72 61 80 6d 65 74 65 72 20 6d 75 73 74 20 61 6c 73 6f 20 62 65 20 73 68 61 72 65 64 ┆l paraђmeter must also be shared┆
0x1c880…1c8a0 2e 0d 0a 0d 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 72 65 73 74 72 69 63 74 69 6f 6e 73 20 ┆. The following restrictions ┆
0x1c8a0…1c8c0 61 70 70 6c 79 20 74 6f 20 70 72 6f 63 65 73 73 20 70 61 72 61 6d 65 74 65 72 73 2c 20 69 2e 65 ┆apply to process parameters, i.e┆
0x1c8c0…1c8e0 2e 20 74 6f 20 74 68 65 20 0a 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 73 20 77 68 69 63 ┆. to the formal parameters whic┆
0x1c8e0…1c900 68 20 6f 63 63 75 72 20 69 6e 20 61 20 70 72 6f 67 72 61 6d 20 68 65 61 64 69 6e 67 3a 0d 0a 2d ┆h occur in a program heading: -┆
0x1c900…1c920 20 84 70 61 72 61 6d 65 74 65 72 73 20 6f 66 20 6b 69 6e 64 20 76 61 72 69 61 62 6c 65 20 6d 75 ┆ ёparameters of kind variable mu┆
0x1c920…1c940 73 74 20 62 65 20 6f 66 20 74 79 70 65 20 70 6f 6f 6c 2c 20 6d 61 69 6c 62 6f 78 2c 20 6f 72 20 ┆st be of type pool, mailbox, or ┆
0x1c940…1c960 70 6f 72 74 3b 0d 0a 2d 20 84 70 61 72 61 6d 65 74 65 72 73 20 28 6f 72 20 63 6f 6d 70 6f 6e 65 ┆port; - ёparameters (or compone┆
0x1c960…1c980 6e 74 73 20 74 68 65 72 65 6f 66 29 20 6f 66 20 70 6f 69 6e 74 65 72 20 74 79 70 65 73 20 6d 75 ┆nts thereof) of pointer types mu┆
0x1c980…1c9a0 73 74 20 68 61 76 65 20 0a 19 82 80 80 6d 61 69 6c 62 6f 78 20 61 73 20 74 68 65 69 72 20 62 61 ┆st have ѓђђmailbox as their ba┆
0x1c9a0…1c9c0 73 65 20 74 79 70 65 2c 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 6b 69 6e 64 2e 0d 0a 0d 0a ┆se type, regardless of kind. ┆
0x1c9c0…1c9e0 a1 4e 6f 74 65 3a 0d 0a 41 6e 20 61 63 74 75 61 6c 20 70 72 6f 63 65 73 73 20 70 61 72 61 6d 65 ┆АNote: An actual process parame┆
0x1c9e0…1ca00 74 65 72 20 6f 66 20 6b 69 6e 64 20 69 6e 73 70 65 63 74 20 6d 61 79 20 62 65 20 61 20 76 61 72 ┆ter of kind inspect may be a var┆
0x1ca00…1ca20 69 80 61 80 62 6c 65 2c 20 61 6e 64 20 0a 74 68 75 73 20 69 74 20 6d 61 79 20 62 65 20 63 68 61 ┆iђaђble, and thus it may be cha┆
0x1ca20…1ca40 6e 67 65 64 20 62 79 20 74 68 65 20 70 61 72 65 6e 74 20 70 72 6f 63 65 73 73 2e 0d 0a 0d 0a 0e ┆nged by the parent process. ┆
0x1ca40…1ca60 0a a1 45 78 61 6d 70 6c 65 3a 0d 0a 54 59 50 45 0d 0a 20 20 20 6c 69 73 74 3d 20 41 52 52 41 59 ┆ АExample: TYPE list= ARRAY┆
0x1ca60…1ca80 28 31 2e 2e 6d 61 78 5f 6c 69 73 74 5f 6c 65 6e 67 74 68 29 20 4f 46 20 6c 69 73 74 5f 65 6c 65 ┆(1..max_list_length) OF list_ele┆
0x1ca80…1caa0 6d 65 6e 74 3b 0d 0a 0d 0a 20 20 20 50 52 4f 43 45 44 55 52 45 20 68 61 6e 64 6c 65 5f 6c 69 73 ┆ment; PROCEDURE handle_lis┆
0x1caa0…1cac0 74 28 49 4e 53 50 45 43 54 20 6c 73 74 3a 20 6c 69 73 74 29 3b 0d 0a 20 20 20 2d 2d 20 6c 73 74 ┆t(INSPECT lst: list); -- lst┆
0x1cac0…1cae0 20 69 73 20 6f 66 20 6b 69 6e 64 20 69 6e 73 70 65 63 74 20 74 6f 20 73 61 76 65 20 74 69 6d 65 ┆ is of kind inspect to save time┆
0x1cae0…1cb00 20 61 6e 64 20 73 70 61 63 65 2c 20 61 6e 64 20 74 6f 0d 0a 20 20 20 2d 2d 20 61 6c 6c 6f 77 20 ┆ and space, and to -- allow ┆
0x1cb00…1cb20 74 68 65 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 63 6f 6e 73 74 61 6e 74 20 6c 69 73 74 73 0d 0a ┆the handling of constant lists ┆
0x1cb20…1cb40 0f 0a 16 73 62 0d 0a 49 6e 63 61 72 6e 61 74 69 6f 6e 73 20 6f 66 20 42 6c 6f 63 6b 73 0d 0a 41 ┆ sb Incarnations of Blocks A┆
0x1cb40…1cb60 20 bf dc d8 62 6c 6f 63 6b be 2c 20 77 68 65 74 68 65 72 20 70 72 6f 67 72 61 6d 20 6f 72 20 72 ┆ ┐▄пblockЙ, whether program or r┆
0x1cb60…1cb80 6f 75 74 69 6e 65 2c 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 61 20 64 65 63 6c 61 72 61 80 74 69 ┆outine, consists of a declaraђti┆
0x1cb80…1cba0 6f 6e 20 70 61 72 74 20 0a 61 6e 64 20 61 6e 20 61 63 74 69 6f 6e 20 70 61 72 74 20 77 68 69 63 ┆on part and an action part whic┆
0x1cba0…1cbc0 68 20 68 61 73 20 74 68 65 20 66 6f 72 6d 20 6f 66 20 61 20 63 6f 6d 80 80 70 6f 75 6e 64 20 73 ┆h has the form of a comђђpound s┆
0x1cbc0…1cbe0 74 61 80 74 65 6d 65 6e 74 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 31 30 0d 0a 16 6d 61 20 73 79 ┆taђtement. ma syndia10 ma sy┆
0x1cbe0…1cc00 6e 64 69 61 31 31 0d 0a 42 6c 6f 63 6b 73 20 73 70 65 63 69 66 69 65 64 20 62 79 20 6f 6e 65 20 ┆ndia11 Blocks specified by one ┆
0x1cc00…1cc20 6f 66 20 74 68 65 20 6b 65 79 77 6f 72 64 73 20 45 58 54 45 52 4e 41 4c 20 61 6e 64 20 46 4f 52 ┆of the keywords EXTERNAL and FOR┆
0x1cc20…1cc40 80 57 41 52 44 20 0a 61 72 65 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 73 75 62 73 65 63 74 69 ┆ђWARD are described in subsecti┆
0x1cc40…1cc60 6f 6e 20 36 2e 32 2e 32 2e 0d 0a 0d 0a 54 68 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 70 61 72 ┆on 6.2.2. The declaration par┆
0x1cc60…1cc80 74 73 20 6f 66 20 70 72 6f 67 72 61 6d 20 61 6e 64 20 72 6f 75 74 69 6e 65 20 62 6c 6f 63 6b 73 ┆ts of program and routine blocks┆
0x1cc80…1cca0 20 61 72 65 20 73 6c 69 67 68 74 6c 79 20 64 69 66 80 0a 66 65 72 65 6e 74 20 69 6e 20 74 68 61 ┆ are slightly difђ ferent in tha┆
0x1cca0…1ccc0 74 20 63 65 72 74 61 69 6e 20 66 6f 72 6d 73 20 6f 66 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 ┆t certain forms of declarations ┆
0x1ccc0…1cce0 6d 61 79 20 6e 6f 74 20 6f 63 63 75 72 20 69 6e 20 61 20 0a 72 6f 75 74 69 6e 65 20 62 6c 6f 63 ┆may not occur in a routine bloc┆
0x1cce0…1cd00 6b 3b 20 73 65 65 20 73 75 62 73 65 63 74 69 6f 6e 20 36 2e 32 2e 31 2e 0d 0a 0d 0a 41 6e 20 69 ┆k; see subsection 6.2.1. An i┆
0x1cd00…1cd20 6e 63 61 72 6e 61 74 69 6f 6e 2c 20 77 68 65 74 68 65 72 20 6f 66 20 61 20 70 72 6f 67 72 61 6d ┆ncarnation, whether of a program┆
0x1cd20…1cd40 20 6f 72 20 72 6f 75 74 69 6e 65 2c 20 69 73 20 63 72 65 61 74 65 64 20 69 6e 20 74 68 65 20 0a ┆ or routine, is created in the ┆
0x1cd40…1cd60 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 72 65 65 20 73 74 65 70 73 2e 0d 0a 0d 0a 31 29 20 84 41 6c ┆following three steps. 1) ёAl┆
0x1cd60…1cd80 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 20 28 69 6e 69 74 69 ┆location of the necessary (initi┆
0x1cd80…1cda0 61 6c 29 20 61 6d 6f 75 6e 74 20 6f 66 20 73 74 61 63 6b 20 61 6e 64 20 68 65 61 70 2e 20 49 6e ┆al) amount of stack and heap. In┆
0x1cda0…1cdc0 20 0a 19 83 80 80 74 68 65 20 63 61 73 65 20 6f 66 20 61 20 70 72 6f 67 72 61 6d 20 74 68 69 73 ┆ Ѓђђthe case of a program this┆
0x1cdc0…1cde0 20 6d 65 61 6e 73 20 61 20 77 68 6f 6c 65 20 6e 65 77 20 73 74 61 63 6b 3b 20 69 6e 20 74 68 65 ┆ means a whole new stack; in the┆
0x1cde0…1ce00 20 63 61 73 65 20 0a 19 83 80 80 6f 66 20 61 20 72 6f 75 74 69 6e 65 20 69 74 20 6d 65 61 6e 73 ┆ case Ѓђђof a routine it means┆
0x1ce00…1ce20 20 61 6e 20 a0 61 63 74 69 76 61 74 69 6f 6e 20 72 65 63 6f 72 64 e0 20 69 6e 20 74 68 65 20 73 ┆ an аactivation recordЯ in the s┆
0x1ce20…1ce40 74 61 63 6b 20 6f 66 20 74 68 65 20 63 61 6c 80 0a 19 83 80 80 6c 69 6e 67 20 70 72 6f 63 65 73 ┆tack of the calђ Ѓђђling proces┆
0x1ce40…1ce60 73 2e 0d 0a 0d 0a 32 29 20 50 61 72 61 6d 65 74 65 72 20 70 61 73 73 69 6e 67 2c 20 63 66 2e 20 ┆s. 2) Parameter passing, cf. ┆
0x1ce60…1ce80 73 65 63 74 69 6f 6e 20 36 2e 31 2e 0d 0a 0d 0a 33 29 20 84 45 6c 61 62 6f 72 61 74 69 6f 6e 20 ┆section 6.1. 3) ёElaboration ┆
0x1ce80…1cea0 6f 66 20 74 68 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 62 6c 6f 63 6b ┆of the declarations of the block┆
0x1cea0…1cec0 73 2c 20 61 73 20 64 65 73 63 72 69 80 62 65 64 20 62 65 6c 6f 77 2e 0d 0a 0d 0a 57 68 65 6e 20 ┆s, as descriђbed below. When ┆
0x1cec0…1cee0 61 6e 20 69 6e 63 61 72 6e 61 74 69 6f 6e 20 68 61 73 20 62 65 65 6e 20 63 72 65 61 74 65 64 20 ┆an incarnation has been created ┆
0x1cee0…1cf00 74 68 65 20 61 63 74 69 6f 6e 20 70 61 72 74 20 6f 66 20 74 68 65 20 62 6c 6f 63 6b 20 0a 63 61 ┆the action part of the block ca┆
0x1cf00…1cf20 6e 20 62 65 20 65 78 65 63 75 74 65 64 2c 20 63 66 2e 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c ┆n be executed, cf. function call┆
0x1cf20…1cf40 20 28 73 65 63 74 69 6f 6e 20 34 2e 32 29 2c 20 70 72 6f 80 63 65 64 75 72 65 20 63 61 6c 6c 20 ┆ (section 4.2), proђcedure call ┆
0x1cf40…1cf60 28 73 65 63 80 0a 74 69 6f 6e 20 35 2e 36 29 2c 20 61 6e 64 20 63 72 65 61 74 65 20 63 61 6c 6c ┆(secђ tion 5.6), and create call┆
0x1cf60…1cf80 20 28 73 65 63 74 69 6f 6e 20 39 2e 31 29 2e 0d 0a 0d 0a 57 68 65 6e 20 65 78 65 63 75 74 69 6f ┆ (section 9.1). When executio┆
0x1cf80…1cfa0 6e 20 6f 66 20 74 68 65 20 61 63 74 69 6f 6e 20 70 61 72 74 20 6f 66 20 61 20 72 6f 75 74 69 6e ┆n of the action part of a routin┆
0x1cfa0…1cfc0 65 20 74 65 72 6d 69 6e 61 74 65 73 20 74 68 65 20 76 61 6c 75 65 73 20 0a 6f 66 20 61 6c 6c 20 ┆e terminates the values of all ┆
0x1cfc0…1cfe0 6c 6f 63 61 6c 20 72 65 66 65 72 65 6e 63 65 20 76 61 72 69 61 62 6c 65 73 20 6d 75 73 74 20 62 ┆local reference variables must b┆
0x1cfe0…1d000 65 20 4e 49 4c 2c 20 6f 74 80 68 65 72 77 69 73 65 20 61 20 66 61 75 6c 74 20 6f 63 63 75 72 73 ┆e NIL, otђherwise a fault occurs┆
0x1d000…1d020 2e 0d 0a 16 73 63 0d 0a 54 68 65 20 44 65 63 6c 61 72 61 74 69 6f 6e 20 50 61 72 74 0d 0a 54 68 ┆. sc The Declaration Part Th┆
0x1d020…1d040 65 20 bf dc d8 64 65 63 6c 61 72 61 74 69 6f 6e 20 70 61 72 74 be 20 6f 66 20 61 20 62 6c 6f 63 ┆e ┐▄пdeclaration partЙ of a bloc┆
0x1d040…1d060 6b 20 6e 61 6d 65 73 20 61 6e 64 20 64 65 66 69 6e 65 73 20 74 79 70 65 73 2c 20 6f 62 6a 65 63 ┆k names and defines types, objec┆
0x1d060…1d080 74 73 2c 20 0a 72 6f 75 74 69 6e 65 73 20 61 6e 64 20 70 72 6f 67 72 61 6d 73 20 77 68 69 63 68 ┆ts, routines and programs which┆
0x1d080…1d0a0 20 61 72 65 20 6c 6f 63 61 6c 20 74 6f 20 74 68 65 20 62 6c 6f 63 6b 2c 20 69 2e 65 2e 20 6e 6f ┆ are local to the block, i.e. no┆
0x1d0a0…1d0c0 74 20 bf dc d8 76 69 73 69 62 6c 65 be 20 0a 6f 75 74 73 69 64 65 20 74 68 65 20 62 6c 6f 63 6b ┆t ┐▄пvisibleЙ outside the block┆
0x1d0c0…1d0e0 2e 20 54 68 65 20 6e 61 6d 65 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 74 68 65 20 64 65 ┆. The names introduced in the de┆
0x1d0e0…1d100 63 6c 61 80 72 61 74 69 6f 6e 73 20 6d 61 79 20 62 65 20 0a 75 73 65 64 20 77 69 74 68 69 6e 20 ┆claђrations may be used within ┆
0x1d100…1d120 74 68 65 20 62 6c 6f 63 6b 20 74 6f 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 64 65 66 69 6e 65 ┆the block to refer to the define┆
0x1d120…1d140 64 20 65 6e 80 74 69 74 69 65 73 2c 20 63 66 2e 20 63 68 61 70 74 65 72 20 38 2e 0d 0a 16 6d 61 ┆d enђtities, cf. chapter 8. ma┆
0x1d140…1d160 20 73 79 6e 64 69 61 31 32 0d 0a 16 6d 61 20 73 79 6e 64 69 61 31 33 0d 0a 16 6d 61 20 73 79 6e ┆ syndia12 ma syndia13 ma syn┆
0x1d160…1d180 64 69 61 31 34 0d 0a 8c 8d c0 0a 56 61 72 69 61 62 6c 65 73 20 6f 66 20 73 68 69 65 6c 64 65 64 ┆dia14 їЇ└ Variables of shielded┆
0x1d180…1d1a0 20 74 79 70 65 73 2c 20 65 78 63 65 70 74 20 72 65 66 65 72 65 6e 63 65 2c 20 61 6e 64 20 76 61 ┆ types, except reference, and va┆
0x1d1a0…1d1c0 72 69 61 62 6c 65 73 20 77 68 69 63 68 20 0a 68 61 76 65 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 6f ┆riables which have components o┆
0x1d1c0…1d1e0 66 20 74 68 65 73 65 20 74 79 70 65 73 20 6d 61 79 20 6e 6f 74 20 62 65 20 64 65 63 6c 61 72 65 ┆f these types may not be declare┆
0x1d1e0…1d200 64 20 69 6e 20 61 20 72 6f 75 74 69 6e 65 20 0a 64 65 63 6c 61 72 61 74 69 6f 6e 20 70 61 72 74 ┆d in a routine declaration part┆
0x1d200…1d220 2c 20 69 2e 65 2e 20 73 75 63 68 20 76 61 72 69 61 62 6c 65 73 20 63 61 6e 20 6f 6e 6c 79 20 62 ┆, i.e. such variables can only b┆
0x1d220…1d240 65 20 64 65 63 6c 61 72 65 64 20 69 6e 20 74 68 65 20 6f 75 74 65 72 20 0a 62 6c 6f 63 6b 20 6f ┆e declared in the outer block o┆
0x1d240…1d260 66 20 61 20 70 72 6f 67 72 61 6d 2e 0d 0a 0d 0a 54 68 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 ┆f a program. The declarations┆
0x1d260…1d280 20 69 6e 20 74 68 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 70 61 72 74 20 6f 66 20 61 20 62 6c ┆ in the declaration part of a bl┆
0x1d280…1d2a0 6f 63 6b 20 61 72 65 20 65 6c 61 80 62 6f 72 61 80 74 65 64 20 69 6e 20 0a 74 68 65 20 6f 72 64 ┆ock are elaђboraђted in the ord┆
0x1d2a0…1d2c0 65 72 20 6f 66 20 6f 63 63 75 72 72 65 6e 63 65 2e 20 45 6c 61 62 6f 72 61 74 69 6f 6e 20 6f 66 ┆er of occurrence. Elaboration of┆
0x1d2c0…1d2e0 20 74 79 70 65 20 64 65 80 63 6c 61 72 61 74 69 6f 6e 73 20 69 73 20 64 65 73 63 72 69 62 65 64 ┆ type deђclarations is described┆
0x1d2e0…1d300 20 0a 69 6e 20 73 65 63 74 69 6f 6e 20 33 2e 32 2c 20 65 6c 61 62 6f 72 61 74 69 6f 6e 20 6f 66 ┆ in section 3.2, elaboration of┆
0x1d300…1d320 20 76 61 72 69 80 61 62 6c 65 20 61 6e 64 20 73 68 61 72 65 64 20 64 65 63 6c 61 72 61 74 69 6f ┆ variђable and shared declaratio┆
0x1d320…1d340 6e 73 20 69 73 20 0a 64 65 73 63 72 69 62 65 64 20 69 6e 20 73 75 62 73 65 63 74 69 6f 6e 20 33 ┆ns is described in subsection 3┆
0x1d340…1d360 2e 31 31 2e 32 2c 20 61 6e 64 20 63 6f 6e 73 74 61 6e 74 20 64 65 80 63 6c 61 72 61 74 69 6f 6e ┆.11.2, and constant deђclaration┆
0x1d360…1d380 73 20 6e 65 65 64 20 6e 6f 20 65 6c 61 80 0a 62 6f 72 61 74 69 6f 6e 20 61 74 20 72 75 6e 2d 74 ┆s need no elaђ boration at run-t┆
0x1d380…1d3a0 69 6d 65 2e 0d 0a 0d 0a 54 68 65 20 65 6c 61 62 6f 72 61 74 69 6f 6e 20 6f 66 20 61 20 72 6f 75 ┆ime. The elaboration of a rou┆
0x1d3a0…1d3c0 74 69 6e 65 20 6f 72 20 70 72 6f 67 72 61 6d 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 63 61 75 73 ┆tine or program declaration caus┆
0x1d3c0…1d3e0 65 73 20 61 6c 6c 20 74 79 70 65 73 20 0a 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 27 66 6f ┆es all types defined in the 'fo┆
0x1d3e0…1d400 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 73 27 20 74 6f 20 62 65 20 65 73 74 61 62 6c 69 80 73 ┆rmal parameters' to be establiђs┆
0x1d400…1d420 68 65 64 2e 20 57 68 65 6e 20 61 20 70 72 6f 67 72 61 6d 20 0a 64 65 63 6c 61 72 61 74 69 6f 6e ┆hed. When a program declaration┆
0x1d420…1d440 20 69 73 20 65 6c 61 62 6f 72 61 74 65 64 20 61 20 a0 73 75 62 2d 70 72 6f 67 72 61 6d 20 6f 62 ┆ is elaborated a аsub-program ob┆
0x1d440…1d460 6a 65 63 74 e0 20 69 73 20 61 6c 6c 6f 80 63 61 74 65 64 20 69 6e 20 74 68 65 20 0a 73 74 61 63 ┆jectЯ is alloђcated in the stac┆
0x1d460…1d480 6b 20 6f 66 20 74 68 65 20 70 72 6f 63 65 73 73 20 62 65 80 69 6e 67 20 63 72 65 61 80 74 65 64 ┆k of the process beђing creaђted┆
0x1d480…1d4a0 2c 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20 70 72 6f 67 72 61 ┆, and associated with the progra┆
0x1d4a0…1d4c0 6d 20 0a 6e 61 6d 65 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 74 68 65 20 64 65 63 6c 61 72 61 ┆m name specified in the declara┆
0x1d4c0…1d4e0 74 69 6f 6e 2e 20 55 6e 6c 65 73 73 20 74 68 65 20 70 72 6f 67 72 61 6d 20 62 6c 6f 63 6b 20 69 ┆tion. Unless the program block i┆
0x1d4e0…1d500 73 20 65 78 80 0a 74 65 72 6e 61 6c 2c 20 74 68 65 20 73 75 62 2d 70 72 6f 67 72 61 6d 20 6f 62 ┆s exђ ternal, the sub-program ob┆
0x1d500…1d520 6a 65 63 74 20 69 73 20 6c 69 6e 6b 65 64 20 28 61 73 20 69 66 20 62 79 20 61 6e 20 69 6d 70 6c ┆ject is linked (as if by an impl┆
0x1d520…1d540 69 63 69 74 20 6c 69 6e 6b 20 63 61 6c 6c 2c 20 0a 63 66 2e 20 63 68 61 70 74 65 72 20 39 29 20 ┆icit link call, cf. chapter 9) ┆
0x1d540…1d560 74 6f 20 74 68 65 20 62 6c 6f 63 6b 3b 20 6f 74 68 65 72 77 69 73 65 20 69 74 20 69 73 20 69 6e ┆to the block; otherwise it is in┆
0x1d560…1d580 69 74 69 61 6c 69 80 7a 65 64 20 61 73 20 68 61 76 69 6e 67 20 73 74 61 74 65 20 0a 75 6e 6c 69 ┆itialiђzed as having state unli┆
0x1d580…1d5a0 6e 6b 65 64 2e 0d 0a 0d 0a 54 68 65 20 65 6c 61 62 6f 72 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 ┆nked. The elaboration of the ┆
0x1d5a0…1d5c0 64 65 63 6c 61 72 61 74 69 6f 6e 20 70 61 72 74 20 69 73 20 70 65 72 66 6f 72 6d 65 64 20 66 6f ┆declaration part is performed fo┆
0x1d5c0…1d5e0 72 20 65 61 63 68 20 69 6e 63 61 72 6e 61 80 0a 74 69 6f 6e 20 6f 66 20 61 20 62 6c 6f 63 6b 2c ┆r each incarnaђ tion of a block,┆
0x1d5e0…1d600 20 61 6e 64 20 74 68 65 20 6e 61 6d 65 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 74 68 65 ┆ and the names introduced in the┆
0x1d600…1d620 20 64 65 63 6c 61 72 61 80 74 69 6f 6e 73 2c 20 77 68 65 6e 20 0a 6f 63 63 75 72 72 69 6e 67 20 ┆ declaraђtions, when occurring ┆
0x1d620…1d640 69 6e 20 74 68 65 20 72 65 6d 61 69 6e 64 65 72 20 6f 66 20 74 68 65 20 62 6c 6f 63 6b 2c 20 72 ┆in the remainder of the block, r┆
0x1d640…1d660 65 66 65 72 20 74 6f 20 74 68 6f 73 65 20 69 6e 73 74 61 6e 63 65 73 20 6f 66 20 0a 74 68 65 20 ┆efer to those instances of the ┆
0x1d660…1d680 6e 61 6d 65 64 20 65 6e 74 69 74 69 65 73 20 77 68 69 63 68 20 68 61 76 65 20 62 65 65 6e 20 65 ┆named entities which have been e┆
0x1d680…1d6a0 73 74 61 62 6c 69 73 68 80 65 64 20 6f 72 20 61 6c 6c 6f 63 61 74 65 64 20 77 68 65 6e 20 74 68 ┆stablishђed or allocated when th┆
0x1d6a0…1d6c0 65 20 0a 70 61 72 74 69 63 75 6c 61 72 20 69 6e 63 61 72 6e 61 80 80 74 69 6f 6e 20 6f 66 20 74 ┆e particular incarnaђђtion of t┆
0x1d6c0…1d6e0 68 65 20 62 6c 6f 63 6b 20 77 61 73 20 63 72 65 61 74 65 64 2e 0d 0a 0d 0a 49 6e 20 74 68 65 20 ┆he block was created. In the ┆
0x1d6e0…1d700 63 61 73 65 20 6f 66 20 61 20 66 75 6e 63 74 69 6f 6e 20 62 6c 6f 63 6b 20 65 6c 61 62 6f 72 61 ┆case of a function block elabora┆
0x1d700…1d720 74 69 6f 6e 20 6f 66 20 74 68 65 20 64 65 63 6c 61 72 61 80 74 69 6f 6e 20 70 61 72 74 2c 20 0a ┆tion of the declaraђtion part, ┆
0x1d720…1d740 65 76 65 6e 20 69 66 20 69 74 20 69 73 20 65 6d 70 74 79 2c 20 69 6e 63 6c 75 64 65 73 20 65 73 ┆even if it is empty, includes es┆
0x1d740…1d760 74 61 62 6c 69 73 68 6d 65 6e 74 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 20 74 79 70 65 20 61 ┆tablishment of the result type a┆
0x1d760…1d780 6e 64 20 61 6c 80 0a 6c 6f 63 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20 73 74 61 63 6b 20 6f 66 20 ┆nd alђ location on the stack of ┆
0x1d780…1d7a0 61 6e 20 69 6d 70 6c 69 63 69 74 6c 79 20 64 65 63 6c 61 72 65 64 20 a0 72 65 73 75 6c 74 20 6f ┆an implicitly declared аresult o┆
0x1d7a0…1d7c0 62 6a 65 63 74 e0 2e 20 54 68 65 20 69 6e 80 0a 69 74 69 61 6c 20 76 61 6c 75 65 20 6f 66 20 74 ┆bjectЯ. The inђ itial value of t┆
0x1d7c0…1d7e0 68 65 20 72 65 73 75 6c 74 20 6f 62 6a 65 63 74 20 69 73 20 75 6e 64 65 66 69 6e 65 64 2c 20 75 ┆he result object is undefined, u┆
0x1d7e0…1d800 6e 6c 65 73 73 2c 20 69 74 20 69 73 20 6f 66 20 61 20 70 6f 69 6e 74 65 72 20 0a 74 79 70 65 2c ┆nless, it is of a pointer type,┆
0x1d800…1d820 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 74 68 65 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 ┆ in which case the initial value┆
0x1d820…1d840 20 69 73 20 4e 49 4c 2e 0d 0a 0d 0a a1 4e 6f 74 65 3a 0d 0a 8c 86 98 0a 54 68 65 20 73 74 61 74 ┆ is NIL. АNote: їєў The stat┆
0x1d840…1d860 69 63 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6f 66 20 61 6e 20 69 6e 74 65 72 6e 61 6c 20 70 72 ┆ic environment of an internal pr┆
0x1d860…1d880 6f 67 72 61 6d 20 62 6c 6f 63 6b 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 0a 74 68 61 74 ┆ogram block is the same as that┆
0x1d880…1d8a0 20 6f 66 20 74 68 65 20 65 6e 63 6c 6f 73 69 6e 67 20 70 72 6f 67 72 61 6d 20 62 6c 6f 63 6b 2c ┆ of the enclosing program block,┆
0x1d8a0…1d8c0 20 69 2e 65 2e 20 6f 6e 6c 79 20 6e 61 6d 65 73 20 69 6e 20 63 6f 6e 80 74 65 78 74 73 20 73 70 ┆ i.e. only names in conђtexts sp┆
0x1d8c0…1d8e0 65 80 0a 63 69 66 69 65 64 20 66 6f 72 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 75 6e ┆eђ cified for the compilation un┆
0x1d8e0…1d900 69 74 2c 20 63 66 2e 20 63 68 61 70 74 65 72 20 38 2c 20 70 72 65 64 65 66 69 80 6e 65 64 20 6e ┆it, cf. chapter 8, predefiђned n┆
0x1d900…1d920 61 6d 65 73 2c 20 61 6e 64 20 0a 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 66 6f 72 6d 61 6c 20 70 ┆ames, and the names of formal p┆
0x1d920…1d940 61 72 61 6d 65 74 65 72 73 20 61 72 65 20 6b 6e 6f 77 6e 20 66 72 6f 6d 20 74 68 65 20 73 74 61 ┆arameters are known from the sta┆
0x1d940…1d960 72 74 20 6f 66 20 74 68 65 20 0a 62 6c 6f 63 6b 2e 0d 0a 0d 0a 45 6c 61 62 6f 72 61 74 69 6f 6e ┆rt of the block. Elaboration┆
0x1d960…1d980 20 6f 66 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 69 73 20 6e 6f 74 20 74 68 65 20 6f 6e 6c 79 ┆ of declarations is not the only┆
0x1d980…1d9a0 20 74 69 6d 65 20 74 79 70 65 73 20 6d 61 79 20 62 65 20 0a 65 73 74 61 62 6c 69 73 68 65 64 2e ┆ time types may be established.┆
0x1d9a0…1d9c0 20 46 75 72 74 68 65 72 20 74 79 70 65 73 20 6d 61 79 20 62 65 20 65 73 74 61 62 6c 69 73 68 65 ┆ Further types may be establishe┆
0x1d9c0…1d9e0 64 20 77 68 65 6e 20 66 6f 72 2c 20 77 69 74 68 2c 20 61 6e 64 20 6c 6f 63 6b 20 0a 73 74 61 74 ┆d when for, with, and lock stat┆
0x1d9e0…1da00 65 6d 65 6e 74 73 20 61 72 65 20 65 78 65 63 75 74 65 64 2e 0d 0a 0d 0a 0e 0a a1 45 78 61 6d 70 ┆ements are executed. АExamp┆
0x1da00…1da20 6c 65 20 28 6f 66 20 6e 65 73 74 65 64 20 72 6f 75 74 69 6e 65 73 29 3a 0d 0a 0d 0a 54 59 50 45 ┆le (of nested routines): TYPE┆
0x1da20…1da40 20 70 61 72 69 74 79 3d 20 28 65 76 65 6e 2c 20 6f 64 64 29 3b 0d 0a 0d 0a 46 55 4e 43 54 49 4f ┆ parity= (even, odd); FUNCTIO┆
0x1da40…1da60 4e 20 62 79 74 65 5f 70 61 72 69 74 79 28 61 72 67 3a 20 62 79 74 65 29 3a 20 70 61 72 69 74 79 ┆N byte_parity(arg: byte): parity┆
0x1da60…1da80 3b 0d 0a 0d 0a 20 20 46 55 4e 43 54 49 4f 4e 20 65 76 65 6e 34 62 69 74 73 28 61 72 67 3a 20 30 ┆; FUNCTION even4bits(arg: 0┆
0x1da80…1daa0 2e 2e 31 35 29 3a 20 62 6f 6f 6c 65 61 6e 3b 0d 0a 20 20 20 20 43 4f 4e 53 54 20 74 61 62 6c 65 ┆..15): boolean; CONST table┆
0x1daa0…1dac0 3d 20 28 2e 20 30 2c 20 33 2c 20 35 2c 20 36 2c 20 39 2c 20 31 30 2c 20 31 32 2c 20 31 35 20 2e ┆= (. 0, 3, 5, 6, 9, 10, 12, 15 .┆
0x1dac0…1dae0 29 3b 0d 0a 20 20 42 45 47 49 4e 20 65 76 65 6e 34 62 69 74 73 3a 3d 20 61 72 67 20 49 4e 20 74 ┆); BEGIN even4bits:= arg IN t┆
0x1dae0…1db00 61 62 6c 65 20 45 4e 44 3b 0d 0a 0d 0a 42 45 47 49 4e 20 28 2a 20 62 79 74 65 20 70 61 72 69 74 ┆able END; BEGIN (* byte parit┆
0x1db00…1db20 79 20 2a 29 0d 0a 20 20 49 46 20 65 76 65 6e 34 62 69 74 73 28 69 6e 74 28 61 72 67 20 53 48 49 ┆y *) IF even4bits(int(arg SHI┆
0x1db20…1db40 46 54 20 28 2d 34 29 29 29 20 2d 2d 20 6c 65 66 74 20 68 61 6c 66 20 62 79 74 65 0d 0a 20 20 20 ┆FT (-4))) -- left half byte ┆
0x1db40…1db60 20 3d 65 76 65 6e 34 62 69 74 73 28 69 6e 74 28 61 72 67 20 41 4e 44 20 23 48 46 29 29 20 2d 2d ┆ =even4bits(int(arg AND #HF)) --┆
0x1db60…1db80 20 72 69 67 68 74 20 68 61 6c 66 20 62 79 74 65 0d 0a 20 20 54 48 45 4e 20 62 79 74 65 5f 70 61 ┆ right half byte THEN byte_pa┆
0x1db80…1dba0 72 69 74 79 3a 3d 20 65 76 65 6e 0d 0a 20 20 45 4c 53 45 20 62 79 74 65 5f 70 61 72 69 74 79 3a ┆rity:= even ELSE byte_parity:┆
0x1dba0…1dbc0 3d 20 6f 64 64 0d 0a 45 4e 44 0d 0a 0f 0a 16 73 63 0d 0a 46 6f 72 77 61 72 64 20 61 6e 64 20 45 ┆= odd END sc Forward and E┆
0x1dbc0…1dbe0 78 74 65 72 6e 61 6c 20 42 6c 6f 63 6b 73 0d 0a 41 20 bf dc d8 66 6f 72 77 61 72 64 be 20 61 6e ┆xternal Blocks A ┐▄пforwardЙ an┆
0x1dbe0…1dc00 6e 6f 75 6e 63 65 6d 65 6e 74 20 6f 66 20 61 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 63 6f 6e 74 ┆nouncement of a declaration cont┆
0x1dc00…1dc20 61 69 6e 69 6e 67 20 74 68 65 20 61 63 74 75 80 61 6c 20 62 6c 6f 63 6b 20 0a 6f 66 20 61 20 72 ┆aining the actuђal block of a r┆
0x1dc20…1dc40 6f 75 74 69 6e 65 20 6d 61 79 20 62 65 20 67 69 76 65 6e 20 62 79 20 75 73 69 6e 67 20 74 68 65 ┆outine may be given by using the┆
0x1dc40…1dc60 20 6b 65 79 77 6f 72 64 20 46 4f 52 80 80 57 41 52 44 20 69 6e 20 70 6c 61 63 65 20 0a 6f 66 20 ┆ keyword FORђђWARD in place of ┆
0x1dc60…1dc80 74 68 65 20 72 6f 75 74 69 6e 65 20 62 6c 6f 63 6b 2e 20 57 68 65 6e 20 61 20 66 6f 72 77 61 72 ┆the routine block. When a forwar┆
0x1dc80…1dca0 64 20 61 6e 6e 6f 75 6e 63 65 80 6d 65 6e 74 20 69 73 20 75 73 65 64 20 61 20 64 65 63 6c 61 72 ┆d announceђment is used a declar┆
0x1dca0…1dcc0 61 80 0a 74 69 6f 6e 20 77 69 74 68 20 61 6e 20 69 64 65 6e 74 69 63 61 6c 20 72 6f 75 74 69 6e ┆aђ tion with an identical routin┆
0x1dcc0…1dce0 65 20 68 65 61 80 80 64 69 6e 67 2c 20 69 2e 65 2e 20 61 6c 6c 20 6c 65 78 69 63 61 6c 20 65 6c ┆e heaђђding, i.e. all lexical el┆
0x1dce0…1dd00 65 6d 65 6e 74 73 20 69 64 65 6e 74 69 80 0a 63 61 6c 2c 20 61 6e 64 20 61 6e 20 61 63 74 75 61 ┆ements identiђ cal, and an actua┆
0x1dd00…1dd20 6c 20 72 6f 75 74 69 6e 65 20 62 6c 6f 63 6b 20 28 69 2e 65 2e 20 63 6f 6e 73 69 73 74 69 6e 67 ┆l routine block (i.e. consisting┆
0x1dd20…1dd40 20 6f 66 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 70 61 72 74 2c 20 0a 77 68 69 63 68 20 6d 61 79 ┆ of declaration part, which may┆
0x1dd40…1dd60 20 62 65 20 65 6d 70 74 79 2c 20 61 6e 64 20 61 63 74 69 6f 6e 20 70 61 72 74 29 20 6d 75 73 74 ┆ be empty, and action part) must┆
0x1dd60…1dd80 20 61 70 70 65 61 72 20 6c 61 74 65 72 20 69 6e 20 74 68 65 20 73 61 6d 65 20 0a 27 64 65 63 6c ┆ appear later in the same 'decl┆
0x1dd80…1dda0 61 72 61 74 69 6f 6e 20 70 61 72 74 27 2e 20 49 6e 20 74 68 69 73 20 77 61 79 20 69 74 20 69 73 ┆aration part'. In this way it is┆
0x1dda0…1ddc0 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 6f 62 73 65 72 76 65 20 74 68 65 20 72 75 6c 65 20 6f 66 ┆ possible to observe the rule of┆
0x1ddc0…1dde0 20 0a 64 65 63 6c 61 72 61 74 69 6f 6e 20 62 65 66 6f 72 65 20 75 73 65 2c 20 65 76 65 6e 20 66 ┆ declaration before use, even f┆
0x1dde0…1de00 6f 72 20 6d 75 74 75 61 6c 6c 79 20 72 65 80 80 63 75 72 73 69 76 65 20 72 6f 75 74 69 6e 65 73 ┆or mutually reђђcursive routines┆
0x1de00…1de20 2e 0d 0a 0d 0a 8c 86 e0 0a 54 68 65 20 62 6c 6f 63 6b 20 6f 66 20 61 20 70 72 6f 67 72 61 6d 20 ┆. їєЯ The block of a program ┆
0x1de20…1de40 6f 72 20 72 6f 75 74 69 6e 65 20 6d 61 79 20 62 65 20 73 70 65 63 69 66 69 65 64 20 61 73 20 bf ┆or routine may be specified as ┐┆
0x1de40…1de60 dc d8 65 78 80 80 74 65 72 6e 61 6c be 2c 20 69 2e 65 2e 20 0a 73 65 70 61 72 61 74 65 6c 79 20 ┆▄пexђђternalЙ, i.e. separately ┆
0x1de60…1de80 63 6f 6d 70 69 6c 65 64 20 28 63 66 2e 20 63 68 61 70 74 65 72 20 38 29 2c 20 62 79 20 74 68 65 ┆compiled (cf. chapter 8), by the┆
0x1de80…1dea0 20 6b 65 80 79 77 6f 72 64 20 45 58 80 54 45 52 4e 41 4c 2e 20 41 6e 20 0a 65 78 74 65 72 6e 61 ┆ keђyword EXђTERNAL. An externa┆
0x1dea0…1dec0 6c 20 70 72 6f 67 72 61 6d 20 6f 72 20 72 6f 75 74 69 6e 65 20 6d 61 79 20 70 6f 73 73 69 62 6c ┆l program or routine may possibl┆
0x1dec0…1dee0 79 20 62 65 20 77 72 69 74 74 65 6e 20 69 6e 20 61 6e 6f 74 68 65 72 20 70 72 6f 80 0a 67 72 61 ┆y be written in another proђ gra┆
0x1dee0…1df00 6d 6d 69 6e 67 20 6c 61 6e 80 67 75 61 67 65 20 61 6e 64 20 63 6f 6d 70 69 6c 65 64 20 62 79 20 ┆mming lanђguage and compiled by ┆
0x1df00…1df20 61 20 63 6f 6d 70 69 6c 65 72 20 66 6f 72 20 74 68 61 74 20 6c 61 6e 67 75 61 67 65 20 70 72 6f ┆a compiler for that language pro┆
0x1df20…1df40 80 0a 76 69 64 65 64 20 69 74 20 69 73 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 66 6f 72 6d 61 74 ┆ђ vided it is object code format┆
0x1df40…1df60 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 74 68 65 20 52 65 61 6c 2d 54 69 6d 65 20 50 ┆ compatible with the Real-Time P┆
0x1df60…1df80 61 73 63 61 6c 20 0a 63 6f 6d 70 69 6c 65 72 20 69 6e 20 71 75 65 73 74 69 6f 6e 2e 0d 0a 0d 0a ┆ascal compiler in question. ┆
0x1df80…1dfa0 45 78 74 65 72 6e 61 6c 20 73 75 62 2d 70 72 6f 67 72 61 6d 20 6f 62 6a 65 63 74 73 20 6d 61 79 ┆External sub-program objects may┆
0x1dfa0…1dfc0 20 61 6c 74 65 72 6e 61 74 69 76 65 6c 79 20 62 65 20 64 65 63 6c 61 72 65 64 20 61 73 20 76 61 ┆ alternatively be declared as va┆
0x1dfc0…1dfe0 72 69 80 0a 61 62 6c 65 73 20 6f 66 20 61 6e 20 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 6d ┆riђ ables of an external program┆
0x1dfe0…1e000 20 74 79 70 65 0d 0a 16 6d 61 20 65 78 74 70 72 6f 67 0d 0a 54 68 65 20 75 73 65 20 6f 66 20 bf ┆ type ma extprog The use of ┐┆
0x1e000…1e020 dc d8 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 6d 20 74 79 70 65 be 73 20 69 73 20 61 20 73 ┆▄пexternal program typeЙs is a s┆
0x1e020…1e040 69 6d 70 6c 65 20 77 61 79 20 6f 66 20 64 65 66 69 80 6e 69 6e 67 20 6d 6f 72 65 20 0a 6f 62 6a ┆imple way of defiђning more obj┆
0x1e040…1e060 65 63 74 73 20 6f 76 65 72 20 74 68 65 20 73 61 6d 65 20 73 75 62 2d 70 72 6f 67 72 61 6d 20 68 ┆ects over the same sub-program h┆
0x1e060…1e080 65 61 64 69 6e 67 2e 20 45 69 74 68 65 72 20 61 73 20 76 61 72 69 80 61 62 6c 65 73 20 6f 66 20 ┆eading. Either as variђables of ┆
0x1e080…1e0a0 74 68 65 20 0a 73 61 6d 65 20 74 79 70 65 2c 20 6f 72 20 61 73 20 63 6f 6d 70 6f 6e 65 6e 74 20 ┆the same type, or as component ┆
0x1e0a0…1e0c0 74 79 70 65 20 6f 66 20 61 6e 20 61 72 72 61 79 2c 20 77 68 69 63 68 20 6d 61 79 20 62 65 20 64 ┆type of an array, which may be d┆
0x1e0c0…1e0e0 79 6e 61 6d 69 80 0a 63 61 6c 6c 79 20 73 69 7a 65 64 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 ┆ynamiђ cally sized depending on ┆
0x1e0e0…1e100 61 20 70 72 6f 67 72 61 6d 20 70 61 72 61 6d 65 80 74 65 72 20 28 73 79 73 74 65 6d 20 63 6f 6e ┆a program parameђter (system con┆
0x1e100…1e120 66 69 67 75 72 61 74 69 6f 6e 29 2e 20 0a 4f 72 20 61 20 74 6f 74 61 6c 6c 79 20 64 79 6e 61 6d ┆figuration). Or a totally dynam┆
0x1e120…1e140 69 63 20 73 74 72 75 63 74 75 72 65 2c 20 62 79 20 6d 65 61 6e 73 20 6f 66 20 6f 62 6a 65 63 74 ┆ic structure, by means of object┆
0x1e140…1e160 73 20 6f 6e 20 74 68 65 20 68 65 61 70 2e 0d 0a 0d 0a a1 4e 6f 74 65 3a e1 20 74 68 65 20 64 65 ┆s on the heap. АNote:р the de┆
0x1e160…1e180 63 6c 61 72 61 74 69 6f 6e 0d 0a 20 20 20 50 52 4f 47 52 41 4d 20 70 72 6f 67 28 56 41 52 20 6d ┆claration PROGRAM prog(VAR m┆
0x1e180…1e1a0 62 78 3a 20 6d 61 69 6c 62 6f 78 29 3b 20 45 58 54 45 52 4e 41 4c 0d 0a 69 73 20 65 71 75 69 76 ┆bx: mailbox); EXTERNAL is equiv┆
0x1e1a0…1e1c0 61 6c 65 6e 74 20 74 6f 0d 0a 20 20 20 70 72 6f 67 3a 20 45 58 54 45 52 4e 41 4c 20 50 52 4f 47 ┆alent to prog: EXTERNAL PROG┆
0x1e1c0…1e1e0 52 41 4d 20 28 56 41 52 20 6d 62 78 3a 20 6d 61 69 6c 62 6f 78 29 0d 0a 0d 0a 0e 0a a1 45 78 61 ┆RAM (VAR mbx: mailbox) АExa┆
0x1e1e0…1e200 6d 70 6c 65 3a 0d 0a 20 54 59 50 45 0d 0a 20 20 20 63 68 69 6c 64 5f 74 79 70 65 3d 20 45 58 54 ┆mple: TYPE child_type= EXT┆
0x1e200…1e220 45 52 4e 41 4c 20 50 52 4f 47 52 41 4d 20 28 56 41 52 20 6d 61 69 6e 5f 6d 62 78 3a 20 6d 61 69 ┆ERNAL PROGRAM (VAR main_mbx: mai┆
0x1e220…1e240 6c 62 6f 78 29 3b 0d 0a 20 20 20 20 20 2e 2e 2e 0d 0a 20 56 41 52 0d 0a 20 20 20 63 68 69 6c 64 ┆lbox); ... VAR child┆
0x1e240…1e260 72 65 6e 3a 20 41 52 52 41 59 20 28 31 2e 2e 6d 61 78 5f 63 68 69 6c 64 72 65 6e 29 20 4f 46 0d ┆ren: ARRAY (1..max_children) OF ┆
0x1e260…1e280 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 45 43 4f 52 44 0d 0a 09 09 20 20 65 78 74 5f 6e ┆ RECORD ext_n┆
0x1e280…1e2a0 61 6d 65 2c 20 69 6e 63 5f 6e 61 6d 65 3a 20 73 74 72 69 6e 67 28 31 32 29 3b 0d 0a 09 09 20 20 ┆ame, inc_name: string(12); ┆
0x1e2a0…1e2c0 63 68 69 6c 64 3a 20 63 68 69 6c 64 5f 74 79 70 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆child: child_type; ┆
0x1e2c0…1e2e0 20 20 20 20 63 68 69 6c 64 5f 68 61 6e 64 6c 65 3a 20 70 72 6f 63 65 73 73 3b 0d 0a 20 20 20 20 ┆ child_handle: process; ┆
0x1e2e0…1e300 20 20 20 20 20 20 20 20 20 20 20 20 2e 2e 2e 0d 0a 0d 0a 20 57 49 54 48 20 63 68 69 6c 64 72 65 ┆ ... WITH childre┆
0x1e300…1e320 6e 28 6e 65 78 74 29 20 44 4f 0d 0a 20 49 46 20 6c 69 6e 6b 28 65 78 74 5f 6e 61 6d 65 2c 20 63 ┆n(next) DO IF link(ext_name, c┆
0x1e320…1e340 68 69 6c 64 29 3d 6c 69 6e 6b 5f 6f 6b 20 54 48 45 4e 0d 0a 20 20 20 49 46 20 63 72 65 61 74 65 ┆hild)=link_ok THEN IF create┆
0x1e340…1e360 28 69 6e 63 5f 6e 61 6d 65 2c 20 63 68 69 6c 64 28 63 6f 6d 6d 6f 6e 5f 6d 62 78 29 2c 20 63 68 ┆(inc_name, child(common_mbx), ch┆
0x1e360…1e380 69 6c 64 5f 68 61 6e 64 6c 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 30 2c 20 73 74 64 ┆ild_handle, 0, std┆
0x1e380…1e3a0 70 72 69 6f 72 69 74 79 29 3d 63 72 65 61 74 65 5f 6f 6b 20 54 48 45 4e 0d 0a 20 20 20 20 2e 2e ┆priority)=create_ok THEN ..┆
0x1e3a0…1e3c0 2e 2e 0d 0a 0d 0a 0d 0a 0f 0a 44 75 65 20 74 6f 20 74 68 65 20 64 69 66 66 65 72 65 6e 63 65 73 ┆.. Due to the differences┆
0x1e3c0…1e3e0 20 62 65 74 77 65 65 6e 20 72 6f 75 74 69 6e 65 73 20 61 6e 64 20 70 72 6f 67 72 61 6d 73 20 74 ┆ between routines and programs t┆
0x1e3e0…1e400 68 65 20 6c 69 6e 80 6b 69 6e 67 20 6f 66 20 0a 61 20 70 72 6f 67 72 61 6d 20 74 6f 20 61 20 73 ┆he linђking of a program to a s┆
0x1e400…1e420 65 70 61 72 61 74 65 6c 79 20 63 6f 6d 70 69 6c 65 64 20 62 6c 6f 63 6b 20 69 73 20 73 6f 6d 65 ┆eparately compiled block is some┆
0x1e420…1e440 80 77 68 61 74 20 64 69 66 66 65 72 65 6e 74 20 69 6e 20 74 68 65 20 0a 74 77 6f 20 63 61 73 65 ┆ђwhat different in the two case┆
0x1e440…1e460 73 2e 0d 0a 20 0d 0a 44 75 72 69 6e 67 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 ┆s. During the execution of a┆
0x1e460…1e480 6e 20 69 6e 63 61 72 6e 61 74 69 6f 6e 20 6f 66 20 61 20 70 72 6f 67 72 61 6d 20 63 6f 6e 74 61 ┆n incarnation of a program conta┆
0x1e480…1e4a0 69 80 6e 69 6e 67 20 61 6e 20 0a 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 6d 20 64 65 63 6c ┆iђning an external program decl┆
0x1e4a0…1e4c0 61 72 61 74 69 6f 6e 2c 20 74 68 65 20 6c 69 6e 6b 69 6e 67 20 62 65 74 77 65 65 6e 20 74 68 65 ┆aration, the linking between the┆
0x1e4c0…1e4e0 20 72 65 73 75 6c 74 80 69 6e 67 20 73 75 62 2d 0a 70 72 6f 67 72 61 6d 20 6f 62 6a 65 63 74 20 ┆ resultђing sub- program object ┆
0x1e4e0…1e500 61 6e 64 20 74 68 65 20 62 6c 6f 63 6b 20 6f 66 20 61 20 73 65 70 61 72 61 80 74 65 6c 79 20 63 ┆and the block of a separaђtely c┆
0x1e500…1e520 6f 6d 70 69 6c 65 64 20 70 72 6f 67 72 61 6d 20 69 73 20 0a 65 73 74 61 62 6c 69 73 68 65 64 20 ┆ompiled program is established ┆
0x1e520…1e540 61 73 20 61 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 65 76 61 80 6c 75 61 74 69 6f 6e 20 6f ┆as a result of the evaђluation o┆
0x1e540…1e560 66 20 61 6e 20 65 78 70 6c 69 80 63 69 74 20 6c 69 6e 6b 20 63 61 6c 6c 2c 20 63 66 2e 20 0a 63 ┆f an expliђcit link call, cf. c┆
0x1e560…1e580 68 61 70 74 65 72 20 39 2e 0d 0a 0d 0a 54 68 65 20 61 73 73 6f 63 69 61 74 69 6f 6e 20 62 65 74 ┆hapter 9. The association bet┆
0x1e580…1e5a0 77 65 65 6e 20 74 68 65 20 62 6c 6f 63 6b 20 6f 66 20 61 20 73 65 70 61 72 61 74 65 6c 79 20 63 ┆ween the block of a separately c┆
0x1e5a0…1e5c0 6f 6d 70 69 6c 65 64 20 72 6f 75 80 74 69 6e 65 20 0a 61 6e 64 20 74 68 65 20 66 75 6e 63 74 69 ┆ompiled rouђtine and the functi┆
0x1e5c0…1e5e0 6f 6e 20 6f 72 20 70 72 6f 63 65 64 75 72 65 20 6e 61 6d 65 20 73 70 65 63 69 66 69 65 64 20 69 ┆on or procedure name specified i┆
0x1e5e0…1e600 6e 20 61 6e 20 65 78 74 65 72 6e 61 6c 20 72 6f 75 74 69 6e 65 20 0a 64 65 63 6c 61 72 61 74 69 ┆n an external routine declarati┆
0x1e600…1e620 6f 6e 2c 20 69 2e 65 2e 20 74 68 65 20 6c 69 6e 6b 69 6e 67 20 6f 66 20 74 68 65 20 72 6f 75 74 ┆on, i.e. the linking of the rout┆
0x1e620…1e640 69 80 6e 65 20 62 6c 6f 63 6b 20 74 6f 20 74 68 65 20 70 72 6f 67 72 61 6d 20 69 6e 20 0a 77 68 ┆iђne block to the program in wh┆
0x1e640…1e660 69 63 68 20 74 68 65 20 65 78 74 65 72 6e 61 6c 20 64 65 63 6c 61 72 61 80 74 69 6f 6e 20 6f 63 ┆ich the external declaraђtion oc┆
0x1e660…1e680 63 75 72 73 2c 20 6d 75 73 74 20 62 65 20 65 73 74 61 62 80 6c 69 73 68 65 64 20 62 79 20 61 20 ┆curs, must be estabђlished by a ┆
0x1e680…1e6a0 6c 69 6e 6b 61 80 0a 67 65 20 65 64 69 74 6f 72 20 62 65 66 6f 72 65 20 61 6e 20 69 6e 63 61 72 ┆linkaђ ge editor before an incar┆
0x1e6a0…1e6c0 6e 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 6d 20 63 61 6e 20 62 65 20 63 72 65 ┆nation of the program can be cre┆
0x1e6c0…1e6e0 61 74 65 64 2e 20 54 68 69 73 20 0a 63 61 6e 20 62 65 20 64 6f 6e 65 20 64 75 72 69 6e 67 20 61 ┆ated. This can be done during a┆
0x1e6e0…1e700 20 73 65 70 61 72 61 74 65 20 6c 69 6e 6b 2d 70 68 61 73 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 ┆ separate link-phase following c┆
0x1e700…1e720 6f 6d 70 69 6c 61 74 69 6f 6e 2c 20 6f 72 20 69 74 20 0a 63 61 6e 20 62 65 20 64 6f 6e 65 20 61 ┆ompilation, or it can be done a┆
0x1e720…1e740 73 20 61 20 62 79 2d 65 66 66 65 63 74 20 6f 66 20 70 72 6f 80 67 72 61 6d 20 6c 69 6e 6b 69 6e ┆s a by-effect of proђgram linkin┆
0x1e740…1e760 67 20 61 74 20 72 75 6e 2d 74 69 80 6d 65 2e 0d 0a 0d 0a 8c 8a d8 0a 54 68 65 20 61 6d 6f 75 6e ┆g at run-tiђme. їіп The amoun┆
0x1e760…1e780 74 20 61 6e 64 20 6b 69 6e 64 20 6f 66 20 63 68 65 63 6b 69 6e 67 20 6f 66 20 74 68 65 20 61 67 ┆t and kind of checking of the ag┆
0x1e780…1e7a0 72 65 65 6d 65 6e 74 20 62 65 74 77 65 65 6e 20 74 68 65 20 27 66 6f 72 80 0a 6d 61 6c 20 70 61 ┆reement between the 'forђ mal pa┆
0x1e7a0…1e7c0 72 61 6d 65 74 65 72 73 27 20 6f 66 20 61 6e 20 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 6d ┆rameters' of an external program┆
0x1e7c0…1e7e0 20 6f 72 20 72 6f 75 74 69 6e 65 20 64 65 63 6c 61 80 72 61 80 74 69 6f 6e 20 61 6e 64 20 74 68 ┆ or routine declaђraђtion and th┆
0x1e7e0…1e800 65 20 0a 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 ┆e corresponding formal paramete┆
0x1e800…1e820 72 20 73 70 65 63 69 66 69 80 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 73 65 70 61 72 61 74 65 ┆r specifiђcation of the separate┆
0x1e820…1e840 6c 79 20 63 6f 6d 80 0a 70 69 6c 65 64 20 62 6c 6f 63 6b 2c 20 77 68 69 63 68 20 69 73 20 70 65 ┆ly comђ piled block, which is pe┆
0x1e840…1e860 72 66 6f 72 6d 65 64 20 64 75 72 69 6e 67 20 6c 69 6e 6b 69 6e 67 2c 20 69 73 20 69 6d 70 6c 65 ┆rformed during linking, is imple┆
0x1e860…1e880 6d 65 6e 74 61 74 69 6f 6e 20 64 65 80 0a 70 65 6e 64 65 6e 74 2e 20 54 68 69 73 20 69 73 20 74 ┆mentation deђ pendent. This is t┆
0x1e880…1e8a0 72 75 65 20 66 6f 72 20 62 6f 74 68 20 63 61 73 65 73 20 6f 66 20 6c 69 6e 6b 69 6e 67 2e 20 49 ┆rue for both cases of linking. I┆
0x1e8a0…1e8c0 6e 20 6f 72 64 65 72 20 74 6f 20 66 61 63 69 6c 69 74 61 74 65 20 0a 6c 69 6e 6b 69 6e 67 20 77 ┆n order to facilitate linking w┆
0x1e8c0…1e8e0 69 74 68 20 70 72 6f 80 67 72 61 6d 73 20 77 72 69 74 74 65 6e 20 69 6e 20 6f 74 68 65 72 20 6c ┆ith proђgrams written in other l┆
0x1e8e0…1e900 61 6e 80 67 75 61 67 65 73 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 61 6e 64 20 0a 72 65 73 ┆anђguages the parameter and res┆
0x1e900…1e920 75 6c 74 20 70 61 73 73 69 6e 67 20 66 6f 72 6d 61 74 73 20 75 73 65 64 20 62 79 20 61 6e 20 69 ┆ult passing formats used by an i┆
0x1e920…1e940 6d 80 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 61 70 70 72 6f 70 72 69 61 ┆mђplementation must be appropria┆
0x1e940…1e960 80 80 0a 74 65 6c 79 20 63 68 6f 73 65 6e 20 61 6e 64 20 74 68 6f 72 6f 75 67 68 6c 79 20 64 6f ┆ђђ tely chosen and thoroughly do┆
0x1e960…1e980 63 75 80 6d 65 6e 74 65 64 2e 0d 0a 0d 0a 0e 0a a1 45 78 61 6d 70 6c 65 20 28 6f 66 20 6d 75 74 ┆cuђmented. АExample (of mut┆
0x1e980…1e9a0 75 61 6c 6c 79 20 72 65 63 75 72 73 69 76 65 20 72 6f 75 74 69 6e 65 73 29 3a 0d 0a 0d 0a 50 52 ┆ually recursive routines): PR┆
0x1e9a0…1e9c0 4f 43 45 44 55 52 45 20 66 69 72 73 74 28 70 61 72 31 2c 20 70 61 72 32 3a 20 74 79 70 65 31 29 ┆OCEDURE first(par1, par2: type1)┆
0x1e9c0…1e9e0 3b 20 46 4f 52 57 41 52 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 73 65 63 6f 6e 64 28 70 ┆; FORWARD; PROCEDURE second(p┆
0x1e9e0…1ea00 61 72 3a 20 70 61 72 5f 74 79 70 65 29 3b 0d 0a 20 20 2e 2e 2e 0d 0a 42 45 47 49 4e 0d 0a 20 20 ┆ar: par_type); ... BEGIN ┆
0x1ea00…1ea20 2e 2e 2e 0d 0a 20 20 66 69 72 73 74 28 61 63 74 31 2c 20 63 74 32 29 3b 0d 0a 20 20 2e 2e 2e 0d ┆... first(act1, ct2); ... ┆
0x1ea20…1ea40 0a 45 4e 44 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 66 69 72 73 74 28 70 61 72 31 2c 20 70 ┆ END; PROCEDURE first(par1, p┆
0x1ea40…1ea60 61 72 32 3a 20 74 79 70 65 31 29 3b 0d 0a 20 20 2e 2e 2e 0d 0a 42 45 47 49 4e 0d 0a 20 20 2e 2e ┆ar2: type1); ... BEGIN ..┆
0x1ea60…1ea80 2e 0d 0a 20 20 73 65 63 6f 6e 64 28 61 63 74 29 3b 0d 0a 20 20 2e 2e 2e 0d 0a 45 4e 44 0d 0a 0f ┆. second(act); ... END ┆
0x1ea80…1eaa0 0a 16 73 63 0d 0a 54 68 65 20 41 63 74 69 6f 6e 20 50 61 72 74 0d 0a 45 78 65 63 75 74 69 6f 6e ┆ sc The Action Part Execution┆
0x1eaa0…1eac0 20 6f 66 20 74 68 65 20 61 63 74 69 6f 6e 73 20 6f 66 20 61 20 62 6c 6f 63 6b 20 6d 65 61 6e 73 ┆ of the actions of a block means┆
0x1eac0…1eae0 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 69 74 73 20 63 6f 6d 80 70 6f 75 6e 64 20 0a 73 74 61 ┆ execution of its comђpound sta┆
0x1eae0…1eb00 74 65 6d 65 6e 74 2e 20 54 68 69 73 20 69 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 63 68 61 ┆tement. This is described in cha┆
0x1eb00…1eb20 70 74 65 72 20 35 2e 20 45 78 65 63 75 80 80 74 69 6f 6e 20 69 73 20 a0 74 65 72 6d 69 6e 61 74 ┆pter 5. Execuђђtion is аterminat┆
0x1eb20…1eb40 65 64 e0 20 0a 77 68 65 6e 20 74 68 65 20 63 6f 6d 70 6f 75 6e 64 20 73 74 61 74 65 6d 65 6e 74 ┆edЯ when the compound statement┆
0x1eb40…1eb60 20 69 73 20 65 78 68 61 75 73 74 65 64 2c 20 77 68 65 6e 20 61 6e 20 65 78 69 74 20 73 74 61 74 ┆ is exhausted, when an exit stat┆
0x1eb60…1eb80 65 6d 65 6e 74 20 69 73 20 0a 65 78 65 63 75 74 65 64 2c 20 6f 72 20 77 68 65 6e 20 61 20 66 61 ┆ement is executed, or when a fa┆
0x1eb80…1eba0 75 6c 74 20 6f 63 63 75 72 73 2e 20 57 68 65 6e 20 61 20 70 72 6f 80 63 65 73 73 20 74 65 72 6d ┆ult occurs. When a proђcess term┆
0x1eba0…1ebc0 69 6e 61 74 65 73 20 69 74 20 67 6f 65 73 20 0a 69 6e 74 6f 20 61 20 70 61 73 73 69 76 65 20 73 ┆inates it goes into a passive s┆
0x1ebc0…1ebe0 74 61 74 65 20 77 68 65 72 65 20 69 74 20 72 65 6d 61 69 6e 73 20 75 6e 80 74 69 6c 20 72 65 6d ┆tate where it remains unђtil rem┆
0x1ebe0…1ec00 6f 76 65 64 20 62 79 20 69 74 73 20 70 61 72 65 6e 74 2e 20 0a 57 68 65 6e 20 61 20 70 72 6f 63 ┆oved by its parent. When a proc┆
0x1ec00…1ec20 65 64 75 72 65 20 61 63 80 74 69 76 61 74 69 6f 6e 20 74 65 72 6d 69 6e 61 80 74 65 73 20 69 74 ┆edure acђtivation terminaђtes it┆
0x1ec20…1ec40 73 20 61 63 74 69 76 61 74 69 6f 6e 20 72 65 63 6f 72 64 20 69 73 20 64 65 61 6c 80 0a 6c 6f 63 ┆s activation record is dealђ loc┆
0x1ec40…1ec60 61 74 65 64 20 61 6e 64 20 61 20 72 65 74 75 72 6e 20 69 73 20 6d 61 64 65 20 74 6f 20 74 68 65 ┆ated and a return is made to the┆
0x1ec60…1ec80 20 63 61 6c 6c 65 72 2c 20 69 2e 65 2e 20 74 68 65 20 70 72 6f 63 65 64 75 72 65 20 63 61 6c 6c ┆ caller, i.e. the procedure call┆
0x1ec80…1eca0 20 69 73 20 0a 63 6f 6d 70 6c 65 74 65 64 2e 20 57 68 65 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 ┆ is completed. When a function ┆
0x1eca0…1ecc0 61 63 74 69 76 61 74 69 6f 6e 20 74 65 72 6d 69 6e 61 74 65 73 20 69 74 73 20 61 63 74 69 76 61 ┆activation terminates its activa┆
0x1ecc0…1ece0 80 74 69 6f 6e 20 72 65 63 6f 72 64 20 0a 69 73 20 64 65 61 6c 6c 6f 63 61 74 65 64 20 61 6e 64 ┆ђtion record is deallocated and┆
0x1ece0…1ed00 20 74 68 65 20 66 69 6e 61 6c 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 69 6d 70 6c 69 80 63 69 ┆ the final value of the impliђci┆
0x1ed00…1ed20 74 20 72 65 73 75 6c 74 20 6f 62 6a 65 63 74 20 69 73 20 74 68 65 20 0a 76 61 6c 75 65 20 6f 66 ┆t result object is the value of┆
0x1ed20…1ed40 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 77 68 6f 73 65 20 65 76 61 6c 75 61 74 ┆ the function call whose evaluat┆
0x1ed40…1ed60 69 6f 6e 20 63 61 75 73 65 64 20 74 68 65 20 61 63 74 69 76 61 74 69 6f 6e 2e 0d 0a 16 73 61 0d ┆ion caused the activation. sa ┆
0x1ed60…1ed80 0a 46 41 55 4c 54 20 48 41 4e 44 4c 49 4e 47 0d 0a 41 20 6e 75 6d 62 65 72 20 6f 66 20 76 69 6f ┆ FAULT HANDLING A number of vio┆
0x1ed80…1eda0 6c 61 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 72 75 6c 65 73 20 6f 66 20 52 65 61 6c 2d 54 69 6d ┆lations of the rules of Real-Tim┆
0x1eda0…1edc0 65 20 50 61 73 63 61 6c 20 61 72 65 20 72 65 80 66 65 72 72 65 64 20 0a 74 6f 20 69 6e 20 74 68 ┆e Pascal are reђferred to in th┆
0x1edc0…1ede0 69 73 20 64 6f 63 75 6d 65 6e 74 20 61 73 20 66 61 75 6c 74 73 2e 20 46 61 75 6c 74 73 20 61 72 ┆is document as faults. Faults ar┆
0x1ede0…1ee00 65 20 65 72 72 6f 72 73 20 77 68 69 63 68 20 63 61 6e 6e 6f 74 2c 20 61 74 20 6c 65 61 73 74 20 ┆e errors which cannot, at least ┆
0x1ee00…1ee20 0a 6e 6f 74 20 69 6e 20 61 6c 6c 20 63 61 73 65 73 2c 20 62 65 20 64 65 74 65 63 74 65 64 20 61 ┆ not in all cases, be detected a┆
0x1ee20…1ee40 74 20 63 6f 6d 80 70 69 6c 65 2d 74 69 6d 65 2e 20 46 61 75 6c 74 73 20 77 68 69 63 68 20 61 72 ┆t comђpile-time. Faults which ar┆
0x1ee40…1ee60 65 20 64 65 74 65 63 80 0a 74 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 63 61 75 ┆e detecђ ted at compile-time cau┆
0x1ee60…1ee80 73 65 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 74 6f 20 72 65 6a 65 63 74 20 74 68 65 20 73 6f ┆se the compiler to reject the so┆
0x1ee80…1eea0 75 72 63 65 20 70 72 6f 67 72 61 6d 2e 20 0a 57 68 65 6e 20 61 20 66 61 75 6c 74 20 6f 63 80 63 ┆urce program. When a fault ocђc┆
0x1eea0…1eec0 75 72 73 20 61 74 20 72 75 6e 2d 74 69 6d 65 2c 20 64 75 80 72 69 6e 67 20 74 68 65 20 65 78 65 ┆urs at run-time, duђring the exe┆
0x1eec0…1eee0 63 75 74 69 6f 6e 20 6f 66 20 61 6e 20 69 6e 63 61 72 6e 61 80 0a 74 69 6f 6e 20 6f 66 20 61 20 ┆cution of an incarnaђ tion of a ┆
0x1eee0…1ef00 70 72 6f 67 72 61 6d 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 68 61 70 70 65 6e 73 3a 0d ┆program, the following happens: ┆
0x1ef00…1ef20 0a 0d 0a 31 2e 20 84 54 68 65 20 a0 65 78 63 65 70 74 69 6f 6e 20 70 72 6f 63 65 64 75 72 65 e0 ┆ 1. ёThe аexception procedureЯ┆
0x1ef20…1ef40 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 6d 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 61 ┆ of the program is called with a┆
0x1ef40…1ef60 20 66 61 75 6c 74 20 63 6f 80 0a 19 83 80 80 64 65 20 70 61 72 61 6d 65 74 65 72 20 69 6e 64 69 ┆ fault coђ Ѓђђde parameter indi┆
0x1ef60…1ef80 63 61 74 69 6e 67 20 74 68 65 20 6b 69 6e 64 20 6f 66 20 66 61 75 6c 74 20 77 68 69 63 68 20 6f ┆cating the kind of fault which o┆
0x1ef80…1efa0 63 80 63 75 72 72 65 64 2e 0d 0a 32 2e 20 84 57 68 65 6e 20 28 69 66 29 20 74 68 65 20 65 78 63 ┆cђcurred. 2. ёWhen (if) the exc┆
0x1efa0…1efc0 65 70 74 69 6f 6e 20 70 72 6f 63 65 64 75 72 65 20 72 65 74 75 72 6e 73 20 74 68 65 20 70 72 6f ┆eption procedure returns the pro┆
0x1efc0…1efe0 63 65 73 73 20 74 65 72 6d 69 80 6e 61 74 65 73 20 0a 19 83 80 80 61 6e 64 20 67 6f 65 73 20 69 ┆cess termiђnates Ѓђђand goes i┆
0x1efe0…1f000 6e 74 6f 20 61 20 70 61 73 73 69 76 65 20 73 74 61 74 65 20 61 73 20 69 66 20 65 78 65 63 75 74 ┆nto a passive state as if execut┆
0x1f000…1f020 69 6f 6e 20 6f 66 20 69 74 73 20 61 63 80 74 69 6f 6e 20 70 61 72 74 20 0a 19 83 80 80 68 61 64 ┆ion of its acђtion part Ѓђђhad┆
0x1f020…1f040 20 62 65 65 6e 20 63 6f 6d 70 6c 65 74 65 64 2e 0d 0a 0d 0a 46 61 75 6c 74 20 63 6f 64 65 73 20 ┆ been completed. Fault codes ┆
0x1f040…1f060 61 72 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 64 65 70 65 6e 64 65 6e 74 20 61 6e 64 ┆are implementation dependent and┆
0x1f060…1f080 20 6d 75 73 74 20 62 65 20 64 6f 63 75 6d 65 6e 74 65 64 20 66 6f 72 20 0a 65 61 63 68 20 69 6d ┆ must be documented for each im┆
0x1f080…1f0a0 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2e 0d 0a 16 73 62 0d 0a 44 65 66 61 75 6c 74 20 45 78 63 65 ┆plementation. sb Default Exce┆
0x1f0a0…1f0c0 70 74 69 6f 6e 20 50 72 6f 63 65 64 75 72 65 0d 0a 45 76 65 72 79 20 69 6d 70 6c 65 6d 65 6e 74 ┆ption Procedure Every implement┆
0x1f0c0…1f0e0 61 74 69 6f 6e 20 6d 75 73 74 20 69 6e 63 6c 75 64 65 20 61 20 64 65 66 61 75 6c 74 20 65 78 63 ┆ation must include a default exc┆
0x1f0e0…1f100 65 70 74 69 6f 6e 20 70 72 6f 63 65 80 64 75 72 65 20 0a 77 68 69 63 68 20 6f 75 74 70 75 74 73 ┆eption proceђdure which outputs┆
0x1f100…1f120 20 61 20 73 6e 61 70 73 68 6f 74 20 6f 66 20 74 68 65 20 73 74 61 63 6b 20 6f 66 20 74 68 65 20 ┆ a snapshot of the stack of the ┆
0x1f120…1f140 63 61 6c 6c 69 6e 67 20 70 72 6f 63 65 73 73 20 61 6e 64 20 74 68 65 20 0a 66 61 75 6c 74 20 63 ┆calling process and the fault c┆
0x1f140…1f160 6f 64 65 2e 0d 0a 0d 0a 54 68 65 20 64 65 66 61 75 6c 74 20 65 78 63 65 70 74 69 6f 6e 20 70 72 ┆ode. The default exception pr┆
0x1f160…1f180 6f 63 65 64 75 72 65 20 6d 61 79 20 61 6c 73 6f 20 62 65 20 63 61 6c 6c 65 64 20 74 6f 20 70 72 ┆ocedure may also be called to pr┆
0x1f180…1f1a0 6f 76 69 80 64 65 20 74 72 61 63 65 20 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 ┆oviђde trace information about ┆
0x1f1a0…1f1c0 61 20 70 72 6f 63 65 73 73 2e 20 53 75 63 68 20 61 6e 20 65 78 70 6c 69 63 69 74 20 63 61 6c 6c ┆a process. Such an explicit call┆
0x1f1c0…1f1e0 20 64 6f 65 73 20 6e 6f 74 20 63 61 75 73 65 20 74 68 65 20 0a 70 72 6f 63 65 73 73 20 74 6f 20 ┆ does not cause the process to ┆
0x1f1e0…1f200 74 65 72 6d 69 6e 61 74 65 2e 20 54 68 65 20 68 65 61 64 69 6e 67 20 6f 66 20 74 68 65 20 64 65 ┆terminate. The heading of the de┆
0x1f200…1f220 66 61 75 6c 74 20 65 78 80 63 65 70 74 69 6f 6e 20 70 72 6f 63 65 64 75 72 65 20 0a 69 73 3a 0d ┆fault exђception procedure is: ┆
0x1f220…1f240 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 bf dc d8 74 72 61 63 65 be be 28 66 61 75 6c 74 ┆ PROCEDURE ┐▄п┐▄пtraceЙЙ(fault┆
0x1f240…1f260 3a 20 69 6e 74 65 67 65 72 29 0d 0a 16 73 62 0d 0a 50 72 6f 67 72 61 6d 6d 65 72 2d 64 65 66 69 ┆: integer) sb Programmer-defi┆
0x1f260…1f280 6e 65 64 20 45 78 63 65 70 74 69 6f 6e 20 50 72 6f 63 65 64 75 72 65 0d 0a 57 68 65 6e 20 61 20 ┆ned Exception Procedure When a ┆
0x1f280…1f2a0 70 72 6f 63 65 64 75 72 65 20 77 69 74 68 20 74 68 65 20 6e 61 6d 65 20 65 78 63 65 70 74 69 6f ┆procedure with the name exceptio┆
0x1f2a0…1f2c0 6e 20 61 6e 64 20 6f 6e 65 20 69 6e 74 65 67 65 72 2d 74 79 80 70 65 20 0a 70 61 72 61 6d 65 74 ┆n and one integer-tyђpe paramet┆
0x1f2c0…1f2e0 65 72 2c 20 69 2e 65 2e 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 bf dc d8 65 78 63 65 ┆er, i.e. PROCEDURE ┐▄п┐▄пexce┆
0x1f2e0…1f300 70 74 69 6f 6e be be 28 66 61 75 6c 74 3a 20 69 6e 74 65 67 65 72 29 0d 0a 0d 0a 69 73 20 64 65 ┆ptionЙЙ(fault: integer) is de┆
0x1f300…1f320 63 6c 61 72 65 64 20 28 69 6e 74 65 72 6e 61 6c 6c 79 29 20 61 74 20 74 68 65 20 6f 75 74 65 72 ┆clared (internally) at the outer┆
0x1f320…1f340 20 62 6c 6f 63 6b 20 6c 65 76 65 6c 20 6f 66 20 61 20 70 72 6f 80 67 72 61 6d 2c 20 74 68 69 73 ┆ block level of a proђgram, this┆
0x1f340…1f360 20 0a 70 72 6f 63 65 64 75 72 65 20 62 65 63 6f 6d 65 73 20 74 68 65 20 65 78 63 65 70 74 69 6f ┆ procedure becomes the exceptio┆
0x1f360…1f380 6e 20 70 72 6f 63 65 64 75 72 65 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 6d 2e 0d 0a 0d 0a a1 ┆n procedure of the program. А┆
0x1f380…1f3a0 4e 6f 74 65 3a 0d 0a 41 6e 20 6f 72 64 69 6e 61 72 79 20 63 61 6c 6c 20 6f 66 20 61 20 70 72 6f ┆Note: An ordinary call of a pro┆
0x1f3a0…1f3c0 67 72 61 6d 6d 65 72 2d 64 65 66 69 6e 65 64 20 65 78 63 65 70 74 69 6f 6e 20 70 72 6f 63 65 64 ┆grammer-defined exception proced┆
0x1f3c0…1f3e0 75 72 65 20 64 6f 65 73 20 0a 6e 6f 74 20 63 61 75 73 65 20 61 20 70 72 6f 63 65 73 73 20 74 6f ┆ure does not cause a process to┆
0x1f3e0…1f400 20 74 65 72 6d 69 6e 61 74 65 2e 0d 0a 0c 8e d0 0a 15 b3 20 20 20 0d 0a 20 20 20 0d 0a 16 73 61 ┆ terminate. јл │ sa┆
0x1f400…1f420 0d 0a 4e 41 4d 49 4e 47 20 45 4e 56 49 52 4f 4e 4d 45 4e 54 53 0d 0a 54 68 65 20 72 75 6c 65 73 ┆ NAMING ENVIRONMENTS The rules┆
0x1f420…1f440 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 74 68 69 73 20 63 68 61 70 74 65 72 20 73 65 72 76 65 ┆ described in this chapter serve┆
0x1f440…1f460 20 74 6f 20 64 65 66 69 6e 65 20 66 6f 72 20 65 76 65 80 72 79 20 70 6f 69 6e 74 20 69 6e 20 0a ┆ to define for eveђry point in ┆
0x1f460…1f480 61 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 73 6f 75 72 63 65 20 74 65 78 74 20 74 ┆a Real-Time Pascal source text t┆
0x1f480…1f4a0 68 65 20 a0 6e 61 6d 69 6e 67 20 65 6e 80 76 69 80 72 6f 6e 6d 65 6e 74 e0 20 77 68 69 63 68 20 ┆he аnaming enђviђronmentЯ which ┆
0x1f4a0…1f4c0 69 73 20 76 61 6c 69 64 20 0a 61 74 20 74 68 61 74 20 70 6f 69 6e 74 2e 20 41 20 6e 61 6d 69 6e ┆is valid at that point. A namin┆
0x1f4c0…1f4e0 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 69 73 20 61 20 73 65 74 20 6f 66 20 6e 61 6d 65 73 20 ┆g environment is a set of names ┆
0x1f4e0…1f500 61 6e 64 20 61 20 63 6f 72 80 0a 72 65 73 70 6f 6e 64 69 6e 67 20 73 65 74 20 6f 66 20 64 65 6e ┆and a corђ responding set of den┆
0x1f500…1f520 6f 74 61 62 6c 65 20 70 72 6f 80 67 72 61 6d 20 65 6e 74 69 74 69 65 73 2e 20 49 6e 20 6f 72 64 ┆otable proђgram entities. In ord┆
0x1f520…1f540 65 72 20 66 6f 72 20 61 20 6e 61 6d 65 20 74 6f 20 0a 62 65 20 61 20 6d 65 6d 62 65 72 20 6f 66 ┆er for a name to be a member of┆
0x1f540…1f560 20 61 20 6e 61 80 80 6d 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 69 74 20 6d 75 73 74 20 ┆ a naђђming environment it must ┆
0x1f560…1f580 68 61 76 65 20 61 6e 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 0a 6d 65 61 6e 69 6e 67 2c 20 69 2e ┆have an independent meaning, i.┆
0x1f580…1f5a0 65 2e 20 61 6e 20 6f 63 63 75 72 72 65 6e 63 65 20 6f 66 20 74 68 65 20 6e 61 6d 65 20 6d 75 73 ┆e. an occurrence of the name mus┆
0x1f5a0…1f5c0 74 20 64 65 6e 6f 74 65 20 61 20 a0 70 72 6f 67 72 61 6d 20 65 6e 74 69 74 79 e0 20 0a 69 72 80 ┆t denote a аprogram entityЯ irђ┆
0x1f5c0…1f5e0 72 65 80 73 70 65 63 74 69 76 65 20 6f 66 20 74 68 65 20 73 79 6e 74 61 63 74 69 63 20 63 6f 6e ┆reђspective of the syntactic con┆
0x1f5e0…1f600 74 65 78 74 2e 20 41 20 70 72 6f 67 72 61 6d 20 65 6e 74 69 74 79 20 69 73 20 61 20 76 61 80 6c ┆text. A program entity is a vaђl┆
0x1f600…1f620 75 65 2c 20 61 20 0a 74 79 70 65 2c 20 61 20 66 61 6d 69 6c 79 20 6f 66 20 63 6f 6e 80 66 6f 72 ┆ue, a type, a family of conђfor┆
0x1f620…1f640 6d 61 6e 74 20 74 79 70 65 73 2c 20 61 6e 20 6f 62 6a 65 63 74 20 28 77 68 69 63 68 20 6d 61 79 ┆mant types, an object (which may┆
0x1f640…1f660 20 69 6e 20 70 61 72 74 69 80 0a 63 75 6c 61 72 20 62 65 20 61 20 66 6f 72 6d 61 6c 20 70 61 72 ┆ in partiђ cular be a formal par┆
0x1f660…1f680 61 6d 65 74 65 72 29 2c 20 61 20 6c 61 62 65 6c 2c 20 61 20 72 6f 75 74 69 80 6e 65 2c 20 6f 72 ┆ameter), a label, a routiђne, or┆
0x1f680…1f6a0 20 61 20 28 73 75 62 2d 29 70 72 6f 67 72 61 6d 2e 20 0a 54 68 65 20 76 69 73 69 62 69 6c 69 74 ┆ a (sub-)program. The visibilit┆
0x1f6a0…1f6c0 79 20 72 75 6c 65 73 20 65 6e 73 75 72 65 20 74 68 61 74 20 74 68 65 20 65 6e 74 69 74 79 20 64 ┆y rules ensure that the entity d┆
0x1f6c0…1f6e0 65 6e 6f 74 65 64 20 62 79 20 61 20 6e 61 6d 65 20 69 73 20 61 6c 80 0a 77 61 79 73 20 75 6e 69 ┆enoted by a name is alђ ways uni┆
0x1f6e0…1f700 71 75 65 80 6c 79 20 64 65 74 65 72 80 6d 69 6e 65 64 2e 0d 0a 0d 0a 49 6e 20 6f 74 68 65 72 20 ┆queђly deterђmined. In other ┆
0x1f700…1f720 77 6f 72 64 73 2c 20 74 68 65 20 70 75 72 70 6f 73 65 20 6f 66 20 74 68 69 73 20 63 68 61 70 74 ┆words, the purpose of this chapt┆
0x1f720…1f740 65 72 20 69 73 20 74 6f 20 61 6e 73 77 65 72 20 74 68 65 20 71 75 65 73 74 69 6f 6e 3a 20 0a 57 ┆er is to answer the question: W┆
0x1f740…1f760 68 65 6e 20 61 20 6e 61 6d 65 20 6f 63 63 75 72 73 20 61 74 20 73 6f 6d 65 20 70 6f 69 6e 74 20 ┆hen a name occurs at some point ┆
0x1f760…1f780 69 6e 20 61 20 73 6f 75 72 63 65 20 74 65 78 74 2c 20 77 68 61 74 20 64 6f 65 73 20 69 74 20 0a ┆in a source text, what does it ┆
0x1f780…1f7a0 6d 65 61 6e 3f 20 61 6e 64 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 74 68 65 20 6d 65 61 ┆mean? and to ensure that the mea┆
0x1f7a0…1f7c0 6e 69 6e 67 20 69 73 20 75 6e 69 80 71 75 65 80 6c 79 20 64 65 66 69 6e 65 64 2e 0d 0a 0d 0a 54 ┆ning is uniђqueђly defined. T┆
0x1f7c0…1f7e0 68 65 20 75 6e 69 74 20 6f 66 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 66 6f 72 20 61 20 52 65 61 ┆he unit of compilation for a Rea┆
0x1f7e0…1f800 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 63 6f 6d 70 69 6c 65 72 20 69 73 20 62 61 73 69 80 63 ┆l-Time Pascal compiler is basiђc┆
0x1f800…1f820 61 6c 6c 79 20 61 20 0a 73 65 71 75 65 6e 63 65 20 6f 66 20 72 6f 75 74 69 6e 65 20 61 6e 64 2f ┆ally a sequence of routine and/┆
0x1f820…1f840 6f 72 20 70 72 6f 67 72 61 6d 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c 20 72 65 66 65 72 80 72 ┆or program declarations, referђr┆
0x1f840…1f860 65 64 20 74 6f 20 69 6e 20 74 68 65 20 0a 66 6f 6c 6c 6f 77 69 6e 67 20 61 73 20 61 20 a0 73 6f ┆ed to in the following as a аso┆
0x1f860…1f880 75 72 63 65 20 74 65 78 74 e0 2e 20 54 68 65 20 76 69 73 69 80 62 69 6c 69 80 74 79 20 72 75 6c ┆urce textЯ. The visiђbiliђty rul┆
0x1f880…1f8a0 65 73 20 66 6f 72 20 6e 61 6d 65 73 20 69 6e 74 72 6f 64 75 63 65 64 20 0a 69 6e 20 61 20 73 6f ┆es for names introduced in a so┆
0x1f8a0…1f8c0 75 72 63 65 20 74 65 78 74 20 61 72 65 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 73 65 63 74 69 ┆urce text are described in secti┆
0x1f8c0…1f8e0 6f 6e 20 38 2e 31 2c 20 61 6e 64 20 74 68 65 20 70 72 65 63 69 73 65 20 73 79 6e 74 61 63 80 0a ┆on 8.1, and the precise syntacђ ┆
0x1f8e0…1f900 74 69 63 20 66 6f 72 6d 20 6f 66 20 61 20 63 6f 6d 70 69 6c 61 80 74 69 6f 6e 20 75 6e 69 74 20 ┆tic form of a compilaђtion unit ┆
0x1f900…1f920 69 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 73 65 63 74 69 6f 6e 20 38 2e 32 20 61 6c 6f 6e ┆is described in section 8.2 alon┆
0x1f920…1f940 67 20 77 69 74 68 20 61 20 0a 64 69 73 63 75 73 80 73 69 6f 6e 20 6f 66 20 74 68 65 20 72 6f 6c ┆g with a discusђsion of the rol┆
0x1f940…1f960 65 20 70 6c 61 79 65 64 20 62 79 20 70 72 65 80 64 65 66 69 6e 65 64 20 6e 61 6d 65 73 20 61 6e ┆e played by preђdefined names an┆
0x1f960…1f980 64 20 6e 61 6d 65 73 20 69 6e 74 72 6f 80 64 75 80 0a 63 65 64 20 69 6e 20 73 6f 2d 63 61 6c 6c ┆d names introђduђ ced in so-call┆
0x1f980…1f9a0 65 64 20 63 6f 6e 74 65 78 74 73 2e 0d 0a 16 73 62 0d 0a 56 69 73 69 62 69 6c 69 74 79 20 52 75 ┆ed contexts. sb Visibility Ru┆
0x1f9a0…1f9c0 6c 65 73 0d 0a 16 73 6f 20 69 6e 74 72 6f 64 75 63 74 69 6f 6e 20 6f 66 20 6e 61 6d 65 0d 0a 16 ┆les so introduction of name ┆
0x1f9c0…1f9e0 73 6f 20 76 69 73 69 62 69 6c 69 74 79 0d 0a 16 73 6f 20 73 63 6f 70 65 0d 0a 8c 84 f0 0a 41 6c ┆so visibility so scope їё Al┆
0x1f9e0…1fa00 6c 20 6e 61 6d 65 73 20 77 68 69 63 68 20 6f 63 63 75 72 20 69 6e 20 61 20 73 6f 75 72 63 65 20 ┆l names which occur in a source ┆
0x1fa00…1fa20 74 65 78 74 20 6d 75 73 74 20 68 61 76 65 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 70 6f 69 6e 74 ┆text must have one or more point┆
0x1fa20…1fa40 73 20 0a 6f 66 20 a0 69 6e 74 72 6f 64 75 63 74 69 6f 6e e0 20 65 61 63 68 20 6f 66 20 77 68 69 ┆s of аintroductionЯ each of whi┆
0x1fa40…1fa60 63 68 20 64 65 66 69 6e 65 73 20 61 20 70 72 6f 67 72 61 6d 20 65 6e 80 74 69 80 74 79 20 77 68 ┆ch defines a program enђtiђty wh┆
0x1fa60…1fa80 69 63 68 20 63 61 6e 20 62 65 20 0a 64 65 6e 6f 74 65 64 20 62 79 20 74 68 65 20 6e 61 6d 65 20 ┆ich can be denoted by the name ┆
0x1fa80…1faa0 77 69 74 68 69 6e 20 73 6f 6d 65 20 72 65 67 69 6f 6e 20 6f 66 20 74 68 65 20 74 65 78 74 2c 20 ┆within some region of the text, ┆
0x1faa0…1fac0 63 61 6c 6c 65 64 20 74 68 65 20 a0 76 69 73 69 80 0a 19 80 80 c0 62 69 6c 69 74 79 20 72 65 67 ┆called the аvisiђ ђђ└bility reg┆
0x1fac0…1fae0 69 6f 6e e0 20 6f 66 20 74 68 65 20 65 6e 74 69 74 79 2e 20 54 68 65 20 70 6f 69 6e 74 20 6f 66 ┆ionЯ of the entity. The point of┆
0x1fae0…1fb00 20 69 6e 80 74 72 6f 64 75 63 74 69 6f 6e 20 6d 61 79 20 62 65 20 61 20 0a 64 65 63 6c 61 72 61 ┆ inђtroduction may be a declara┆
0x1fb00…1fb20 74 69 6f 6e 2c 20 61 20 66 6f 72 6d 61 6c 20 70 61 72 61 80 6d 65 80 74 65 72 20 73 70 65 63 69 ┆tion, a formal paraђmeђter speci┆
0x1fb20…1fb40 66 69 63 61 80 74 69 6f 6e 2c 20 61 20 6c 61 62 65 6c 6c 65 64 20 73 74 61 74 65 6d 65 6e 74 2c ┆ficaђtion, a labelled statement,┆
0x1fb40…1fb60 20 0a 74 68 65 20 41 53 2d 70 61 72 74 20 6f 66 20 61 20 77 69 74 68 20 73 74 61 74 65 6d 65 6e ┆ the AS-part of a with statemen┆
0x1fb60…1fb80 74 2c 20 74 68 65 20 69 74 65 72 61 74 69 6f 6e 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 ┆t, the iteration description of ┆
0x1fb80…1fba0 61 20 66 6f 72 20 0a 73 74 61 74 65 80 80 6d 65 6e 74 2c 20 6f 72 20 61 20 27 6d 65 73 73 61 67 ┆a for stateђђment, or a 'messag┆
0x1fba0…1fbc0 65 5f 6e 61 6d 65 27 20 69 6e 20 61 20 6c 6f 63 6b 20 73 74 61 74 65 6d 65 6e 74 2e 20 45 76 65 ┆e_name' in a lock statement. Eve┆
0x1fbc0…1fbe0 72 79 20 69 6e 74 72 6f 80 80 0a 64 75 63 74 69 6f 6e 20 6f 66 20 61 20 6e 61 6d 65 20 68 61 73 ┆ry introђђ duction of a name has┆
0x1fbe0…1fc00 20 61 20 a0 73 63 6f 70 65 e0 2c 20 69 2e 65 2e 20 61 20 72 65 67 69 6f 6e 20 6f 66 20 74 65 78 ┆ a аscopeЯ, i.e. a region of tex┆
0x1fc00…1fc20 74 20 6f 76 65 72 20 77 68 69 63 68 20 74 68 65 20 0a 69 6e 74 72 6f 64 75 63 80 74 69 6f 6e 20 ┆t over which the introducђtion ┆
0x1fc20…1fc40 68 61 73 20 61 6e 20 65 66 66 65 63 74 2e 20 54 68 65 20 63 6f 6e 63 65 70 74 20 6f 66 20 73 63 ┆has an effect. The concept of sc┆
0x1fc40…1fc60 6f 70 65 20 73 65 72 76 65 73 20 61 73 20 61 20 74 6f 6f 6c 20 69 6e 20 0a 64 65 74 65 72 6d 69 ┆ope serves as a tool in determi┆
0x1fc60…1fc80 80 6e 69 6e 67 20 74 68 65 20 76 69 73 69 62 69 6c 69 74 79 20 72 65 67 69 6f 6e 20 6f 66 20 61 ┆ђning the visibility region of a┆
0x1fc80…1fca0 20 6e 61 6d 65 64 20 70 72 6f 67 72 61 6d 20 65 6e 74 69 74 79 2e 0d 0a 0d 0a 4f 6e 63 65 20 74 ┆ named program entity. Once t┆
0x1fca0…1fcc0 68 65 20 76 69 73 69 62 69 6c 69 74 79 20 72 65 67 69 6f 6e 73 20 6f 66 20 61 6c 6c 20 70 72 6f ┆he visibility regions of all pro┆
0x1fcc0…1fce0 67 72 61 6d 20 65 6e 74 69 74 69 65 73 20 61 72 65 20 6b 6e 6f 77 6e 20 74 68 65 20 0a 64 65 74 ┆gram entities are known the det┆
0x1fce0…1fd00 65 72 6d 69 6e 61 74 69 6f 6e 20 6f 66 20 61 20 6e 61 6d 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 ┆ermination of a naming environme┆
0x1fd00…1fd20 6e 74 20 70 72 6f 63 65 65 64 73 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 20 43 6f 6e 73 69 64 65 72 ┆nt proceeds as follows: Consider┆
0x1fd20…1fd40 20 61 20 0a 6e 61 6d 65 20 6f 63 63 75 72 72 69 6e 67 20 61 74 20 73 6f 6d 65 20 70 6f 69 6e 74 ┆ a name occurring at some point┆
0x1fd40…1fd60 20 69 6e 20 61 20 70 72 6f 80 80 67 72 61 6d 2e 20 49 66 20 74 68 65 20 70 6f 69 6e 74 20 69 73 ┆ in a proђђgram. If the point is┆
0x1fd60…1fd80 20 77 69 74 68 69 6e 20 74 68 65 20 0a 76 69 73 69 62 69 6c 69 74 79 20 72 65 67 69 6f 6e 20 6f ┆ within the visibility region o┆
0x1fd80…1fda0 66 20 61 20 70 72 6f 80 67 72 61 6d 20 65 6e 74 69 74 79 20 77 68 6f 73 65 20 6e 61 6d 65 20 69 ┆f a proђgram entity whose name i┆
0x1fda0…1fdc0 73 20 74 68 65 20 6e 61 6d 65 20 75 6e 64 65 72 20 0a 63 6f 6e 73 69 64 65 72 61 74 69 6f 6e 2c ┆s the name under consideration,┆
0x1fdc0…1fde0 20 74 68 65 6e 20 74 68 65 20 6e 61 6d 65 20 64 65 6e 6f 74 65 73 20 74 68 61 74 20 70 72 6f 67 ┆ then the name denotes that prog┆
0x1fde0…1fe00 72 61 6d 20 65 6e 74 69 74 79 2e 20 4f 74 68 65 72 77 69 73 65 20 0a 69 74 20 68 61 73 20 6e 6f ┆ram entity. Otherwise it has no┆
0x1fe00…1fe20 20 6d 65 61 6e 69 6e 67 2c 20 69 2e 65 2e 20 69 74 20 69 73 20 6e 6f 74 20 70 61 72 74 20 6f 66 ┆ meaning, i.e. it is not part of┆
0x1fe20…1fe40 20 74 68 65 20 6e 61 6d 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2e 0d 0a 0d 0a 54 68 65 72 ┆ the naming environment. Ther┆
0x1fe40…1fe60 65 20 61 72 65 20 74 77 6f 20 6b 69 6e 64 73 20 6f 66 20 6e 61 6d 65 73 20 77 68 69 63 68 20 68 ┆e are two kinds of names which h┆
0x1fe60…1fe80 61 76 65 20 6e 6f 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 6d 65 61 80 80 6e 69 6e 67 2c 20 0a 62 ┆ave no independent meaђђning, b┆
0x1fe80…1fea0 75 74 20 77 68 6f 73 65 20 6d 65 61 6e 69 6e 67 20 69 73 20 64 65 70 65 6e 64 65 6e 74 20 6f 6e ┆ut whose meaning is dependent on┆
0x1fea0…1fec0 20 74 68 65 20 73 79 6e 74 61 63 74 69 63 20 63 6f 6e 80 80 74 65 78 74 2c 20 76 69 7a 2e 20 74 ┆ the syntactic conђђtext, viz. t┆
0x1fec0…1fee0 68 65 20 0a 6e 61 6d 65 73 20 6f 66 20 72 65 63 6f 72 64 20 66 69 65 6c 64 73 20 61 6e 64 20 66 ┆he names of record fields and f┆
0x1fee0…1ff00 6f 72 6d 61 6c 20 74 79 70 65 20 70 61 72 61 80 6d 65 74 65 72 73 2e 20 48 6f 77 65 76 65 72 2c ┆ormal type paraђmeters. However,┆
0x1ff00…1ff20 20 62 65 63 61 75 73 65 20 0a 6f 66 20 74 68 65 20 73 68 6f 72 74 68 61 6e 64 20 66 6f 72 6d 20 ┆ because of the shorthand form ┆
0x1ff20…1ff40 6f 66 20 72 65 63 6f 72 64 20 66 69 65 6c 64 20 61 63 63 65 73 73 20 61 6c 6c 6f 77 65 64 20 69 ┆of record field access allowed i┆
0x1ff40…1ff60 6e 20 77 69 74 68 20 73 74 61 74 65 80 0a 6d 65 6e 74 73 20 28 63 66 2e 20 73 65 63 74 69 6f 6e ┆n with stateђ ments (cf. section┆
0x1ff60…1ff80 20 33 2e 37 29 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 66 69 65 6c 64 73 20 6f 66 20 61 20 77 ┆ 3.7) the names of fields of a w┆
0x1ff80…1ffa0 69 74 68 2d 6f 62 6a 65 63 74 20 6f 66 20 61 20 72 65 80 0a 63 6f 72 64 20 74 79 70 65 20 61 72 ┆ith-object of a reђ cord type ar┆
0x1ffa0…1ffc0 65 20 74 72 65 61 74 65 64 20 61 73 20 69 66 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 74 68 ┆e treated as if introduced in th┆
0x1ffc0…1ffe0 65 20 27 77 69 74 68 20 64 65 66 69 6e 69 74 69 6f 6e 27 2e 20 41 70 61 72 74 20 0a 66 72 6f 6d ┆e 'with definition'. Apart from┆
0x1ffe0…20000 20 74 68 69 73 20 73 70 65 63 69 61 6c 20 63 61 73 65 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 ┆ this special case the names of ┆
0x20000…20020 72 65 63 6f 72 64 20 66 69 65 6c 64 73 20 61 6e 64 20 74 79 70 65 20 70 61 72 61 6d 65 74 65 72 ┆record fields and type parameter┆
0x20020…20040 73 20 0a 61 72 65 20 6e 6f 74 20 6d 65 6d 62 65 72 73 20 6f 66 20 6e 61 6d 69 6e 67 20 65 6e 76 ┆s are not members of naming env┆
0x20040…20060 69 72 6f 6e 6d 65 6e 74 73 2e 0d 0a 0d 0a 54 68 72 65 65 20 6b 69 6e 64 73 20 6f 66 20 72 75 6c ┆ironments. Three kinds of rul┆
0x20060…20080 65 73 20 77 68 69 63 68 20 74 6f 67 65 74 68 65 72 20 6d 61 6b 65 20 75 70 20 74 68 65 20 76 69 ┆es which together make up the vi┆
0x20080…200a0 73 69 62 69 6c 69 74 79 20 72 75 6c 65 73 20 61 72 65 20 0a 67 69 76 65 6e 20 62 65 6c 6f 77 3a ┆sibility rules are given below:┆
0x200a0…200c0 0d 0a 0d 0a 2d 20 75 6e 69 71 75 65 6e 65 73 73 20 72 75 6c 65 73 3a 20 84 72 75 6c 65 73 20 77 ┆ - uniqueness rules: ёrules w┆
0x200c0…200e0 68 69 63 68 20 73 65 72 76 65 20 6f 6e 6c 79 20 74 6f 20 70 72 65 76 65 6e 74 20 61 6d 62 69 80 ┆hich serve only to prevent ambiђ┆
0x200e0…20100 80 67 75 6f 75 73 20 0a 19 94 80 80 6d 65 61 6e 69 6e 67 73 20 6f 66 20 6e 61 6d 65 73 2c 0d 0a ┆ђguous ћђђmeanings of names, ┆
0x20100…20120 2d 20 73 63 6f 70 65 20 72 75 6c 65 73 3a 20 20 20 20 20 20 84 72 75 6c 65 73 20 77 68 69 63 68 ┆- scope rules: ёrules which┆
0x20120…20140 20 64 65 74 65 72 6d 69 6e 65 20 74 68 65 20 73 63 6f 70 65 20 6f 66 20 61 6e 20 69 6e 80 74 72 ┆ determine the scope of an inђtr┆
0x20140…20160 6f 64 75 63 80 0a 19 94 80 80 74 69 6f 6e 20 6f 66 20 61 20 6e 61 6d 65 2c 0d 0a 2d 20 65 78 63 ┆oducђ ћђђtion of a name, - exc┆
0x20160…20180 6c 75 73 69 6f 6e 20 72 75 6c 65 73 3a 20 20 84 72 75 6c 65 73 20 77 68 69 63 68 20 64 65 74 65 ┆lusion rules: ёrules which dete┆
0x20180…201a0 72 6d 69 6e 65 20 74 68 65 20 76 69 73 69 62 69 6c 69 74 79 20 72 65 80 67 69 6f 6e 20 6f 66 20 ┆rmine the visibility reђgion of ┆
0x201a0…201c0 61 20 0a 19 94 80 80 70 72 6f 67 72 61 6d 20 65 6e 74 69 74 79 20 62 79 20 65 78 70 6c 69 63 69 ┆a ћђђprogram entity by explici┆
0x201c0…201e0 74 20 65 78 80 63 6c 75 73 69 6f 6e 20 6f 66 20 73 75 62 2d 72 65 80 0a 19 94 80 80 67 69 6f 6e ┆t exђclusion of sub-reђ ћђђgion┆
0x201e0…20200 73 20 66 72 6f 6d 20 74 68 65 20 73 63 6f 70 65 20 6f 66 20 74 68 65 20 69 6e 74 72 6f 80 64 75 ┆s from the scope of the introђdu┆
0x20200…20220 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 0a 19 94 80 80 6e 61 6d 65 20 6f 66 20 74 68 65 20 65 6e ┆ction of the ћђђname of the en┆
0x20220…20240 80 74 69 74 79 2e 0d 0a 0d 0a a1 55 6e 69 71 75 65 6e 65 73 73 20 72 75 6c 65 73 0d 0a 0d 0a 54 ┆ђtity. АUniqueness rules T┆
0x20240…20260 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6e 61 6d 65 73 20 61 72 65 20 73 61 69 64 20 74 6f 20 62 ┆he following names are said to b┆
0x20260…20280 65 20 69 6e 74 72 6f 64 75 63 65 64 20 a0 69 6e 69 74 69 61 6c 6c 79 e0 20 69 6e 20 61 20 62 6c ┆e introduced аinitiallyЯ in a bl┆
0x20280…202a0 6f 63 6b 3a 0d 0a 0d 0a 2d 20 84 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 74 68 65 20 66 6f 72 6d ┆ock: - ёthe names of the form┆
0x202a0…202c0 61 6c 20 70 61 72 61 6d 65 74 65 72 73 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 74 68 65 20 68 ┆al parameters specified in the h┆
0x202c0…202e0 65 61 80 80 64 69 6e 67 20 6f 66 20 74 68 65 20 0a 19 82 80 80 62 6c 6f 63 6b 2c 0d 0a 2d 20 84 ┆eaђђding of the ѓђђblock, - ё┆
0x202e0…20300 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 70 72 6f 67 72 61 6d 20 65 6e 74 69 74 69 65 73 20 69 6e ┆the names of program entities in┆
0x20300…20320 74 72 6f 64 75 63 65 64 20 69 6e 20 74 68 65 20 64 65 63 6c 61 72 61 80 80 74 69 6f 6e 20 70 61 ┆troduced in the declaraђђtion pa┆
0x20320…20340 72 74 20 6f 66 20 0a 19 82 80 80 74 68 65 20 62 6c 6f 63 6b 20 65 78 63 6c 75 64 69 6e 67 20 74 ┆rt of ѓђђthe block excluding t┆
0x20340…20360 68 65 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 20 6c 69 73 74 73 20 61 6e 64 20 62 6c ┆he formal parameter lists and bl┆
0x20360…20380 6f 63 6b 73 20 6f 66 20 0a 19 82 80 80 65 6e 63 6c 6f 73 65 64 20 70 72 6f 67 72 61 6d 20 61 6e ┆ocks of ѓђђenclosed program an┆
0x20380…203a0 64 20 72 6f 75 74 69 6e 65 20 64 65 63 6c 61 72 61 80 74 69 6f 6e 73 2c 20 61 6e 64 0d 0a 2d 20 ┆d routine declaraђtions, and - ┆
0x203a0…203c0 84 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 6c 61 62 65 6c 73 20 61 70 70 65 61 72 69 6e 67 20 69 ┆ёthe names of labels appearing i┆
0x203c0…203e0 6e 20 74 68 65 20 63 6f 6d 70 6f 75 6e 64 20 73 74 61 74 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 ┆n the compound statement of the ┆
0x203e0…20400 0a 19 82 80 80 62 6c 6f 63 6b 2e 0d 0a 0d 0a 31 29 20 84 41 6c 6c 20 6e 61 6d 65 73 20 69 6e 74 ┆ ѓђђblock. 1) ёAll names int┆
0x20400…20420 72 6f 64 75 63 65 64 20 69 6e 69 74 69 61 6c 6c 79 20 69 6e 20 61 20 62 6c 6f 63 6b 20 6d 75 73 ┆roduced initially in a block mus┆
0x20420…20440 74 20 62 65 20 64 69 80 80 73 74 69 6e 63 74 2e 0d 0a 32 29 20 84 41 6c 6c 20 6e 61 6d 65 73 20 ┆t be diђђstinct. 2) ёAll names ┆
0x20440…20460 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 74 68 65 20 27 77 69 74 68 20 64 65 66 69 6e 69 74 69 ┆introduced in the 'with definiti┆
0x20460…20480 6f 6e 27 20 6f 66 20 61 20 77 69 74 68 20 73 74 61 80 74 65 6d 65 6e 74 20 0a 19 83 80 80 6d 75 ┆on' of a with staђtement Ѓђђmu┆
0x20480…204a0 73 74 20 62 65 20 64 69 73 74 69 6e 63 74 2e 0d 0a 0d 0a a1 53 63 6f 70 65 20 72 75 6c 65 73 0d ┆st be distinct. АScope rules ┆
0x204a0…204c0 0a 0d 0a 31 29 20 84 54 68 65 20 73 63 6f 70 65 20 6f 66 20 61 20 6c 61 62 65 6c 20 6f 72 20 76 ┆ 1) ёThe scope of a label or v┆
0x204c0…204e0 61 72 69 61 62 6c 65 20 6e 61 6d 65 20 69 73 20 74 68 65 20 63 6f 6d 70 6f 75 6e 64 20 73 74 61 ┆ariable name is the compound sta┆
0x204e0…20500 80 74 65 6d 65 6e 74 20 0a 19 83 80 80 6f 66 20 74 68 65 20 62 6c 6f 63 6b 20 69 6e 20 77 68 69 ┆ђtement Ѓђђof the block in whi┆
0x20500…20520 63 68 20 69 74 20 69 73 20 69 6e 74 72 6f 64 75 63 65 64 2e 0d 0a 32 29 20 84 54 68 65 20 73 63 ┆ch it is introduced. 2) ёThe sc┆
0x20520…20540 6f 70 65 20 6f 66 20 61 6e 79 20 6f 74 68 65 72 20 6e 61 6d 65 20 69 6e 74 72 6f 64 75 63 65 64 ┆ope of any other name introduced┆
0x20540…20560 20 69 6e 69 74 69 61 6c 6c 79 20 69 6e 20 61 20 62 6c 6f 63 6b 20 65 78 80 0a 19 83 80 80 74 65 ┆ initially in a block exђ Ѓђђte┆
0x20560…20580 6e 64 73 20 66 72 6f 6d 20 74 68 65 20 70 6f 69 6e 74 20 6f 66 20 69 6e 74 72 6f 64 75 63 74 69 ┆nds from the point of introducti┆
0x20580…205a0 6f 6e 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 62 6c 6f 63 6b 2e 20 54 68 69 73 ┆on to the end of the block. This┆
0x205a0…205c0 20 0a 19 83 80 80 69 73 20 74 68 65 20 72 75 6c 65 20 77 68 69 63 68 20 69 6d 70 6c 69 65 73 20 ┆ Ѓђђis the rule which implies ┆
0x205c0…205e0 74 68 61 74 20 69 6e 20 67 65 80 6e 65 72 61 6c 20 61 20 6e 61 6d 65 20 6d 75 73 74 20 62 65 20 ┆that in geђneral a name must be ┆
0x205e0…20600 69 6e 74 72 6f 64 75 80 0a 19 83 80 80 63 65 64 20 62 65 66 6f 72 65 20 75 73 65 2e 0d 0a 33 29 ┆introduђ Ѓђђced before use. 3)┆
0x20600…20620 20 84 54 68 65 20 73 63 6f 70 65 20 6f 66 20 74 68 65 20 27 66 6f 72 5f 6e 61 6d 65 27 20 69 6e ┆ ёThe scope of the 'for_name' in┆
0x20620…20640 74 72 6f 64 75 63 65 64 20 69 6e 20 61 20 66 6f 72 20 73 74 61 74 65 80 80 6d 65 6e 74 2c 20 6f ┆troduced in a for stateђђment, o┆
0x20640…20660 72 20 6f 66 20 0a 19 83 80 80 61 20 6e 61 6d 65 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 61 ┆r of Ѓђђa name introduced in a┆
0x20660…20680 20 77 69 74 68 20 6f 72 20 6c 6f 63 6b 20 73 74 61 74 65 6d 65 6e 74 20 69 73 20 74 68 65 20 27 ┆ with or lock statement is the '┆
0x20680…206a0 73 74 61 74 65 6d 65 6e 74 27 20 0a 19 83 80 80 66 6f 6c 6c 6f 77 69 6e 67 20 44 4f 20 69 6e 20 ┆statement' Ѓђђfollowing DO in ┆
0x206a0…206c0 74 68 65 20 66 6f 72 2c 20 77 69 74 68 2c 20 6f 72 20 6c 6f 63 6b 20 73 74 61 74 65 6d 65 6e 74 ┆the for, with, or lock statement┆
0x206c0…206e0 2e 0d 0a 34 29 20 84 54 68 65 20 73 63 6f 70 65 20 6f 66 20 61 20 72 65 63 6f 72 64 20 66 69 65 ┆. 4) ёThe scope of a record fie┆
0x206e0…20700 6c 64 20 6e 61 6d 65 20 69 6e 74 72 6f 64 75 63 65 64 20 61 73 20 66 69 65 6c 64 20 61 63 80 63 ┆ld name introduced as field acђc┆
0x20700…20720 65 73 73 20 0a 19 83 80 80 73 68 6f 72 74 68 61 6e 64 20 69 6e 20 61 20 77 69 74 68 20 73 74 61 ┆ess Ѓђђshorthand in a with sta┆
0x20720…20740 74 65 6d 65 6e 74 20 69 73 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 20 66 6f 6c 80 6c 6f 77 69 ┆tement is the statement folђlowi┆
0x20740…20760 6e 67 20 44 4f 2e 0d 0a 0d 0a a1 45 78 63 6c 75 73 69 6f 6e 20 72 75 6c 65 73 0d 0a 0d 0a 41 6e ┆ng DO. АExclusion rules An┆
0x20760…20780 20 69 6e 74 72 6f 64 75 63 74 69 6f 6e 20 6f 66 20 61 20 6e 61 6d 65 20 77 68 69 63 68 20 6f 63 ┆ introduction of a name which oc┆
0x20780…207a0 63 75 72 73 20 77 69 74 68 69 6e 20 74 68 65 20 73 63 6f 70 65 20 6f 66 20 61 20 0a 70 72 65 76 ┆curs within the scope of a prev┆
0x207a0…207c0 69 6f 75 73 20 69 6e 74 72 6f 64 75 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 73 61 6d 65 20 6e 61 ┆ious introduction of the same na┆
0x207c0…207e0 6d 65 20 69 73 20 63 61 6c 6c 65 64 20 61 20 a0 72 65 69 6e 74 72 6f 80 64 75 63 80 74 69 6f 6e ┆me is called a аreintroђducђtion┆
0x207e0…20800 e0 2e 0d 0a 0d 0a 8c 8d f0 0a 0e 0a 54 68 65 20 76 69 73 69 62 69 6c 69 74 79 20 72 65 67 69 6f ┆Я. їЇ The visibility regio┆
0x20800…20820 6e 20 6f 66 20 61 20 6e 61 6d 65 64 20 70 72 6f 67 72 61 6d 20 65 6e 74 69 74 79 20 69 73 20 74 ┆n of a named program entity is t┆
0x20820…20840 68 65 20 73 63 6f 70 65 20 6f 66 20 74 68 65 20 0a 69 6e 74 72 6f 64 75 63 74 69 6f 6e 20 6f 66 ┆he scope of the introduction of┆
0x20840…20860 20 69 74 73 20 6e 61 6d 65 20 77 69 74 68 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 6f 73 ┆ its name with the following pos┆
0x20860…20880 73 69 62 6c 65 20 65 78 63 65 70 80 74 69 6f 6e 73 3a 0d 0a 0d 0a 31 29 20 41 6e 79 20 69 6e 6e ┆sible excepђtions: 1) Any inn┆
0x20880…208a0 65 72 20 70 72 6f 67 72 61 6d 20 62 6c 6f 63 6b 73 2e 0d 0a 32 29 20 84 54 68 65 20 73 63 6f 70 ┆er program blocks. 2) ёThe scop┆
0x208a0…208c0 65 28 73 29 20 6f 66 20 61 6e 79 20 72 65 69 6e 74 72 6f 64 75 63 74 69 6f 6e 28 73 29 20 6f 66 ┆e(s) of any reintroduction(s) of┆
0x208c0…208e0 20 74 68 65 20 6e 61 6d 65 2c 20 69 2e 65 2e 20 72 65 69 6e 80 74 72 6f 64 75 63 80 0a 19 83 80 ┆ the name, i.e. reinђtroducђ Ѓђ┆
0x208e0…20900 80 74 69 6f 6e 20 68 69 64 65 73 20 74 68 65 20 65 6e 74 69 74 79 20 64 65 6e 6f 74 65 64 20 62 ┆ђtion hides the entity denoted b┆
0x20900…20920 79 20 74 68 65 20 6f 75 74 65 72 20 6f 63 80 63 75 72 72 65 6e 63 65 20 6f 66 20 74 68 65 20 6e ┆y the outer ocђcurrence of the n┆
0x20920…20940 61 80 0a 19 83 80 80 6d 65 2e 0d 0a 0f 0a 0d 0a 0e 0a a1 45 78 61 6d 70 6c 65 3a 0d 0a 0d 0a 48 ┆aђ Ѓђђme. АExample: H┆
0x20940…20960 69 64 69 6e 67 20 6f 66 20 61 6e 20 65 6e 74 69 74 79 20 62 79 20 72 65 69 6e 74 72 6f 64 75 63 ┆iding of an entity by reintroduc┆
0x20960…20980 74 69 6f 6e 20 6f 66 20 69 74 73 20 6e 61 6d 65 20 69 73 20 69 6c 6c 75 80 80 73 74 72 61 74 65 ┆tion of its name is illuђђstrate┆
0x20980…209a0 64 20 62 65 6c 6f 77 3a 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 70 3b 0d 0a 43 4f 4e 53 54 0d ┆d below: PROCEDURE p; CONST ┆
0x209a0…209c0 0a 20 20 20 6e 3d 32 3b 0d 0a 20 20 20 2e 2e 2e 0d 0a 20 20 20 50 52 4f 43 45 44 55 52 45 20 71 ┆ n=2; ... PROCEDURE q┆
0x209c0…209e0 3b 0d 0a 20 20 20 43 4f 4e 53 54 0d 0a 20 20 20 20 20 20 6e 3d 35 3b 0d 0a 20 20 20 42 45 47 49 ┆; CONST n=5; BEGI┆
0x209e0…20a00 4e 0d 0a 20 20 20 20 20 20 2e 2e 2e 20 6e 20 2e 2e 2e 20 28 2a 20 68 61 73 20 76 61 6c 75 65 20 ┆N ... n ... (* has value ┆
0x20a00…20a20 35 20 2a 29 0d 0a 20 20 20 2e 2e 2e 0d 0a 45 4e 44 0d 0a 0f 0a 16 73 62 0d 0a 43 6f 6e 74 65 78 ┆5 *) ... END sb Contex┆
0x20a20…20a40 74 73 20 61 6e 64 20 50 72 65 64 65 66 69 6e 65 64 20 4e 61 6d 65 73 0d 0a 54 68 65 20 69 6e 69 ┆ts and Predefined Names The ini┆
0x20a40…20a60 74 69 61 6c 20 6e 61 6d 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6f 66 20 61 20 63 6f 6d ┆tial naming environment of a com┆
0x20a60…20a80 70 69 6c 61 74 69 6f 6e 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 74 68 65 20 70 72 65 64 65 80 0a ┆pilation consists of the predeђ ┆
0x20a80…20aa0 66 69 6e 65 64 20 6e 61 6d 65 73 20 61 6e 64 20 65 6e 74 69 74 69 65 73 20 61 6e 64 20 74 68 6f ┆fined names and entities and tho┆
0x20aa0…20ac0 73 65 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 bf dc d8 63 6f 6e 74 65 78 74 be 73 2e 0d 0a ┆se introduced in ┐▄пcontextЙs. ┆
0x20ac0…20ae0 0d 0a 54 68 65 20 75 6e 69 74 20 6f 66 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 69 73 20 61 20 73 ┆ The unit of compilation is a s┆
0x20ae0…20b00 65 71 75 65 6e 63 65 20 6f 66 20 70 72 6f 67 72 61 6d 20 61 6e 64 2f 6f 72 20 72 6f 75 80 74 69 ┆equence of program and/or rouђti┆
0x20b00…20b20 6e 65 20 0a 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 70 72 65 63 ┆ne declarations optionally prec┆
0x20b20…20b40 65 64 65 64 20 62 79 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 63 6f 6e 80 80 74 65 78 74 73 2e 20 ┆eded by one or more conђђtexts. ┆
0x20b40…20b60 41 20 63 6f 6d 70 69 6c 65 72 20 0a 6d 75 73 74 20 61 6c 6c 6f 77 20 63 6f 6e 74 65 78 74 73 20 ┆A compiler must allow contexts ┆
0x20b60…20b80 74 6f 20 62 65 20 73 75 70 70 6c 69 65 64 20 61 73 20 66 69 80 6c 65 73 20 73 65 70 61 72 61 74 ┆to be supplied as fiђles separat┆
0x20b80…20ba0 65 20 66 72 6f 6d 20 74 68 65 20 73 6f 75 72 63 65 20 0a 74 65 78 74 20 70 72 6f 70 65 72 2e 0d ┆e from the source text proper. ┆
0x20ba0…20bc0 0a 16 6d 61 20 73 79 6e 64 69 61 30 31 0d 0a 16 6d 61 20 73 79 6e 64 69 61 30 32 0d 0a 8c 85 e8 ┆ ma syndia01 ma syndia02 їЁУ┆
0x20bc0…20be0 0a 41 6c 6c 20 6e 61 6d 65 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 6f 6e 65 20 63 6f 6e ┆ All names introduced in one con┆
0x20be0…20c00 74 65 78 74 20 6d 75 73 74 20 62 65 20 64 69 73 74 69 6e 63 74 2e 20 54 68 65 20 6e 61 6d 65 73 ┆text must be distinct. The names┆
0x20c00…20c20 20 69 6e 80 0a 74 72 6f 64 75 63 65 64 20 69 6e 20 63 6f 6e 74 65 78 74 73 20 61 6e 64 20 74 68 ┆ inђ troduced in contexts and th┆
0x20c20…20c40 65 20 70 72 6f 67 72 61 6d 20 65 6e 74 69 74 69 65 73 20 64 65 80 66 69 80 6e 65 64 20 61 74 20 ┆e program entities deђfiђned at ┆
0x20c40…20c60 74 68 65 69 72 20 70 6f 69 6e 74 73 20 0a 6f 66 20 69 6e 74 72 6f 64 75 63 74 69 6f 6e 20 61 72 ┆their points of introduction ar┆
0x20c60…20c80 65 20 74 72 65 61 74 65 64 20 61 73 20 69 66 20 74 68 65 79 20 77 65 72 65 20 69 6e 74 72 6f 64 ┆e treated as if they were introd┆
0x20c80…20ca0 75 63 65 64 20 69 6e 20 61 20 62 6c 6f 63 6b 20 73 75 72 80 0a 72 6f 75 6e 64 69 6e 67 20 74 68 ┆uced in a block surђ rounding th┆
0x20ca0…20cc0 65 20 6f 75 74 65 72 20 62 6c 6f 63 6b 28 73 29 20 6f 66 20 74 68 65 20 73 6f 75 72 63 65 20 74 ┆e outer block(s) of the source t┆
0x20cc0…20ce0 65 78 74 20 70 72 6f 70 65 72 20 77 69 74 68 20 6f 6e 65 20 65 78 63 65 70 80 0a 74 69 6f 6e 3a ┆ext proper with one excepђ tion:┆
0x20ce0…20d00 20 74 68 65 20 65 78 63 6c 75 73 69 6f 6e 20 72 75 80 6c 65 20 66 6f 72 20 69 6e 6e 65 72 20 70 ┆ the exclusion ruђle for inner p┆
0x20d00…20d20 72 6f 67 72 61 6d 20 62 6c 6f 63 6b 73 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 6c 79 2e 20 54 68 ┆rogram blocks does not apply. Th┆
0x20d20…20d40 65 20 0a 73 63 6f 70 65 20 6f 66 20 61 20 6e 61 6d 65 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e ┆e scope of a name introduced in┆
0x20d40…20d60 20 61 20 63 6f 6e 74 65 78 74 20 65 78 74 65 6e 64 73 20 66 72 6f 6d 20 74 68 65 20 70 6f 69 6e ┆ a context extends from the poin┆
0x20d60…20d80 74 20 6f 66 20 0a 69 6e 80 80 74 72 6f 64 75 63 74 69 6f 6e 20 74 6f 20 74 68 65 20 65 6e 64 20 ┆t of inђђtroduction to the end ┆
0x20d80…20da0 6f 66 20 74 68 65 20 63 6f 6d 70 69 80 6c 61 74 69 6f 6e 20 75 6e 69 74 2e 20 52 6f 75 74 69 6e ┆of the compiђlation unit. Routin┆
0x20da0…20dc0 65 73 20 64 65 80 63 6c 61 72 65 64 20 69 6e 20 0a 61 20 63 6f 6e 74 65 78 74 20 6d 75 73 74 20 ┆es deђclared in a context must ┆
0x20dc0…20de0 62 65 20 65 78 74 65 72 6e 61 6c 2c 20 69 2e 65 2e 20 74 68 65 20 61 63 74 75 61 6c 20 62 6c 6f ┆be external, i.e. the actual blo┆
0x20de0…20e00 63 6b 20 6f 66 20 61 20 72 6f 75 74 69 6e 65 20 63 61 6e 6e 6f 74 20 0a 62 65 20 73 70 65 63 69 ┆ck of a routine cannot be speci┆
0x20e00…20e20 66 69 65 64 20 69 6e 20 61 20 63 6f 6e 74 65 78 74 2e 0d 0a 0d 0a 54 68 65 20 73 63 6f 70 65 20 ┆fied in a context. The scope ┆
0x20e20…20e40 6f 66 20 6e 61 6d 65 73 20 70 72 65 64 65 66 69 6e 65 64 20 61 73 20 70 61 72 74 20 6f 66 20 74 ┆of names predefined as part of t┆
0x20e40…20e60 68 65 20 6c 61 6e 67 75 61 67 65 2c 20 63 66 2e 20 41 70 80 70 65 6e 64 69 78 20 0a 43 2c 20 69 ┆he language, cf. Apђpendix C, i┆
0x20e60…20e80 73 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 75 6e 69 74 2e ┆s the complete compilation unit.┆
0x20e80…20ea0 20 41 73 20 77 69 74 68 20 63 6f 6e 80 80 74 65 78 74 73 20 74 68 65 20 65 78 63 6c 75 73 69 6f ┆ As with conђђtexts the exclusio┆
0x20ea0…20ec0 6e 20 0a 72 75 6c 65 20 66 6f 72 20 69 6e 6e 65 72 20 70 72 6f 67 72 61 6d 20 62 6c 6f 63 6b 73 ┆n rule for inner program blocks┆
0x20ec0…20ee0 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 6c 79 20 74 6f 20 70 72 65 64 65 80 66 69 6e 65 64 20 65 ┆ does not apply to predeђfined e┆
0x20ee0…20f00 6e 74 69 74 69 65 73 2e 20 0a 48 6f 77 65 76 65 72 2c 20 61 20 70 72 65 64 65 66 69 6e 65 64 20 ┆ntities. However, a predefined ┆
0x20f00…20f20 6e 61 6d 65 20 6d 61 79 20 62 65 20 68 69 64 64 65 6e 20 62 79 20 72 65 80 69 6e 74 72 6f 64 75 ┆name may be hidden by reђintrodu┆
0x20f20…20f40 63 74 69 6f 6e 2e 0d 0a 0d 0a a1 4e 6f 74 65 3a 0d 0a 54 68 65 20 65 78 63 6c 75 73 69 6f 6e 20 ┆ction. АNote: The exclusion ┆
0x20f40…20f60 72 75 6c 65 20 66 6f 72 20 69 6e 6e 65 72 20 70 72 6f 67 72 61 6d 20 62 6c 6f 63 6b 73 20 69 6d ┆rule for inner program blocks im┆
0x20f60…20f80 70 6c 69 65 73 20 74 68 61 74 20 74 79 80 70 65 73 2c 20 0a 63 6f 6e 73 74 61 6e 74 73 2c 20 61 ┆plies that tyђpes, constants, a┆
0x20f80…20fa0 6e 64 20 72 6f 75 74 69 6e 65 73 20 77 68 69 63 68 20 61 72 65 20 74 6f 20 62 65 20 63 6f 6d 6d ┆nd routines which are to be comm┆
0x20fa0…20fc0 6f 6e 20 66 6f 72 20 73 65 80 76 65 72 61 6c 20 70 72 6f 80 67 72 61 6d 73 20 0a 63 6f 6d 70 69 ┆on for seђveral proђgrams compi┆
0x20fc0…20fe0 6c 65 64 20 61 73 20 6f 6e 65 20 75 6e 69 74 20 6d 75 73 74 20 62 65 20 73 70 65 63 69 66 69 65 ┆led as one unit must be specifie┆
0x20fe0…21000 64 20 69 6e 20 61 20 63 6f 6e 74 65 78 74 2e 0d 0a 16 73 61 0d 0a 50 52 4f 43 45 53 53 20 43 4f ┆d in a context. sa PROCESS CO┆
0x21000…21020 4e 54 52 4f 4c 20 41 4e 44 20 49 4e 54 45 52 2d 43 4f 4d 4d 55 4e 49 43 41 54 49 4f 4e 0d 0a 01 ┆NTROL AND INTER-COMMUNICATION ┆
0x21020…21040 53 5b 54 20 6b 61 70 69 74 65 6c 6e 61 76 6e 3d 22 50 52 4f 43 45 53 53 20 43 4f 4e 54 52 4f 4c ┆S[T kapitelnavn="PROCESS CONTROL┆
0x21040…21060 22 0d 0a 54 68 69 73 20 63 68 61 70 74 65 72 20 64 65 73 63 72 69 62 65 73 20 74 68 65 20 70 72 ┆" This chapter describes the pr┆
0x21060…21080 65 64 65 66 69 6e 65 64 20 6c 61 6e 67 75 61 67 65 20 63 6f 6e 73 74 72 75 63 74 73 20 61 76 61 ┆edefined language constructs ava┆
0x21080…210a0 69 6c 80 61 62 6c 65 20 0a 66 6f 72 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 6f 66 66 73 70 72 69 6e ┆ilђable for control of offsprin┆
0x210a0…210c0 67 20 70 72 6f 63 65 73 73 65 73 20 61 6e 64 20 66 6f 72 20 65 78 63 68 61 6e 80 67 65 20 6f 66 ┆g processes and for exchanђge of┆
0x210c0…210e0 20 69 6e 80 66 6f 72 6d 61 74 69 6f 6e 20 62 65 80 0a 74 77 65 65 6e 20 70 72 6f 63 65 73 73 65 ┆ inђformation beђ tween processe┆
0x210e0…21100 73 2e 0d 0a 0d 0a 41 6e 20 69 6e 63 61 72 6e 61 74 69 6f 6e 20 6f 66 20 61 20 73 75 62 2d 70 72 ┆s. An incarnation of a sub-pr┆
0x21100…21120 6f 67 72 61 6d 20 69 73 20 63 61 6c 6c 65 64 20 61 20 63 68 69 6c 64 20 6f 66 20 61 20 28 70 61 ┆ogram is called a child of a (pa┆
0x21120…21140 80 72 65 6e 74 29 20 70 72 6f 80 0a 63 65 73 73 20 77 68 69 63 68 20 69 73 20 61 6e 20 69 6e 63 ┆ђrent) proђ cess which is an inc┆
0x21140…21160 61 72 6e 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 6d 20 63 6f 6e 80 74 61 69 80 ┆arnation of the program conђtaiђ┆
0x21160…21180 6e 69 6e 67 20 74 68 65 20 73 75 62 2d 70 72 6f 80 0a 67 72 61 6d 20 64 65 63 6c 61 72 61 74 69 ┆ning the sub-proђ gram declarati┆
0x21180…211a0 6f 6e 2e 0d 0a 0d 0a 54 68 65 20 6e 61 76 65 6c 20 73 74 72 69 6e 67 20 62 65 74 77 65 65 6e 20 ┆on. The navel string between ┆
0x211a0…211c0 74 68 65 20 70 61 72 65 6e 74 20 61 6e 64 20 74 68 65 20 63 68 69 6c 64 20 69 73 20 61 20 76 61 ┆the parent and the child is a va┆
0x211c0…211e0 72 69 80 61 62 6c 65 20 6f 66 20 0a 74 79 70 65 20 70 72 6f 63 65 73 73 20 62 65 6c 6f 6e 67 69 ┆riђable of type process belongi┆
0x211e0…21200 6e 67 20 74 6f 20 74 68 65 20 70 61 72 65 6e 74 2e 20 41 6e 20 61 72 62 69 74 72 61 72 79 20 6e ┆ng to the parent. An arbitrary n┆
0x21200…21220 75 6d 62 65 72 20 6f 66 20 69 6e 63 61 72 6e 61 80 0a 74 69 6f 6e 73 20 6f 66 20 61 20 73 75 62 ┆umber of incarnaђ tions of a sub┆
0x21220…21240 2d 70 72 6f 67 72 61 6d 20 6d 61 79 20 62 65 20 62 6f 72 6e 3b 20 74 68 65 79 20 61 72 65 20 61 ┆-program may be born; they are a┆
0x21240…21260 6c 6c 20 63 6f 6e 74 72 6f 6c 80 6c 65 64 20 62 79 20 74 68 65 20 0a 70 61 72 65 6e 74 2e 0d 0a ┆ll controlђled by the parent. ┆
0x21260…21280 0d 0a 57 68 65 6e 20 61 20 63 68 69 6c 64 20 69 73 20 62 6f 72 6e 20 69 74 20 69 73 20 73 75 70 ┆ When a child is born it is sup┆
0x21280…212a0 70 6c 69 65 64 20 77 69 74 68 20 61 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 73 20 61 63 80 ┆plied with actual parameters acђ┆
0x212a0…212c0 63 6f 72 64 69 6e 67 20 0a 74 6f 20 74 68 65 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 ┆cording to the formal parameter┆
0x212c0…212e0 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 64 65 80 63 6c 61 72 61 74 69 ┆ specification of the deђclarati┆
0x212e0…21300 6f 6e 2c 20 63 66 2e 20 73 65 63 74 69 6f 6e 20 0a 36 2e 31 2e 20 50 72 6f 63 65 73 73 65 73 20 ┆on, cf. section 6.1. Processes ┆
0x21300…21320 63 6f 6d 6d 75 6e 69 63 61 74 65 20 76 69 61 20 6d 61 69 6c 80 62 6f 78 65 73 20 6f 72 20 73 68 ┆communicate via mailђboxes or sh┆
0x21320…21340 61 72 65 64 20 76 61 72 69 61 62 6c 65 73 2e 20 41 20 6d 61 69 6c 80 0a 62 6f 78 20 6f 72 20 61 ┆ared variables. A mailђ box or a┆
0x21340…21360 20 73 68 61 72 65 64 20 76 61 72 69 80 61 62 6c 65 20 6b 6e 6f 77 6e 20 62 79 20 61 20 70 61 72 ┆ shared variђable known by a par┆
0x21360…21380 65 6e 74 20 6d 61 79 20 62 65 20 6d 61 64 65 20 6b 6e 6f 77 6e 20 61 73 20 61 20 0a 70 61 72 61 ┆ent may be made known as a para┆
0x21380…213a0 6d 65 74 65 72 20 74 6f 20 69 74 73 20 63 68 69 6c 64 72 65 6e 20 28 73 75 63 68 20 61 20 76 61 ┆meter to its children (such a va┆
0x213a0…213c0 72 69 61 62 6c 65 20 6d 61 79 20 65 69 74 68 65 72 20 62 65 20 6f 77 6e 65 64 20 62 79 20 0a 74 ┆riable may either be owned by t┆
0x213c0…213e0 68 65 20 70 61 72 65 6e 74 20 6f 72 20 6f 6e 65 20 6f 66 20 69 74 73 20 61 6e 63 65 73 74 6f 72 ┆he parent or one of its ancestor┆
0x213e0…21400 73 29 2e 20 49 6e 20 74 68 69 73 20 77 61 79 20 61 20 70 61 72 65 6e 74 20 64 65 74 65 72 80 6d ┆s). In this way a parent deterђm┆
0x21400…21420 69 6e 65 73 20 0a 74 68 65 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 70 61 74 68 73 20 6f 66 ┆ines the communication paths of┆
0x21420…21440 20 69 74 73 20 63 68 69 6c 64 72 65 6e 20 77 69 74 68 6f 75 74 2c 20 68 6f 80 77 65 76 65 72 2c ┆ its children without, hoђwever,┆
0x21440…21460 20 6e 65 63 65 73 73 61 72 69 6c 79 20 0a 70 61 72 80 74 69 63 69 70 61 74 69 6e 67 20 69 6e 20 ┆ necessarily parђticipating in ┆
0x21460…21480 74 68 65 20 63 6f 6d 80 6d 75 6e 69 63 61 74 69 6f 6e 20 69 74 73 65 6c 66 2e 20 52 65 66 65 72 ┆the comђmunication itself. Refer┆
0x21480…214a0 20 74 6f 20 73 65 63 74 69 6f 6e 20 35 2e 31 30 20 66 6f 72 20 0a 63 6f 6d 80 6d 75 6e 69 63 61 ┆ to section 5.10 for comђmunica┆
0x214a0…214c0 74 69 6f 6e 20 62 79 20 6d 65 61 6e 73 20 6f 66 20 73 68 61 72 65 64 20 76 61 72 69 61 80 62 6c ┆tion by means of shared variaђbl┆
0x214c0…214e0 65 73 20 61 6e 64 20 73 65 63 74 69 6f 6e 20 39 2e 32 20 66 6f 72 20 0a 6d 61 69 6c 62 6f 78 20 ┆es and section 9.2 for mailbox ┆
0x214e0…21500 63 6f 6d 6d 75 6e 69 80 63 61 74 69 6f 6e 2e 0d 0a 16 73 62 0d 0a 50 72 6f 63 65 73 73 20 43 6f ┆communiђcation. sb Process Co┆
0x21500…21520 6e 74 72 6f 6c 0d 0a 41 20 73 75 62 2d 70 72 6f 67 72 61 6d 20 64 65 63 6c 61 72 61 74 69 6f 6e ┆ntrol A sub-program declaration┆
0x21520…21540 20 69 6e 20 61 20 70 72 6f 67 72 61 6d 20 69 6d 70 6c 69 65 73 20 74 68 65 20 61 6c 6c 6f 63 61 ┆ in a program implies the alloca┆
0x21540…21560 80 80 74 69 6f 6e 20 6f 66 20 61 20 0a 73 75 62 2d 70 72 6f 67 72 61 6d 20 6f 62 6a 65 63 74 20 ┆ђђtion of a sub-program object ┆
0x21560…21580 69 6e 20 74 68 65 20 73 74 61 63 6b 20 6f 66 20 61 6e 20 69 6e 63 61 72 6e 61 74 69 6f 6e 20 6f ┆in the stack of an incarnation o┆
0x21580…215a0 66 20 74 68 65 20 70 72 6f 80 67 72 61 6d 2e 20 54 68 65 20 0a 73 74 61 74 65 73 20 6f 66 20 61 ┆f the proђgram. The states of a┆
0x215a0…215c0 20 73 75 62 2d 70 72 6f 67 72 61 6d 20 6f 62 6a 65 63 74 20 61 72 65 20 a0 6c 69 6e 80 6b 65 64 ┆ sub-program object are аlinђked┆
0x215c0…215e0 e0 20 61 6e 64 20 a0 75 6e 6c 69 6e 80 6b 65 64 e0 2c 20 63 66 2e 20 73 65 63 74 69 6f 6e 20 0a ┆Я and аunlinђkedЯ, cf. section ┆
0x215e0…21600 36 2e 32 2e 31 20 66 6f 72 20 74 68 65 20 69 6e 69 74 69 61 6c 20 73 74 61 74 65 20 6f 66 20 61 ┆6.2.1 for the initial state of a┆
0x21600…21620 20 73 75 62 70 72 6f 67 72 61 6d 20 6f 62 6a 65 63 74 2e 0d 0a 0d 0a 54 68 65 20 6c 69 6e 6b 69 ┆ subprogram object. The linki┆
0x21620…21640 6e 67 20 28 69 2e 65 2e 20 63 68 61 6e 67 65 20 6f 66 20 73 74 61 74 65 20 66 72 6f 6d 20 75 6e ┆ng (i.e. change of state from un┆
0x21640…21660 6c 69 6e 6b 65 64 20 74 6f 20 6c 69 6e 6b 65 64 29 20 69 73 20 70 65 72 80 66 6f 72 6d 65 64 20 ┆linked to linked) is perђformed ┆
0x21660…21680 0a 62 79 20 61 20 6c 69 6e 6b 20 63 61 6c 6c 20 77 68 69 63 68 20 69 73 20 73 69 6d 69 6c 61 72 ┆ by a link call which is similar┆
0x21680…216a0 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 ┆ to a function call. ma syndia┆
0x216a0…216c0 38 35 0d 0a 8c 89 c8 0a 54 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 20 6f ┆85 їЅ╚ The type of the result o┆
0x216c0…216e0 66 20 61 20 6c 69 6e 6b 20 63 61 6c 6c 20 69 73 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 ┆f a link call is an implementati┆
0x216e0…21700 6f 6e 20 64 65 80 70 65 6e 64 65 6e 74 20 0a 70 72 65 64 65 66 69 6e 65 64 20 65 6e 75 6d 65 72 ┆on deђpendent predefined enumer┆
0x21700…21720 61 74 69 6f 6e 20 74 79 70 65 0d 0a 20 6c 69 6e 6b 5f 72 65 73 75 6c 74 3d 20 28 6c 69 6e 6b 5f ┆ation type link_result= (link_┆
0x21720…21740 6f 6b 2c 20 61 6c 72 65 61 64 79 5f 6c 69 6e 6b 65 64 2c 20 65 78 74 65 72 6e 61 6c 5f 6e 6f 74 ┆ok, already_linked, external_not┆
0x21740…21760 5f 66 6f 75 6e 64 2c 20 2e 2e 2e 29 2e 0d 0a 0d 0a 54 68 65 20 70 75 72 70 6f 73 65 20 6f 66 20 ┆_found, ...). The purpose of ┆
0x21760…21780 61 20 6c 69 6e 6b 20 63 61 6c 6c 20 69 73 20 74 6f 20 66 69 6e 64 20 61 20 73 75 69 74 61 62 6c ┆a link call is to find a suitabl┆
0x21780…217a0 65 20 70 72 6f 67 72 61 6d 20 62 6c 6f 63 6b 20 0a 6d 61 74 63 68 69 6e 67 20 74 68 65 20 73 75 ┆e program block matching the su┆
0x217a0…217c0 62 2d 70 72 6f 67 72 61 6d 20 64 65 63 6c 61 72 61 74 69 6f 6e 2e 20 54 68 65 20 76 61 6c 75 65 ┆b-program declaration. The value┆
0x217c0…217e0 20 6f 66 20 74 68 65 20 65 78 70 72 65 73 80 73 69 6f 6e 2c 20 0a 77 68 69 63 68 20 6d 75 73 74 ┆ of the expresђsion, which must┆
0x217e0…21800 20 62 65 20 6f 66 20 61 20 73 74 72 69 6e 67 20 74 79 70 65 2c 20 69 73 20 75 73 65 64 20 74 6f ┆ be of a string type, is used to┆
0x21800…21820 20 73 65 80 80 61 72 63 68 20 66 6f 72 20 74 68 65 20 70 72 6f 67 72 61 6d 20 0a 62 6c 6f 63 6b ┆ seђђarch for the program block┆
0x21820…21840 20 69 6e 20 61 20 66 61 73 68 69 6f 6e 20 77 68 69 63 68 20 69 73 20 69 6d 70 6c 65 6d 65 6e 74 ┆ in a fashion which is implement┆
0x21840…21860 61 80 74 69 6f 6e 20 64 65 70 65 6e 64 65 6e 74 2e 20 54 68 65 20 27 66 6f 72 6d 61 6c 20 0a 70 ┆aђtion dependent. The 'formal p┆
0x21860…21880 61 72 61 6d 65 74 65 72 73 27 20 6f 66 20 74 68 65 20 73 75 62 2d 70 72 6f 67 72 61 6d 20 64 65 ┆arameters' of the sub-program de┆
0x21880…218a0 63 6c 61 72 61 74 69 6f 6e 20 6d 61 79 20 61 6c 73 6f 20 62 65 20 75 73 65 64 20 69 6e 20 74 68 ┆claration may also be used in th┆
0x218a0…218c0 65 20 0a 6d 61 74 63 68 2e 20 49 66 20 61 20 70 72 6f 67 72 61 6d 20 62 6c 6f 63 6b 20 69 73 20 ┆e match. If a program block is ┆
0x218c0…218e0 66 6f 75 6e 64 20 69 74 20 69 73 20 6c 69 6e 6b 65 64 20 74 6f 20 74 68 65 20 73 75 62 2d 70 72 ┆found it is linked to the sub-pr┆
0x218e0…21900 6f 67 72 61 6d 20 0a 6f 62 6a 65 63 74 20 64 65 6e 6f 80 74 65 64 20 62 79 20 74 68 65 20 27 70 ┆ogram object denoђted by the 'p┆
0x21900…21920 72 6f 67 72 61 6d 5f 6e 61 6d 65 27 2e 0d 0a 0d 0a 54 68 65 20 72 65 73 75 6c 74 20 6f 66 20 61 ┆rogram_name'. The result of a┆
0x21920…21940 20 6c 69 6e 6b 20 63 61 6c 6c 20 69 6e 64 69 63 61 74 65 73 20 74 68 61 74 20 74 68 65 20 6c 69 ┆ link call indicates that the li┆
0x21940…21960 6e 6b 69 6e 67 20 77 61 73 20 73 75 63 63 65 73 73 80 66 75 6c 20 6f 72 20 0a 77 68 79 20 69 74 ┆nking was successђful or why it┆
0x21960…21980 20 77 65 6e 74 20 77 72 6f 6e 67 2e 0d 0a 0d 0a 49 66 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 ┆ went wrong. If the implement┆
0x21980…219a0 61 74 69 6f 6e 20 61 6e 64 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 61 6c 6c 6f 77 73 20 64 79 ┆ation and installation allows dy┆
0x219a0…219c0 6e 61 6d 69 63 20 70 72 6f 80 80 67 72 61 6d 20 6c 6f 61 64 2c 20 0a 74 68 65 20 65 78 65 63 75 ┆namic proђђgram load, the execu┆
0x219c0…219e0 74 69 6f 6e 20 6f 66 20 61 20 6c 69 6e 6b 20 63 61 6c 6c 20 6d 61 79 20 69 6e 76 6f 6c 76 65 20 ┆tion of a link call may involve ┆
0x219e0…21a00 74 68 65 20 6c 6f 61 80 64 69 6e 67 20 6f 66 20 61 20 73 75 69 74 61 62 6c 65 20 0a 70 72 6f 67 ┆the loaђding of a suitable prog┆
0x21a00…21a20 72 61 6d 20 61 73 20 77 65 6c 6c 20 61 73 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 20 6c 69 6e ┆ram as well as the necessary lin┆
0x21a20…21a40 6b 61 67 65 20 65 64 69 74 69 6e 67 2e 0d 0a 0d 0a 49 66 20 61 20 6e 65 77 20 70 72 6f 67 72 61 ┆kage editing. If a new progra┆
0x21a40…21a60 6d 20 62 6c 6f 63 6b 20 69 73 20 74 6f 20 62 65 20 6c 69 6e 6b 65 64 20 74 6f 20 61 20 73 75 62 ┆m block is to be linked to a sub┆
0x21a60…21a80 2d 70 72 6f 67 72 61 6d 20 6f 62 6a 65 63 74 2c 20 74 68 65 20 0a 66 6f 72 6d 65 72 20 6c 69 6e ┆-program object, the former lin┆
0x21a80…21aa0 6b 20 6d 75 73 74 20 62 65 20 62 72 6f 6b 65 6e 2c 20 69 2e 65 2e 20 74 68 65 20 73 74 61 74 65 ┆k must be broken, i.e. the state┆
0x21aa0…21ac0 20 6f 66 20 74 68 65 20 73 75 62 2d 70 72 6f 80 67 72 61 6d 20 6f 62 6a 65 63 74 20 0a 68 61 73 ┆ of the sub-proђgram object has┆
0x21ac0…21ae0 20 74 6f 20 62 65 20 63 68 61 6e 67 65 64 20 66 72 6f 6d 20 6c 69 6e 6b 65 64 20 74 6f 20 75 6e ┆ to be changed from linked to un┆
0x21ae0…21b00 80 6c 69 6e 6b 65 64 2e 20 54 68 69 73 20 69 73 20 64 6f 6e 65 20 62 79 20 6d 65 61 6e 73 20 6f ┆ђlinked. This is done by means o┆
0x21b00…21b20 66 20 0a 61 6e 20 75 6e 6c 69 6e 6b 20 63 61 6c 6c 2c 20 77 68 69 63 68 20 69 73 20 73 69 6d 69 ┆f an unlink call, which is simi┆
0x21b20…21b40 6c 61 72 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 3a 0d 0a 16 6d 61 20 73 79 6e ┆lar to a function call: ma syn┆
0x21b40…21b60 64 69 61 38 36 0d 0a 54 68 65 20 72 65 73 75 6c 74 20 6f 66 20 61 6e 20 75 6e 6c 69 6e 6b 20 63 ┆dia86 The result of an unlink c┆
0x21b60…21b80 61 6c 6c 20 69 73 20 6f 66 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 64 65 70 ┆all is of the implementation dep┆
0x21b80…21ba0 65 6e 80 64 65 6e 74 20 70 72 65 64 65 80 0a 66 69 6e 65 64 20 65 6e 75 6d 65 72 61 74 69 6f 6e ┆enђdent predeђ fined enumeration┆
0x21ba0…21bc0 20 74 79 70 65 0d 0a 20 75 6e 6c 69 6e 6b 5f 72 65 73 75 6c 74 3d 20 28 75 6e 6c 69 6e 6b 5f 6f ┆ type unlink_result= (unlink_o┆
0x21bc0…21be0 6b 2c 20 6e 6f 5f 70 72 6f 67 72 61 6d 5f 6c 69 6e 6b 65 64 2c 20 65 78 69 73 74 69 6e 67 5f 69 ┆k, no_program_linked, existing_i┆
0x21be0…21c00 6e 63 61 72 6e 61 74 69 6f 6e 73 2c 20 2e 2e 2e 29 0d 0a 0d 0a 41 66 74 65 72 20 74 68 65 20 63 ┆ncarnations, ...) After the c┆
0x21c00…21c20 61 6c 6c 2c 20 69 66 20 73 75 63 63 65 73 73 66 75 6c 2c 20 74 68 65 20 73 75 62 2d 70 72 6f 67 ┆all, if successful, the sub-prog┆
0x21c20…21c40 72 61 6d 20 6f 62 6a 65 63 74 20 6d 61 79 20 62 65 20 6c 69 6e 80 6b 65 64 20 0a 61 6e 65 77 20 ┆ram object may be linђked anew ┆
0x21c40…21c60 28 6c 69 6e 6b 20 63 61 6c 6c 29 2e 0d 0a 0d 0a 8c 85 d0 0a 50 72 6f 63 65 73 73 65 73 20 6d 61 ┆(link call). їЁл Processes ma┆
0x21c60…21c80 79 20 62 65 20 63 72 65 61 74 65 64 20 61 73 20 69 6e 63 61 72 6e 61 74 69 6f 6e 73 20 6f 66 20 ┆y be created as incarnations of ┆
0x21c80…21ca0 73 75 62 2d 70 72 6f 67 72 61 6d 73 20 69 6e 20 74 68 65 20 6c 69 6e 80 0a 6b 65 64 20 73 74 61 ┆sub-programs in the linђ ked sta┆
0x21ca0…21cc0 74 65 2e 20 57 68 65 6e 20 61 20 70 72 6f 63 65 73 73 20 68 61 73 20 62 65 65 6e 20 63 72 65 61 ┆te. When a process has been crea┆
0x21cc0…21ce0 74 65 64 20 69 74 20 77 69 6c 6c 20 62 65 67 69 6e 20 74 6f 20 65 78 65 63 75 74 65 20 0a 69 74 ┆ted it will begin to execute it┆
0x21ce0…21d00 73 20 61 63 74 69 6f 6e 73 2e 20 41 20 70 72 6f 63 65 73 73 20 6d 61 79 20 62 65 63 6f 6d 65 20 ┆s actions. A process may become ┆
0x21d00…21d20 74 65 6d 80 70 6f 72 61 80 72 69 6c 79 20 75 6e 61 62 6c 65 20 74 6f 20 65 78 65 63 75 74 65 20 ┆temђporaђrily unable to execute ┆
0x21d20…21d40 61 63 80 0a 74 69 6f 6e 73 20 66 6f 72 20 74 77 6f 20 72 65 61 73 6f 6e 73 2c 20 77 68 69 63 68 ┆acђ tions for two reasons, which┆
0x21d40…21d60 20 61 72 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 6f 66 20 65 61 63 68 20 6f 74 68 65 72 2e 20 ┆ are independent of each other. ┆
0x21d60…21d80 49 74 20 6d 61 79 20 0a 62 65 20 a0 77 61 69 74 69 6e 67 e0 20 66 6f 72 20 61 6e 20 65 76 65 6e ┆It may be аwaitingЯ for an even┆
0x21d80…21da0 74 2c 20 63 66 2e 20 73 75 62 73 65 63 74 69 6f 6e 20 39 2e 32 2e 32 2c 20 6f 72 20 a0 73 74 6f ┆t, cf. subsection 9.2.2, or аsto┆
0x21da0…21dc0 70 70 65 64 e0 2c 20 63 66 2e 20 74 68 65 20 70 72 65 80 0a 64 65 66 69 6e 65 64 20 70 72 6f 63 ┆ppedЯ, cf. the preђ defined proc┆
0x21dc0…21de0 65 80 64 75 72 65 73 20 73 74 6f 70 20 61 6e 64 20 72 65 73 75 6d 65 20 64 65 73 63 72 69 62 65 ┆eђdures stop and resume describe┆
0x21de0…21e00 64 20 62 65 6c 6f 77 2e 20 41 20 70 72 6f 63 65 73 73 20 69 73 20 6f 6e 80 6c 79 20 0a 61 62 6c ┆d below. A process is onђly abl┆
0x21e00…21e20 65 20 74 6f 20 65 78 65 63 75 74 65 20 61 63 74 69 6f 6e 73 20 69 66 20 69 74 20 69 73 20 6e 65 ┆e to execute actions if it is ne┆
0x21e20…21e40 69 74 68 65 72 20 77 61 69 74 69 6e 67 20 6e 6f 72 20 73 74 6f 70 80 70 65 64 2e 20 54 68 65 20 ┆ither waiting nor stopђped. The ┆
0x21e40…21e60 0a 64 79 6e 61 6d 69 63 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 70 72 6f 63 65 73 73 6f 72 ┆ dynamic allocation of processor┆
0x21e60…21e80 20 74 69 6d 65 20 74 6f 20 70 72 6f 63 65 73 80 73 65 73 20 77 69 74 68 20 74 68 65 20 6c 61 74 ┆ time to procesђses with the lat┆
0x21e80…21ea0 74 65 72 20 70 72 6f 80 0a 70 65 72 74 79 20 69 73 20 74 68 65 20 73 63 68 65 64 75 6c 69 6e 67 ┆ter proђ perty is the scheduling┆
0x21ea0…21ec0 20 66 75 6e 63 74 69 6f 6e 20 70 65 72 80 66 6f 72 80 6d 65 64 20 62 79 20 74 68 65 20 6f 70 65 ┆ function perђforђmed by the ope┆
0x21ec0…21ee0 72 61 74 69 6e 67 20 73 79 73 74 65 6d 20 6f 72 20 0a 6c 61 6e 67 75 61 67 65 2d 73 75 70 70 6f ┆rating system or language-suppo┆
0x21ee0…21f00 72 74 69 6e 67 20 6e 75 63 6c 65 80 75 73 2e 0d 0a 0d 0a 41 20 70 72 6f 63 65 73 73 20 69 73 20 ┆rting nucleђus. A process is ┆
0x21f00…21f20 63 72 65 61 74 65 64 20 62 79 20 6d 65 61 6e 73 20 6f 66 20 61 20 63 72 65 61 74 65 20 63 61 6c ┆created by means of a create cal┆
0x21f20…21f40 6c 2e 0d 0a 16 6d 61 20 73 79 6e 64 69 61 38 37 0d 0a 16 6d 61 20 73 79 6e 64 69 61 38 38 0d 0a ┆l. ma syndia87 ma syndia88 ┆
0x21f40…21f60 54 68 65 20 65 76 61 6c 75 61 74 69 6f 6e 20 6f 66 20 61 20 63 72 65 61 74 65 20 63 61 6c 6c 20 ┆The evaluation of a create call ┆
0x21f60…21f80 63 61 75 73 65 73 20 61 6e 20 69 6e 63 61 72 6e 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 70 72 6f ┆causes an incarnation of the pro┆
0x21f80…21fa0 67 72 61 6d 20 0a 62 6c 6f 63 6b 20 6c 69 6e 6b 65 64 20 74 6f 20 74 68 65 20 73 75 62 2d 70 72 ┆gram block linked to the sub-pr┆
0x21fa0…21fc0 6f 67 72 61 6d 20 6f 62 6a 65 63 74 20 64 65 6e 6f 74 65 64 20 62 79 20 27 70 72 6f 80 67 72 61 ┆ogram object denoted by 'proђgra┆
0x21fc0…21fe0 6d 5f 6e 61 6d 65 27 20 74 6f 20 0a 62 65 20 63 72 65 61 74 65 64 20 61 73 20 64 65 73 63 72 69 ┆m_name' to be created as descri┆
0x21fe0…22000 62 65 64 20 69 6e 20 73 65 63 74 69 6f 6e 20 36 2e 32 2e 20 20 57 68 65 6e 20 61 20 70 72 6f 63 ┆bed in section 6.2. When a proc┆
0x22000…22020 65 73 73 20 68 61 73 20 6a 75 73 74 20 62 65 65 6e 20 0a 63 72 65 61 74 65 64 20 69 74 20 69 73 ┆ess has just been created it is┆
0x22020…22040 20 6e 65 69 74 68 65 72 20 73 74 6f 70 70 65 64 20 6e 6f 72 20 77 61 69 74 69 6e 67 2e 0d 0a 0d ┆ neither stopped nor waiting. ┆
0x22040…22060 0a 54 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 27 6e 61 6d 65 5f 65 78 70 72 65 73 73 69 ┆ The value of the 'name_expressi┆
0x22060…22080 6f 6e 27 2c 20 77 68 69 63 68 20 6d 75 73 74 20 62 65 20 6f 66 20 61 20 73 74 72 69 6e 67 20 74 ┆on', which must be of a string t┆
0x22080…220a0 79 70 65 2c 20 0a 69 73 20 61 74 74 61 63 68 65 64 20 74 6f 20 74 68 65 20 63 72 65 61 74 65 64 ┆ype, is attached to the created┆
0x220a0…220c0 20 70 72 6f 63 65 73 73 20 66 6f 72 20 64 69 80 61 67 6e 6f 80 73 74 69 63 20 70 75 72 70 6f 73 ┆ process for diђagnoђstic purpos┆
0x220c0…220e0 65 73 2e 0d 0a 0d 0a 8c 83 e0 0a 54 68 65 20 27 70 72 6f 63 65 73 73 5f 6f 62 6a 65 63 74 20 64 ┆es. їЃЯ The 'process_object d┆
0x220e0…22100 65 6e 6f 74 61 74 69 6f 6e 27 20 64 65 6e 6f 74 65 73 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 ┆enotation' denotes the variable ┆
0x22100…22120 74 68 72 6f 75 67 68 20 77 68 69 63 68 20 0a 74 68 65 20 63 61 6c 6c 69 6e 67 20 70 72 6f 63 65 ┆through which the calling proce┆
0x22120…22140 73 73 20 77 69 6c 6c 20 63 6f 6e 74 72 6f 6c 20 74 68 65 20 63 68 69 6c 64 3b 20 69 74 20 6d 75 ┆ss will control the child; it mu┆
0x22140…22160 73 74 20 62 65 20 6f 66 20 74 79 70 65 20 70 72 6f 63 65 73 73 2e 20 0a 54 68 65 20 76 61 6c 75 ┆st be of type process. The valu┆
0x22160…22180 65 20 6f 66 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 6d 75 73 74 20 62 65 20 4e 49 4c 20 62 ┆e of this variable must be NIL b┆
0x22180…221a0 65 80 66 6f 72 65 20 74 68 65 20 63 61 6c 6c 2c 20 6f 74 68 65 72 77 69 73 65 20 61 20 0a 66 61 ┆eђfore the call, otherwise a fa┆
0x221a0…221c0 75 6c 74 20 6f 63 63 75 72 73 2e 20 41 66 74 65 72 20 74 68 65 20 63 61 6c 6c 20 69 74 20 77 69 ┆ult occurs. After the call it wi┆
0x221c0…221e0 6c 6c 20 62 65 20 61 20 72 65 66 65 80 72 65 6e 63 65 20 74 6f 20 74 68 65 20 63 68 69 6c 64 20 ┆ll be a refeђrence to the child ┆
0x221e0…22200 70 72 6f 80 0a 63 65 73 73 2e 20 0d 0a 0d 0a 54 68 65 20 27 61 63 74 75 61 6c 20 70 61 72 61 6d ┆proђ cess. The 'actual param┆
0x22200…22220 65 74 65 72 73 27 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 6d 20 63 61 6c 6c 20 61 72 65 20 62 ┆eters' of the program call are b┆
0x22220…22240 6f 75 6e 64 20 74 6f 20 74 68 65 20 63 6f 72 80 0a 72 65 73 70 6f 6e 64 69 6e 67 20 66 6f 72 6d ┆ound to the corђ responding form┆
0x22240…22260 61 6c 20 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 65 76 61 ┆al parameters as part of the eva┆
0x22260…22280 6c 75 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 72 65 61 74 65 20 0a 63 61 6c 6c 2e 0d 0a 0d 0a ┆luation of the create call. ┆
0x22280…222a0 54 68 65 20 69 6e 69 74 69 61 6c 20 73 69 7a 65 20 6f 66 20 74 68 65 20 73 74 61 63 6b 20 77 68 ┆The initial size of the stack wh┆
0x222a0…222c0 69 63 68 20 69 73 20 61 6c 6c 6f 63 61 74 65 64 20 66 6f 72 20 74 68 65 20 63 72 65 61 74 65 64 ┆ich is allocated for the created┆
0x222c0…222e0 20 70 72 6f 80 0a 63 65 73 73 20 69 73 20 64 65 74 65 72 6d 69 6e 65 64 20 62 79 20 74 68 65 20 ┆ proђ cess is determined by the ┆
0x222e0…22300 76 61 6c 75 65 20 6f 66 20 74 68 65 20 27 73 69 7a 65 80 5f 65 78 80 70 72 65 73 73 69 6f 6e 27 ┆value of the 'sizeђ_exђpression'┆
0x22300…22320 20 77 68 69 63 68 20 6d 75 73 74 20 0a 62 65 20 6f 66 20 74 79 70 65 20 30 2e 2e 6d 61 78 69 6e ┆ which must be of type 0..maxin┆
0x22320…22340 74 2e 20 53 69 7a 65 20 30 20 6d 65 61 6e 73 20 61 6c 80 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 61 ┆t. Size 0 means alђlocation of a┆
0x22340…22360 6e 20 61 72 65 61 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 0a 61 20 76 61 6c 75 65 20 64 65 66 ┆n area according to a value def┆
0x22360…22380 69 6e 65 64 20 66 6f 72 20 74 68 65 20 73 75 62 2d 70 72 6f 67 72 61 6d 20 61 74 20 63 6f 6d 70 ┆ined for the sub-program at comp┆
0x22380…223a0 69 80 6c 65 2d 74 69 6d 65 2c 20 63 66 2e 20 63 68 61 70 74 65 72 20 31 32 2e 20 0a 54 68 65 20 ┆iђle-time, cf. chapter 12. The ┆
0x223a0…223c0 75 6e 69 74 20 6f 66 20 6d 65 80 61 73 75 72 65 6d 65 6e 74 20 66 6f 72 20 73 74 61 63 6b 20 73 ┆unit of meђasurement for stack s┆
0x223c0…223e0 69 7a 65 20 69 73 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 64 65 70 65 6e 64 65 6e 74 2e ┆ize is implementation dependent.┆
0x223e0…22400 0d 0a 0d 0a 54 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 27 70 72 69 6f 72 69 74 79 5f 65 ┆ The value of the 'priority_e┆
0x22400…22420 78 70 72 65 73 73 69 6f 6e 27 2c 20 6f 66 20 74 79 70 65 20 70 72 69 6f 5f 74 79 70 65 2c 20 64 ┆xpression', of type prio_type, d┆
0x22420…22440 65 74 65 72 80 6d 69 6e 65 73 20 0a 74 68 65 20 65 78 65 63 75 80 74 69 6f 6e 20 70 72 69 6f 72 ┆eterђmines the execuђtion prior┆
0x22440…22460 69 74 79 20 6f 66 20 74 68 65 20 63 72 65 61 74 65 64 20 70 72 6f 63 65 73 73 2e 20 54 68 69 73 ┆ity of the created process. This┆
0x22460…22480 20 71 75 61 6e 74 69 80 74 79 20 61 66 66 65 63 74 73 20 0a 74 68 65 20 77 61 79 20 69 6e 20 77 ┆ quantiђty affects the way in w┆
0x22480…224a0 68 69 63 68 20 74 68 65 20 70 72 6f 63 65 73 73 20 69 73 20 73 63 68 65 80 64 75 6c 65 64 20 66 ┆hich the process is scheђduled f┆
0x224a0…224c0 6f 72 20 65 78 65 63 75 80 74 69 6f 6e 20 69 6e 20 61 20 66 61 73 68 69 6f 6e 20 0a 77 68 69 63 ┆or execuђtion in a fashion whic┆
0x224c0…224e0 68 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 20 69 6d 70 6c 65 80 6d 65 6e 74 61 74 69 6f 6e ┆h depends on the impleђmentation┆
0x224e0…22500 2e 20 54 68 65 20 74 79 80 70 65 2c 20 70 72 69 6f 5f 74 79 70 65 2c 20 69 73 20 61 6e 20 0a 69 ┆. The tyђpe, prio_type, is an i┆
0x22500…22520 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 64 65 70 65 6e 80 64 65 6e 74 20 70 72 65 64 65 66 69 ┆mplementation depenђdent predefi┆
0x22520…22540 6e 65 64 20 65 6e 75 6d 65 80 72 61 74 69 6f 6e 20 74 79 70 65 0d 0a 0d 0a 20 20 20 20 70 72 69 ┆ned enumeђration type pri┆
0x22540…22560 6f 5f 74 79 70 65 3d 20 28 6d 69 6e 70 72 69 6f 72 69 74 79 2c 20 73 74 64 70 72 69 6f 72 69 74 ┆o_type= (minpriority, stdpriorit┆
0x22560…22580 79 2c 20 6d 61 78 70 72 69 6f 72 69 74 79 2c 20 2e 2e 2e 29 0d 0a 0d 0a 54 68 65 20 72 65 73 75 ┆y, maxpriority, ...) The resu┆
0x22580…225a0 6c 74 20 6f 66 20 61 20 63 72 65 61 74 65 20 63 61 6c 6c 20 68 61 73 20 61 6e 20 69 6d 70 6c 65 ┆lt of a create call has an imple┆
0x225a0…225c0 6d 65 6e 74 61 74 69 6f 6e 20 64 65 70 65 6e 64 65 6e 74 20 70 72 65 64 65 80 0a 66 69 6e 65 64 ┆mentation dependent predeђ fined┆
0x225c0…225e0 20 65 6e 75 6d 65 72 61 74 69 6f 6e 20 74 79 70 65 0d 0a 0d 0a 20 20 20 20 63 72 65 61 74 65 5f ┆ enumeration type create_┆
0x225e0…22600 72 65 73 75 6c 74 3d 20 28 84 63 72 65 61 74 65 5f 6f 6b 2c 20 6e 6f 5f 6d 65 6d 6f 72 79 2c 20 ┆result= (ёcreate_ok, no_memory, ┆
0x22600…22620 70 72 6f 67 72 61 6d 5f 75 6e 6c 69 6e 6b 65 64 2c 20 2e 2e 2e 29 0d 0a 0d 0a 49 66 20 74 68 65 ┆program_unlinked, ...) If the┆
0x22620…22640 20 63 72 65 61 74 65 20 63 61 6c 6c 20 77 61 73 20 75 6e 73 75 63 63 65 73 73 66 75 6c 20 74 68 ┆ create call was unsuccessful th┆
0x22640…22660 65 20 72 65 73 75 6c 74 20 77 69 6c 6c 20 69 6e 64 69 63 61 74 65 20 74 68 65 20 72 65 80 0a 61 ┆e result will indicate the reђ a┆
0x22660…22680 73 6f 6e 2e 20 49 6e 20 74 68 69 73 20 63 61 73 65 20 6e 6f 20 70 72 6f 63 65 73 73 20 77 69 6c ┆son. In this case no process wil┆
0x22680…226a0 6c 20 68 61 76 65 20 62 65 65 6e 20 63 72 65 61 74 65 64 20 61 6e 64 20 74 68 65 20 76 61 6c 75 ┆l have been created and the valu┆
0x226a0…226c0 65 20 6f 66 20 0a 74 68 65 20 70 72 6f 63 65 73 73 20 76 61 72 69 61 62 6c 65 20 72 65 6d 61 69 ┆e of the process variable remai┆
0x226c0…226e0 6e 73 20 4e 49 4c 2e 0d 0a 0d 0a 54 68 65 20 70 72 65 64 65 66 69 6e 65 64 20 70 72 6f 63 65 64 ┆ns NIL. The predefined proced┆
0x226e0…22700 75 72 65 73 20 73 74 6f 70 2c 20 73 74 61 72 74 2c 20 72 65 73 75 6d 65 2c 20 61 6e 64 20 72 65 ┆ures stop, start, resume, and re┆
0x22700…22720 6d 6f 76 65 20 6d 61 79 20 62 65 20 0a 75 73 65 64 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 61 20 63 ┆move may be used to control a c┆
0x22720…22740 68 69 6c 64 2c 20 64 65 73 69 67 6e 61 74 65 64 20 62 79 20 61 20 70 72 6f 63 65 73 73 20 76 61 ┆hild, designated by a process va┆
0x22740…22760 80 72 69 61 62 6c 65 20 70 61 73 80 73 65 64 20 61 73 20 61 20 0a 70 61 72 61 6d 65 74 65 72 2e ┆ђriable pasђsed as a parameter.┆
0x22760…22780 20 49 66 20 6f 6e 65 20 6f 66 20 74 68 65 20 70 72 6f 63 65 64 75 72 65 73 20 69 73 20 63 61 6c ┆ If one of the procedures is cal┆
0x22780…227a0 6c 65 64 20 77 69 74 68 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 65 71 75 61 6c 20 0a 74 6f ┆led with this variable equal to┆
0x227a0…227c0 20 4e 49 4c 20 61 20 66 61 75 6c 74 20 77 69 6c 6c 20 6f 63 63 75 72 2e 0d 0a 0d 0a 50 52 4f 43 ┆ NIL a fault will occur. PROC┆
0x227c0…227e0 45 44 55 52 45 20 bf dc d8 73 74 6f 70 be 28 56 41 52 20 70 72 3a 20 70 72 6f 63 65 73 73 29 0d ┆EDURE ┐▄пstopЙ(VAR pr: process) ┆
0x227e0…22800 0a 0d 0a 8c 87 c0 0a 54 68 65 20 63 68 69 6c 64 20 70 72 6f 63 65 73 73 20 62 65 63 6f 6d 65 73 ┆ їЄ└ The child process becomes┆
0x22800…22820 20 73 74 6f 70 70 65 64 2e 20 49 66 20 69 74 20 69 73 20 61 6c 72 65 61 64 79 20 73 74 6f 70 70 ┆ stopped. If it is already stopp┆
0x22820…22840 65 64 20 62 65 80 66 6f 72 65 20 74 68 65 20 0a 63 61 6c 6c 20 74 68 65 72 65 20 69 73 20 6e 6f ┆ed beђfore the call there is no┆
0x22840…22860 20 65 66 66 65 63 74 2e 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 73 74 61 72 74 be 28 ┆ effect. PROCEDURE ┐▄пstartЙ(┆
0x22860…22880 56 41 52 20 70 72 3a 20 70 72 6f 63 65 73 73 3b 20 70 72 69 6f 3a 20 70 72 69 6f 5f 74 79 70 65 ┆VAR pr: process; prio: prio_type┆
0x22880…228a0 29 0d 0a 0d 0a 54 68 65 20 70 72 69 6f 72 69 74 79 20 6f 66 20 74 68 65 20 63 68 69 6c 64 20 70 ┆) The priority of the child p┆
0x228a0…228c0 72 6f 63 65 73 73 20 69 73 20 63 68 61 6e 67 65 64 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f ┆rocess is changed to the value o┆
0x228c0…228e0 66 20 70 72 69 6f 2c 20 61 6e 64 20 0a 69 66 20 74 68 65 20 63 68 69 6c 64 20 70 72 6f 63 65 73 ┆f prio, and if the child proces┆
0x228e0…22900 73 20 69 73 20 73 74 6f 70 70 70 65 64 20 61 20 63 61 6c 6c 20 6f 66 20 73 74 61 72 74 20 6d 61 ┆s is stoppped a call of start ma┆
0x22900…22920 6b 65 73 20 69 74 20 6e 6f 74 20 73 74 6f 70 70 65 64 2e 0d 0a 0d 0a 0d 0a 50 52 4f 43 45 44 55 ┆kes it not stopped. PROCEDU┆
0x22920…22940 52 45 20 bf dc d8 72 65 73 75 6d 65 be 28 56 41 52 20 70 72 3a 20 70 72 6f 63 65 73 73 29 0d 0a ┆RE ┐▄пresumeЙ(VAR pr: process) ┆
0x22940…22960 0d 0a 49 66 20 74 68 65 20 63 68 69 6c 64 20 70 72 6f 63 65 73 73 20 69 73 20 73 74 6f 70 70 65 ┆ If the child process is stoppe┆
0x22960…22980 64 20 61 20 63 61 6c 6c 20 6f 66 20 72 65 73 75 6d 65 20 6d 61 6b 65 73 20 69 74 20 6e 6f 74 20 ┆d a call of resume makes it not ┆
0x22980…229a0 73 74 6f 70 70 65 64 3b 20 0a 6f 74 68 65 72 77 69 73 65 20 74 68 65 20 63 61 6c 6c 20 68 61 73 ┆stopped; otherwise the call has┆
0x229a0…229c0 20 6e 6f 20 65 66 66 65 63 74 2e 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 72 65 6d 6f ┆ no effect. PROCEDURE ┐▄пremo┆
0x229c0…229e0 76 65 be 28 56 41 52 20 70 72 3a 20 70 72 6f 63 65 73 73 29 0d 0a 0d 0a 41 20 63 61 6c 6c 20 6f ┆veЙ(VAR pr: process) A call o┆
0x229e0…22a00 66 20 72 65 6d 6f 76 65 20 63 61 75 73 65 73 20 74 68 65 20 63 68 69 6c 64 20 70 72 6f 63 65 73 ┆f remove causes the child proces┆
0x22a00…22a20 73 20 74 6f 20 62 65 20 72 65 6d 6f 76 65 64 2c 20 69 2e 65 2e 20 65 78 65 63 75 80 0a 74 69 6f ┆s to be removed, i.e. execuђ tio┆
0x22a20…22a40 6e 20 6f 66 20 69 74 73 20 61 63 74 69 6f 6e 20 70 61 72 74 20 69 73 20 74 65 72 6d 69 6e 61 74 ┆n of its action part is terminat┆
0x22a40…22a60 65 64 20 61 6e 64 20 61 6c 6c 20 72 65 80 73 6f 75 72 63 65 73 20 6f 77 6e 80 65 64 20 62 79 20 ┆ed and all reђsources ownђed by ┆
0x22a60…22a80 74 68 65 20 0a 63 68 69 6c 64 20 61 72 65 20 72 65 6c 65 61 73 65 64 20 61 6e 64 20 62 65 63 6f ┆the child are released and beco┆
0x22a80…22aa0 6d 65 20 66 72 65 65 20 6d 65 80 6d 6f 72 79 2e 20 54 68 65 20 72 65 80 73 6f 75 72 63 65 73 20 ┆me free meђmory. The reђsources ┆
0x22aa0…22ac0 69 6e 63 6c 75 64 65 20 0a 73 74 61 63 6b 2c 20 68 65 61 70 2c 20 61 6e 64 20 70 6f 6f 6c 73 2e ┆include stack, heap, and pools.┆
0x22ac0…22ae0 20 41 6e 79 20 70 6f 72 74 73 20 6f 77 6e 65 64 20 62 79 20 74 68 65 20 70 72 6f 63 65 73 73 20 ┆ Any ports owned by the process ┆
0x22ae0…22b00 61 72 65 20 63 6c 6f 73 65 64 20 0a 28 63 66 2e 20 73 65 63 74 69 6f 6e 20 31 31 2e 31 29 2e 20 ┆are closed (cf. section 11.1). ┆
0x22b00…22b20 50 6f 6f 6c 73 20 61 6e 64 20 6d 65 73 73 61 67 65 73 20 61 72 65 20 68 61 6e 64 6c 65 64 20 61 ┆Pools and messages are handled a┆
0x22b20…22b40 73 20 66 6f 6c 6c 6f 77 73 3a 0d 0a 0d 0a 31 2e 20 84 41 6c 6c 20 6d 65 73 73 61 67 65 73 20 77 ┆s follows: 1. ёAll messages w┆
0x22b40…22b60 68 69 63 68 20 68 61 76 65 20 61 20 70 6f 6f 6c 20 6f 77 6e 65 64 20 62 79 20 74 68 65 20 63 68 ┆hich have a pool owned by the ch┆
0x22b60…22b80 69 6c 64 20 70 72 6f 63 65 73 73 20 61 73 20 0a 19 83 80 80 74 68 65 69 72 20 68 6f 6d 65 20 70 ┆ild process as Ѓђђtheir home p┆
0x22b80…22ba0 6f 6f 6c 20 61 72 65 20 6d 61 72 6b 65 64 20 66 6f 72 20 64 65 61 6c 6c 6f 63 61 74 69 6f 6e 2e ┆ool are marked for deallocation.┆
0x22ba0…22bc0 20 41 20 73 70 65 63 69 61 6c 20 74 72 65 61 74 6d 65 6e 74 20 0a 19 83 80 80 69 73 20 67 69 76 ┆ A special treatment Ѓђђis giv┆
0x22bc0…22be0 65 6e 20 74 6f 20 61 20 6d 65 73 73 61 67 65 20 73 74 61 63 6b 20 77 68 6f 73 65 20 74 6f 70 20 ┆en to a message stack whose top ┆
0x22be0…22c00 6d 65 73 73 61 67 65 20 69 73 20 6d 61 72 6b 65 64 20 66 6f 72 20 0a 19 83 80 80 64 65 61 6c 6c ┆message is marked for Ѓђђdeall┆
0x22c00…22c20 6f 80 63 61 74 69 6f 6e 2c 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 69 74 75 61 ┆oђcation, in the following situa┆
0x22c20…22c40 74 69 6f 6e 73 3a 0d 0a 0d 0a 20 20 20 2d 20 84 41 20 70 72 6f 63 65 73 73 20 63 61 6c 6c 73 20 ┆tions: - ёA process calls ┆
0x22c40…22c60 72 65 6c 65 61 73 65 20 28 63 66 2e 20 73 65 63 74 69 6f 6e 20 33 2e 37 29 20 61 74 74 65 6d 70 ┆release (cf. section 3.7) attemp┆
0x22c60…22c80 74 69 6e 67 20 74 6f 20 70 75 74 20 74 68 65 20 0a 19 85 80 80 6d 65 73 73 61 67 65 20 69 6e 20 ┆ting to put the Ёђђmessage in ┆
0x22c80…22ca0 69 74 73 20 68 6f 6d 65 20 70 6f 6f 6c 20 28 69 6e 20 74 68 69 73 20 63 61 73 65 20 74 68 65 20 ┆its home pool (in this case the ┆
0x22ca0…22cc0 6d 65 73 80 73 61 67 65 20 6d 75 73 74 20 62 65 20 0a 19 85 80 80 61 6c 6f 6e 65 20 69 6e 20 74 ┆mesђsage must be Ёђђalone in t┆
0x22cc0…22ce0 68 65 20 73 74 61 63 6b 29 2c 20 0d 0a 0d 0a 20 20 20 2d 20 84 41 20 70 72 6f 63 65 73 73 20 63 ┆he stack), - ёA process c┆
0x22ce0…22d00 61 6c 6c 73 20 72 65 74 75 72 6e 20 28 63 66 2e 20 73 75 62 73 65 63 74 69 6f 6e 20 39 2e 32 2e ┆alls return (cf. subsection 9.2.┆
0x22d00…22d20 32 29 20 61 74 74 65 6d 70 80 80 74 69 6e 67 20 74 6f 20 70 6c 61 63 65 20 0a 19 85 80 80 74 68 ┆2) attempђђting to place Ёђђth┆
0x22d20…22d40 65 20 73 74 61 63 6b 20 69 6e 20 74 68 65 20 72 65 74 75 72 6e 20 61 64 64 72 65 73 73 20 6d 61 ┆e stack in the return address ma┆
0x22d40…22d60 69 6c 62 6f 78 20 6f 66 20 74 68 65 20 74 6f 70 20 6d 65 73 73 61 67 65 2c 0d 0a 0d 0a 8c 86 b0 ┆ilbox of the top message, їє░┆
0x22d60…22d80 0a 20 20 20 84 49 6e 20 62 6f 74 68 20 63 61 73 65 73 20 74 68 65 20 73 70 65 63 69 61 6c 20 74 ┆ ёIn both cases the special t┆
0x22d80…22da0 72 65 61 74 6d 65 6e 74 20 69 73 20 74 68 65 20 66 6f 6c 6c 6f 80 80 80 77 69 6e 67 2e 20 46 69 ┆reatment is the folloђђђwing. Fi┆
0x22da0…22dc0 72 73 74 20 74 68 65 20 74 6f 70 20 0a 19 83 80 80 6d 65 73 73 61 67 65 20 69 73 20 72 65 6d 6f ┆rst the top Ѓђђmessage is remo┆
0x22dc0…22de0 76 65 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 73 73 61 67 65 20 73 74 61 63 6b 20 61 6e 64 20 72 ┆ved from the message stack and r┆
0x22de0…22e00 65 6c 65 61 73 65 64 20 74 6f 20 0a 19 83 80 80 62 65 63 6f 6d 65 20 66 72 65 65 20 6d 65 6d 6f ┆eleased to Ѓђђbecome free memo┆
0x22e00…22e20 72 79 2e 20 54 68 65 6e 20 74 68 65 20 72 65 80 6d 61 69 6e 64 65 72 20 6f 66 20 74 68 65 20 73 ┆ry. Then the reђmainder of the s┆
0x22e20…22e40 74 61 63 6b 2c 20 69 66 20 6e 6f 6e 2d 65 6d 70 80 0a 19 83 80 80 74 79 2c 20 69 73 20 70 6c 61 ┆tack, if non-empђ Ѓђђty, is pla┆
0x22e40…22e60 63 65 64 20 69 6e 20 74 68 65 20 72 65 80 74 75 72 6e 20 61 64 64 72 65 73 73 20 6d 61 69 6c 62 ┆ced in the reђturn address mailb┆
0x22e60…22e80 6f 78 20 6f 66 20 74 68 65 20 6e 65 77 20 74 6f 70 20 6d 65 73 73 61 80 0a 19 83 80 80 67 65 2c ┆ox of the new top messaђ Ѓђђge,┆
0x22e80…22ea0 20 65 78 63 65 70 74 20 69 66 20 74 68 69 73 20 6d 65 73 73 61 67 65 20 69 73 20 61 6c 73 6f 20 ┆ except if this message is also ┆
0x22ea0…22ec0 6d 61 72 80 6b 65 64 20 66 6f 72 20 64 65 61 6c 6c 6f 63 61 74 69 6f 6e 20 69 6e 20 77 68 69 63 ┆marђked for deallocation in whic┆
0x22ec0…22ee0 68 20 0a 19 83 80 80 63 61 80 73 65 20 74 68 65 20 72 75 6c 65 20 61 70 70 6c 69 65 73 20 72 65 ┆h Ѓђђcaђse the rule applies re┆
0x22ee0…22f00 63 75 72 73 69 76 65 80 6c 79 2e 20 54 68 65 20 65 76 65 6e 74 20 6b 69 6e 64 20 61 74 74 72 69 ┆cursiveђly. The event kind attri┆
0x22f00…22f20 62 75 74 65 20 6f 66 20 61 20 0a 19 83 80 80 6d 65 73 73 61 80 67 65 20 72 65 74 75 72 6e 65 64 ┆bute of a Ѓђђmessaђge returned┆
0x22f20…22f40 20 69 6e 20 74 68 69 73 20 66 61 73 68 69 6f 6e 20 62 65 63 6f 6d 65 73 20 70 72 6f 63 65 73 73 ┆ in this fashion becomes process┆
0x22f40…22f60 5f 72 65 80 6d 6f 76 65 64 2e 0d 0a 0d 0a 32 2e 20 84 41 6c 6c 20 6d 65 73 73 61 67 65 20 73 74 ┆_reђmoved. 2. ёAll message st┆
0x22f60…22f80 61 63 6b 73 20 61 63 63 65 73 73 65 64 20 74 68 72 6f 75 67 68 20 72 65 66 65 72 65 6e 63 65 20 ┆acks accessed through reference ┆
0x22f80…22fa0 6f 72 20 63 68 61 69 6e 20 76 61 72 69 80 61 62 6c 65 73 20 0a 19 83 80 80 6f 72 20 70 72 65 73 ┆or chain variђables Ѓђђor pres┆
0x22fa0…22fc0 65 6e 74 6c 79 20 70 6c 61 63 65 64 20 69 6e 20 6d 61 69 6c 62 6f 78 65 73 20 6f 77 6e 65 64 20 ┆ently placed in mailboxes owned ┆
0x22fc0…22fe0 62 79 20 74 68 65 20 63 68 69 6c 64 20 70 72 6f 63 65 73 73 20 61 72 65 20 0a 19 83 80 80 70 6c ┆by the child process are Ѓђђpl┆
0x22fe0…23000 61 63 65 64 20 69 6e 20 74 68 65 20 72 65 74 75 72 6e 20 61 64 64 72 65 73 73 20 6d 61 69 6c 62 ┆aced in the return address mailb┆
0x23000…23020 6f 78 20 6f 66 20 74 68 65 20 74 6f 70 20 6d 65 73 73 61 67 65 20 77 69 74 68 20 74 68 65 20 0a ┆ox of the top message with the ┆
0x23020…23040 19 83 80 80 65 76 65 6e 74 20 6b 69 6e 64 20 61 74 74 72 69 62 75 74 65 20 65 71 75 61 6c 20 74 ┆ Ѓђђevent kind attribute equal t┆
0x23040…23060 6f 20 70 72 6f 63 65 73 73 5f 72 65 6d 6f 80 76 65 64 2e 20 49 66 20 74 68 65 20 74 6f 70 20 6d ┆o process_remoђved. If the top m┆
0x23060…23080 65 73 73 61 67 65 20 0a 19 83 80 80 69 73 20 6d 61 72 6b 65 64 20 66 6f 72 20 64 65 61 6c 6c 6f ┆essage Ѓђђis marked for deallo┆
0x23080…230a0 80 63 61 74 69 6f 6e 20 74 68 65 20 61 62 6f 76 65 20 72 75 6c 65 20 61 70 70 6c 69 65 73 2e 0d ┆ђcation the above rule applies. ┆
0x230a0…230c0 0a 0d 0a 49 66 20 74 68 65 20 70 72 6f 63 65 73 73 20 74 6f 20 62 65 20 72 65 6d 6f 76 65 64 20 ┆ If the process to be removed ┆
0x230c0…230e0 68 61 73 20 61 6e 79 20 63 68 69 6c 64 72 65 6e 2c 20 74 68 65 73 65 20 61 72 65 20 72 65 80 6d ┆has any children, these are reђm┆
0x230e0…23100 6f 80 76 65 64 20 62 65 80 0a 66 6f 72 65 20 74 68 65 20 70 72 6f 63 65 73 73 20 69 74 73 65 6c ┆oђved beђ fore the process itsel┆
0x23100…23120 66 2e 20 54 68 69 73 20 72 75 6c 65 20 61 70 70 6c 69 65 73 20 72 65 80 63 75 72 73 69 80 76 65 ┆f. This rule applies reђcursiђve┆
0x23120…23140 6c 79 2e 20 54 68 75 73 2c 20 69 6e 20 65 66 66 65 63 74 2c 20 0a 72 65 6d 6f 76 61 6c 20 6f 66 ┆ly. Thus, in effect, removal of┆
0x23140…23160 20 61 20 70 72 6f 63 65 73 73 20 6d 65 61 6e 73 20 72 65 80 6d 6f 76 61 6c 20 6f 66 20 74 68 61 ┆ a process means reђmoval of tha┆
0x23160…23180 74 20 73 75 62 74 72 65 65 20 6f 66 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 20 0a 70 72 6f 63 65 ┆t subtree of the complete proce┆
0x23180…231a0 73 73 20 74 72 65 65 20 6f 66 20 77 68 69 63 68 20 74 68 65 20 70 72 6f 80 63 65 73 73 20 69 73 ┆ss tree of which the proђcess is┆
0x231a0…231c0 20 74 68 65 20 72 6f 6f 74 2e 0d 0a 0d 0a 41 66 74 65 72 20 61 20 63 61 6c 6c 20 6f 66 20 72 65 ┆ the root. After a call of re┆
0x231c0…231e0 6d 6f 76 65 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 ┆move the value of the parameter ┆
0x231e0…23200 69 73 20 4e 49 4c 2e 0d 0a 0d 0a 49 66 20 61 20 63 68 69 6c 64 20 70 72 6f 63 65 73 73 20 68 61 ┆is NIL. If a child process ha┆
0x23200…23220 73 20 61 20 70 6f 6f 6c 20 6f 72 20 61 20 73 68 61 72 65 64 20 76 61 72 69 61 62 6c 65 20 61 73 ┆s a pool or a shared variable as┆
0x23220…23240 20 70 61 72 61 6d 65 74 65 72 2c 20 69 74 20 0a 6d 75 73 74 20 6e 6f 74 20 62 65 20 72 65 6d 6f ┆ parameter, it must not be remo┆
0x23240…23260 76 65 64 20 62 79 20 74 68 65 20 70 61 72 65 6e 74 20 70 72 6f 63 65 73 73 2e 20 49 66 20 61 6e ┆ved by the parent process. If an┆
0x23260…23280 20 61 74 80 80 74 65 6d 70 74 20 69 73 20 6d 61 64 65 20 61 20 0a 66 61 75 6c 74 20 6f 63 63 75 ┆ atђђtempt is made a fault occu┆
0x23280…232a0 72 73 2e 20 48 6f 77 65 76 65 72 2c 20 69 66 20 74 68 65 20 70 61 72 65 6e 74 20 70 72 6f 63 65 ┆rs. However, if the parent proce┆
0x232a0…232c0 73 73 20 69 74 73 65 6c 66 20 69 73 20 72 65 6d 6f 76 65 64 2c 20 74 68 65 20 0a 63 68 69 6c 64 ┆ss itself is removed, the child┆
0x232c0…232e0 20 77 69 6c 6c 20 61 6c 73 6f 20 62 65 20 72 65 80 6d 6f 76 65 64 20 62 79 20 74 68 65 20 72 65 ┆ will also be reђmoved by the re┆
0x232e0…23300 63 75 72 73 69 6f 6e 20 64 65 73 63 72 69 62 65 64 20 61 62 6f 76 65 2e 0d 0a 0d 0a 49 74 20 69 ┆cursion described above. It i┆
0x23300…23320 73 20 69 6c 6c 65 67 61 6c 20 74 6f 20 72 65 6d 6f 76 65 20 61 20 63 68 69 6c 64 20 70 72 6f 63 ┆s illegal to remove a child proc┆
0x23320…23340 65 73 73 20 77 68 69 6c 65 20 69 74 20 69 73 20 65 78 65 80 63 75 80 74 69 6e 67 20 61 20 72 65 ┆ess while it is exeђcuђting a re┆
0x23340…23360 67 69 6f 6e 20 0a 73 74 61 74 65 6d 65 6e 74 2e 20 41 6e 20 61 74 74 65 6d 70 74 20 74 6f 20 64 ┆gion statement. An attempt to d┆
0x23360…23380 6f 20 73 6f 20 63 61 75 73 65 73 20 61 20 66 61 75 6c 74 2e 0d 0a 0d 0a 0e 0a a1 45 78 61 6d 70 ┆o so causes a fault. АExamp┆
0x23380…233a0 6c 65 3a 0d 0a 0d 0a 6c 69 6e 6b 5f 72 65 73 3a 3d 20 6c 69 6e 6b 28 22 63 68 69 6c 64 31 22 2c ┆le: link_res:= link("child1",┆
0x233a0…233c0 20 6d 79 5f 63 68 69 6c 64 29 3b 0d 0a 49 46 20 6c 69 6e 6b 5f 72 65 73 3c 3e 6c 69 6e 6b 5f 6f ┆ my_child); IF link_res<>link_o┆
0x233c0…233e0 6b 20 54 48 45 4e 20 6c 69 6e 6b 5f 65 72 72 6f 72 28 6c 69 6e 6b 5f 72 65 73 29 3b 0d 0a 63 72 ┆k THEN link_error(link_res); cr┆
0x233e0…23400 65 61 74 65 5f 72 65 73 3a 3d 20 63 72 65 61 74 65 28 22 63 68 69 6c 64 5f 31 5f 31 22 2c 20 6d ┆eate_res:= create("child_1_1", m┆
0x23400…23420 79 5f 63 68 69 6c 64 28 6d 62 78 31 29 2c 20 70 72 6f 63 65 73 73 31 2c 20 30 2c 0d 0a 20 20 20 ┆y_child(mbx1), process1, 0, ┆
0x23420…23440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 64 70 72 69 6f 72 69 74 79 29 3b 0d 0a 49 46 ┆ stdpriority); IF┆
0x23440…23460 20 63 72 65 61 74 65 5f 72 65 73 3c 3e 63 72 65 61 74 65 5f 6f 6b 20 54 48 45 4e 20 63 72 65 61 ┆ create_res<>create_ok THEN crea┆
0x23460…23480 74 65 5f 65 72 72 6f 72 28 63 72 65 61 74 65 5f 72 65 73 29 3b 0d 0a 63 72 65 61 74 65 5f 72 65 ┆te_error(create_res); create_re┆
0x23480…234a0 73 3a 3d 20 63 72 65 61 74 65 28 22 63 68 69 6c 64 5f 31 5f 32 22 2c 20 6d 79 5f 63 68 69 6c 64 ┆s:= create("child_1_2", my_child┆
0x234a0…234c0 28 6d 62 78 32 29 2c 20 70 72 6f 63 65 73 73 32 2c 20 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆(mbx2), process2, 0, ┆
0x234c0…234e0 20 20 20 20 20 20 20 20 73 74 64 70 72 69 6f 72 69 74 79 29 3b 0d 0a 49 46 20 63 72 65 61 74 65 ┆ stdpriority); IF create┆
0x234e0…23500 5f 72 65 73 3c 3e 63 72 65 61 74 65 5f 6f 6b 20 54 48 45 4e 20 63 72 65 61 74 65 5f 65 72 72 6f ┆_res<>create_ok THEN create_erro┆
0x23500…23520 72 28 63 72 65 61 74 65 5f 72 65 73 29 3b 0d 0a 20 20 2e 2e 2e 0d 0a 73 74 6f 70 28 70 72 6f 63 ┆r(create_res); ... stop(proc┆
0x23520…23540 65 73 73 36 29 3b 0d 0a 20 20 2e 2e 2e 0d 0a 73 74 61 72 74 28 70 72 6f 63 65 73 73 32 2c 20 68 ┆ess6); ... start(process2, h┆
0x23540…23560 69 67 68 70 72 69 6f 72 69 74 79 29 3b 20 2d 2d 20 63 68 61 6e 67 65 20 70 72 69 6f 72 69 74 79 ┆ighpriority); -- change priority┆
0x23560…23580 0d 0a 20 20 2e 2e 2e 0d 0a 72 65 73 75 6d 65 28 70 72 6f 63 65 73 73 36 29 3b 0d 0a 20 20 2e 2e ┆ ... resume(process6); ..┆
0x23580…235a0 2e 0d 0a 72 65 6d 6f 76 65 28 70 72 6f 63 65 73 73 34 29 3b 0d 0a 63 72 65 61 74 65 5f 72 65 73 ┆. remove(process4); create_res┆
0x235a0…235c0 3a 3d 20 63 72 65 61 74 65 28 22 63 68 69 6c 64 5f 32 5f 34 22 2c 20 6d 79 5f 63 68 69 6c 64 28 ┆:= create("child_2_4", my_child(┆
0x235c0…235e0 61 6c 74 65 72 6e 61 74 69 76 65 5f 6d 62 78 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆alternative_mbx), ┆
0x235e0…23600 20 20 20 20 20 70 72 6f 63 65 73 73 34 2c 20 32 30 30 2c 20 68 69 67 68 70 72 69 6f 72 69 74 79 ┆ process4, 200, highpriority┆
0x23600…23620 29 3b 0d 0a 49 46 20 2e 2e 2e 0d 0a 20 20 2e 2e 2e 0d 0a 0f 0a 16 73 62 0d 0a 4d 61 69 6c 62 6f ┆); IF ... ... sb Mailbo┆
0x23620…23640 78 20 43 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 0d 0a 01 53 5b 54 20 6b 61 70 69 74 65 6c 6e 61 76 ┆x Communication S[T kapitelnav┆
0x23640…23660 6e 3d 22 49 4e 54 45 52 2d 43 4f 4d 55 4e 49 43 41 54 49 4f 4e 22 0d 0a 4d 65 73 73 61 67 65 73 ┆n="INTER-COMUNICATION" Messages┆
0x23660…23680 20 6d 61 79 20 62 65 20 70 61 73 73 65 64 20 61 6d 6f 6e 67 20 70 72 6f 63 65 73 73 65 73 20 76 ┆ may be passed among processes v┆
0x23680…236a0 69 61 20 6d 61 69 6c 62 6f 78 65 73 2e 20 41 20 6d 65 73 80 73 61 67 65 20 69 73 20 0a 61 63 63 ┆ia mailboxes. A mesђsage is acc┆
0x236a0…236c0 65 73 73 65 64 20 74 68 72 6f 75 67 68 20 61 20 76 61 72 69 61 62 6c 65 20 6f 66 20 74 79 70 65 ┆essed through a variable of type┆
0x236c0…236e0 20 72 65 66 65 72 65 6e 63 65 20 6f 72 20 63 68 61 69 6e 2e 20 41 74 20 6d 6f 73 74 20 6f 6e 65 ┆ reference or chain. At most one┆
0x236e0…23700 20 0a 72 65 66 65 72 65 6e 63 65 20 6f 72 20 63 68 61 69 6e 20 76 61 72 69 61 62 6c 65 20 68 6f ┆ reference or chain variable ho┆
0x23700…23720 6c 64 73 20 61 20 72 65 66 65 80 72 65 6e 63 65 20 74 6f 20 61 20 6d 65 73 73 61 67 65 20 61 74 ┆lds a refeђrence to a message at┆
0x23720…23740 20 61 6e 79 20 74 69 80 0a 6d 65 3b 20 74 68 75 73 20 6d 75 74 75 61 6c 6c 79 20 65 78 63 6c 75 ┆ any tiђ me; thus mutually exclu┆
0x23740…23760 73 69 76 65 20 61 63 80 63 65 73 73 20 74 6f 20 6d 65 73 80 73 61 67 65 73 20 69 73 20 65 6e 73 ┆sive acђcess to mesђsages is ens┆
0x23760…23780 75 72 65 64 2e 0d 0a 0d 0a 41 63 63 65 73 73 20 74 6f 20 74 68 65 20 64 61 74 61 20 63 6f 6e 74 ┆ured. Access to the data cont┆
0x23780…237a0 61 69 6e 65 64 20 69 6e 20 61 20 6d 65 73 73 61 67 65 20 69 73 20 6f 6e 6c 79 20 70 6f 73 73 69 ┆ained in a message is only possi┆
0x237a0…237c0 62 6c 65 20 69 6e 20 61 20 6c 6f 63 6b 20 0a 73 74 61 74 65 6d 65 6e 74 20 28 63 66 2e 20 73 65 ┆ble in a lock statement (cf. se┆
0x237c0…237e0 63 74 69 6f 6e 20 35 2e 39 29 2e 0d 0a 0d 0a 54 68 65 20 61 63 63 65 73 73 20 72 69 67 68 74 20 ┆ction 5.9). The access right ┆
0x237e0…23800 69 73 20 65 78 63 68 61 6e 67 65 64 20 62 65 74 77 65 65 6e 20 70 72 6f 63 65 73 73 65 73 20 62 ┆is exchanged between processes b┆
0x23800…23820 79 20 6d 65 61 6e 73 20 6f 66 20 74 68 65 20 0a 70 72 65 64 65 66 69 6e 65 64 20 72 6f 75 74 69 ┆y means of the predefined routi┆
0x23820…23840 6e 65 73 20 73 69 67 6e 61 6c 2c 20 77 61 69 74 2c 20 77 61 69 74 64 65 6c 61 79 2c 20 61 6e 64 ┆nes signal, wait, waitdelay, and┆
0x23840…23860 20 72 65 74 75 72 6e 20 61 73 20 64 65 80 73 63 72 69 62 65 64 20 69 6e 20 0a 73 75 62 73 65 63 ┆ return as deђscribed in subsec┆
0x23860…23880 74 69 6f 6e 20 39 2e 32 2e 32 2e 0d 0a 16 73 63 0d 0a 4d 61 69 6c 62 6f 78 20 53 74 61 74 65 73 ┆tion 9.2.2. sc Mailbox States┆
0x23880…238a0 0d 0a 41 20 6d 61 69 6c 62 6f 78 20 6d 61 79 20 62 65 20 72 65 67 61 72 64 65 64 20 61 73 20 61 ┆ A mailbox may be regarded as a┆
0x238a0…238c0 20 77 61 69 74 69 6e 67 20 72 6f 6f 6d 20 69 6e 20 6f 6e 65 20 6f 66 20 74 68 65 20 73 74 61 80 ┆ waiting room in one of the staђ┆
0x238c0…238e0 74 65 73 20 0a bf dc d8 70 61 73 73 69 76 65 be 2c 20 bf dc d8 6f 70 65 6e be 2c 20 6f 72 20 bf ┆tes ┐▄пpassiveЙ, ┐▄пopenЙ, or ┐┆
0x238e0…23900 dc d8 6c 6f 63 6b 65 64 be 3a 0d 0a 0d 0a 70 61 73 73 69 76 65 3a 0d 0a 20 20 20 6d 62 78 20 20 ┆▄пlockedЙ: passive: mbx ┆
0x23900…23920 0d 0a 20 0d 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 31 34 20 20 38 20 34 22 0d 0a 20 20 20 20 20 ┆ ramme "5 0 14 8 4" ┆
0x23920…23940 20 20 20 20 20 84 4e 65 69 74 68 65 72 20 6d 65 73 73 61 67 65 73 20 74 6f 20 62 65 20 61 63 63 ┆ ёNeither messages to be acc┆
0x23940…23960 65 73 73 65 64 20 6e 6f 72 20 70 72 6f 63 65 73 73 65 73 20 20 61 73 6b 69 6e 67 20 66 6f 72 20 ┆essed nor processes asking for ┆
0x23960…23980 0a 19 8a 80 80 61 63 63 65 73 73 20 61 74 20 74 68 65 20 6d 61 69 6c 62 6f 78 2e 0d 0a 0d 0a 0d ┆ іђђaccess at the mailbox. ┆
0x23980…239a0 0a 0d 0a 20 6f 70 65 6e 3a 0d 0a 20 20 20 6d 62 78 20 20 0d 0a 20 0d 0a 01 72 61 6d 6d 65 20 22 ┆ open: mbx ramme "┆
0x239a0…239c0 35 20 30 20 31 34 20 38 20 36 22 0d 0a 20 20 20 20 20 20 20 20 20 20 20 41 20 71 75 65 75 65 20 ┆5 0 14 8 6" A queue ┆
0x239c0…239e0 6f 66 20 6d 65 73 73 61 67 65 73 20 28 61 63 74 75 61 6c 6c 79 20 73 74 61 63 6b 73 29 20 61 72 ┆of messages (actually stacks) ar┆
0x239e0…23a00 65 20 0d 0a 20 20 6d 65 73 31 20 20 20 20 20 72 65 61 64 79 20 66 6f 72 20 61 63 63 65 73 73 2c ┆e mes1 ready for access,┆
0x23a00…23a20 20 74 68 65 20 66 69 72 73 74 20 6f 6e 65 20 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 0d 0a ┆ the first one will be removed ┆
0x23a20…23a40 20 20 6d 65 73 32 20 20 20 20 20 66 72 6f 6d 20 74 68 65 20 71 75 65 75 65 20 77 68 65 6e 20 61 ┆ mes2 from the queue when a┆
0x23a40…23a60 20 70 72 6f 63 65 73 73 20 61 73 6b 73 20 66 6f 72 20 61 20 6d 65 73 73 61 67 65 2c 0d 0a 20 20 ┆ process asks for a message, ┆
0x23a60…23a80 6d 65 73 33 20 20 20 20 20 61 6e 64 20 74 68 65 20 70 72 6f 63 65 73 73 20 77 69 6c 6c 20 62 65 ┆mes3 and the process will be┆
0x23a80…23aa0 20 67 69 76 65 6e 20 74 68 65 20 61 63 63 65 73 73 20 72 69 67 68 74 2e 0d 0a 20 20 6d 65 73 34 ┆ given the access right. mes4┆
0x23aa0…23ac0 20 20 0d 0a 0d 0a 0d 0a 6c 6f 63 6b 65 64 3a 0d 0a 20 20 20 6d 62 78 20 20 20 20 20 0d 0a 20 0d ┆ locked: mbx ┆
0x23ac0…23ae0 0a 01 72 61 6d 6d 65 20 22 35 20 30 20 31 34 20 38 20 36 22 0d 0a 20 20 20 20 20 20 20 20 20 20 ┆ ramme "5 0 14 8 6" ┆
0x23ae0…23b00 20 41 20 71 75 65 75 65 20 6f 66 20 70 72 6f 63 65 73 73 65 73 20 61 72 65 20 77 61 69 74 69 6e ┆ A queue of processes are waitin┆
0x23b00…23b20 67 20 66 6f 72 20 61 63 63 65 73 73 20 74 6f 20 61 20 0d 0a 20 20 70 72 6f 63 31 20 20 20 20 6d ┆g for access to a proc1 m┆
0x23b20…23b40 65 73 73 61 67 65 3b 20 74 68 65 20 66 69 72 73 74 20 6f 6e 65 20 77 69 6c 6c 20 67 65 74 20 74 ┆essage; the first one will get t┆
0x23b40…23b60 68 65 20 61 63 63 65 73 73 20 72 69 67 68 74 0d 0a 20 20 70 72 6f 63 32 20 20 20 20 74 6f 20 74 ┆he access right proc2 to t┆
0x23b60…23b80 68 65 20 6e 65 78 74 20 6d 65 73 73 61 67 65 20 61 72 72 69 76 69 6e 67 20 61 74 20 74 68 65 20 ┆he next message arriving at the ┆
0x23b80…23ba0 6d 61 69 6c 62 6f 78 20 61 6e 64 0d 0a 20 20 70 72 6f 63 33 20 20 20 20 77 69 6c 6c 20 73 75 62 ┆mailbox and proc3 will sub┆
0x23ba0…23bc0 73 65 71 75 65 6e 74 6c 79 20 62 65 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20 71 75 ┆sequently be removed from the qu┆
0x23bc0…23be0 65 75 65 2e 0d 0a 20 20 70 72 6f 63 34 20 0d 0a 0d 0a 0d 0a 54 68 65 72 65 20 61 72 65 20 74 68 ┆eue. proc4 There are th┆
0x23be0…23c00 72 65 65 20 70 72 65 64 65 66 69 6e 65 64 20 62 6f 6f 6c 65 61 6e 20 66 75 6e 63 74 69 6f 6e 73 ┆ree predefined boolean functions┆
0x23c00…23c20 20 74 6f 20 69 6e 73 70 65 63 74 20 74 68 65 20 73 74 61 80 74 65 20 6f 66 20 0a 61 20 6d 61 69 ┆ to inspect the staђte of a mai┆
0x23c20…23c40 6c 62 6f 78 2e 20 48 6f 77 65 76 65 72 2c 20 69 74 20 69 73 20 6e 6f 74 20 6d 61 6e 64 61 74 6f ┆lbox. However, it is not mandato┆
0x23c40…23c60 72 79 20 74 68 61 74 20 74 68 65 73 65 20 66 75 6e 63 80 74 69 6f 6e 73 20 62 65 20 0a 69 6d 70 ┆ry that these funcђtions be imp┆
0x23c60…23c80 6c 65 6d 65 6e 74 65 64 2e 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 6f 70 65 6e 28 56 41 52 20 6d ┆lemented. FUNCTION open(VAR m┆
0x23c80…23ca0 62 78 3a 20 6d 61 69 6c 62 6f 78 29 3a 20 62 6f 6f 6c 65 61 6e 0d 0a 46 55 4e 43 54 49 4f 4e 20 ┆bx: mailbox): boolean FUNCTION ┆
0x23ca0…23cc0 6c 6f 63 6b 65 64 28 56 41 52 20 6d 62 78 3a 20 6d 61 69 6c 62 6f 78 29 3a 20 62 6f 6f 6c 65 61 ┆locked(VAR mbx: mailbox): boolea┆
0x23cc0…23ce0 6e 0d 0a 46 55 4e 43 54 49 4f 4e 20 70 61 73 73 69 76 65 28 56 41 52 20 6d 62 78 3a 20 6d 61 69 ┆n FUNCTION passive(VAR mbx: mai┆
0x23ce0…23d00 6c 62 6f 78 29 3a 20 62 6f 6f 6c 65 61 6e 0d 0a 16 73 63 0d 0a 43 6f 6d 6d 75 6e 69 63 61 74 69 ┆lbox): boolean sc Communicati┆
0x23d00…23d20 6f 6e 20 61 6e 64 20 53 79 6e 63 68 72 6f 6e 69 7a 61 74 69 6f 6e 20 50 72 69 6d 69 74 69 76 65 ┆on and Synchronization Primitive┆
0x23d20…23d40 73 0d 0a 54 68 65 72 65 20 61 72 65 20 66 6f 75 72 20 70 72 65 64 65 66 69 6e 65 64 20 63 6f 6d ┆s There are four predefined com┆
0x23d40…23d60 6d 75 6e 69 63 61 74 69 6f 6e 2f 73 79 6e 63 68 72 6f 6e 69 7a 61 74 69 6f 6e 20 70 72 69 80 6d ┆munication/synchronization priђm┆
0x23d60…23d80 69 74 69 80 76 65 73 3a 20 0a 73 69 67 6e 61 6c 2c 20 72 65 74 75 72 6e 2c 20 77 61 69 74 2c 20 ┆itiђves: signal, return, wait, ┆
0x23d80…23da0 61 6e 64 20 77 61 69 74 64 65 6c 61 79 2e 20 49 6e 20 61 64 64 69 74 69 6f 6e 20 74 68 65 20 64 ┆and waitdelay. In addition the d┆
0x23da0…23dc0 65 6c 61 79 20 70 72 69 6d 69 74 69 76 65 20 0a 6d 61 79 20 62 65 20 75 73 65 64 20 66 6f 72 20 ┆elay primitive may be used for ┆
0x23dc0…23de0 70 75 72 70 6f 73 65 73 20 6f 66 20 73 79 6e 63 68 72 6f 6e 69 7a 61 80 74 69 6f 6e 20 6f 72 20 ┆purposes of synchronizaђtion or ┆
0x23de0…23e00 74 65 6d 70 6f 80 72 61 72 79 20 70 72 6f 63 65 73 73 20 0a 73 75 73 70 65 6e 73 69 6f 6e 2e 0d ┆tempoђrary process suspension. ┆
0x23e00…23e20 0a 0d 0a 8c 94 a0 0a 53 69 67 6e 61 6c 20 69 73 20 70 65 72 66 6f 72 6d 65 64 20 62 79 20 61 20 ┆ їћа Signal is performed by a ┆
0x23e20…23e40 63 61 6c 6c 20 6f 66 20 74 68 65 20 70 72 65 64 65 66 69 6e 65 64 20 70 72 6f 63 65 64 75 72 65 ┆call of the predefined procedure┆
0x23e40…23e60 20 73 69 67 6e 61 6c 3a 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 73 69 67 6e 61 6c be ┆ signal: PROCEDURE ┐▄пsignalЙ┆
0x23e60…23e80 28 56 41 52 20 72 65 66 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 56 41 52 20 6d 62 78 3a 20 6d 61 ┆(VAR ref: reference; VAR mbx: ma┆
0x23e80…23ea0 69 6c 62 6f 78 29 0d 0a 0d 0a 54 68 65 20 76 61 6c 75 65 20 6f 66 20 72 65 66 20 6d 75 73 74 20 ┆ilbox) The value of ref must ┆
0x23ea0…23ec0 6e 6f 74 20 62 65 20 4e 49 4c 20 6f 72 20 74 68 65 20 72 65 66 65 72 65 6e 63 65 20 6c 6f 63 6b ┆not be NIL or the reference lock┆
0x23ec0…23ee0 65 64 20 28 63 66 2e 20 73 65 63 80 0a 74 69 6f 6e 20 35 2e 39 29 2c 20 6f 74 68 65 72 77 69 73 ┆ed (cf. secђ tion 5.9), otherwis┆
0x23ee0…23f00 65 20 61 20 66 61 75 6c 74 20 6f 63 63 75 72 73 2e 20 41 66 74 65 72 20 74 68 65 20 63 61 6c 6c ┆e a fault occurs. After the call┆
0x23f00…23f20 2c 20 74 68 65 20 6d 65 73 73 61 80 67 65 20 0a 64 65 73 69 67 6e 61 74 65 64 20 62 79 20 72 65 ┆, the messaђge designated by re┆
0x23f20…23f40 66 20 69 73 20 65 6e 74 65 72 65 64 20 61 73 20 74 68 65 20 6c 61 73 74 20 65 6c 65 6d 65 6e 74 ┆f is entered as the last element┆
0x23f40…23f60 20 6f 66 20 74 68 65 20 71 75 65 75 65 20 6f 66 20 6d 65 73 80 0a 73 61 67 65 73 20 62 65 6c 6f ┆ of the queue of mesђ sages belo┆
0x23f60…23f80 6e 67 69 6e 67 20 74 6f 20 6d 62 78 2e 20 49 66 20 74 68 65 20 6d 61 69 6c 62 6f 78 20 69 73 20 ┆nging to mbx. If the mailbox is ┆
0x23f80…23fa0 6c 6f 63 6b 65 64 2c 20 74 68 65 20 66 69 72 73 74 20 70 72 6f 63 65 73 73 20 69 73 20 0a 72 65 ┆locked, the first process is re┆
0x23fa0…23fc0 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 6f 66 20 77 61 69 80 74 69 6e 67 20 ┆moved from the list of waiђting ┆
0x23fc0…23fe0 70 72 6f 63 65 73 73 65 73 2e 20 54 68 69 73 20 70 72 6f 80 63 65 73 73 20 69 73 20 6e 6f 77 20 ┆processes. This proђcess is now ┆
0x23fe0…24000 61 6c 6c 6f 80 0a 77 65 64 20 74 6f 20 63 6f 6d 70 6c 65 74 65 20 74 68 65 20 63 61 6c 6c 20 6f ┆alloђ wed to complete the call o┆
0x24000…24020 66 20 77 61 69 74 2f 77 61 69 74 64 65 6c 61 79 20 77 68 69 63 68 20 63 61 75 73 65 64 20 69 74 ┆f wait/waitdelay which caused it┆
0x24020…24040 73 20 69 6e 73 65 72 74 69 6f 6e 20 0a 69 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 74 68 65 20 ┆s insertion in the list of the ┆
0x24040…24060 6d 61 69 6c 62 6f 78 2e 20 54 68 65 20 65 76 65 6e 74 20 6b 69 6e 64 20 61 74 74 72 69 62 75 74 ┆mailbox. The event kind attribut┆
0x24060…24080 65 20 6f 66 20 74 68 65 20 64 65 73 69 80 67 6e 61 74 65 64 20 0a 6d 65 73 73 61 67 65 20 62 65 ┆e of the desiђgnated message be┆
0x24080…240a0 63 6f 6d 65 73 20 6d 65 73 73 61 67 65 5f 65 76 65 6e 74 2e 0d 0a 0d 0a 54 68 65 20 6c 61 6e 67 ┆comes message_event. The lang┆
0x240a0…240c0 75 61 67 65 20 70 72 6f 76 69 64 65 73 20 74 77 6f 20 6b 69 6e 64 73 20 6f 66 20 65 76 65 6e 74 ┆uage provides two kinds of event┆
0x240c0…240e0 73 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 77 61 69 80 74 65 64 20 66 6f 72 3a 0d 0a 2d 20 74 ┆s which can be waiђted for: - t┆
0x240e0…24100 68 65 20 61 72 72 69 76 61 6c 20 6f 66 20 61 20 6d 65 73 73 61 67 65 20 61 74 20 61 20 73 70 65 ┆he arrival of a message at a spe┆
0x24100…24120 63 69 66 69 65 64 20 6d 61 69 6c 62 6f 78 2e 0d 0a 2d 20 84 74 68 65 20 65 78 70 69 72 79 20 6f ┆cified mailbox. - ёthe expiry o┆
0x24120…24140 66 20 61 20 64 65 6c 61 79 2c 20 73 70 65 63 69 66 69 65 64 20 61 73 20 61 20 6e 75 6d 62 65 72 ┆f a delay, specified as a number┆
0x24140…24160 20 6f 66 20 6d 69 6c 6c 69 73 65 80 80 63 6f 6e 64 73 2e 20 41 6e 20 0a 19 82 80 80 69 6d 70 6c ┆ of milliseђђconds. An ѓђђimpl┆
0x24160…24180 65 6d 65 6e 74 61 74 69 6f 6e 20 6e 65 65 64 20 6e 6f 74 2c 20 68 6f 77 65 76 65 72 2c 20 73 75 ┆ementation need not, however, su┆
0x24180…241a0 70 70 6f 72 74 20 73 75 63 68 20 66 69 6e 65 20 67 72 61 6e 75 80 6c 61 72 69 74 79 2e 20 49 66 ┆pport such fine granuђlarity. If┆
0x241a0…241c0 20 0a 19 82 80 80 74 68 65 20 64 65 6c 61 79 20 69 73 20 73 70 65 63 69 66 69 65 64 20 61 73 20 ┆ ѓђђthe delay is specified as ┆
0x241c0…241e0 7a 65 72 6f 2c 20 74 68 65 20 63 61 6c 6c 20 28 64 65 6c 61 79 2c 20 77 61 69 74 80 64 65 6c 61 ┆zero, the call (delay, waitђdela┆
0x241e0…24200 79 2c 20 6f 72 20 61 6c 6c 6f 63 80 0a 19 82 80 80 64 65 6c 61 79 29 20 77 69 6c 6c 20 72 65 74 ┆y, or allocђ ѓђђdelay) will ret┆
0x24200…24220 75 72 6e 20 69 6d 6d 65 80 64 69 80 61 74 65 6c 79 2e 0d 0a 0d 0a 41 20 70 72 6f 63 65 73 73 20 ┆urn immeђdiђately. A process ┆
0x24220…24240 6d 61 79 20 77 61 69 74 20 66 6f 72 20 6f 6e 65 20 73 70 65 63 69 66 69 63 20 65 76 65 6e 74 20 ┆may wait for one specific event ┆
0x24240…24260 6f 72 20 66 6f 72 20 74 68 65 20 66 69 72 73 74 20 6f 6e 65 20 6f 66 20 0a 74 77 6f 2c 20 6f 6e ┆or for the first one of two, on┆
0x24260…24280 65 20 6f 66 20 65 61 63 68 20 6b 69 6e 64 2e 20 49 74 20 64 6f 65 73 20 73 6f 20 62 79 20 63 61 ┆e of each kind. It does so by ca┆
0x24280…242a0 6c 6c 69 6e 67 20 6f 6e 65 20 6f 66 20 74 68 65 20 66 6f 6c 80 6c 6f 77 69 6e 67 20 0a 72 6f 75 ┆lling one of the folђlowing rou┆
0x242a0…242c0 74 69 6e 65 73 2e 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 77 61 69 74 be 28 56 41 52 ┆tines. PROCEDURE ┐▄пwaitЙ(VAR┆
0x242c0…242e0 20 72 65 66 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 56 41 52 20 6d 62 78 3a 20 6d 61 69 6c 62 6f ┆ ref: reference; VAR mbx: mailbo┆
0x242e0…24300 78 29 0d 0a 0d 0a 54 68 65 20 76 61 6c 75 65 20 6f 66 20 72 65 66 20 6d 75 73 74 20 62 65 20 4e ┆x) The value of ref must be N┆
0x24300…24320 49 4c 20 70 72 69 6f 72 20 74 6f 20 61 20 63 61 6c 6c 2c 20 6f 74 68 65 72 77 69 73 65 20 61 20 ┆IL prior to a call, otherwise a ┆
0x24320…24340 66 61 75 6c 74 20 6f 63 80 0a 63 75 72 73 2e 20 49 66 20 74 68 65 20 6d 61 69 6c 62 6f 78 20 6d ┆fault ocђ curs. If the mailbox m┆
0x24340…24360 62 78 20 69 73 20 6f 70 65 6e 2c 20 74 68 65 20 66 69 72 73 74 20 6d 65 73 73 61 67 65 20 73 74 ┆bx is open, the first message st┆
0x24360…24380 61 63 6b 20 69 6e 20 74 68 65 20 6c 69 73 74 20 0a 69 73 20 72 65 6d 6f 76 65 64 20 61 6e 64 20 ┆ack in the list is removed and ┆
0x24380…243a0 72 65 66 20 77 69 6c 6c 20 64 65 73 69 67 6e 61 74 65 20 74 68 69 73 20 73 74 61 63 6b 2e 20 49 ┆ref will designate this stack. I┆
0x243a0…243c0 66 20 74 68 65 20 6d 61 69 6c 62 6f 78 20 73 74 61 74 65 20 69 73 20 0a 6c 6f 63 6b 65 64 20 6f ┆f the mailbox state is locked o┆
0x243c0…243e0 72 20 70 61 73 73 69 76 65 20 74 68 65 20 70 72 6f 63 65 73 73 20 69 73 20 73 75 73 70 65 6e 64 ┆r passive the process is suspend┆
0x243e0…24400 65 64 20 61 6e 64 20 65 6e 80 74 65 72 65 64 20 61 73 20 74 68 65 20 6c 61 73 74 20 0a 65 6c 65 ┆ed and enђtered as the last ele┆
0x24400…24420 6d 65 6e 74 20 6f 66 20 74 68 65 20 6c 69 73 74 20 6f 66 20 77 61 69 74 69 6e 67 20 70 72 6f 63 ┆ment of the list of waiting proc┆
0x24420…24440 65 73 73 65 73 20 28 46 49 46 4f 20 73 74 72 61 74 65 67 79 29 2e 0d 0a 0d 0a 50 52 4f 43 45 44 ┆esses (FIFO strategy). PROCED┆
0x24440…24460 55 52 45 20 bf dc d8 64 65 6c 61 79 be 28 6e 6f 5f 6f 66 5f 6d 73 65 63 73 3a 20 30 2e 2e 6d 61 ┆URE ┐▄пdelayЙ(no_of_msecs: 0..ma┆
0x24460…24480 78 69 6e 74 29 0d 0a 0d 0a 54 68 65 20 70 72 6f 63 65 73 73 20 69 73 20 73 75 73 70 65 6e 64 65 ┆xint) The process is suspende┆
0x24480…244a0 64 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 ┆d according to the value of the ┆
0x244a0…244c0 70 61 72 61 80 6d 65 80 74 65 72 2e 0d 0a 0d 0a 0e 0a 46 55 4e 43 54 49 4f 4e 20 bf dc d8 77 61 ┆paraђmeђter. FUNCTION ┐▄пwa┆
0x244c0…244e0 69 74 64 65 6c 61 79 be 28 56 41 52 20 72 65 66 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 56 41 52 ┆itdelayЙ(VAR ref: reference; VAR┆
0x244e0…24500 20 6d 62 78 3a 20 6d 61 69 6c 62 6f 78 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ mbx: mailbox; ┆
0x24500…24520 20 20 20 6e 6f 5f 6f 66 5f 6d 73 65 63 73 3a 20 30 2e 2e 6d 61 78 69 6e 74 29 3a 20 61 63 74 69 ┆ no_of_msecs: 0..maxint): acti┆
0x24520…24540 76 61 74 69 6f 6e 0d 0a 0f 0a 0d 0a 54 68 65 20 76 61 6c 75 65 20 6f 66 20 72 65 66 20 6d 75 73 ┆vation The value of ref mus┆
0x24540…24560 74 20 62 65 20 4e 49 4c 20 70 72 69 6f 72 20 74 6f 20 61 20 63 61 6c 6c 2c 20 6f 74 68 65 72 77 ┆t be NIL prior to a call, otherw┆
0x24560…24580 69 73 65 20 61 20 66 61 75 6c 74 20 6f 63 80 0a 63 75 72 73 2e 20 49 66 20 74 68 65 20 6d 61 69 ┆ise a fault ocђ curs. If the mai┆
0x24580…245a0 6c 62 6f 78 20 6d 62 78 20 69 73 20 6f 70 65 6e 2c 20 74 68 65 20 66 69 72 73 74 20 6d 65 73 73 ┆lbox mbx is open, the first mess┆
0x245a0…245c0 61 67 65 20 73 74 61 63 6b 20 69 6e 20 74 68 65 20 6c 69 73 74 20 0a 69 73 20 72 65 6d 6f 76 65 ┆age stack in the list is remove┆
0x245c0…245e0 64 20 61 6e 64 20 72 65 66 20 77 69 6c 6c 20 64 65 73 69 67 6e 61 74 65 20 74 68 69 73 20 73 74 ┆d and ref will designate this st┆
0x245e0…24600 61 63 6b 2e 20 49 66 20 74 68 65 20 6d 61 69 6c 62 6f 78 20 73 74 61 74 65 20 69 73 20 0a 6c 6f ┆ack. If the mailbox state is lo┆
0x24600…24620 63 6b 65 64 20 6f 72 20 70 61 73 73 69 76 65 20 74 68 65 20 70 72 6f 63 65 73 73 20 69 73 20 73 ┆cked or passive the process is s┆
0x24620…24640 75 73 70 65 6e 64 65 64 20 75 6e 74 69 6c 20 6f 6e 65 20 6f 66 20 74 68 65 20 65 76 65 6e 74 73 ┆uspended until one of the events┆
0x24640…24660 20 0a 65 76 65 6e 74 75 61 6c 6c 79 20 6f 63 63 75 72 73 2e 20 54 68 65 20 72 65 73 75 6c 74 20 ┆ eventually occurs. The result ┆
0x24660…24680 69 6e 64 69 63 61 74 65 73 20 74 68 65 20 72 65 61 73 6f 6e 20 77 68 79 20 74 68 65 20 70 72 6f ┆indicates the reason why the pro┆
0x24680…246a0 63 65 73 73 20 69 73 20 0a 61 63 74 69 76 61 74 65 64 3b 20 69 74 73 20 74 79 70 65 20 69 73 20 ┆cess is activated; its type is ┆
0x246a0…246c0 74 68 65 20 28 69 6d 70 6c 65 6d 65 6e 74 61 80 74 69 6f 6e 20 64 65 70 65 6e 64 65 6e 74 29 20 ┆the (implementaђtion dependent) ┆
0x246c0…246e0 70 72 65 64 65 66 69 6e 65 64 20 65 6e 75 80 0a 6d 65 80 72 61 74 69 6f 6e 20 74 79 70 65 0d 0a ┆predefined enuђ meђration type ┆
0x246e0…24700 0d 0a 20 20 20 61 63 74 69 76 61 74 69 6f 6e 3d 20 28 61 5f 6d 61 69 6c 62 6f 78 2c 20 61 5f 64 ┆ activation= (a_mailbox, a_d┆
0x24700…24720 65 6c 61 79 2c 20 2e 2e 2e 29 2e 0d 0a 0d 0a 8c 89 98 0a 47 65 74 74 69 6e 67 20 61 20 6d 65 73 ┆elay, ...). їЅў Getting a mes┆
0x24720…24740 73 61 67 65 20 66 72 6f 6d 20 61 20 70 6f 6f 6c 2c 20 63 66 2e 20 73 65 63 74 69 6f 6e 20 33 2e ┆sage from a pool, cf. section 3.┆
0x24740…24760 37 2c 20 69 73 20 73 69 6d 69 6c 61 72 20 74 6f 20 72 65 80 63 65 69 76 69 6e 67 20 0a 61 20 6d ┆7, is similar to reђceiving a m┆
0x24760…24780 65 73 73 61 67 65 20 66 72 6f 6d 20 61 20 6d 61 69 6c 62 6f 78 2e 20 41 20 73 70 65 63 69 61 6c ┆essage from a mailbox. A special┆
0x24780…247a0 20 76 65 72 73 69 6f 6e 20 6f 66 20 61 6c 6c 6f 63 20 69 73 20 74 68 65 72 65 66 6f 72 65 20 0a ┆ version of alloc is therefore ┆
0x247a0…247c0 61 76 61 69 6c 61 62 6c 65 20 77 68 69 63 68 20 61 6c 6c 6f 77 73 20 74 68 65 20 73 70 65 63 69 ┆available which allows the speci┆
0x247c0…247e0 66 69 63 61 74 69 6f 6e 20 6f 66 20 61 20 6d 61 78 69 6d 75 6d 20 64 65 6c 61 79 20 77 68 69 63 ┆fication of a maximum delay whic┆
0x247e0…24800 68 20 61 20 0a 70 72 6f 63 65 73 73 20 77 69 6c 6c 20 74 6f 6c 65 72 61 74 65 2e 0d 0a 0d 0a 0e ┆h a process will tolerate. ┆
0x24800…24820 0a 46 55 4e 43 54 49 4f 4e 20 bf dc d8 61 6c 6c 6f 63 64 65 6c 61 79 be 28 56 41 52 20 72 3a 20 ┆ FUNCTION ┐▄пallocdelayЙ(VAR r: ┆
0x24820…24840 72 65 66 65 72 65 6e 63 65 3b 20 56 41 52 20 70 3a 20 70 6f 6f 6c 3b 0d 0a 20 20 20 20 20 20 20 ┆reference; VAR p: pool; ┆
0x24840…24860 20 20 20 20 20 20 20 20 56 41 52 20 72 61 3a 20 6d 61 69 6c 62 6f 78 3b 20 6e 6f 5f 6f 66 5f 6d ┆ VAR ra: mailbox; no_of_m┆
0x24860…24880 73 65 63 73 3a 20 30 2e 2e 6d 61 78 69 6e 74 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆secs: 0..maxint): ┆
0x24880…248a0 20 20 61 63 74 69 76 61 74 69 6f 6e 0d 0a 0f 0a 0d 0a 54 68 65 20 64 65 73 63 72 69 70 74 69 6f ┆ activation The descriptio┆
0x248a0…248c0 6e 20 6f 66 20 61 6c 6c 6f 63 2c 20 63 66 2e 20 73 65 63 74 69 6f 6e 20 33 2e 37 2c 20 61 70 70 ┆n of alloc, cf. section 3.7, app┆
0x248c0…248e0 6c 69 65 73 20 61 6c 73 6f 20 74 6f 20 61 6c 6c 6f 63 64 65 80 6c 61 79 20 0a 77 69 74 68 20 74 ┆lies also to allocdeђlay with t┆
0x248e0…24900 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 74 68 61 74 20 69 6e 20 63 61 73 65 20 74 68 65 ┆he modification that in case the┆
0x24900…24920 20 64 65 6c 61 79 20 73 70 65 80 63 69 66 69 65 64 20 62 79 20 6e 6f 5f 6f 66 5f 6d 73 65 63 73 ┆ delay speђcified by no_of_msecs┆
0x24920…24940 20 0a 65 78 70 69 72 65 73 20 62 65 66 6f 72 65 20 74 68 65 20 63 61 6c 6c 69 6e 67 20 70 72 6f ┆ expires before the calling pro┆
0x24940…24960 63 65 73 73 20 6f 62 80 74 61 69 6e 73 20 61 20 6d 65 73 73 61 67 65 20 74 68 65 20 63 61 6c 6c ┆cess obђtains a message the call┆
0x24960…24980 20 77 69 6c 6c 20 0a 72 65 74 75 72 6e 20 74 68 65 20 72 65 73 75 6c 74 20 61 5f 64 65 6c 61 79 ┆ will return the result a_delay┆
0x24980…249a0 20 61 6e 64 20 6f 74 68 65 72 77 69 73 65 20 68 61 76 65 20 6e 6f 20 65 66 80 66 65 63 74 2e 20 ┆ and otherwise have no efђfect. ┆
0x249a0…249c0 49 66 20 61 20 6d 65 73 73 61 67 65 20 0a 69 73 20 6f 62 74 61 69 6e 65 64 20 74 68 65 20 72 65 ┆If a message is obtained the re┆
0x249c0…249e0 80 73 75 6c 74 20 77 69 6c 6c 20 62 65 20 61 5f 6d 61 69 6c 62 6f 78 2e 0d 0a 0d 0a 52 65 74 75 ┆ђsult will be a_mailbox. Retu┆
0x249e0…24a00 72 6e 20 69 73 20 70 65 72 66 6f 72 6d 65 64 20 62 79 20 61 20 63 61 6c 6c 20 6f 66 20 74 68 65 ┆rn is performed by a call of the┆
0x24a00…24a20 20 70 72 65 64 65 66 69 6e 65 64 20 70 72 6f 63 65 64 75 72 65 20 72 65 80 74 75 72 6e 3a 0d 0a ┆ predefined procedure reђturn: ┆
0x24a20…24a40 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 72 65 74 75 72 6e be 28 56 41 52 20 72 65 66 3a 20 ┆ PROCEDURE ┐▄пreturnЙ(VAR ref: ┆
0x24a40…24a60 72 65 66 65 72 65 6e 63 65 29 0d 0a 0d 0a 54 68 65 20 63 61 6c 6c 3a 09 09 72 65 74 75 72 6e 28 ┆reference) The call: return(┆
0x24a60…24a80 72 65 66 29 0d 0a 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 3a 09 73 69 67 6e 61 6c 28 72 ┆ref) is equivalent to: signal(r┆
0x24a80…24aa0 65 66 2c 20 72 65 74 5f 61 64 64 72 65 73 73 29 0d 0a 77 68 65 72 65 20 72 65 74 5f 61 64 64 72 ┆ef, ret_address) where ret_addr┆
0x24aa0…24ac0 65 73 73 20 64 65 6e 6f 74 65 73 20 74 68 65 20 72 65 74 75 72 6e 20 61 64 64 72 65 73 73 20 6f ┆ess denotes the return address o┆
0x24ac0…24ae0 66 20 74 68 65 20 6d 65 73 73 61 67 65 20 64 65 80 0a 73 69 67 6e 61 74 65 64 20 62 79 20 72 65 ┆f the message deђ signated by re┆
0x24ae0…24b00 66 2c 20 63 66 2e 20 73 65 63 74 69 6f 6e 20 33 2e 37 2c 20 65 78 63 65 70 74 20 66 6f 72 20 74 ┆f, cf. section 3.7, except for t┆
0x24b00…24b20 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 65 76 65 6e 74 20 0a 6b 69 6e 64 20 61 74 74 72 ┆he value of the event kind attr┆
0x24b20…24b40 69 62 75 74 65 20 77 68 69 63 68 20 62 65 63 6f 6d 65 73 20 61 6e 73 77 65 72 5f 65 76 65 6e 74 ┆ibute which becomes answer_event┆
0x24b40…24b60 2e 0d 0a 0d 0a a1 4e 6f 74 65 73 3a 0d 0a 41 20 6d 61 69 6c 62 6f 78 20 6d 61 79 20 62 65 20 69 ┆. АNotes: A mailbox may be i┆
0x24b60…24b80 6e 73 70 65 63 74 65 64 20 77 69 74 68 6f 75 74 20 68 61 76 69 6e 67 20 74 6f 20 77 61 69 74 20 ┆nspected without having to wait ┆
0x24b80…24ba0 69 66 20 69 74 20 69 73 20 65 6d 70 80 74 79 20 62 79 20 0a 63 61 6c 6c 69 6e 67 20 77 61 69 74 ┆if it is empђty by calling wait┆
0x24ba0…24bc0 64 65 6c 61 79 20 77 69 74 68 20 7a 65 72 6f 20 64 65 6c 61 79 2e 0d 0a 0d 0a 41 6e 20 69 6d 70 ┆delay with zero delay. An imp┆
0x24bc0…24be0 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6d 75 73 74 20 73 65 63 75 72 65 20 69 6e 64 69 76 69 73 69 ┆lementation must secure indivisi┆
0x24be0…24c00 62 69 6c 69 74 79 20 6f 66 20 74 68 65 20 63 6f 6d 6d 75 6e 69 80 63 61 80 74 69 6f 6e 20 70 72 ┆bility of the communiђcaђtion pr┆
0x24c00…24c20 69 80 0a 6d 69 74 69 76 65 73 2e 0d 0a 0d 0a a1 45 78 61 6d 70 6c 65 3a 0d 0a 54 68 65 20 66 6f ┆iђ mitives. АExample: The fo┆
0x24c20…24c40 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 66 6c 6f 77 20 69 73 20 70 6f ┆llowing communication flow is po┆
0x24c40…24c60 73 73 69 62 6c 65 20 62 79 20 6d 65 61 6e 73 20 6f 66 20 73 69 80 67 6e 61 6c 20 61 6e 64 20 0a ┆ssible by means of siђgnal and ┆
0x24c60…24c80 72 65 74 75 72 6e 2e 20 45 61 63 68 20 70 72 6f 63 65 73 73 20 70 82 69 81 20 6d 75 73 74 20 6b ┆return. Each process pѓiЂ must k┆
0x24c80…24ca0 6e 6f 77 20 74 68 65 20 28 6d 61 69 6c 62 6f 78 29 20 61 64 80 64 72 65 73 73 20 6f 66 20 70 72 ┆now the (mailbox) adђdress of pr┆
0x24ca0…24cc0 6f 63 65 73 73 20 0a 70 82 69 2b 31 81 2e 20 48 6f 77 65 76 65 72 2c 20 70 72 6f 63 65 73 73 20 ┆ocess pѓi+1Ђ. However, process ┆
0x24cc0…24ce0 70 82 6e 81 20 64 6f 65 73 20 6e 6f 74 20 6b 6e 6f 77 20 70 72 6f 63 65 73 73 20 70 82 31 81 2e ┆pѓnЂ does not know process pѓ1Ђ.┆
0x24ce0…24d00 0d 0a 0d 0a 0d 0a 8c 87 90 0a 0e 0a 20 20 20 20 20 73 69 67 6e 61 6c 09 73 69 67 6e 61 6c 09 09 ┆ їЄљ signal signal ┆
0x24d00…24d20 73 69 67 6e 61 6c 0d 0a 0d 0a 0d 0a 20 20 70 82 31 81 20 20 20 20 20 20 20 70 82 32 81 20 20 20 ┆signal pѓ1Ђ pѓ2Ђ ┆
0x24d20…24d40 20 20 20 20 20 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 70 82 6e 81 0d 0a 0d ┆ ... pѓnЂ ┆
0x24d40…24d60 0a 0d 0a 20 09 09 20 20 20 72 65 74 75 72 6e 0d 0a 0f 0a 16 73 61 0d 0a 4d 45 53 53 41 47 45 20 ┆ return sa MESSAGE ┆
0x24d60…24d80 4d 41 4e 49 50 55 4c 41 54 49 4f 4e 0d 0a 54 77 6f 20 73 74 72 75 63 74 75 72 65 73 20 66 6f 72 ┆MANIPULATION Two structures for┆
0x24d80…24da0 20 6f 72 67 61 6e 69 7a 69 6e 67 20 6d 65 73 73 61 67 65 73 20 61 72 65 20 73 75 70 70 6f 72 74 ┆ organizing messages are support┆
0x24da0…24dc0 65 64 20 62 79 20 74 68 65 20 6c 61 6e 67 75 61 67 65 3a 20 0a 73 74 61 63 6b 73 20 61 6e 64 20 ┆ed by the language: stacks and ┆
0x24dc0…24de0 63 68 61 69 6e 73 2e 20 41 20 bf dc d8 6d 65 73 73 61 67 65 20 73 74 61 63 6b be 20 69 73 20 74 ┆chains. A ┐▄пmessage stackЙ is t┆
0x24de0…24e00 68 65 20 67 65 6e 65 72 61 6c 20 66 6f 72 6d 20 6f 66 20 61 20 6d 65 73 73 61 67 65 2c 20 0a 77 ┆he general form of a message, w┆
0x24e00…24e20 68 65 72 65 20 61 20 73 74 61 63 6b 20 77 69 74 68 20 6f 6e 6c 79 20 6f 6e 65 20 6d 65 73 73 61 ┆here a stack with only one messa┆
0x24e20…24e40 67 65 20 69 73 20 61 20 73 70 65 63 69 61 6c 20 63 61 73 65 2e 20 41 63 63 65 73 73 20 74 6f 20 ┆ge is a special case. Access to ┆
0x24e40…24e60 61 20 0a 73 74 61 63 6b 20 6d 61 79 20 62 65 20 74 72 61 6e 73 66 65 72 72 65 64 20 62 65 74 77 ┆a stack may be transferred betw┆
0x24e60…24e80 65 65 6e 20 70 72 6f 63 65 73 73 65 73 20 76 69 61 20 61 20 6d 61 69 6c 62 6f 78 20 28 63 66 2e ┆een processes via a mailbox (cf.┆
0x24e80…24ea0 20 73 65 63 74 69 6f 6e 20 0a 39 2e 32 29 2e 20 54 68 65 20 bf dc d8 63 68 61 69 6e be 20 73 74 ┆ section 9.2). The ┐▄пchainЙ st┆
0x24ea0…24ec0 72 75 63 80 74 75 72 65 20 69 73 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 6c 6f 63 61 6c 20 6f ┆rucђture is intended for local o┆
0x24ec0…24ee0 72 67 61 6e 69 7a 61 74 69 6f 6e 20 6f 66 20 6d 65 73 73 61 80 0a 67 65 73 20 69 6e 20 61 20 70 ┆rganization of messaђ ges in a p┆
0x24ee0…24f00 72 6f 63 65 73 73 2e 20 54 68 65 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 61 20 63 68 61 69 6e 20 ┆rocess. The elements of a chain ┆
0x24f00…24f20 61 72 65 20 6d 65 73 73 61 67 65 20 73 74 61 63 6b 73 2e 20 54 68 65 79 20 0a 61 72 65 20 61 63 ┆are message stacks. They are ac┆
0x24f20…24f40 63 65 73 73 65 64 20 62 79 20 61 20 68 61 6e 64 6c 65 3a 20 61 20 76 61 72 69 61 62 6c 65 20 6f ┆cessed by a handle: a variable o┆
0x24f40…24f60 66 20 74 79 70 65 20 63 68 61 69 6e 2e 20 54 68 65 20 65 6c 65 80 6d 65 6e 74 73 20 6f 66 20 61 ┆f type chain. The eleђments of a┆
0x24f60…24f80 20 0a 6d 65 73 73 61 67 65 20 73 74 61 63 6b 20 61 72 65 20 6d 65 73 73 61 67 65 73 2e 20 54 68 ┆ message stack are messages. Th┆
0x24f80…24fa0 65 79 20 61 72 65 20 61 63 63 65 73 73 65 64 20 62 79 20 61 20 68 61 6e 64 6c 65 3a 20 61 20 72 ┆ey are accessed by a handle: a r┆
0x24fa0…24fc0 65 80 0a 66 65 72 65 6e 63 65 20 76 61 72 69 61 62 6c 65 20 28 6f 72 20 64 69 72 65 63 74 6c 79 ┆eђ ference variable (or directly┆
0x24fc0…24fe0 20 62 79 20 61 20 63 68 61 69 6e 20 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 74 68 65 20 63 ┆ by a chain in the case of the c┆
0x24fe0…25000 75 72 72 65 6e 74 20 0a 6d 65 73 73 61 67 65 29 2e 20 54 68 65 20 6d 61 6e 69 70 75 6c 61 74 69 ┆urrent message). The manipulati┆
0x25000…25020 6f 6e 20 6f 66 20 6d 65 73 73 61 80 67 65 20 73 74 61 63 6b 73 20 69 73 20 64 65 73 63 72 69 62 ┆on of messaђge stacks is describ┆
0x25020…25040 65 64 20 69 6e 20 73 65 63 74 69 6f 6e 20 0a 31 30 2e 31 20 61 6e 64 20 6f 66 20 63 68 61 69 6e ┆ed in section 10.1 and of chain┆
0x25040…25060 73 20 69 6e 20 73 65 63 80 74 69 6f 6e 20 31 30 2e 32 2e 0d 0a 16 73 62 0d 0a 4d 65 73 73 61 67 ┆s in secђtion 10.2. sb Messag┆
0x25060…25080 65 20 53 74 61 63 6b 73 0d 0a 41 20 73 74 61 63 6b 20 69 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 ┆e Stacks A stack is one or more┆
0x25080…250a0 20 6d 65 73 73 61 67 65 73 2c 20 6f 72 67 61 6e 69 7a 65 64 20 61 73 20 61 20 6c 69 66 6f 20 6c ┆ messages, organized as a lifo l┆
0x250a0…250c0 69 73 74 20 73 6f 20 74 68 61 74 20 0a 6d 61 6e 69 70 75 6c 61 74 69 6f 6e 20 61 66 66 65 63 74 ┆ist so that manipulation affect┆
0x250c0…250e0 73 20 74 68 65 20 79 6f 75 6e 67 65 73 74 20 6d 65 6d 62 65 72 20 6f 6e 6c 79 2e 20 41 63 63 65 ┆s the youngest member only. Acce┆
0x250e0…25100 73 73 20 74 6f 20 74 68 65 20 64 61 74 61 20 69 6e 20 0a 61 20 73 74 61 63 6b 20 6f 66 20 6d 65 ┆ss to the data in a stack of me┆
0x25100…25120 73 73 61 67 65 73 20 69 73 20 61 63 68 69 65 76 65 64 20 62 79 20 6d 65 61 6e 73 20 6f 66 20 61 ┆ssages is achieved by means of a┆
0x25120…25140 20 6c 6f 63 6b 20 73 74 61 80 74 65 6d 65 6e 74 20 28 63 66 2e 20 0a 73 65 63 74 69 6f 6e 20 35 ┆ lock staђtement (cf. section 5┆
0x25140…25160 2e 39 29 2e 0d 0a 0d 0a 41 63 63 65 73 73 20 74 6f 20 74 68 65 20 61 74 74 72 69 62 75 74 65 73 ┆.9). Access to the attributes┆
0x25160…25180 20 6f 66 20 6d 65 73 73 61 67 65 73 20 69 6e 20 61 20 73 74 61 63 6b 20 63 61 6e 20 6f 6e 6c 79 ┆ of messages in a stack can only┆
0x25180…251a0 20 62 65 20 6d 61 80 64 65 20 74 6f 20 0a 74 68 6f 73 65 20 6f 66 20 74 68 65 20 74 6f 70 20 28 ┆ be maђde to those of the top (┆
0x251a0…251c0 79 6f 75 6e 67 65 73 74 29 20 6d 65 6d 62 65 72 2e 20 41 20 73 70 65 63 69 61 6c 20 74 72 65 61 ┆youngest) member. A special trea┆
0x251c0…251e0 74 80 6d 65 6e 74 20 69 73 20 67 69 76 65 6e 20 74 6f 20 0a 74 68 65 20 62 75 66 66 65 72 20 61 ┆tђment is given to the buffer a┆
0x251e0…25200 74 74 72 69 62 75 74 65 73 20 77 68 65 6e 20 65 6d 70 74 79 20 6d 65 73 73 61 67 65 73 20 61 72 ┆ttributes when empty messages ar┆
0x25200…25220 65 20 70 75 73 68 80 65 64 20 6f 6e 74 6f 20 6f 72 20 70 6f 70 70 65 64 20 0a 66 72 6f 6d 20 61 ┆e pushђed onto or popped from a┆
0x25220…25240 20 73 74 61 63 6b 2c 20 65 6e 73 75 72 69 6e 67 20 74 68 61 74 20 74 68 65 73 65 20 61 74 74 72 ┆ stack, ensuring that these attr┆
0x25240…25260 69 62 75 74 65 73 20 77 69 6c 6c 20 61 70 70 6c 79 20 74 6f 20 74 68 65 20 74 6f 70 6d 6f 73 74 ┆ibutes will apply to the topmost┆
0x25260…25280 20 0a 6e 6f 6e 2d 65 6d 70 74 79 20 6d 65 73 73 61 67 65 20 69 6e 20 74 68 65 20 73 74 61 63 6b ┆ non-empty message in the stack┆
0x25280…252a0 2c 20 73 69 6e 63 65 20 6f 6e 6c 79 20 6e 6f 6e 2d 65 6d 70 74 79 20 6d 65 73 73 61 80 67 65 73 ┆, since only non-empty messaђges┆
0x252a0…252c0 20 63 61 6e 20 0a 62 65 20 61 63 63 65 73 73 65 64 20 69 6e 20 61 20 6c 6f 63 6b 20 73 74 61 74 ┆ can be accessed in a lock stat┆
0x252c0…252e0 65 6d 65 6e 74 2e 0d 0a 0d 0a 41 20 73 74 61 63 6b 20 6d 61 79 20 62 65 20 6d 61 6e 69 70 75 6c ┆ement. A stack may be manipul┆
0x252e0…25300 61 74 65 64 20 62 79 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 70 72 65 64 65 66 69 6e 65 64 20 70 ┆ated by calling the predefined p┆
0x25300…25320 72 6f 63 65 80 64 75 72 65 73 20 70 75 73 68 20 0a 61 6e 64 20 70 6f 70 2e 20 54 68 65 20 70 61 ┆roceђdures push and pop. The pa┆
0x25320…25340 72 61 6d 65 74 65 72 73 20 74 6f 20 74 68 65 73 65 20 70 72 6f 63 65 64 75 72 65 73 20 6d 75 73 ┆rameters to these procedures mus┆
0x25340…25360 74 20 6e 6f 74 20 62 65 20 6c 6f 63 6b 65 64 2e 20 0a 4f 74 68 65 72 77 69 73 65 20 61 20 66 61 ┆t not be locked. Otherwise a fa┆
0x25360…25380 75 6c 74 20 77 69 6c 6c 20 6f 63 63 75 72 20 61 74 20 74 68 65 20 74 69 6d 65 20 6f 66 20 63 61 ┆ult will occur at the time of ca┆
0x25380…253a0 6c 6c 2e 0d 0a 0d 0a 8c 86 e0 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 70 75 73 68 be 28 56 41 ┆ll. їєЯ PROCEDURE ┐▄пpushЙ(VA┆
0x253a0…253c0 52 20 6e 65 77 5f 74 6f 70 2c 20 73 74 61 63 6b 5f 68 61 6e 64 6c 65 3a 20 72 65 66 65 72 65 6e ┆R new_top, stack_handle: referen┆
0x253c0…253e0 63 65 29 0d 0a 0d 0a 54 68 65 20 70 61 72 61 6d 65 74 65 72 20 6e 65 77 5f 74 6f 70 20 6d 75 73 ┆ce) The parameter new_top mus┆
0x253e0…25400 74 20 64 65 73 69 67 6e 61 74 65 20 61 20 6d 65 73 73 61 67 65 20 73 74 61 63 6b 20 77 69 74 68 ┆t designate a message stack with┆
0x25400…25420 20 6f 6e 80 6c 79 20 6f 6e 65 20 0a 65 6c 65 6d 65 6e 74 2c 20 6f 74 68 65 72 77 69 73 65 20 61 ┆ onђly one element, otherwise a┆
0x25420…25440 20 66 61 75 6c 74 20 6f 63 63 75 72 73 2e 20 54 68 65 20 6d 65 73 73 61 67 65 20 73 74 61 63 6b ┆ fault occurs. The message stack┆
0x25440…25460 20 64 65 80 73 69 67 6e 61 74 65 64 20 62 79 20 0a 73 74 61 63 6b 5f 68 61 6e 64 6c 65 2c 20 70 ┆ deђsignated by stack_handle, p┆
0x25460…25480 6f 73 73 69 62 6c 79 20 61 6e 20 65 6d 70 74 79 20 73 74 61 63 6b 20 28 69 2e 65 2e 20 74 68 65 ┆ossibly an empty stack (i.e. the┆
0x25480…254a0 20 68 61 6e 64 80 6c 65 20 69 73 20 4e 49 4c 29 2c 20 69 73 20 65 78 80 0a 74 65 6e 64 65 64 20 ┆ handђle is NIL), is exђ tended ┆
0x254a0…254c0 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 64 65 73 69 80 67 6e 61 74 65 64 20 62 79 20 ┆with the message desiђgnated by ┆
0x254c0…254e0 6e 65 77 5f 74 6f 70 20 61 73 20 74 68 65 20 6e 65 77 20 74 6f 70 20 65 6c 65 80 0a 6d 65 6e 74 ┆new_top as the new top eleђ ment┆
0x254e0…25500 2c 20 69 2e 65 2e 20 74 68 65 20 72 65 74 75 72 6e 20 61 64 64 72 65 73 73 20 61 6e 64 20 74 68 ┆, i.e. the return address and th┆
0x25500…25520 65 20 68 6f 6d 65 20 70 6f 6f 6c 20 6f 66 20 74 68 65 20 73 74 61 63 6b 20 62 65 63 6f 6d 65 73 ┆e home pool of the stack becomes┆
0x25520…25540 20 0a 74 68 6f 73 65 20 6f 66 20 74 68 65 20 6e 65 77 20 74 6f 70 20 65 6c 65 6d 65 6e 74 2e 20 ┆ those of the new top element. ┆
0x25540…25560 54 68 69 73 20 6d 61 6b 65 73 20 74 68 65 20 66 6c 6f 77 20 63 6f 6e 74 72 6f 6c 2c 20 61 73 20 ┆This makes the flow control, as ┆
0x25560…25580 69 6c 6c 75 80 0a 73 74 72 61 74 65 64 20 69 6e 20 74 68 65 20 65 78 61 6d 70 6c 65 20 62 65 6c ┆illuђ strated in the example bel┆
0x25580…255a0 6f 77 2c 20 70 6f 73 73 69 62 6c 65 2e 20 41 66 74 65 72 20 74 68 65 20 63 61 6c 6c 20 73 74 61 ┆ow, possible. After the call sta┆
0x255a0…255c0 63 6b 5f 68 61 6e 64 6c 65 20 0a 77 69 6c 6c 20 64 65 73 69 67 80 6e 61 74 65 20 74 68 65 20 6e ┆ck_handle will desigђnate the n┆
0x255c0…255e0 65 77 20 73 74 61 63 6b 2c 20 61 6e 64 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 6e 65 77 5f 74 ┆ew stack, and the value of new_t┆
0x255e0…25600 6f 70 20 77 69 6c 6c 20 62 65 20 4e 49 4c 2e 0d 0a 0d 0a 49 66 20 74 68 65 20 6e 65 77 20 74 6f ┆op will be NIL. If the new to┆
0x25600…25620 70 20 6d 65 73 73 61 67 65 20 69 73 20 65 6d 70 74 79 2c 20 61 6e 64 20 74 68 65 20 73 74 61 63 ┆p message is empty, and the stac┆
0x25620…25640 6b 20 77 61 73 20 6e 6f 74 20 65 6d 70 74 79 20 62 65 66 6f 72 65 20 0a 70 75 73 68 69 6e 67 2c ┆k was not empty before pushing,┆
0x25640…25660 20 74 68 65 20 6d 65 73 73 61 67 65 20 61 74 74 72 69 62 75 74 65 73 2c 20 73 69 7a 65 20 6f 66 ┆ the message attributes, size of┆
0x25660…25680 20 74 68 65 20 62 75 66 66 65 72 2c 20 6f 66 66 73 65 74 2c 20 74 6f 70 2c 20 61 6e 64 20 0a 62 ┆ the buffer, offset, top, and b┆
0x25680…256a0 79 74 65 20 63 6f 75 6e 74 2c 20 61 72 65 20 63 6f 70 69 65 64 20 66 72 6f 6d 20 74 68 65 20 6f ┆yte count, are copied from the o┆
0x256a0…256c0 6c 64 20 74 6f 20 74 68 65 20 6e 65 77 20 74 6f 70 20 6d 65 73 73 61 67 65 2e 0d 0a 0d 0a 50 52 ┆ld to the new top message. PR┆
0x256c0…256e0 4f 43 45 44 55 52 45 20 bf dc d8 70 6f 70 be 28 56 41 52 20 70 6f 70 70 65 64 5f 6d 65 73 2c 20 ┆OCEDURE ┐▄пpopЙ(VAR popped_mes, ┆
0x256e0…25700 73 74 61 63 6b 5f 68 61 6e 64 6c 65 3a 20 72 65 66 65 72 65 6e 63 65 29 0d 0a 0d 0a 54 68 65 20 ┆stack_handle: reference) The ┆
0x25700…25720 76 61 6c 75 65 20 6f 66 20 70 6f 70 70 65 64 5f 6d 65 73 20 6d 75 73 74 20 62 65 20 4e 49 4c 2c ┆value of popped_mes must be NIL,┆
0x25720…25740 20 61 6e 64 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 73 74 61 63 80 6b 5f 68 61 6e 64 6c 65 20 ┆ and the value of stacђk_handle ┆
0x25740…25760 0a 6d 75 73 74 20 6e 6f 74 20 62 65 20 4e 49 4c 3b 20 6f 74 68 65 72 77 69 73 65 20 61 20 66 61 ┆ must not be NIL; otherwise a fa┆
0x25760…25780 75 6c 74 20 6f 63 63 75 72 73 2e 20 54 68 65 20 72 65 80 73 75 6c 74 20 6f 66 20 61 20 63 61 6c ┆ult occurs. The reђsult of a cal┆
0x25780…257a0 6c 20 6f 66 20 0a 70 6f 70 20 69 73 3a 20 74 68 65 20 74 6f 70 20 6d 65 73 73 61 67 65 20 69 6e ┆l of pop is: the top message in┆
0x257a0…257c0 20 74 68 65 20 73 74 61 63 6b 20 69 73 20 72 65 6d 6f 76 65 64 2c 20 70 6f 70 70 65 64 5f 6d 65 ┆ the stack is removed, popped_me┆
0x257c0…257e0 73 20 77 69 6c 6c 20 0a 64 65 73 69 67 6e 61 74 65 20 61 20 73 74 61 63 6b 20 63 6f 6e 73 69 73 ┆s will designate a stack consis┆
0x257e0…25800 74 69 6e 67 20 6f 66 20 74 68 65 20 72 65 6d 6f 76 65 64 20 6d 65 73 73 61 67 65 20 6f 6e 6c 79 ┆ting of the removed message only┆
0x25800…25820 2c 20 61 6e 64 20 0a 73 74 61 63 6b 5f 68 61 6e 64 6c 65 20 77 69 6c 6c 20 64 65 73 69 67 6e 61 ┆, and stack_handle will designa┆
0x25820…25840 74 65 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 70 61 72 74 20 6f 66 20 74 68 65 20 73 74 61 ┆te the remaining part of the sta┆
0x25840…25860 63 6b 2e 20 49 66 20 74 68 65 20 0a 73 74 61 63 6b 20 68 61 64 20 6f 6e 6c 79 20 6f 6e 65 20 65 ┆ck. If the stack had only one e┆
0x25860…25880 6c 65 80 6d 65 6e 74 20 69 74 73 20 76 61 6c 75 65 20 77 69 6c 6c 20 62 65 20 4e 49 4c 2e 0d 0a ┆leђment its value will be NIL. ┆
0x25880…258a0 0d 0a 49 66 20 74 68 65 20 70 6f 70 70 65 64 20 6d 65 73 73 61 67 65 20 69 73 20 65 6d 70 74 79 ┆ If the popped message is empty┆
0x258a0…258c0 2c 20 69 74 73 20 6d 65 73 73 61 67 65 20 61 74 74 72 69 62 75 74 65 73 2c 20 73 69 7a 65 20 6f ┆, its message attributes, size o┆
0x258c0…258e0 66 20 74 68 65 20 0a 62 75 66 66 65 72 2c 20 6f 66 66 80 73 65 74 2c 20 74 6f 70 2c 20 61 6e 64 ┆f the buffer, offђset, top, and┆
0x258e0…25900 20 62 79 74 65 20 63 6f 75 6e 74 2c 20 61 72 65 20 61 6c 6c 20 73 65 74 20 74 6f 20 7a 65 72 6f ┆ byte count, are all set to zero┆
0x25900…25920 2e 0d 0a 0d 0a 54 68 65 20 64 65 70 74 68 20 6f 66 20 61 20 6d 65 73 73 61 67 65 20 73 74 61 63 ┆. The depth of a message stac┆
0x25920…25940 6b 20 61 73 20 77 65 6c 6c 20 61 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 6e 6f 6e 2d 65 ┆k as well as the number of non-e┆
0x25940…25960 6d 70 74 79 20 0a 6d 65 73 73 61 67 65 73 20 63 61 6e 20 62 65 20 6f 62 74 61 69 6e 65 64 20 62 ┆mpty messages can be obtained b┆
0x25960…25980 79 20 75 73 69 6e 67 20 74 68 65 20 70 72 65 64 65 66 69 6e 65 64 20 66 75 6e 63 80 80 74 69 6f ┆y using the predefined funcђђtio┆
0x25980…259a0 6e 73 20 73 74 61 63 6b 64 65 70 74 68 20 0a 61 6e 64 20 62 75 66 63 6f 75 6e 74 2e 0d 0a 0d 0a ┆ns stackdepth and bufcount. ┆
0x259a0…259c0 46 55 4e 43 54 49 4f 4e 20 bf dc d8 73 74 61 63 6b 64 65 70 74 68 be 28 56 41 52 20 73 74 61 63 ┆FUNCTION ┐▄пstackdepthЙ(VAR stac┆
0x259c0…259e0 6b 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 46 55 4e 43 54 49 ┆k: reference): 0..maxint FUNCTI┆
0x259e0…25a00 4f 4e 20 bf dc d8 62 75 66 63 6f 75 6e 74 be 28 56 41 52 20 73 74 61 63 6b 3a 20 72 65 66 65 72 ┆ON ┐▄пbufcountЙ(VAR stack: refer┆
0x25a00…25a20 65 6e 63 65 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 0d 0a 8c 86 b0 0a 54 68 65 20 76 61 6c 75 ┆ence): 0..maxint їє░ The valu┆
0x25a20…25a40 65 20 72 65 74 75 72 6e 65 64 20 62 79 20 73 74 61 63 6b 64 65 70 74 68 20 69 73 20 74 68 65 20 ┆e returned by stackdepth is the ┆
0x25a40…25a60 74 6f 74 61 6c 20 6e 75 6d 62 65 72 20 6f 66 20 6d 65 73 80 73 61 80 67 65 73 20 69 6e 20 0a 74 ┆total number of mesђsaђges in t┆
0x25a60…25a80 68 65 20 64 65 73 69 67 6e 61 74 65 64 20 73 74 61 63 6b 2c 20 69 6e 63 6c 75 64 69 6e 67 20 65 ┆he designated stack, including e┆
0x25a80…25aa0 6d 70 74 79 20 6f 6e 65 73 2c 20 77 68 65 72 65 61 73 20 62 75 66 80 63 6f 75 6e 74 20 79 69 65 ┆mpty ones, whereas bufђcount yie┆
0x25aa0…25ac0 6c 64 73 20 0a 6f 6e 6c 79 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 6e 6f 6e 2d 65 6d 70 74 ┆lds only the number of non-empt┆
0x25ac0…25ae0 79 20 6d 65 73 73 61 67 65 73 20 28 63 66 2e 20 6c 6f 63 6b 20 73 74 61 74 65 6d 65 6e 74 2c 20 ┆y messages (cf. lock statement, ┆
0x25ae0…25b00 73 65 63 74 69 6f 6e 20 0a 35 2e 39 29 2e 20 42 6f 74 68 20 66 75 6e 63 74 69 6f 6e 73 20 72 65 ┆section 5.9). Both functions re┆
0x25b00…25b20 74 75 72 6e 20 74 68 65 20 76 61 80 6c 75 65 20 30 20 69 66 20 74 68 65 20 70 61 72 61 6d 65 74 ┆turn the vaђlue 0 if the paramet┆
0x25b20…25b40 65 72 20 68 61 73 20 76 61 6c 75 65 20 0a 4e 49 4c 2e 0d 0a 0d 0a a1 45 78 61 6d 70 6c 65 3a 0d ┆er has value NIL. АExample: ┆
0x25b40…25b60 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 6c 6f 77 20 6f 66 20 6d 65 73 73 61 67 65 73 20 ┆ The following flow of messages ┆
0x25b60…25b80 6d 61 79 20 62 65 20 61 63 68 69 65 76 65 64 20 62 79 20 6d 65 61 6e 73 20 6f 66 20 74 68 65 20 ┆may be achieved by means of the ┆
0x25b80…25ba0 0a 70 61 69 72 65 64 20 6f 70 65 72 61 74 69 6f 6e 73 3a 20 28 70 75 73 68 2c 20 73 69 67 6e 61 ┆ paired operations: (push, signa┆
0x25ba0…25bc0 6c 29 20 61 6e 64 20 28 70 6f 70 2c 20 72 65 74 75 72 6e 29 2e 0d 0a 0d 0a 20 20 09 28 73 69 67 ┆l) and (pop, return). (sig┆
0x25bc0…25be0 6e 61 6c 29 09 20 20 20 28 70 75 73 68 2c 20 73 69 67 6e 61 6c 29 09 20 20 20 20 20 28 70 75 73 ┆nal) (push, signal) (pus┆
0x25be0…25c00 68 2c 20 73 69 67 6e 61 6c 29 0d 0a 0d 0a 0d 0a 70 82 31 81 09 20 20 20 20 20 20 20 20 20 20 70 ┆h, signal) pѓ1Ђ p┆
0x25c00…25c20 82 32 81 20 20 20 20 20 20 20 2e 2e 2e 09 20 70 82 6e 2d 31 81 09 09 20 70 82 6e 81 0d 0a 0d 0a ┆ѓ2Ђ ... pѓn-1Ђ pѓnЂ ┆
0x25c20…25c40 0d 0a 20 28 70 6f 70 2c 20 72 65 74 75 72 6e 29 20 28 70 6f 70 2c 20 72 65 74 75 72 6e 29 09 20 ┆ (pop, return) (pop, return) ┆
0x25c40…25c60 20 20 20 20 20 20 20 20 20 28 72 65 74 75 72 6e 29 0d 0a 0d 0a 16 73 62 0d 0a 4d 65 73 73 61 67 ┆ (return) sb Messag┆
0x25c60…25c80 65 20 43 68 61 69 6e 73 0d 0a 54 68 65 20 69 6e 69 74 69 61 6c 20 73 74 61 74 65 20 6f 66 20 61 ┆e Chains The initial state of a┆
0x25c80…25ca0 20 63 68 61 69 6e 20 6f 62 6a 65 63 74 20 69 73 20 65 6d 70 74 79 2c 20 69 2e 65 2e 20 74 68 65 ┆ chain object is empty, i.e. the┆
0x25ca0…25cc0 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 0a 63 68 61 69 6e 20 69 73 20 30 2e 20 43 79 63 6c ┆ length of the chain is 0. Cycl┆
0x25cc0…25ce0 69 63 20 6c 69 73 74 73 20 61 72 65 20 62 75 69 6c 74 20 61 6e 64 20 6d 61 6e 69 80 70 75 80 6c ┆ic lists are built and maniђpuђl┆
0x25ce0…25d00 61 74 65 64 20 62 79 20 6d 65 61 6e 73 20 6f 66 20 70 72 65 64 65 80 0a 66 69 6e 65 64 20 72 6f ┆ated by means of predeђ fined ro┆
0x25d00…25d20 75 74 69 6e 65 73 20 6f 6e 6c 79 2e 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 61 63 74 69 6f ┆utines only. The following actio┆
0x25d20…25d40 6e 73 20 6d 61 79 20 62 65 20 70 65 72 80 66 6f 72 6d 65 64 20 6f 6e 20 0a 63 68 61 69 6e 73 3a ┆ns may be perђformed on chains:┆
0x25d40…25d60 20 69 6e 73 65 72 74 20 61 6e 20 65 6c 65 6d 65 6e 74 2c 20 65 78 80 74 72 61 63 74 20 61 6e 20 ┆ insert an element, exђtract an ┆
0x25d60…25d80 65 6c 65 6d 65 6e 74 2c 20 63 68 61 6e 67 65 20 63 75 72 72 65 6e 74 20 6d 65 73 73 61 80 0a 67 ┆element, change current messaђ g┆
0x25d80…25da0 65 2c 20 75 70 64 61 74 65 20 73 74 61 72 74 20 70 6f 80 80 69 6e 74 2c 20 61 6e 64 20 72 65 61 ┆e, update start poђђint, and rea┆
0x25da0…25dc0 64 20 74 68 65 20 6c 65 6e 67 74 68 2e 0d 0a 0d 0a 54 77 6f 20 65 6c 65 6d 65 6e 74 73 20 6f 66 ┆d the length. Two elements of┆
0x25dc0…25de0 20 61 20 63 68 61 69 6e 20 68 61 76 65 20 61 20 73 70 65 63 69 61 6c 20 73 74 61 74 75 73 3a 0d ┆ a chain have a special status: ┆
0x25de0…25e00 0a 0d 0a 2d 20 84 74 68 65 20 a0 73 74 61 72 74 20 70 6f 69 6e 74 e0 20 6f 66 20 74 68 65 20 63 ┆ - ёthe аstart pointЯ of the c┆
0x25e00…25e20 68 61 69 6e 20 69 73 20 74 68 65 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 70 75 74 20 69 6e ┆hain is the first element put in┆
0x25e20…25e40 74 6f 20 74 68 65 20 63 68 61 69 6e 20 0a 19 82 80 80 6f 72 20 61 6e 20 65 6c 65 6d 65 6e 74 20 ┆to the chain ѓђђor an element ┆
0x25e40…25e60 65 78 70 6c 69 63 69 74 6c 79 20 73 65 6c 65 63 74 65 64 20 61 73 20 74 68 65 20 73 74 61 72 74 ┆explicitly selected as the start┆
0x25e60…25e80 20 70 6f 69 6e 74 2e 0d 0a 0d 0a 2d 20 84 74 68 65 20 a0 63 75 72 72 65 6e 74 20 6d 65 73 73 61 ┆ point. - ёthe аcurrent messa┆
0x25e80…25ea0 67 65 20 28 73 74 61 63 6b 29 e0 20 69 73 20 74 68 65 20 65 6c 65 6d 65 6e 74 20 77 68 69 63 68 ┆ge (stack)Я is the element which┆
0x25ea0…25ec0 20 6d 61 79 20 62 65 20 65 78 80 74 72 61 63 74 65 64 20 0a 19 82 80 80 6f 72 20 61 63 63 65 73 ┆ may be exђtracted ѓђђor acces┆
0x25ec0…25ee0 73 65 64 20 69 6e 20 61 20 6c 6f 63 6b 20 73 74 61 74 65 6d 65 6e 74 20 61 6e 64 20 74 68 65 20 ┆sed in a lock statement and the ┆
0x25ee0…25f00 6f 6e 6c 79 20 65 6c 65 6d 65 6e 74 20 77 68 6f 73 65 20 6d 65 73 73 61 80 0a 19 82 80 80 67 65 ┆only element whose messaђ ѓђђge┆
0x25f00…25f20 20 61 74 74 72 69 62 75 74 65 73 20 6d 61 79 20 62 65 20 72 65 61 64 20 6f 72 20 63 68 61 6e 67 ┆ attributes may be read or chang┆
0x25f20…25f40 65 64 2e 0d 0a 0d 0a 8c 86 b0 0a 54 68 65 20 70 72 65 64 65 66 69 6e 65 64 20 72 6f 75 74 69 6e ┆ed. їє░ The predefined routin┆
0x25f40…25f60 65 73 20 65 76 65 6e 74 6b 69 6e 64 2c 20 72 65 73 65 74 65 76 65 6e 74 2c 20 75 31 2c 20 75 32 ┆es eventkind, resetevent, u1, u2┆
0x25f60…25f80 2c 20 75 33 2c 20 75 34 2c 20 73 65 74 75 31 2c 20 0a 73 65 74 75 32 2c 20 73 65 74 75 33 2c 20 ┆, u3, u4, setu1, setu2, setu3, ┆
0x25f80…25fa0 73 65 74 75 34 2c 20 62 75 66 73 69 7a 65 2c 20 6f 66 66 73 65 74 2c 20 74 6f 70 2c 20 62 79 74 ┆setu4, bufsize, offset, top, byt┆
0x25fa0…25fc0 65 80 63 6f 75 6e 74 2c 20 73 65 74 6f 66 66 80 73 65 74 2c 20 73 65 74 74 6f 70 2c 20 0a 61 6e ┆eђcount, setoffђset, settop, an┆
0x25fc0…25fe0 64 20 73 65 74 62 79 74 65 63 6f 75 6e 74 20 77 68 69 63 68 20 61 72 65 20 64 65 73 63 72 69 80 ┆d setbytecount which are descriђ┆
0x25fe0…26000 62 65 64 20 69 6e 20 73 65 63 74 69 6f 6e 20 33 2e 37 20 6d 61 79 20 61 6c 6c 20 62 65 20 63 61 ┆bed in section 3.7 may all be ca┆
0x26000…26020 6c 6c 65 64 20 0a 77 69 74 68 20 61 20 63 68 61 69 6e 20 6f 62 6a 65 63 74 20 61 73 20 70 61 72 ┆lled with a chain object as par┆
0x26020…26040 61 6d 65 74 65 72 2c 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 74 68 65 79 20 61 70 70 6c 79 ┆ameter, in which case they apply┆
0x26040…26060 20 74 6f 20 74 68 65 20 0a 63 75 72 72 65 6e 74 20 6d 65 73 73 61 67 65 20 73 74 61 63 6b 20 28 ┆ to the current message stack (┆
0x26060…26080 74 6f 70 20 6d 65 73 73 61 67 65 29 20 6f 66 20 74 68 65 20 63 68 61 69 6e 2e 0d 0a 0d 0a 54 68 ┆top message) of the chain. Th┆
0x26080…260a0 65 20 6c 65 6e 67 74 68 20 6f 66 20 61 20 63 68 61 69 6e 20 69 73 20 72 65 61 64 20 62 79 20 6d ┆e length of a chain is read by m┆
0x260a0…260c0 65 61 6e 73 20 6f 66 20 61 20 63 61 6c 6c 20 6f 66 20 74 68 65 20 66 75 6e 63 80 74 69 6f 6e 20 ┆eans of a call of the funcђtion ┆
0x260c0…260e0 0a 63 68 61 69 6e 6c 65 6e 67 74 68 3a 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 bf dc d8 63 68 61 ┆ chainlength: FUNCTION ┐▄пcha┆
0x260e0…26100 69 6e 6c 65 6e 67 74 68 be 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 29 3a 20 30 2e 2e 6d 61 78 ┆inlengthЙ(VAR ch: chain): 0..max┆
0x26100…26120 69 6e 74 0d 0a 0d 0a 46 6f 72 20 61 6c 6c 20 74 68 65 20 72 6f 75 74 69 6e 65 73 20 64 65 73 63 ┆int For all the routines desc┆
0x26120…26140 72 69 62 65 64 20 69 6e 20 74 68 65 20 72 65 6d 61 69 6e 64 65 72 20 6f 66 20 74 68 69 73 20 73 ┆ribed in the remainder of this s┆
0x26140…26160 65 63 80 74 69 6f 6e 20 74 68 65 20 0a 70 61 72 61 6d 65 74 65 72 20 28 63 68 61 69 6e 73 20 61 ┆ecђtion the parameter (chains a┆
0x26160…26180 6e 64 20 72 65 66 65 72 65 6e 63 65 73 29 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 6c 6f 63 80 6b ┆nd references) must not be locђk┆
0x26180…261a0 65 64 2c 20 65 78 80 63 65 70 74 20 66 6f 72 20 74 68 65 20 0a 63 68 61 69 6e 20 6f 66 20 63 68 ┆ed, exђcept for the chain of ch┆
0x261a0…261c0 61 69 6e 65 6e 71 75 65 75 65 2e 20 4f 74 68 65 72 77 69 73 65 20 61 20 66 61 75 6c 74 20 6f 63 ┆ainenqueue. Otherwise a fault oc┆
0x261c0…261e0 63 75 72 73 20 61 74 20 74 68 65 20 74 69 6d 65 20 6f 66 20 63 61 6c 6c 2e 0d 0a 0d 0a 41 20 6d ┆curs at the time of call. A m┆
0x261e0…26200 65 73 73 61 67 65 20 73 74 61 63 6b 20 69 73 20 69 6e 73 65 72 74 65 64 20 69 6e 74 6f 20 61 20 ┆essage stack is inserted into a ┆
0x26200…26220 63 68 61 69 6e 20 62 79 20 6d 65 61 6e 73 20 6f 66 20 61 20 63 61 6c 6c 20 6f 66 20 0a 63 68 61 ┆chain by means of a call of cha┆
0x26220…26240 69 6e 65 6e 71 75 65 75 65 3a 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 63 68 61 69 6e ┆inenqueue: PROCEDURE ┐▄пchain┆
0x26240…26260 65 6e 71 75 65 75 65 be 28 56 41 52 20 72 65 66 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 56 41 52 ┆enqueueЙ(VAR ref: reference; VAR┆
0x26260…26280 20 63 68 3a 20 63 68 61 69 6e 29 0d 0a 0d 0a 54 68 65 20 76 61 6c 75 65 20 6f 66 20 72 65 66 20 ┆ ch: chain) The value of ref ┆
0x26280…262a0 6d 75 73 74 20 6e 6f 74 20 62 65 20 4e 49 4c 2c 20 6f 74 68 65 72 77 69 73 65 20 61 20 66 61 75 ┆must not be NIL, otherwise a fau┆
0x262a0…262c0 6c 74 20 6f 63 63 75 72 73 2e 20 54 68 65 20 0a 73 74 61 63 6b 20 64 65 73 69 67 6e 61 74 65 64 ┆lt occurs. The stack designated┆
0x262c0…262e0 20 62 79 20 72 65 66 20 62 65 63 6f 6d 65 73 20 74 68 65 20 6e 65 77 20 70 72 65 64 65 63 65 73 ┆ by ref becomes the new predeces┆
0x262e0…26300 73 6f 72 20 6f 66 20 63 75 72 72 65 6e 74 20 6d 65 73 80 0a 73 61 67 65 20 6f 66 20 74 68 65 20 ┆sor of current mesђ sage of the ┆
0x26300…26320 6c 69 73 74 2c 20 61 6e 64 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 72 65 66 20 62 65 63 6f 6d ┆list, and the value of ref becom┆
0x26320…26340 65 73 20 4e 49 4c 2e 0d 0a 0d 0a 54 68 65 20 63 75 72 72 65 6e 74 20 6d 65 73 73 61 67 65 20 6d ┆es NIL. The current message m┆
0x26340…26360 61 79 20 62 65 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 61 20 6c 69 73 74 20 62 79 20 6d 65 61 ┆ay be removed from a list by mea┆
0x26360…26380 6e 73 20 6f 66 20 61 20 63 61 6c 6c 20 0a 6f 66 20 63 68 61 69 6e 64 65 71 75 65 75 65 3a 0d 0a ┆ns of a call of chaindequeue: ┆
0x26380…263a0 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 63 68 61 69 6e 64 65 71 75 65 75 65 be 28 56 41 52 ┆ PROCEDURE ┐▄пchaindequeueЙ(VAR┆
0x263a0…263c0 20 72 65 66 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 56 41 52 20 63 68 3a 20 63 68 61 69 6e 29 0d ┆ ref: reference; VAR ch: chain) ┆
0x263c0…263e0 0a 0d 0a 54 68 65 20 76 61 6c 75 65 20 6f 66 20 72 65 66 20 6d 75 73 74 20 62 65 20 4e 49 4c 2c ┆ The value of ref must be NIL,┆
0x263e0…26400 20 6f 74 68 65 72 77 69 73 65 20 61 20 66 61 75 6c 74 20 6f 63 63 75 72 73 2e 20 49 66 20 74 68 ┆ otherwise a fault occurs. If th┆
0x26400…26420 65 20 6c 65 6e 67 74 68 20 0a 6f 66 20 74 68 65 20 63 68 61 69 6e 20 63 68 20 69 73 20 30 2c 20 ┆e length of the chain ch is 0, ┆
0x26420…26440 61 20 66 61 75 6c 74 20 6f 63 63 75 72 73 2e 20 54 68 65 20 63 75 72 72 65 6e 74 20 6d 65 73 73 ┆a fault occurs. The current mess┆
0x26440…26460 61 67 65 20 69 73 20 72 65 6d 6f 76 65 64 20 0a 66 72 6f 6d 20 74 68 65 20 63 68 61 69 6e 20 61 ┆age is removed from the chain a┆
0x26460…26480 6e 64 20 77 69 6c 6c 20 62 65 20 64 65 73 69 67 6e 61 74 65 64 20 62 79 20 72 65 66 2e 20 54 68 ┆nd will be designated by ref. Th┆
0x26480…264a0 65 20 73 75 63 63 65 73 73 6f 72 20 6f 66 20 74 68 65 20 0a 72 65 6d 6f 76 65 64 20 65 6c 65 6d ┆e successor of the removed elem┆
0x264a0…264c0 65 6e 74 20 62 65 63 6f 6d 65 73 20 74 68 65 20 6e 65 77 20 63 75 72 72 65 6e 74 20 6d 65 73 80 ┆ent becomes the new current mesђ┆
0x264c0…264e0 73 61 67 65 2e 20 49 66 20 74 68 65 20 73 74 61 72 74 20 70 6f 69 6e 74 20 0a 69 73 20 72 65 6d ┆sage. If the start point is rem┆
0x264e0…26500 6f 76 65 64 20 66 72 6f 6d 20 61 20 6c 69 73 74 20 77 69 74 68 20 6d 6f 72 65 20 74 68 61 6e 20 ┆oved from a list with more than ┆
0x26500…26520 6f 6e 65 20 65 6c 65 6d 65 6e 74 20 74 68 65 20 73 75 63 63 65 73 73 6f 72 20 6f 66 20 0a 74 68 ┆one element the successor of th┆
0x26520…26540 65 20 72 65 6d 6f 76 65 64 20 65 6c 65 80 6d 65 6e 74 20 62 65 63 6f 6d 65 73 20 74 68 65 20 6e ┆e removed eleђment becomes the n┆
0x26540…26560 65 77 20 73 74 61 72 74 20 70 6f 69 6e 74 2e 0d 0a 0d 0a 8c 86 e0 0a 54 68 65 20 63 75 72 72 65 ┆ew start point. їєЯ The curre┆
0x26560…26580 6e 74 20 6d 65 73 73 61 67 65 20 6d 61 79 20 62 65 20 6d 6f 76 65 64 20 6f 6e 65 20 73 74 65 70 ┆nt message may be moved one step┆
0x26580…265a0 20 75 70 20 6f 72 20 64 6f 77 6e 20 74 68 65 20 6c 69 73 74 2c 20 6f 72 20 0a 6d 6f 76 65 64 20 ┆ up or down the list, or moved ┆
0x265a0…265c0 74 6f 20 74 68 65 20 73 74 61 72 74 20 70 6f 69 6e 74 20 62 79 20 63 61 6c 6c 69 6e 67 20 74 68 ┆to the start point by calling th┆
0x265c0…265e0 65 20 70 72 6f 63 65 64 75 72 65 73 20 63 68 61 69 6e 75 70 2c 20 63 68 61 69 6e 64 6f 77 6e 20 ┆e procedures chainup, chaindown ┆
0x265e0…26600 0a 61 6e 64 20 63 68 61 69 6e 73 74 61 72 74 20 72 65 73 70 65 63 74 69 76 65 6c 79 3a 0d 0a 0d ┆ and chainstart respectively: ┆
0x26600…26620 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 63 68 61 69 6e 75 70 be 28 56 41 52 20 63 68 3a 20 63 ┆ PROCEDURE ┐▄пchainupЙ(VAR ch: c┆
0x26620…26640 68 61 69 6e 29 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 63 68 61 69 6e 64 6f 77 6e be 28 56 ┆hain) PROCEDURE ┐▄пchaindownЙ(V┆
0x26640…26660 41 52 20 63 68 3a 20 63 68 61 69 6e 29 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 63 68 61 69 ┆AR ch: chain) PROCEDURE ┐▄пchai┆
0x26660…26680 6e 73 74 61 72 74 be 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 29 0d 0a 0d 0a 54 68 65 20 72 65 ┆nstartЙ(VAR ch: chain) The re┆
0x26680…266a0 73 75 6c 74 20 6f 66 20 61 20 63 61 6c 6c 20 6f 66 20 63 68 61 69 6e 75 70 2f 63 68 61 69 6e 64 ┆sult of a call of chainup/chaind┆
0x266a0…266c0 6f 77 6e 2f 63 68 61 69 6e 73 74 61 72 74 20 69 73 20 74 68 61 74 20 74 68 65 20 73 75 63 80 0a ┆own/chainstart is that the sucђ ┆
0x266c0…266e0 63 65 73 73 6f 72 2f 70 72 65 64 65 63 65 73 73 6f 72 2f 73 74 61 72 74 20 70 6f 69 6e 74 20 62 ┆cessor/predecessor/start point b┆
0x266e0…26700 65 63 6f 6d 65 73 20 74 68 65 20 6e 65 77 20 63 75 72 80 80 72 65 6e 74 20 6d 65 73 80 73 61 67 ┆ecomes the new curђђrent mesђsag┆
0x26700…26720 65 20 6f 66 20 0a 74 68 65 20 6c 69 73 74 2e 0d 0a 0d 0a 54 68 65 20 63 75 72 72 65 6e 74 20 6d ┆e of the list. The current m┆
0x26720…26740 65 73 73 61 67 65 20 6f 66 20 61 20 6c 69 73 74 20 6d 61 79 20 62 65 20 6d 61 64 65 20 74 68 65 ┆essage of a list may be made the┆
0x26740…26760 20 6e 65 77 20 73 74 61 72 74 20 70 6f 80 69 6e 74 20 6f 66 20 61 20 0a 6c 69 73 74 20 62 79 20 ┆ new start poђint of a list by ┆
0x26760…26780 61 20 63 61 6c 6c 20 6f 66 20 63 68 61 69 6e 72 65 73 65 74 3a 0d 0a 0d 0a 50 52 4f 43 45 44 55 ┆a call of chainreset: PROCEDU┆
0x26780…267a0 52 45 20 bf dc d8 63 68 61 69 6e 72 65 73 65 74 be 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 29 ┆RE ┐▄пchainresetЙ(VAR ch: chain)┆
0x267a0…267c0 0d 0a 0d 0a 0e 0a a1 45 78 61 6d 70 6c 65 3a 0d 0a 4c 65 74 20 63 68 20 62 65 20 74 68 65 20 68 ┆ АExample: Let ch be the h┆
0x267c0…267e0 61 6e 64 6c 65 20 6f 66 20 61 20 73 6f 72 74 65 64 20 63 68 61 69 6e 20 6f 66 20 6d 65 73 73 61 ┆andle of a sorted chain of messa┆
0x267e0…26800 67 65 73 3a 0d 0a 0d 0a 63 68 61 69 6e 73 74 61 72 74 28 63 68 29 3b 0d 0a 46 4f 52 20 63 6f 75 ┆ges: chainstart(ch); FOR cou┆
0x26800…26820 6e 74 3a 3d 20 31 20 54 4f 20 63 68 61 69 6e 6c 65 6e 67 74 68 28 63 68 29 20 44 4f 0d 0a 42 45 ┆nt:= 1 TO chainlength(ch) DO BE┆
0x26820…26840 47 49 4e 0d 0a 20 20 63 68 61 69 6e 64 65 71 75 65 75 65 28 77 6f 72 6b 5f 72 65 66 2c 20 63 68 ┆GIN chaindequeue(work_ref, ch┆
0x26840…26860 29 3b 0d 0a 20 20 70 75 73 68 28 77 6f 72 6b 5f 72 65 66 2c 20 72 65 73 75 6c 74 5f 73 74 61 63 ┆); push(work_ref, result_stac┆
0x26860…26880 6b 29 0d 0a 45 4e 44 28 2a 46 4f 52 2a 29 3b 0d 0a 73 69 67 6e 61 6c 28 72 65 73 75 6c 74 5f 73 ┆k) END(*FOR*); signal(result_s┆
0x26880…268a0 74 61 63 6b 2c 20 6d 61 69 6c 5f 63 65 6e 74 65 72 29 0d 0a 0f 0a 16 73 61 0d 0a 49 4d 43 20 46 ┆tack, mail_center) sa IMC F┆
0x268a0…268c0 55 4e 43 54 49 4f 4e 53 0d 0a 16 73 6f 20 49 4d 43 0d 0a 54 68 65 20 63 6f 6e 63 65 70 74 20 6f ┆UNCTIONS so IMC The concept o┆
0x268c0…268e0 66 20 61 20 bf dc d8 72 65 73 69 64 65 6e 74 be 20 6d 6f 64 75 6c 65 20 69 73 20 69 6e 74 72 6f ┆f a ┐▄пresidentЙ module is intro┆
0x268e0…26900 64 75 63 65 64 20 69 6e 20 2f 44 53 41 2f 20 61 73 20 61 20 77 65 6c 6c 20 0a 64 65 66 69 6e 65 ┆duced in /DSA/ as a well define┆
0x26900…26920 64 20 65 6e 74 69 74 79 2c 20 77 68 69 63 68 20 69 73 20 73 65 6c 66 2d 63 6f 6e 74 61 69 6e 65 ┆d entity, which is self-containe┆
0x26920…26940 64 20 69 6e 20 74 65 72 6d 73 20 6f 66 20 72 65 80 73 6f 75 72 80 63 65 73 2e 20 49 6e 20 52 65 ┆d in terms of reђsourђces. In Re┆
0x26940…26960 61 6c 2d 0a 54 69 6d 65 20 50 61 73 63 61 6c 20 61 20 72 65 73 69 64 65 6e 74 20 69 73 20 74 68 ┆al- Time Pascal a resident is th┆
0x26960…26980 75 73 20 61 20 74 72 65 65 20 6f 66 20 70 72 6f 63 65 73 73 65 73 20 77 68 6f 73 65 20 72 6f 6f ┆us a tree of processes whose roo┆
0x26980…269a0 74 20 6f 77 6e 73 20 0a 74 68 65 20 70 6f 6f 6c 20 61 6e 64 20 70 6f 72 74 20 72 65 73 6f 75 72 ┆t owns the pool and port resour┆
0x269a0…269c0 63 65 73 20 66 6f 72 20 74 68 65 20 49 4d 43 20 73 65 72 76 69 63 65 73 2e 20 48 6f 77 65 76 65 ┆ces for the IMC services. Howeve┆
0x269c0…269e0 72 2c 20 74 68 65 20 63 6f 6e 80 0a 63 65 70 74 20 6f 66 20 72 65 73 69 80 80 64 65 6e 74 20 69 ┆r, the conђ cept of resiђђdent i┆
0x269e0…26a00 73 20 6e 6f 74 20 72 65 66 6c 65 63 74 65 64 20 69 6e 20 74 68 65 20 73 79 6e 74 61 78 20 6f 66 ┆s not reflected in the syntax of┆
0x26a00…26a20 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 6f 72 20 0a 69 6e 20 72 75 6c 65 73 20 65 ┆ Real-Time Pascal or in rules e┆
0x26a20…26a40 6e 66 6f 72 63 65 64 20 62 79 20 74 68 65 20 6c 61 6e 80 67 75 61 67 65 2e 0d 0a 0d 0a 52 65 73 ┆nforced by the lanђguage. Res┆
0x26a40…26a60 69 64 65 6e 74 73 20 65 78 69 73 74 20 69 6e 20 61 20 64 69 73 74 72 69 62 75 74 65 64 20 65 6e ┆idents exist in a distributed en┆
0x26a60…26a80 76 69 72 6f 6e 6d 65 6e 74 20 61 6e 64 20 63 6f 6d 6d 75 6e 69 80 63 61 74 65 20 77 69 74 68 20 ┆vironment and communiђcate with ┆
0x26a80…26aa0 0a 65 61 63 68 20 6f 74 68 65 72 20 62 79 20 75 73 69 6e 67 20 74 68 65 20 73 74 61 6e 64 61 72 ┆ each other by using the standar┆
0x26aa0…26ac0 64 20 69 6e 74 65 72 20 6d 6f 64 75 6c 65 20 63 6f 6d 80 6d 75 6e 69 80 63 61 80 74 69 6f 6e 20 ┆d inter module comђmuniђcaђtion ┆
0x26ac0…26ae0 28 49 4d 43 29 20 0a 73 65 72 76 69 63 65 73 20 2f 44 53 41 2d 49 4d 43 2f 2e 20 54 68 65 20 65 ┆(IMC) services /DSA-IMC/. The e┆
0x26ae0…26b00 6d 62 65 64 64 69 6e 67 20 6f 66 20 74 68 65 73 65 20 73 65 72 80 76 69 63 65 73 20 69 6e 74 6f ┆mbedding of these serђvices into┆
0x26b00…26b20 20 52 65 61 6c 2d 54 69 6d 65 20 0a 50 61 73 63 61 6c 20 69 73 20 74 68 65 20 73 63 6f 70 65 20 ┆ Real-Time Pascal is the scope ┆
0x26b20…26b40 6f 66 20 74 68 65 20 70 72 65 73 65 6e 74 20 63 68 61 70 74 65 72 2e 20 49 6e 20 74 68 65 20 72 ┆of the present chapter. In the r┆
0x26b40…26b60 65 6d 61 69 6e 64 65 72 20 6f 66 20 74 68 65 20 0a 63 68 61 70 74 65 72 20 74 68 65 20 73 6f 66 ┆emainder of the chapter the sof┆
0x26b60…26b80 74 77 61 72 65 20 63 6f 6d 80 70 6f 80 6e 65 6e 74 73 20 61 74 20 74 68 65 20 49 4d 43 20 6e 6f ┆tware comђpoђnents at the IMC no┆
0x26b80…26ba0 64 65 73 20 70 6c 75 73 20 74 68 65 20 70 68 79 73 69 63 61 6c 20 0a 69 6e 74 65 72 63 6f 6e 6e ┆des plus the physical interconn┆
0x26ba0…26bc0 65 63 74 69 6f 6e 20 6d 65 80 64 69 61 20 77 68 69 63 68 20 74 6f 67 65 80 74 68 65 72 20 70 72 ┆ection meђdia which togeђther pr┆
0x26bc0…26be0 6f 76 69 64 65 20 74 68 65 20 49 4d 43 20 73 65 72 76 69 63 65 73 20 61 72 65 20 0a 72 65 66 65 ┆ovide the IMC services are refe┆
0x26be0…26c00 72 72 65 64 20 74 6f 20 61 73 20 74 68 65 20 49 4d 43 20 6e 65 74 80 77 6f 72 6b 20 6f 72 20 6a ┆rred to as the IMC netђwork or j┆
0x26c00…26c20 75 73 74 20 74 68 65 20 49 4d 43 2e 0d 0a 0d 0a 41 20 72 65 73 69 64 65 6e 74 20 67 61 69 6e 73 ┆ust the IMC. A resident gains┆
0x26c20…26c40 20 61 63 63 65 73 73 20 74 6f 20 49 4d 43 20 73 65 72 76 69 63 65 73 20 76 69 61 20 6f 62 6a 65 ┆ access to IMC services via obje┆
0x26c40…26c60 63 74 73 20 6f 66 20 74 68 65 20 74 79 70 65 20 70 6f 72 74 2e 20 0a 50 6f 72 74 20 6e 61 6d 65 ┆cts of the type port. Port name┆
0x26c60…26c80 73 2c 20 69 6e 20 74 75 72 6e 2c 20 65 73 74 61 62 6c 69 73 68 20 74 68 65 20 69 64 65 6e 74 69 ┆s, in turn, establish the identi┆
0x26c80…26ca0 66 69 63 61 74 69 6f 6e 20 6f 66 20 72 65 73 69 80 64 65 6e 74 73 20 74 6f 77 61 72 64 73 20 0a ┆fication of resiђdents towards ┆
0x26ca0…26cc0 74 68 65 20 49 4d 43 20 6e 65 74 77 6f 72 6b 20 61 6e 64 20 74 6f 77 61 72 64 73 20 6f 6e 65 20 ┆the IMC network and towards one ┆
0x26cc0…26ce0 61 6e 6f 74 80 68 65 72 2e 20 50 6f 72 74 20 6e 61 6d 65 73 20 63 6f 6e 73 69 73 74 20 6f 66 20 ┆anotђher. Port names consist of ┆
0x26ce0…26d00 61 20 0a 6d 61 78 69 6d 75 6d 20 6f 66 20 31 32 20 67 72 61 70 68 69 63 20 63 68 61 72 61 63 80 ┆a maximum of 12 graphic characђ┆
0x26d00…26d20 74 65 72 73 2e 20 43 6f 6d 6d 75 6e 69 80 63 61 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 74 77 6f ┆ters. Communiђcation between two┆
0x26d20…26d40 20 72 65 73 69 80 0a 64 65 6e 74 73 20 74 61 6b 65 73 20 70 6c 61 63 65 20 61 73 20 74 72 61 6e ┆ resiђ dents takes place as tran┆
0x26d40…26d60 73 66 65 72 73 20 6f 66 20 73 74 72 69 6e 67 73 20 6f 66 20 62 79 74 65 73 20 66 72 6f 6d 20 6d ┆sfers of strings of bytes from m┆
0x26d60…26d80 65 73 73 61 67 65 73 20 62 65 80 0a 6c 6f 6e 67 69 6e 67 20 74 6f 20 61 20 73 65 6e 64 65 72 20 ┆essages beђ longing to a sender ┆
0x26d80…26da0 74 6f 20 6d 65 73 73 61 67 65 73 20 62 65 80 6c 6f 6e 67 69 6e 67 20 74 6f 20 61 20 72 65 63 65 ┆to messages beђlonging to a rece┆
0x26da0…26dc0 69 76 65 72 2e 20 41 6e 20 61 63 74 75 61 6c 20 0a 74 72 61 6e 73 80 66 65 72 20 77 69 74 68 69 ┆iver. An actual transђfer withi┆
0x26dc0…26de0 6e 20 74 68 65 20 49 4d 43 20 6e 65 74 80 77 6f 72 6b 20 74 61 6b 65 73 20 70 6c 61 63 65 20 77 ┆n the IMC netђwork takes place w┆
0x26de0…26e00 68 65 6e 20 62 6f 74 68 20 72 65 73 69 80 64 65 6e 74 73 20 68 61 76 65 20 0a 64 65 6c 69 76 65 ┆hen both resiђdents have delive┆
0x26e00…26e20 72 65 64 20 61 20 6d 65 73 73 61 67 65 20 74 6f 20 74 68 65 20 49 4d 43 2e 0d 0a 0d 0a 54 68 65 ┆red a message to the IMC. The┆
0x26e20…26e40 20 70 72 69 6e 63 69 70 61 6c 20 6d 65 61 6e 73 20 6f 66 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f ┆ principal means of communicatio┆
0x26e40…26e60 6e 20 69 73 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 62 65 74 77 65 65 6e 20 74 77 6f 20 0a 70 6f ┆n is connections between two po┆
0x26e60…26e80 72 74 73 2e 20 4f 6e 20 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 68 65 20 49 4d 43 20 70 65 72 ┆rts. On a connection the IMC per┆
0x26e80…26ea0 66 6f 72 6d 20 66 6c 6f 77 20 63 6f 6e 74 72 6f 6c 2c 20 63 6f 72 80 72 65 63 74 20 73 65 71 75 ┆form flow control, corђrect sequ┆
0x26ea0…26ec0 65 6e 80 0a 63 69 6e 67 2c 20 61 6e 64 20 75 6e 64 61 6d 61 67 65 64 20 64 61 74 61 20 74 72 61 ┆enђ cing, and undamaged data tra┆
0x26ec0…26ee0 6e 73 66 65 72 2e 0d 0a 0d 0a 8c 8a c0 0a 54 68 65 20 72 65 6c 61 74 69 6f 6e 73 68 69 70 20 62 ┆nsfer. їі└ The relationship b┆
0x26ee0…26f00 65 74 77 65 65 6e 20 69 6e 76 6f 6b 61 74 69 6f 6e 20 61 6e 64 20 63 6f 6d 70 6c 65 74 69 6f 6e ┆etween invokation and completion┆
0x26f00…26f20 20 6f 66 20 49 4d 43 20 66 75 6e 63 80 74 69 6f 6e 73 20 0a 69 73 20 61 73 79 6e 63 68 72 6f 6e ┆ of IMC funcђtions is asynchron┆
0x26f20…26f40 6f 75 73 2e 20 49 4d 43 20 73 65 72 76 69 63 65 73 20 61 72 65 20 69 6e 76 6f 6b 65 64 20 62 79 ┆ous. IMC services are invoked by┆
0x26f40…26f60 20 63 61 6c 6c 73 20 6f 66 20 70 72 65 80 64 65 66 69 6e 65 64 20 73 65 72 80 0a 76 69 63 65 20 ┆ calls of preђdefined serђ vice ┆
0x26f60…26f80 72 65 71 75 65 73 74 20 72 6f 75 74 69 6e 65 73 2e 20 49 6e 20 6d 6f 73 74 20 63 61 73 65 73 20 ┆request routines. In most cases ┆
0x26f80…26fa0 61 20 63 61 6c 6c 20 6f 66 20 61 20 72 65 80 71 75 65 73 74 20 72 6f 75 74 69 6e 65 20 0a 63 61 ┆a call of a reђquest routine ca┆
0x26fa0…26fc0 75 73 65 73 20 74 68 65 20 74 72 61 6e 73 66 65 72 20 6f 66 20 61 20 6d 65 73 73 61 67 65 20 28 ┆uses the transfer of a message (┆
0x26fc0…26fe0 6f 72 20 74 77 6f 29 20 66 72 6f 6d 20 74 68 65 20 63 61 6c 6c 69 6e 67 20 72 65 73 69 64 65 6e ┆or two) from the calling residen┆
0x26fe0…27000 74 20 0a 74 6f 20 74 68 65 20 49 4d 43 2e 20 57 68 65 6e 20 74 68 65 20 72 65 80 71 75 65 80 73 ┆t to the IMC. When the reђqueђs┆
0x27000…27020 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 20 62 65 65 6e 20 63 61 72 72 69 65 64 20 6f 75 ┆ted function has been carried ou┆
0x27020…27040 74 20 74 68 69 73 20 0a 6d 65 73 73 61 67 65 2c 20 63 61 6c 6c 65 64 20 61 6e 20 a0 65 76 65 6e ┆t this message, called an аeven┆
0x27040…27060 74 20 e0 6d 65 73 73 61 67 65 2c 20 77 69 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 64 2c 20 69 2e ┆t Яmessage, will be returned, i.┆
0x27060…27080 65 2e 20 74 6f 20 69 74 73 20 72 65 74 75 72 6e 20 0a 61 64 80 64 72 65 73 73 20 6d 61 69 6c 62 ┆e. to its return adђdress mailb┆
0x27080…270a0 6f 78 2c 20 77 69 74 68 20 72 65 6c 65 76 61 6e 74 20 72 65 80 73 75 6c 74 20 69 6e 66 6f 72 6d ┆ox, with relevant reђsult inform┆
0x270a0…270c0 61 74 69 6f 6e 20 61 6e 64 20 70 6f 73 73 69 62 6c 79 20 63 6f 6e 80 74 61 69 80 0a 6e 69 6e 67 ┆ation and possibly conђtaiђ ning┆
0x270c0…270e0 20 72 65 63 65 69 76 65 64 20 64 61 74 61 2e 20 54 68 65 20 72 65 80 74 75 72 6e 20 6f 66 20 61 ┆ received data. The reђturn of a┆
0x270e0…27100 6e 20 65 76 65 6e 74 20 6d 65 73 73 61 67 65 20 74 6f 20 61 20 72 65 73 69 64 65 6e 74 20 69 73 ┆n event message to a resident is┆
0x27100…27120 20 0a 63 61 6c 6c 65 64 20 61 6e 20 a0 49 4d 43 20 65 76 65 6e 74 e0 2c 20 6f 72 20 6a 75 73 74 ┆ called an аIMC eventЯ, or just┆
0x27120…27140 20 61 6e 20 65 76 65 6e 74 2e 20 54 68 65 20 69 6e 80 80 74 65 72 66 61 63 65 20 62 65 74 77 65 ┆ an event. The inђђterface betwe┆
0x27140…27160 65 6e 20 72 65 73 69 80 0a 64 65 6e 74 73 20 61 6e 64 20 74 68 65 20 49 4d 43 20 68 61 73 20 62 ┆en resiђ dents and the IMC has b┆
0x27160…27180 65 65 6e 20 64 65 73 69 67 6e 65 64 20 73 6f 20 74 68 61 74 20 6e 6f 20 63 68 61 6e 67 65 2c 20 ┆een designed so that no change, ┆
0x27180…271a0 77 68 69 63 68 20 69 73 20 6f 66 20 0a 73 69 67 6e 69 66 69 63 61 6e 63 65 20 74 6f 20 61 20 72 ┆which is of significance to a r┆
0x271a0…271c0 65 73 69 64 65 6e 74 2c 20 69 6e 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 61 20 70 6f 72 74 20 ┆esident, in the state of a port ┆
0x271c0…271e0 6f 72 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6e 64 2d 0a 70 6f 69 6e 74 20 63 61 6e 20 74 61 6b ┆or connection end- point can tak┆
0x271e0…27200 65 20 70 6c 61 63 65 20 77 69 74 68 6f 75 74 20 74 68 65 20 6f 63 63 75 72 72 65 6e 63 65 20 6f ┆e place without the occurrence o┆
0x27200…27220 66 20 61 6e 20 65 76 65 6e 74 2c 20 75 6e 6c 65 73 73 20 69 74 20 0a 6f 63 63 75 72 73 20 64 75 ┆f an event, unless it occurs du┆
0x27220…27240 72 69 6e 67 20 61 20 63 61 6c 6c 20 6f 66 20 61 20 72 65 71 75 65 73 74 20 72 6f 75 74 69 6e 65 ┆ring a call of a request routine┆
0x27240…27260 20 61 6e 64 20 61 73 20 61 20 64 69 72 65 63 74 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 0a 6f 66 ┆ and as a direct consequence of┆
0x27260…27280 20 74 68 69 73 20 63 61 6c 6c 2e 20 49 6e 20 6f 74 68 65 72 20 77 6f 72 64 73 2c 20 64 65 73 70 ┆ this call. In other words, desp┆
0x27280…272a0 69 74 65 20 74 68 65 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 20 6e 61 74 75 72 65 20 6f 66 20 74 ┆ite the asynchronous nature of t┆
0x272a0…272c0 68 65 20 0a 69 6e 74 65 72 66 61 63 65 2c 20 72 65 73 69 64 65 6e 74 73 20 61 6c 77 61 79 73 20 ┆he interface, residents always ┆
0x272c0…272e0 68 61 76 65 20 63 6f 6d 70 6c 65 74 65 20 75 70 2d 74 6f 2d 64 61 74 65 20 69 6e 66 6f 72 80 6d ┆have complete up-to-date inforђm┆
0x272e0…27300 61 74 69 6f 6e 20 61 62 6f 75 74 20 0a 74 68 65 69 72 20 70 6f 72 74 73 20 61 6e 64 20 63 6f 6e ┆ation about their ports and con┆
0x27300…27320 6e 65 63 74 69 6f 6e 73 2e 0d 0a 0d 0a 44 75 72 69 6e 67 20 74 68 65 20 74 69 6d 65 2d 73 70 61 ┆nections. During the time-spa┆
0x27320…27340 6e 20 66 72 6f 6d 20 61 6e 20 65 76 65 6e 74 20 6d 65 73 73 61 67 65 20 68 61 73 20 62 65 65 6e ┆n from an event message has been┆
0x27340…27360 20 74 72 61 6e 73 80 80 66 65 72 80 72 65 64 20 74 6f 20 0a 74 68 65 20 49 4d 43 20 75 6e 74 69 ┆ transђђferђred to the IMC unti┆
0x27360…27380 6c 20 69 74 20 69 73 20 65 76 65 6e 74 75 61 6c 6c 79 20 72 65 74 75 72 6e 65 64 20 69 74 20 69 ┆l it is eventually returned it i┆
0x27380…273a0 73 20 73 61 69 64 20 74 6f 20 62 65 20 6f 75 74 73 74 61 6e 64 69 6e 67 2e 20 0a 41 6e 20 6f 75 ┆s said to be outstanding. An ou┆
0x273a0…273c0 74 73 74 61 6e 64 69 6e 67 20 65 76 65 6e 74 20 6d 65 73 73 61 67 65 20 6d 61 79 20 62 65 20 66 ┆tstanding event message may be f┆
0x273c0…273e0 75 72 74 80 68 65 72 20 63 68 61 80 72 61 63 74 65 72 69 7a 65 64 20 62 79 20 74 68 65 20 0a 6b ┆urtђher chaђracterized by the k┆
0x273e0…27400 69 6e 64 20 6f 66 20 65 76 65 6e 74 20 69 74 20 69 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 72 ┆ind of event it is intended to r┆
0x27400…27420 65 80 74 72 69 65 76 65 2e 20 41 6c 6c 20 49 4d 43 20 65 76 65 6e 74 73 20 63 6f 72 72 65 73 70 ┆eђtrieve. All IMC events corresp┆
0x27420…27440 6f 6e 64 20 74 6f 20 0a 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 70 72 65 64 65 80 66 69 80 6e ┆ond to values of the predeђfiђn┆
0x27440…27460 65 64 20 65 6e 75 6d 65 72 61 74 69 6f 6e 20 74 79 70 65 20 65 76 65 6e 74 5f 74 79 70 65 20 77 ┆ed enumeration type event_type w┆
0x27460…27480 68 69 63 68 20 69 73 20 67 69 76 65 6e 20 0a 69 6e 20 73 65 63 74 69 6f 6e 20 33 2e 37 2e 20 41 ┆hich is given in section 3.7. A┆
0x27480…274a0 6c 6c 20 49 4d 43 20 65 76 65 6e 74 73 20 61 72 65 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 74 ┆ll IMC events are described in t┆
0x274a0…274c0 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 65 63 74 69 6f 6e 73 2e 0d 0a 0d 0a 49 6e 20 73 6f 6d ┆he following sections. In som┆
0x274c0…274e0 65 20 63 61 73 65 73 20 74 68 65 20 49 4d 43 20 77 69 6c 6c 20 72 65 74 75 72 6e 20 61 6e 20 65 ┆e cases the IMC will return an e┆
0x274e0…27500 76 65 6e 74 20 6d 65 73 73 61 67 65 20 65 76 65 6e 20 74 68 6f 75 67 68 20 74 68 65 20 0a 69 6e ┆vent message even though the in┆
0x27500…27520 74 65 6e 64 65 64 20 65 76 65 6e 74 20 68 61 73 20 6e 6f 74 20 6f 63 63 75 72 72 65 64 2c 20 6d ┆tended event has not occurred, m┆
0x27520…27540 6f 73 74 20 6f 66 74 65 6e 20 62 65 80 80 63 61 75 73 65 20 63 69 72 63 75 6d 73 74 61 6e 63 65 ┆ost often beђђcause circumstance┆
0x27540…27560 73 20 0a 63 68 61 6e 67 65 20 73 6f 20 74 68 61 74 20 69 74 20 6e 65 76 65 72 20 77 69 6c 6c 2e ┆s change so that it never will.┆
0x27560…27580 20 54 68 69 73 20 69 73 20 63 61 6c 6c 65 64 20 61 20 64 75 6d 6d 79 20 65 76 65 6e 74 2e 20 41 ┆ This is called a dummy event. A┆
0x27580…275a0 73 20 61 6e 20 65 78 80 0a 61 6d 70 6c 65 2c 20 61 6e 20 6f 75 74 73 74 61 6e 64 69 6e 67 20 64 ┆s an exђ ample, an outstanding d┆
0x275a0…275c0 61 74 61 20 6d 65 73 73 61 67 65 20 69 73 20 72 65 80 74 75 72 6e 65 64 20 61 73 20 61 20 64 75 ┆ata message is reђturned as a du┆
0x275c0…275e0 6d 6d 79 20 65 76 65 6e 74 20 0a 77 68 65 6e 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 ┆mmy event when the connection t┆
0x275e0…27600 6f 20 77 68 69 63 68 20 69 74 20 70 65 72 80 74 61 69 6e 73 20 69 73 20 75 6e 65 78 70 65 63 74 ┆o which it perђtains is unexpect┆
0x27600…27620 65 64 6c 79 20 72 65 6d 6f 76 65 64 2e 20 41 20 0a 6e 75 6d 62 65 72 20 6f 66 20 65 76 65 6e 80 ┆edly removed. A number of evenђ┆
0x27620…27640 74 5f 74 79 70 65 20 76 61 6c 75 65 73 20 61 72 65 20 75 73 65 64 20 65 78 63 6c 75 73 69 76 65 ┆t_type values are used exclusive┆
0x27640…27660 6c 79 20 66 6f 72 20 64 75 6d 6d 79 20 65 76 65 6e 74 73 2e 20 0a 45 61 63 68 20 6f 66 20 74 68 ┆ly for dummy events. Each of th┆
0x27660…27680 65 73 65 20 76 61 6c 75 65 73 20 69 6e 80 64 69 63 61 74 65 73 20 74 68 65 20 65 76 65 6e 74 20 ┆ese values inђdicates the event ┆
0x27680…276a0 77 68 69 63 68 20 74 68 65 20 64 75 6d 6d 79 20 65 76 65 6e 74 20 6d 65 73 80 0a 73 61 67 65 20 ┆which the dummy event mesђ sage ┆
0x276a0…276c0 68 61 64 20 62 65 65 6e 20 73 65 74 20 75 70 20 74 6f 20 72 65 74 72 69 65 76 65 2e 20 54 68 65 ┆had been set up to retrieve. The┆
0x276c0…276e0 20 63 6f 72 72 65 73 70 6f 6e 64 65 6e 63 65 20 62 65 74 77 65 65 6e 20 64 75 6d 6d 79 20 0a 65 ┆ correspondence between dummy e┆
0x276e0…27700 76 65 6e 74 20 6b 69 6e 64 73 20 61 6e 64 20 69 6e 74 65 6e 64 65 64 20 65 76 65 6e 74 20 6b 69 ┆vent kinds and intended event ki┆
0x27700…27720 6e 64 73 20 69 73 20 73 68 6f 77 6e 20 62 65 6c 6f 77 3a 0d 0a 0d 0a 0d 0a 0e 0a a1 bf dc d8 64 ┆nds is shown below: А┐▄пd┆
0x27720…27740 75 6d 6d 79 20 65 76 65 6e 74 be 09 09 69 6e 74 65 6e 64 65 64 20 65 76 65 6e 74 05 5f 0d 0a 64 ┆ummy eventЙ intended event _ d┆
0x27740…27760 75 6d 6d 79 5f 6c 63 6e 63 74 09 09 6c 6f 63 61 6c 5f 63 6f 6e 6e 65 63 74 0d 0a 64 75 6d 6d 79 ┆ummy_lcnct local_connect dummy┆
0x27760…27780 5f 72 63 6e 63 74 09 09 72 65 6d 6f 74 65 5f 63 6f 6e 6e 65 63 74 0d 0a 64 75 6d 6d 79 5f 72 69 ┆_rcnct remote_connect dummy_ri┆
0x27780…277a0 6e 64 69 63 09 09 72 65 73 65 74 5f 69 6e 64 69 63 61 74 69 6f 6e 0d 0a 64 75 6d 6d 79 5f 72 63 ┆ndic reset_indication dummy_rc┆
0x277a0…277c0 6d 70 6c 09 09 72 65 73 65 74 5f 63 6f 6d 70 6c 65 74 69 6f 6e 0d 0a 64 75 6d 6d 79 5f 63 72 65 ┆mpl reset_completion dummy_cre┆
0x277c0…277e0 64 69 74 09 09 63 72 65 64 69 74 0d 0a 64 75 6d 6d 79 5f 73 65 6e 74 09 09 64 61 74 61 5f 73 65 ┆dit credit dummy_sent data_se┆
0x277e0…27800 6e 74 0d 0a 64 75 6d 6d 79 5f 61 72 72 69 76 65 64 09 09 64 61 74 61 5f 61 72 72 69 76 65 64 0d ┆nt dummy_arrived data_arrived ┆
0x27800…27820 0a 0d 0a 0d 0a 0f 0a 49 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 72 65 71 75 65 73 74 20 72 6f ┆ In addition to request ro┆
0x27820…27840 75 74 69 6e 65 73 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 70 72 6f 76 69 64 65 73 ┆utines Real-Time Pascal provides┆
0x27840…27860 20 72 6f 75 74 69 80 6e 65 73 20 0a 77 68 69 63 68 20 63 61 6e 20 64 65 63 6f 64 65 20 65 76 65 ┆ routiђnes which can decode eve┆
0x27860…27880 6e 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 62 79 20 69 6e 73 70 65 63 74 69 6e 67 20 74 68 65 ┆nt information by inspecting the┆
0x27880…278a0 20 49 4d 43 20 6d 65 73 73 61 67 65 20 0a 61 74 74 72 69 62 75 74 65 73 20 75 73 65 64 20 74 6f ┆ IMC message attributes used to┆
0x278a0…278c0 20 63 61 72 72 79 20 74 68 69 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0d 0a 0d 0a 54 68 65 20 ┆ carry this information. The ┆
0x278c0…278e0 49 4d 43 20 73 65 72 76 69 63 65 20 72 65 71 75 65 73 74 20 72 6f 75 74 69 6e 65 73 20 61 72 65 ┆IMC service request routines are┆
0x278e0…27900 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 80 77 69 6e 67 20 74 68 72 ┆ described in the folloђwing thr┆
0x27900…27920 65 65 20 0a 73 65 63 74 69 6f 6e 73 2e 20 57 69 74 68 20 61 20 73 69 6e 67 6c 65 20 65 78 63 65 ┆ee sections. With a single exce┆
0x27920…27940 70 74 69 6f 6e 20 28 63 6f 6e 6e 65 63 74 2c 20 73 65 65 20 73 75 62 73 65 63 74 69 6f 6e 20 31 ┆ption (connect, see subsection 1┆
0x27940…27960 31 2e 32 2e 32 29 20 74 68 65 20 0a 72 65 66 65 72 65 6e 63 65 20 74 79 70 65 20 70 61 72 61 6d ┆1.2.2) the reference type param┆
0x27960…27980 65 74 65 72 73 20 74 6f 20 74 68 65 73 65 20 72 6f 75 74 69 6e 65 73 20 6d 75 73 74 20 6e 6f 74 ┆eters to these routines must not┆
0x27980…279a0 20 68 61 76 65 20 76 61 6c 75 65 20 4e 49 4c 20 0a 6f 72 20 62 65 20 6c 6f 63 6b 65 64 20 77 68 ┆ have value NIL or be locked wh┆
0x279a0…279c0 65 6e 20 61 20 63 61 6c 6c 20 69 73 20 6d 61 64 65 3b 20 6f 74 68 65 72 77 69 73 65 20 61 20 66 ┆en a call is made; otherwise a f┆
0x279c0…279e0 61 75 6c 74 20 77 69 6c 6c 20 6f 63 63 75 72 2e 20 54 68 65 73 65 20 0a 70 61 72 61 6d 65 74 65 ┆ault will occur. These paramete┆
0x279e0…27a00 72 73 20 61 72 65 20 75 73 65 64 20 74 6f 20 74 72 61 6e 73 66 65 72 20 65 76 65 6e 74 20 6d 65 ┆rs are used to transfer event me┆
0x27a00…27a20 73 73 61 67 65 73 20 74 6f 20 74 68 65 20 49 4d 43 2c 20 61 6e 64 20 74 68 65 79 20 0a 61 6c 77 ┆ssages to the IMC, and they alw┆
0x27a20…27a40 61 79 73 20 68 61 76 65 20 76 61 6c 75 65 20 4e 49 4c 20 61 66 74 65 72 20 61 20 63 61 6c 6c 2e ┆ays have value NIL after a call.┆
0x27a40…27a60 0d 0a 0d 0a 54 68 65 20 49 4d 43 20 6e 65 76 65 72 20 63 68 61 6e 67 65 73 20 74 68 65 20 73 69 ┆ The IMC never changes the si┆
0x27a60…27a80 7a 65 2c 20 6f 66 66 73 65 74 2c 20 74 6f 70 2c 20 6f 72 20 75 2d 61 74 74 72 69 62 75 74 65 73 ┆ze, offset, top, or u-attributes┆
0x27a80…27aa0 20 6f 66 20 61 6e 20 0a 65 76 65 6e 74 20 6d 65 73 73 61 67 65 2e 20 57 69 74 68 20 74 68 65 20 ┆ of an event message. With the ┆
0x27aa0…27ac0 65 78 63 65 70 74 69 6f 6e 20 6f 66 20 61 63 74 75 61 6c 20 64 61 74 61 20 6d 65 73 80 73 61 67 ┆exception of actual data mesђsag┆
0x27ac0…27ae0 65 73 20 28 73 65 6e 64 2c 20 72 65 80 0a 63 65 69 76 65 2c 20 72 65 63 65 69 76 65 61 6c 6c 29 ┆es (send, reђ ceive, receiveall)┆
0x27ae0…27b00 20 49 4d 43 20 65 76 65 6e 74 20 6d 65 73 73 61 67 65 73 20 6d 61 79 20 62 65 20 65 6d 70 74 79 ┆ IMC event messages may be empty┆
0x27b00…27b20 2e 0d 0a 0d 0a 54 68 65 20 75 6e 69 74 20 6f 66 20 64 61 74 61 20 74 6f 20 62 65 20 73 65 6e 74 ┆. The unit of data to be sent┆
0x27b20…27b40 20 62 79 20 74 68 65 20 49 4d 43 20 28 73 65 6e 64 29 20 69 73 20 61 6c 77 61 79 73 20 74 68 65 ┆ by the IMC (send) is always the┆
0x27b40…27b60 20 63 6f 6e 74 65 6e 74 73 20 0a 6f 66 20 74 68 65 20 64 61 74 61 20 61 72 65 61 20 6f 66 20 74 ┆ contents of the data area of t┆
0x27b60…27b80 68 65 20 73 65 6e 64 20 6d 65 73 73 61 67 65 20 69 6e 20 71 75 65 73 74 69 6f 6e 2e 20 53 69 6d ┆he send message in question. Sim┆
0x27b80…27ba0 69 6c 61 72 6c 79 20 61 20 72 65 80 63 65 69 80 0a 76 65 64 20 64 61 74 61 20 75 6e 69 74 20 28 ┆ilarly a reђceiђ ved data unit (┆
0x27ba0…27bc0 72 65 63 65 69 76 65 2c 20 72 65 63 65 69 76 65 61 6c 6c 29 20 69 73 20 61 6c 77 61 79 73 20 70 ┆receive, receiveall) is always p┆
0x27bc0…27be0 6c 61 63 65 64 20 69 6e 20 74 68 65 20 64 61 74 61 20 61 72 65 61 20 0a 6f 66 20 74 68 65 20 72 ┆laced in the data area of the r┆
0x27be0…27c00 65 63 65 69 76 65 20 6d 65 73 73 61 67 65 2c 20 61 6e 64 20 74 68 65 20 6e 75 6d 62 65 72 20 6f ┆eceive message, and the number o┆
0x27c00…27c20 66 20 62 79 74 65 73 20 69 74 20 63 6f 6d 70 72 69 73 65 73 20 69 73 20 61 73 80 0a 73 69 67 6e ┆f bytes it comprises is asђ sign┆
0x27c20…27c40 80 65 64 20 74 6f 20 74 68 65 20 62 79 74 65 20 63 6f 75 6e 74 20 61 74 74 72 69 62 75 74 65 2e ┆ђed to the byte count attribute.┆
0x27c40…27c60 0d 0a 0d 0a 54 68 65 20 64 61 74 61 20 61 72 65 61 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 ┆ The data area description of┆
0x27c60…27c80 20 74 68 65 20 6d 65 73 73 61 67 65 20 70 61 73 73 65 64 20 62 79 20 61 20 63 61 6c 6c 20 6f 66 ┆ the message passed by a call of┆
0x27c80…27ca0 20 61 20 64 61 74 61 20 0a 74 72 61 6e 73 66 65 72 20 72 6f 75 74 69 6e 65 20 6d 75 73 74 20 62 ┆ a data transfer routine must b┆
0x27ca0…27cc0 65 20 63 6f 6e 73 69 73 74 65 6e 74 2c 20 63 66 2e 20 73 65 63 74 69 6f 6e 20 33 2e 37 2e 20 4f ┆e consistent, cf. section 3.7. O┆
0x27cc0…27ce0 74 68 65 72 80 77 69 73 65 20 61 20 66 61 75 6c 74 20 0a 6f 63 63 75 72 73 2e 0d 0a 16 73 62 0d ┆therђwise a fault occurs. sb ┆
0x27ce0…27d00 0a 50 6f 72 74 73 0d 0a 41 6e 20 49 4d 43 20 bf dc d8 70 6f 72 74 be 20 69 73 20 72 65 70 72 65 ┆ Ports An IMC ┐▄пportЙ is repre┆
0x27d00…27d20 73 65 6e 74 65 64 20 69 6e 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 61 73 20 61 20 ┆sented in Real-Time Pascal as a ┆
0x27d20…27d40 76 61 72 69 61 62 6c 65 20 6f 66 20 74 79 70 65 20 0a 70 6f 72 74 2e 20 54 68 65 20 73 74 61 74 ┆variable of type port. The stat┆
0x27d40…27d60 65 20 6f 66 20 61 20 70 6f 72 74 20 69 73 20 65 69 74 68 65 72 20 6f 70 65 6e 2c 20 69 6e 20 77 ┆e of a port is either open, in w┆
0x27d60…27d80 68 69 63 68 20 63 61 73 65 20 74 68 65 20 70 6f 72 74 20 69 73 20 0a 6b 6e 6f 77 6e 20 69 6e 20 ┆hich case the port is known in ┆
0x27d80…27da0 74 68 65 20 49 4d 43 20 6e 65 74 77 6f 72 6b 20 62 79 20 61 20 6e 61 6d 65 20 77 68 69 63 68 20 ┆the IMC network by a name which ┆
0x27da0…27dc0 69 73 20 70 75 62 6c 69 73 68 65 64 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 0a 69 74 73 20 73 ┆is published according to its s┆
0x27dc0…27de0 63 6f 70 65 2c 20 6f 72 20 63 6c 6f 73 65 64 20 28 6f 72 20 63 6c 6f 73 69 6e 67 2c 20 73 65 65 ┆cope, or closed (or closing, see┆
0x27de0…27e00 20 75 6e 64 65 72 20 63 6c 6f 73 65 70 6f 72 74 20 62 65 6c 6f 77 29 2e 0d 0a 0d 0a 41 6e 20 6f ┆ under closeport below). An o┆
0x27e00…27e20 70 65 6e 20 70 6f 72 74 20 63 6f 6e 74 61 69 6e 73 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f ┆pen port contains a number of co┆
0x27e20…27e40 6e 6e 65 63 74 69 6f 6e 20 65 6e 64 2d 70 6f 69 6e 74 73 20 28 63 66 2e 20 73 65 63 74 69 6f 6e ┆nnection end-points (cf. section┆
0x27e40…27e60 20 0a 31 31 2e 32 29 2e 20 54 68 65 20 6e 75 6d 62 65 72 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 ┆ 11.2). The number must not be ┆
0x27e60…27e80 67 72 65 61 74 65 72 20 74 68 61 6e 20 61 6e 20 69 6d 70 6c 65 80 80 6d 65 6e 74 61 74 69 6f 6e ┆greater than an impleђђmentation┆
0x27e80…27ea0 20 64 65 70 65 6e 80 0a 64 65 6e 74 20 6d 61 78 69 6d 75 6d 2c 20 63 66 2e 20 73 65 63 74 69 6f ┆ depenђ dent maximum, cf. sectio┆
0x27ea0…27ec0 6e 20 31 31 2e 34 29 2e 0d 0a 0d 0a 54 68 65 20 61 74 74 72 69 62 75 74 65 73 20 6f 66 20 61 20 ┆n 11.4). The attributes of a ┆
0x27ec0…27ee0 70 6f 72 74 2c 20 69 2e 65 2e 20 6e 61 6d 65 2c 20 73 63 6f 70 65 2c 20 61 6e 64 20 6e 75 6d 62 ┆port, i.e. name, scope, and numb┆
0x27ee0…27f00 65 72 20 6f 66 20 65 6e 64 80 70 6f 69 6e 74 73 2c 20 0a 61 72 65 20 64 65 66 69 6e 65 64 20 77 ┆er of endђpoints, are defined w┆
0x27f00…27f20 68 65 6e 20 69 74 20 69 73 20 6f 70 65 6e 65 64 20 62 79 20 61 20 63 61 6c 6c 20 6f 66 20 6f 70 ┆hen it is opened by a call of op┆
0x27f20…27f40 65 6e 80 70 6f 72 74 3a 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 6f 70 65 6e 70 6f 72 ┆enђport: PROCEDURE ┐▄пopenpor┆
0x27f40…27f60 74 be 28 56 41 52 20 70 3a 20 70 6f 72 74 3b 20 56 41 52 20 63 6c 6f 73 65 6d 65 73 3a 20 72 65 ┆tЙ(VAR p: port; VAR closemes: re┆
0x27f60…27f80 66 65 72 65 6e 63 65 3b 0d 0a 09 09 20 20 20 20 20 49 4e 53 50 45 43 54 20 6e 61 6d 65 3a 20 73 ┆ference; INSPECT name: s┆
0x27f80…27fa0 74 72 69 6e 67 3b 20 73 63 6f 70 65 3a 20 73 63 6f 70 65 5f 74 79 70 65 3b 0d 0a 09 09 20 20 20 ┆tring; scope: scope_type; ┆
0x27fa0…27fc0 20 20 6e 6f 5f 6f 66 5f 63 6f 6e 73 3a 20 30 2e 2e 6d 61 78 69 6e 74 3b 20 63 6e 74 72 6c 3a 20 ┆ no_of_cons: 0..maxint; cntrl: ┆
0x27fc0…27fe0 63 6f 6e 74 72 6f 6c 5f 74 79 70 65 29 0d 0a 77 68 65 72 65 20 70 20 69 73 20 74 68 65 20 70 6f ┆control_type) where p is the po┆
0x27fe0…28000 72 74 20 74 6f 20 62 65 20 6f 70 65 6e 65 64 2e 20 54 68 65 20 70 61 72 61 6d 65 74 65 72 20 63 ┆rt to be opened. The parameter c┆
0x28000…28020 6c 6f 73 65 6d 65 73 20 64 65 80 80 73 69 67 6e 61 74 65 73 20 0a 74 68 65 20 70 6f 72 74 5f 63 ┆losemes deђђsignates the port_c┆
0x28020…28040 6c 6f 73 65 64 20 65 76 65 6e 74 20 6d 65 73 73 61 67 65 20 77 68 69 63 68 20 77 69 6c 6c 20 62 ┆losed event message which will b┆
0x28040…28060 65 20 6f 75 74 73 74 80 61 6e 64 69 6e 67 20 77 68 69 6c 65 20 74 68 65 20 0a 70 6f 72 74 20 69 ┆e outstђanding while the port i┆
0x28060…28080 73 20 6f 70 65 6e 2e 20 54 68 65 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 6e 61 6d 65 20 61 ┆s open. The values of the name a┆
0x28080…280a0 6e 64 20 73 63 6f 70 65 20 70 61 72 61 80 6d 65 74 65 72 73 20 73 70 65 63 69 66 79 20 0a 74 68 ┆nd scope paraђmeters specify th┆
0x280a0…280c0 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 70 6f 72 74 20 61 6e 64 20 74 68 65 20 72 61 6e 67 65 ┆e name of the port and the range┆
0x280c0…280e0 20 77 69 74 68 69 6e 20 74 68 65 20 49 4d 43 20 6e 65 74 77 6f 72 6b 20 69 6e 20 77 68 69 63 68 ┆ within the IMC network in which┆
0x280e0…28100 20 0a 74 6f 20 70 75 62 6c 69 73 68 20 74 68 65 20 6e 61 6d 65 2e 20 54 68 65 20 76 61 80 6c 75 ┆ to publish the name. The vaђlu┆
0x28100…28120 65 20 6f 66 20 6e 6f 5f 6f 66 5f 63 6f 6e 73 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 ┆e of no_of_cons is the number of┆
0x28120…28140 20 63 6f 6e 80 0a 6e 65 63 74 69 6f 6e 20 65 6e 64 2d 70 6f 80 69 6e 74 73 20 72 65 80 71 75 65 ┆ conђ nection end-poђints reђque┆
0x28140…28160 73 74 65 64 20 66 6f 72 20 74 68 65 20 70 6f 72 74 2e 20 49 66 20 74 68 69 73 20 6e 75 6d 62 65 ┆sted for the port. If this numbe┆
0x28160…28180 72 20 69 73 20 67 72 65 61 74 65 72 20 0a 74 68 61 6e 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 61 ┆r is greater than the maximum a┆
0x28180…281a0 6c 6c 6f 77 65 64 20 6f 72 20 69 66 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 6e ┆llowed or if the length of the n┆
0x281a0…281c0 61 6d 65 20 69 73 20 67 72 65 61 74 65 72 20 0a 74 68 61 6e 20 31 32 20 61 20 66 61 75 6c 74 20 ┆ame is greater than 12 a fault ┆
0x281c0…281e0 77 69 6c 6c 20 6f 63 63 75 72 2e 0d 0a 0d 0a 54 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 73 ┆will occur. The type of the s┆
0x281e0…28200 63 6f 70 65 20 70 61 72 61 6d 65 74 65 72 20 69 73 20 74 68 65 20 70 72 65 64 65 66 69 6e 65 64 ┆cope parameter is the predefined┆
0x28200…28220 20 65 6e 75 6d 65 72 61 80 80 74 69 6f 6e 20 74 79 70 65 0d 0a 0d 0a 09 73 63 6f 70 65 5f 74 79 ┆ enumeraђђtion type scope_ty┆
0x28220…28240 70 65 3d 20 28 61 6e 6f 6e 79 6d 6f 75 73 2c 20 6c 6f 63 61 6c 2c 20 72 65 67 69 6f 6e 61 6c 2c ┆pe= (anonymous, local, regional,┆
0x28240…28260 20 67 6c 6f 62 61 6c 29 2e 0d 0a 0d 0a 54 68 65 20 74 79 70 65 20 6f 66 20 63 6e 74 72 6c 20 69 ┆ global). The type of cntrl i┆
0x28260…28280 73 20 61 20 70 72 65 64 65 66 69 6e 65 64 20 64 65 73 63 72 69 70 74 69 76 65 20 74 79 70 65 0d ┆s a predefined descriptive type ┆
0x28280…282a0 0a 0d 0a 20 20 20 20 63 6f 6e 74 72 6f 6c 5f 74 79 70 65 3d 20 50 41 43 4b 45 44 20 52 45 43 4f ┆ control_type= PACKED RECO┆
0x282a0…282c0 52 44 20 0d 0a 09 09 09 20 20 20 72 63 76 5f 61 6c 6c 2c 0d 0a 09 09 09 20 20 20 67 65 74 5f 63 ┆RD rcv_all, get_c┆
0x282c0…282e0 72 65 64 69 74 2c 0d 0a 09 09 09 20 20 20 3f 2c 20 3f 2c 20 3f 2c 20 3f 2c 20 3f 2c 20 3f 3a 20 ┆redit, ?, ?, ?, ?, ?, ?: ┆
0x282e0…28300 62 6f 6f 6c 65 61 6e 0d 0a 09 09 09 20 45 4e 44 0d 0a 0d 0a 46 6f 72 20 61 20 66 75 72 74 68 65 ┆boolean END For a furthe┆
0x28300…28320 72 20 64 69 73 63 75 73 73 69 6f 6e 20 6f 66 20 73 63 6f 70 65 73 2c 20 73 65 65 20 2f 44 53 41 ┆r discussion of scopes, see /DSA┆
0x28320…28340 2d 49 4d 43 2f 2e 0d 0a 0d 0a 54 68 65 20 63 61 6c 6c 20 63 61 75 73 65 73 20 74 68 65 20 70 6f ┆-IMC/. The call causes the po┆
0x28340…28360 72 74 20 74 6f 20 62 65 20 6f 70 65 6e 65 64 20 61 73 20 72 65 71 75 65 73 74 65 64 2e 20 54 68 ┆rt to be opened as requested. Th┆
0x28360…28380 65 20 73 74 61 80 74 65 20 6f 66 20 74 68 65 20 0a 70 6f 72 74 20 6d 75 73 74 20 62 65 20 63 6c ┆e staђte of the port must be cl┆
0x28380…283a0 6f 73 65 64 20 77 68 65 6e 20 74 68 65 20 63 61 6c 6c 20 69 73 20 6d 61 64 65 2c 20 6f 74 68 65 ┆osed when the call is made, othe┆
0x283a0…283c0 72 80 77 69 73 65 20 61 20 66 61 75 6c 74 20 6f 63 63 75 72 73 2e 20 0a 41 66 74 65 72 20 74 68 ┆rђwise a fault occurs. After th┆
0x283c0…283e0 65 20 63 61 6c 6c 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 70 6f 72 74 20 69 73 20 ┆e call the state of the port is ┆
0x283e0…28400 6f 70 65 6e 2e 20 54 68 65 20 70 6f 72 74 5f 63 6c 6f 73 65 64 20 65 76 65 6e 74 20 0a 77 69 6c ┆open. The port_closed event wil┆
0x28400…28420 6c 20 6f 63 63 75 72 20 77 68 65 6e 20 69 74 20 69 73 20 65 76 65 6e 74 75 61 6c 6c 79 20 63 6c ┆l occur when it is eventually cl┆
0x28420…28440 6f 73 65 64 20 77 69 74 68 20 6f 6e 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 72 ┆osed with one of the following r┆
0x28440…28460 65 80 0a 61 73 6f 6e 73 20 28 63 66 2e 20 73 65 63 74 69 6f 6e 20 31 31 2e 33 29 3a 0d 0a 0d 0a ┆eђ asons (cf. section 11.3): ┆
0x28460…28480 09 72 65 61 73 6f 6e 5f 6f 6b 3a 09 74 68 65 20 72 65 73 69 64 65 6e 74 20 63 61 6c 6c 65 64 20 ┆ reason_ok: the resident called ┆
0x28480…284a0 63 6c 6f 73 65 70 6f 72 74 0d 0a 09 72 65 61 73 6f 6e 5f 6e 61 6d 65 3a 09 61 20 6e 61 6d 65 2d ┆closeport reason_name: a name-┆
0x284a0…284c0 63 6f 6e 66 6c 69 63 74 20 61 72 6f 73 65 0d 0a 09 72 65 61 73 6f 6e 5f 72 65 73 6f 75 72 63 65 ┆conflict arose reason_resource┆
0x284c0…284e0 3a 09 84 72 65 73 6f 75 72 63 65 20 70 72 6f 62 6c 65 6d 20 73 6f 6d 65 77 68 65 72 65 20 69 6e ┆: ёresource problem somewhere in┆
0x284e0…28500 20 74 68 65 20 49 4d 43 20 0a 19 98 80 80 6e 65 74 77 6f 72 6b 2e 0d 0a 0d 0a 8c 96 a8 0a 49 66 ┆ the IMC ўђђnetwork. їќе If┆
0x28500…28520 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 70 61 72 61 6d 65 74 65 72 27 73 20 66 69 65 6c 64 20 72 ┆ the control parameter's field r┆
0x28520…28540 63 76 5f 61 6c 6c 20 68 61 73 20 74 68 65 20 76 61 6c 75 65 20 74 72 75 65 2c 20 74 68 65 20 67 ┆cv_all has the value true, the g┆
0x28540…28560 65 80 6e 65 80 0a 72 61 6c 20 72 65 63 65 69 80 76 65 20 66 65 80 61 74 75 72 65 20 28 63 66 2e ┆eђneђ ral receiђve feђature (cf.┆
0x28560…28580 20 72 65 63 65 69 76 65 61 6c 6c 2c 20 73 75 62 73 65 63 74 69 6f 6e 20 31 31 2e 32 2e 32 29 20 ┆ receiveall, subsection 11.2.2) ┆
0x28580…285a0 69 73 20 65 6e 61 80 62 6c 65 64 20 66 6f 72 20 0a 74 68 65 20 70 6f 72 74 3b 20 6f 74 68 65 72 ┆is enaђbled for the port; other┆
0x285a0…285c0 77 69 73 65 20 69 74 20 69 73 20 6e 6f 74 2e 20 41 6e 64 20 69 66 20 74 68 65 20 76 61 6c 75 65 ┆wise it is not. And if the value┆
0x285c0…285e0 20 6f 66 20 69 74 73 20 66 69 65 6c 64 20 67 65 74 5f 63 72 65 64 69 74 20 0a 69 73 20 74 72 75 ┆ of its field get_credit is tru┆
0x285e0…28600 65 2c 20 74 68 65 20 67 65 6e 65 72 61 6c 20 66 6c 6f 77 20 63 6f 6e 74 72 6f 6c 20 66 65 61 74 ┆e, the general flow control feat┆
0x28600…28620 75 72 65 20 28 63 66 2e 20 67 65 74 63 72 65 64 69 74 2c 20 73 75 62 73 65 63 74 69 6f 6e 20 0a ┆ure (cf. getcredit, subsection ┆
0x28620…28640 31 31 2e 32 2e 32 29 20 69 73 20 65 6e 61 62 6c 65 64 20 66 6f 72 20 74 68 65 20 70 6f 72 74 3b ┆11.2.2) is enabled for the port;┆
0x28640…28660 20 6f 74 68 65 72 77 69 73 65 20 69 74 20 69 73 20 6e 6f 74 2e 0d 0a 0d 0a 41 20 70 6f 72 74 20 ┆ otherwise it is not. A port ┆
0x28660…28680 69 73 20 77 69 74 68 64 72 61 77 6e 20 66 72 6f 6d 20 74 68 65 20 49 4d 43 20 6e 65 74 77 6f 72 ┆is withdrawn from the IMC networ┆
0x28680…286a0 6b 20 62 79 20 61 20 63 61 6c 6c 20 6f 66 20 63 6c 6f 80 73 65 80 80 70 6f 72 74 3a 0d 0a 0d 0a ┆k by a call of cloђseђђport: ┆
0x286a0…286c0 50 52 4f 43 45 44 55 52 45 20 bf dc d8 63 6c 6f 73 65 70 6f 72 74 be 28 56 41 52 20 70 3a 20 70 ┆PROCEDURE ┐▄пcloseportЙ(VAR p: p┆
0x286c0…286e0 6f 72 74 29 0d 0a 0d 0a 77 68 65 72 65 20 70 20 69 73 20 74 68 65 20 70 6f 72 74 20 74 6f 20 62 ┆ort) where p is the port to b┆
0x286e0…28700 65 20 63 6c 6f 73 65 64 2e 20 49 66 20 74 68 65 20 70 6f 72 74 20 69 73 20 61 6c 72 65 61 64 79 ┆e closed. If the port is already┆
0x28700…28720 20 63 6c 6f 73 65 64 20 74 68 65 20 0a 63 61 6c 6c 20 68 61 73 20 6e 6f 20 65 66 66 65 63 74 2e ┆ closed the call has no effect.┆
0x28720…28740 20 4f 74 68 65 72 77 69 73 65 20 69 74 20 70 72 6f 63 65 65 64 73 20 61 73 20 66 6f 6c 80 6c 6f ┆ Otherwise it proceeds as folђlo┆
0x28740…28760 77 73 2e 20 41 6c 6c 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 0a 6f 6e 20 74 68 65 20 70 6f 72 74 ┆ws. All connections on the port┆
0x28760…28780 20 61 72 65 20 72 65 6d 6f 76 65 64 20 77 69 74 68 20 67 72 61 63 65 66 75 6c 20 63 6f 6d 70 6c ┆ are removed with graceful compl┆
0x28780…287a0 65 74 69 6f 6e 20 6f 66 20 61 6e 79 20 66 65 61 73 69 62 6c 65 20 0a 64 61 74 61 20 74 72 61 6e ┆etion of any feasible data tran┆
0x287a0…287c0 73 66 65 72 73 20 61 73 20 64 65 73 63 72 69 62 65 64 20 66 6f 72 20 64 69 73 63 6f 6e 6e 65 63 ┆sfers as described for disconnec┆
0x287c0…287e0 74 2c 20 63 66 2e 20 73 75 62 80 73 65 63 74 69 6f 6e 20 31 31 2e 32 2e 32 2e 20 54 68 65 20 0a ┆t, cf. subђsection 11.2.2. The ┆
0x287e0…28800 64 69 73 63 6f 6e 6e 65 63 74 65 64 20 65 76 65 6e 74 73 20 6f 63 63 75 72 20 77 69 74 68 20 72 ┆disconnected events occur with r┆
0x28800…28820 65 61 73 6f 6e 5f 63 6c 6f 80 73 65 64 2e 20 48 6f 77 65 76 65 72 2c 20 61 74 20 74 68 65 20 72 ┆eason_cloђsed. However, at the r┆
0x28820…28840 65 6d 6f 74 65 20 0a 65 6e 64 20 6f 66 20 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 68 65 20 64 ┆emote end of a connection the d┆
0x28840…28860 69 73 63 6f 6e 6e 65 63 80 74 65 64 20 65 76 65 6e 74 20 6f 63 63 75 72 73 20 77 69 74 68 20 72 ┆isconnecђted event occurs with r┆
0x28860…28880 65 61 73 6f 6e 5f 6f 6b 2e 20 0a 54 68 65 6e 20 61 6c 6c 20 67 65 6e 65 72 61 6c 20 72 65 63 65 ┆eason_ok. Then all general rece┆
0x28880…288a0 69 76 65 20 6d 65 73 73 61 67 65 73 20 61 72 65 20 72 65 80 74 75 72 6e 65 64 20 61 73 20 64 75 ┆ive messages are reђturned as du┆
0x288a0…288c0 6d 6d 79 20 65 76 65 6e 74 73 2c 20 61 6e 64 20 0a 66 69 6e 61 6c 80 6c 79 20 74 68 65 20 70 6f ┆mmy events, and finalђly the po┆
0x288c0…288e0 72 74 5f 63 6c 6f 73 65 64 20 65 76 65 6e 74 20 6f 63 63 75 72 73 20 77 69 74 68 20 72 65 61 73 ┆rt_closed event occurs with reas┆
0x288e0…28900 6f 6e 5f 6f 6b 2e 20 54 68 65 20 70 6f 72 74 20 69 73 20 6d 61 80 64 65 20 0a 75 6e 6b 6e 6f 77 ┆on_ok. The port is maђde unknow┆
0x28900…28920 6e 20 74 6f 20 74 68 65 20 49 4d 43 20 6e 65 74 77 6f 72 6b 2c 20 69 74 73 20 73 74 61 74 65 20 ┆n to the IMC network, its state ┆
0x28920…28940 63 68 61 6e 67 65 73 20 74 6f 20 63 6c 6f 73 65 64 2c 20 61 6e 64 20 69 74 20 6d 61 79 20 0a 73 ┆changes to closed, and it may s┆
0x28940…28960 75 62 73 65 71 75 65 6e 74 80 6c 79 20 62 65 20 72 65 2d 6f 70 65 6e 65 64 2c 20 70 6f 73 73 69 ┆ubsequentђly be re-opened, possi┆
0x28960…28980 62 6c 79 20 77 69 74 68 20 61 20 64 69 66 66 65 72 65 6e 74 20 73 65 74 20 6f 66 20 61 74 74 72 ┆bly with a different set of attr┆
0x28980…289a0 69 80 62 75 80 74 65 73 2e 20 0a 57 68 69 6c 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 61 72 65 ┆iђbuђtes. While connections are┆
0x289a0…289c0 20 62 65 69 6e 67 20 72 65 80 6d 6f 76 65 64 20 61 6e 64 20 6d 65 73 80 73 61 67 65 73 20 72 65 ┆ being reђmoved and mesђsages re┆
0x289c0…289e0 74 75 72 80 6e 65 64 20 74 68 65 20 70 6f 72 74 20 0a 69 73 20 73 61 69 64 20 74 6f 20 62 65 20 ┆turђned the port is said to be ┆
0x289e0…28a00 63 6c 6f 73 69 6e 67 2e 0d 0a 16 73 62 0d 0a 43 6f 6e 6e 65 63 74 69 6f 6e 73 0d 0a 8c 84 a8 0a ┆closing. sb Connections їёе ┆
0x28a00…28a20 43 6f 6e 6e 65 63 74 69 6f 6e 73 20 61 72 65 20 74 68 65 20 70 72 69 6e 63 69 70 61 6c 20 6d 65 ┆Connections are the principal me┆
0x28a20…28a40 61 6e 73 20 6f 66 20 64 61 74 61 20 74 72 61 6e 73 66 65 72 20 62 65 74 77 65 65 6e 20 72 65 73 ┆ans of data transfer between res┆
0x28a40…28a60 69 80 0a 64 65 6e 74 73 2e 20 41 20 bf dc d8 63 6f 6e 6e 65 63 74 69 6f 6e be 20 6a 6f 69 6e 73 ┆iђ dents. A ┐▄пconnectionЙ joins┆
0x28a60…28a80 20 74 77 6f 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6e 64 2d 70 6f 69 6e 74 73 2c 20 65 61 63 68 ┆ two connection end-points, each┆
0x28a80…28aa0 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20 0a 61 6e 20 6f 70 65 6e 20 70 6f 72 74 2e 20 42 65 66 ┆ contained in an open port. Bef┆
0x28aa0…28ac0 6f 72 65 20 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 63 61 6e 20 62 65 20 65 73 74 61 62 6c 69 73 ┆ore a connection can be establis┆
0x28ac0…28ae0 68 80 65 64 20 6f 6e 65 20 6f 66 20 74 68 65 20 74 77 6f 20 0a 72 65 73 69 64 65 6e 74 73 20 6d ┆hђed one of the two residents m┆
0x28ae0…28b00 75 73 74 20 6d 61 6b 65 20 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6e 64 2d 70 6f 69 6e 74 20 ┆ust make a connection end-point ┆
0x28b00…28b20 61 76 61 69 6c 61 62 6c 65 20 62 79 20 63 61 6c 6c 69 6e 67 20 67 65 74 80 0a 63 6f 6e 6e 65 63 ┆available by calling getђ connec┆
0x28b20…28b40 74 69 6f 6e 20 28 63 66 2e 20 73 75 62 73 65 63 74 69 6f 6e 20 31 31 2e 32 2e 32 29 2e 20 54 68 ┆tion (cf. subsection 11.2.2). Th┆
0x28b40…28b60 65 20 72 65 73 69 64 65 6e 74 20 77 68 69 63 68 20 63 61 6c 6c 73 20 67 65 74 63 6f 6e 6e 65 63 ┆e resident which calls getconnec┆
0x28b60…28b80 80 0a 74 69 6f 6e 20 69 73 20 74 68 65 20 70 61 73 80 73 69 76 65 20 70 61 72 74 20 69 6e 20 74 ┆ђ tion is the pasђsive part in t┆
0x28b80…28ba0 68 65 20 65 73 74 61 62 6c 69 73 68 6d 65 6e 74 20 6f 66 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 ┆he establishment of the connecti┆
0x28ba0…28bc0 6f 6e 20 61 6e 64 20 0a 6e 65 65 64 20 6e 6f 74 20 6b 6e 6f 77 20 74 68 65 20 6e 61 6d 65 20 6f ┆on and need not know the name o┆
0x28bc0…28be0 66 20 74 68 65 20 72 65 6d 6f 74 65 20 70 6f 72 74 2e 20 54 68 65 20 6f 74 68 65 72 20 72 65 73 ┆f the remote port. The other res┆
0x28be0…28c00 69 64 65 6e 74 20 69 73 20 0a 74 68 65 20 61 63 74 69 76 65 20 70 61 72 74 20 77 68 69 63 68 20 ┆ident is the active part which ┆
0x28c00…28c20 6d 75 73 74 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 72 65 71 75 65 73 74 20 74 68 61 74 20 61 ┆must specifically request that a┆
0x28c20…28c40 20 63 6f 6e 80 6e 65 63 74 69 6f 6e 20 62 65 20 0a 65 73 74 61 62 6c 69 73 68 65 64 20 62 79 20 ┆ conђnection be established by ┆
0x28c40…28c60 63 61 6c 6c 69 6e 67 20 63 6f 6e 6e 65 63 74 20 28 63 66 2e 20 73 75 62 73 65 63 74 69 6f 6e 20 ┆calling connect (cf. subsection ┆
0x28c60…28c80 31 31 2e 32 2e 32 29 2e 0d 0a 0d 0a 41 6e 20 65 6e 64 2d 70 6f 69 6e 74 20 77 69 74 68 69 6e 20 ┆11.2.2). An end-point within ┆
0x28c80…28ca0 61 20 70 6f 72 74 20 69 73 20 69 64 65 6e 74 69 66 69 65 64 20 69 6e 20 61 20 72 65 71 75 65 73 ┆a port is identified in a reques┆
0x28ca0…28cc0 74 20 63 61 6c 6c 20 62 79 20 61 20 70 61 69 72 20 0a 28 70 2c 20 69 6e 64 65 78 29 20 77 68 65 ┆t call by a pair (p, index) whe┆
0x28cc0…28ce0 72 65 20 70 20 69 73 20 61 20 70 6f 72 74 20 61 6e 64 20 69 6e 64 65 78 20 69 73 20 61 20 6e 75 ┆re p is a port and index is a nu┆
0x28ce0…28d00 6d 62 65 72 20 69 6e 20 74 68 65 20 72 61 6e 67 65 20 31 2e 2e 6e 2c 20 0a 77 68 65 72 65 20 6e ┆mber in the range 1..n, where n┆
0x28d00…28d20 20 65 71 75 61 6c 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 6e 6f 5f 6f 66 5f 63 6f 6e 73 20 ┆ equals the value of no_of_cons ┆
0x28d20…28d40 67 69 76 65 6e 20 77 68 65 6e 20 74 68 65 20 70 6f 72 74 20 77 61 73 20 0a 6f 70 65 6e 65 64 2e ┆given when the port was opened.┆
0x28d40…28d60 20 54 68 69 73 20 66 61 63 74 20 61 63 63 6f 75 6e 74 73 20 66 6f 72 20 74 68 65 20 66 69 72 73 ┆ This fact accounts for the firs┆
0x28d60…28d80 74 20 74 77 6f 20 70 61 72 61 80 6d 65 74 65 72 73 20 6f 66 20 61 6c 6c 20 74 68 65 20 72 65 80 ┆t two paraђmeters of all the reђ┆
0x28d80…28da0 0a 71 75 65 73 74 20 72 6f 75 74 69 6e 65 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 74 68 69 ┆ quest routines described in thi┆
0x28da0…28dc0 73 20 73 65 63 74 69 6f 6e 20 28 65 78 80 63 65 70 74 20 72 65 63 65 69 76 65 61 6c 6c 29 2e 20 ┆s section (exђcept receiveall). ┆
0x28dc0…28de0 49 66 20 61 20 72 65 80 0a 71 75 65 73 74 20 63 61 6c 6c 20 69 73 20 6d 61 64 65 20 77 69 74 68 ┆If a reђ quest call is made with┆
0x28de0…28e00 20 61 6e 20 69 6e 64 65 78 20 70 61 72 61 80 6d 65 74 65 72 20 77 68 69 63 68 20 69 73 20 6f 75 ┆ an index paraђmeter which is ou┆
0x28e00…28e20 74 20 6f 66 20 72 61 6e 67 65 20 61 20 0a 66 61 75 6c 74 20 6f 63 63 75 72 73 2e 0d 0a 0d 0a 4e ┆t of range a fault occurs. N┆
0x28e20…28e40 6f 74 69 63 65 20 74 68 61 74 20 65 6e 64 2d 70 6f 69 6e 74 20 69 6e 64 69 63 65 73 20 61 72 65 ┆otice that end-point indices are┆
0x28e40…28e60 20 6c 6f 63 61 6c 20 74 6f 20 61 20 70 6f 72 74 20 61 6e 64 20 6e 6f 74 20 72 65 6c 61 74 65 64 ┆ local to a port and not related┆
0x28e60…28e80 20 74 6f 20 0a 69 6e 64 69 63 65 73 20 6f 72 20 65 76 65 6e 20 6b 6e 6f 77 6e 20 61 74 20 74 68 ┆ to indices or even known at th┆
0x28e80…28ea0 65 20 72 65 6d 6f 74 65 20 65 6e 64 2d 70 6f 69 6e 74 73 20 6f 66 20 63 6f 6e 6e 65 63 80 74 69 ┆e remote end-points of connecђti┆
0x28ea0…28ec0 6f 6e 73 2e 0d 0a 0d 0a 45 61 63 68 20 6b 69 6e 64 20 6f 66 20 72 65 71 75 65 73 74 20 63 61 6c ┆ons. Each kind of request cal┆
0x28ec0…28ee0 6c 20 77 68 69 63 68 20 6d 61 79 20 62 65 20 6d 61 64 65 20 63 6f 6e 63 65 72 6e 69 6e 67 20 61 ┆l which may be made concerning a┆
0x28ee0…28f00 20 63 6f 6e 80 6e 65 63 74 69 6f 6e 20 0a 65 6e 64 2d 70 6f 69 6e 74 20 69 73 20 6f 6e 6c 79 20 ┆ conђnection end-point is only ┆
0x28f00…28f20 70 65 72 6d 69 74 74 65 64 20 70 72 6f 76 69 64 65 64 20 74 68 65 20 65 6e 64 2d 70 6f 80 69 6e ┆permitted provided the end-poђin┆
0x28f20…28f40 74 20 69 73 20 69 6e 20 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 0a 73 74 61 74 65 2e 20 54 ┆t is in an appropriate state. T┆
0x28f40…28f60 68 65 20 61 70 70 6c 69 63 61 62 6c 65 20 73 74 61 74 65 73 20 61 72 65 3a 0d 0a 0d 0a 16 73 6f ┆he applicable states are: so┆
0x28f60…28f80 20 66 72 65 65 2c 20 65 6e 64 2d 70 6f 69 6e 74 20 73 74 61 74 65 0d 0a 16 73 6f 20 61 63 63 65 ┆ free, end-point state so acce┆
0x28f80…28fa0 70 74 5f 72 65 6d 6f 74 65 2c 20 65 6e 64 2d 70 6f 69 6e 74 20 73 74 61 74 65 0d 0a 16 73 6f 20 ┆pt_remote, end-point state so ┆
0x28fa0…28fc0 63 6f 6e 6e 65 63 74 65 64 2c 20 65 6e 64 2d 70 6f 69 6e 74 20 73 74 61 74 65 0d 0a 16 73 6f 20 ┆connected, end-point state so ┆
0x28fc0…28fe0 72 65 73 65 74 74 69 6e 67 2c 20 65 6e 64 2d 70 6f 69 6e 74 20 73 74 61 74 65 0d 0a 16 73 6f 20 ┆resetting, end-point state so ┆
0x28fe0…29000 64 69 73 63 6f 6e 6e 65 63 74 69 6e 67 2c 20 65 6e 64 2d 70 6f 69 6e 74 20 73 74 61 74 65 0d 0a ┆disconnecting, end-point state ┆
0x29000…29020 66 72 65 65 3a 09 20 84 74 68 65 20 65 6e 64 2d 70 6f 69 6e 74 20 69 73 20 66 72 65 65 20 66 6f ┆free: ёthe end-point is free fo┆
0x29020…29040 72 20 75 73 65 20 62 79 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 80 6e 65 63 74 20 6f 72 20 0a 19 8f ┆r use by calling conђnect or Ј┆
0x29040…29060 80 80 67 65 74 63 6f 6e 6e 65 63 74 69 6f 6e 2e 20 46 72 65 65 20 69 73 20 74 68 65 20 69 6e 69 ┆ђђgetconnection. Free is the ini┆
0x29060…29080 74 69 61 6c 20 73 74 61 74 65 20 6f 66 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 0a 19 8f 80 80 65 6e ┆tial state of connection Јђђen┆
0x29080…290a0 64 2d 70 6f 69 6e 74 73 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20 61 20 6e 65 77 6c 79 20 6f 80 ┆d-points contained in a newly oђ┆
0x290a0…290c0 70 65 6e 65 64 20 70 6f 72 74 2c 0d 0a 61 63 63 65 70 74 5f 72 65 6d 6f 74 65 3a 20 84 67 65 74 ┆pened port, accept_remote: ёget┆
0x290c0…290e0 63 6f 6e 6e 65 63 74 69 6f 6e 20 68 61 73 20 62 65 65 6e 20 63 61 6c 6c 65 64 2e 20 54 68 65 20 ┆connection has been called. The ┆
0x290e0…29100 65 6e 64 2d 70 6f 69 6e 74 20 77 69 6c 6c 20 6c 65 80 0a 19 8f 80 80 61 76 65 20 74 68 69 73 20 ┆end-point will leђ Јђђave this ┆
0x29100…29120 73 74 61 74 65 20 77 68 65 6e 20 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 69 73 20 65 80 73 74 61 ┆state when a connection is eђsta┆
0x29120…29140 62 6c 69 73 68 65 64 20 66 72 6f 6d 20 0a 19 8f 80 80 61 20 72 65 6d 6f 74 65 20 70 6f 72 74 2c ┆blished from Јђђa remote port,┆
0x29140…29160 20 6f 72 20 77 68 65 6e 20 64 69 73 80 63 6f 6e 80 6e 65 63 74 20 69 73 20 63 61 6c 6c 65 64 2c ┆ or when disђconђnect is called,┆
0x29160…29180 0d 0a 63 6f 6e 6e 65 63 74 65 64 3a 09 20 84 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 68 61 73 20 ┆ connected: ёa connection has ┆
0x29180…291a0 62 65 65 6e 20 6f 72 20 69 73 20 62 65 69 6e 67 20 65 73 74 61 62 6c 69 80 73 68 65 64 2c 20 61 ┆been or is being establiђshed, a┆
0x291a0…291c0 6e 64 20 0a 19 8f 80 80 64 61 74 61 20 74 72 61 6e 73 66 65 72 20 6d 61 79 20 74 61 6b 65 20 70 ┆nd Јђђdata transfer may take p┆
0x291c0…291e0 6c 61 80 63 65 2c 0d 0a 72 65 73 65 74 74 69 6e 67 3a 09 20 84 72 65 73 65 74 20 68 61 73 20 62 ┆laђce, resetting: ёreset has b┆
0x291e0…29200 65 65 6e 20 63 61 6c 6c 65 64 20 77 68 69 6c 65 20 74 68 65 20 73 74 61 74 65 20 77 61 73 20 63 ┆een called while the state was c┆
0x29200…29220 6f 6e 80 6e 65 63 74 65 64 2e 20 0a 19 8f 80 80 54 68 65 20 73 74 61 74 65 20 77 69 6c 6c 20 72 ┆onђnected. ЈђђThe state will r┆
0x29220…29240 65 76 65 72 74 20 74 6f 20 63 6f 6e 6e 65 63 74 65 64 20 77 68 65 6e 20 74 68 65 20 72 65 73 65 ┆evert to connected when the rese┆
0x29240…29260 74 74 69 6e 67 20 0a 19 8f 80 80 70 72 6f 63 65 64 75 72 65 73 20 68 61 76 65 20 62 65 65 6e 20 ┆tting Јђђprocedures have been ┆
0x29260…29280 63 6f 6d 80 70 6c 65 74 65 64 2c 0d 0a 8c 86 e0 0a 64 69 73 63 6f 6e 6e 65 63 74 69 6e 67 3a 20 ┆comђpleted, їєЯ disconnecting: ┆
0x29280…292a0 84 64 69 73 63 6f 6e 6e 65 63 74 20 68 61 73 20 62 65 65 6e 20 63 61 6c 6c 65 64 2c 20 61 6e 64 ┆ёdisconnect has been called, and┆
0x292a0…292c0 20 74 68 65 20 70 72 6f 63 65 73 73 20 6f 66 20 72 65 80 0a 19 8f 80 80 6d 6f 76 69 6e 67 20 61 ┆ the process of reђ Јђђmoving a┆
0x292c0…292e0 20 70 72 65 76 69 6f 75 73 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 69 73 20 75 6e 64 65 72 20 77 61 ┆ previous connection is under wa┆
0x292e0…29300 79 2e 20 54 68 65 20 73 74 61 74 65 20 0a 19 8f 80 80 77 69 6c 6c 20 73 75 62 73 65 71 75 65 6e ┆y. The state Јђђwill subsequen┆
0x29300…29320 74 6c 79 20 62 65 63 6f 6d 65 20 66 72 65 65 2e 0d 0a 0d 0a 49 66 20 74 68 65 20 65 6e 64 2d 70 ┆tly become free. If the end-p┆
0x29320…29340 6f 69 6e 74 20 69 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 20 28 70 2c 20 69 6e 64 65 78 29 20 67 ┆oint identification (p, index) g┆
0x29340…29360 69 76 65 6e 20 69 6e 20 61 20 72 65 80 80 71 75 65 73 74 20 63 61 6c 6c 20 69 73 20 0a 73 75 63 ┆iven in a reђђquest call is suc┆
0x29360…29380 68 20 74 68 61 74 20 74 68 65 20 70 6f 72 74 20 69 73 20 63 6c 6f 73 65 64 20 6f 72 20 63 6c 6f ┆h that the port is closed or clo┆
0x29380…293a0 73 69 6e 67 2c 20 6f 72 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 65 6e 64 2d 70 6f ┆sing, or the state of the end-po┆
0x293a0…293c0 69 6e 74 20 0a 69 73 20 66 72 65 65 2c 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 6f 20 ┆int is free, the connection to ┆
0x293c0…293e0 77 68 69 63 68 20 74 68 65 20 63 61 6c 6c 20 70 65 72 74 61 69 6e 73 20 69 73 20 73 61 69 64 20 ┆which the call pertains is said ┆
0x293e0…29400 74 6f 20 62 65 20 0a a0 bf dc d8 61 62 73 65 6e 74 e0 be 2e 20 54 68 69 73 20 70 68 65 6e 6f 6d ┆to be а┐▄пabsentЯЙ. This phenom┆
0x29400…29420 65 6e 6f 6e 20 6d 61 79 20 6f 63 63 75 72 20 69 66 20 74 68 65 20 65 76 65 6e 74 20 77 68 69 63 ┆enon may occur if the event whic┆
0x29420…29440 68 20 69 6e 66 6f 72 6d 73 20 74 68 65 20 0a 72 65 73 69 64 65 6e 74 20 61 62 6f 75 74 20 74 68 ┆h informs the resident about th┆
0x29440…29460 65 20 72 65 80 6d 6f 76 61 6c 20 6f 66 20 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 6f 72 20 74 68 ┆e reђmoval of a connection or th┆
0x29460…29480 65 20 63 6c 6f 73 69 6e 67 20 6f 66 20 61 20 70 6f 72 74 20 0a 68 61 73 20 6e 6f 74 20 62 65 65 ┆e closing of a port has not bee┆
0x29480…294a0 6e 20 70 72 6f 63 65 73 73 65 64 20 61 74 20 74 68 65 20 74 69 6d 65 20 6f 66 20 63 61 6c 6c 2e ┆n processed at the time of call.┆
0x294a0…294c0 0d 0a 0d 0a 49 74 20 69 73 20 61 20 67 65 6e 65 72 61 6c 20 72 75 6c 65 20 74 68 61 74 20 69 66 ┆ It is a general rule that if┆
0x294c0…294e0 20 61 20 72 65 71 75 65 73 74 20 63 61 6c 6c 20 69 73 20 6d 61 64 65 20 63 6f 6e 63 65 72 80 6e ┆ a request call is made concerђn┆
0x294e0…29500 69 6e 67 20 61 20 63 6f 6e 80 0a 6e 65 63 74 69 6f 6e 20 65 6e 64 2d 70 6f 69 6e 74 20 77 68 69 ┆ing a conђ nection end-point whi┆
0x29500…29520 63 68 20 69 73 20 69 6e 20 61 20 77 72 6f 6e 67 20 73 74 61 74 65 20 66 6f 72 20 74 68 65 20 63 ┆ch is in a wrong state for the c┆
0x29520…29540 61 6c 6c 20 61 20 66 61 75 6c 74 20 6f 63 80 0a 63 75 72 73 2c 20 65 78 63 65 70 74 20 69 66 20 ┆all a fault ocђ curs, except if ┆
0x29540…29560 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 69 73 20 61 62 73 65 6e 74 2e 0d 0a 16 73 63 0d 0a ┆the connection is absent. sc ┆
0x29560…29580 43 6f 6e 6e 65 63 74 69 6f 6e 20 41 64 6d 69 6e 69 73 74 72 61 74 69 6f 6e 0d 0a 41 20 63 6f 6e ┆Connection Administration A con┆
0x29580…295a0 6e 65 63 74 69 6f 6e 20 65 6e 64 2d 70 6f 69 6e 74 20 69 73 20 6d 61 64 65 20 61 76 61 69 6c 61 ┆nection end-point is made availa┆
0x295a0…295c0 62 6c 65 20 66 6f 72 20 72 65 6d 6f 74 65 6c 79 20 69 6e 69 74 69 80 61 74 65 64 20 63 6f 6e 80 ┆ble for remotely initiђated conђ┆
0x295c0…295e0 0a 6e 65 63 74 69 6f 6e 20 65 73 74 61 62 6c 69 73 68 6d 65 6e 74 20 62 79 20 61 20 63 61 6c 6c ┆ nection establishment by a call┆
0x295e0…29600 20 6f 66 20 67 65 74 63 6f 6e 6e 65 63 74 69 6f 6e 3a 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 ┆ of getconnection: PROCEDURE ┆
0x29600…29620 bf dc d8 67 65 74 63 6f 6e 6e 65 63 74 69 6f 6e be 28 56 41 52 20 70 3a 20 70 6f 72 74 3b 20 69 ┆┐▄пgetconnectionЙ(VAR p: port; i┆
0x29620…29640 6e 64 65 78 3a 20 31 2e 2e 6d 61 78 69 6e 74 3b 0d 0a 09 09 20 20 20 20 09 56 41 52 20 63 6f 6d ┆ndex: 1..maxint; VAR com┆
0x29640…29660 70 6c 2c 20 64 69 73 63 3a 20 72 65 66 65 72 65 6e 63 65 29 0d 0a 0d 0a 49 66 20 74 68 65 20 70 ┆pl, disc: reference) If the p┆
0x29660…29680 6f 72 74 20 69 73 20 63 6c 6f 73 65 64 20 6f 72 20 63 6c 6f 73 69 6e 67 20 74 68 65 20 6d 65 73 ┆ort is closed or closing the mes┆
0x29680…296a0 73 61 67 65 20 64 65 73 69 67 6e 61 74 65 64 20 62 79 20 63 6f 6d 70 6c 20 69 73 20 0a 72 65 74 ┆sage designated by compl is ret┆
0x296a0…296c0 75 72 6e 65 64 20 61 73 20 61 20 64 75 6d 6d 79 20 65 76 65 6e 74 20 61 6e 64 20 74 68 65 20 6d ┆urned as a dummy event and the m┆
0x296c0…296e0 65 73 73 61 67 65 20 64 65 73 69 67 6e 61 80 74 65 64 20 62 79 20 64 69 73 63 20 61 73 20 61 20 ┆essage designaђted by disc as a ┆
0x296e0…29700 0a 64 69 73 63 6f 6e 6e 65 63 74 65 64 20 65 76 65 6e 74 20 77 69 74 68 20 72 65 80 61 73 6f 6e ┆ disconnected event with reђason┆
0x29700…29720 5f 63 6c 6f 73 65 64 2c 20 61 6e 64 20 74 68 65 20 63 61 6c 6c 20 68 61 73 20 6e 6f 20 66 75 72 ┆_closed, and the call has no fur┆
0x29720…29740 74 68 65 72 20 65 66 80 0a 66 65 63 74 2e 20 4f 74 68 65 72 77 69 73 65 20 61 20 63 61 6c 6c 20 ┆ther efђ fect. Otherwise a call ┆
0x29740…29760 6f 66 20 67 65 74 63 6f 6e 80 6e 65 63 74 69 6f 6e 20 69 73 20 6f 6e 6c 79 20 70 65 72 6d 69 74 ┆of getconђnection is only permit┆
0x29760…29780 74 65 64 20 69 66 20 74 68 65 20 73 74 61 74 65 20 0a 6f 66 20 74 68 65 20 65 6e 64 2d 70 6f 69 ┆ted if the state of the end-poi┆
0x29780…297a0 6e 74 20 69 73 20 66 72 65 65 3b 20 61 66 74 65 72 20 74 68 65 20 63 61 6c 6c 20 69 74 20 69 73 ┆nt is free; after the call it is┆
0x297a0…297c0 20 72 65 6d 6f 74 65 5f 61 63 63 65 70 74 2e 20 54 68 65 20 6d 65 73 80 0a 73 61 67 65 20 64 65 ┆ remote_accept. The mesђ sage de┆
0x297c0…297e0 73 69 80 67 6e 61 74 65 64 20 62 79 20 63 6f 6d 70 6c 20 77 69 6c 6c 20 62 65 20 72 65 80 74 75 ┆siђgnated by compl will be reђtu┆
0x297e0…29800 72 6e 65 64 20 61 73 20 61 20 72 65 80 6d 6f 74 65 5f 63 6f 6e 6e 65 63 74 20 65 76 65 6e 74 20 ┆rned as a reђmote_connect event ┆
0x29800…29820 0a 77 68 65 6e 20 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 68 61 73 20 62 65 65 6e 20 65 73 74 61 ┆ when a connection has been esta┆
0x29820…29840 62 6c 69 73 68 65 64 2e 20 54 68 65 20 6d 65 73 73 61 67 65 20 64 65 73 69 67 6e 61 80 74 65 64 ┆blished. The message designaђted┆
0x29840…29860 20 62 79 20 0a 64 69 73 63 20 77 69 6c 6c 20 62 65 20 74 68 65 20 64 69 73 63 6f 6e 80 6e 65 63 ┆ by disc will be the disconђnec┆
0x29860…29880 74 65 64 20 6d 65 73 80 73 61 67 65 20 6f 66 20 74 68 65 20 63 6f 6e 6e 65 63 80 74 69 6f 6e 20 ┆ted mesђsage of the connecђtion ┆
0x29880…298a0 65 6e 64 2d 70 6f 69 6e 74 2e 20 49 74 20 0a 77 69 6c 6c 20 62 65 20 6f 75 74 73 74 61 6e 80 64 ┆end-point. It will be outstanђd┆
0x298a0…298c0 69 6e 67 20 75 6e 80 74 69 6c 20 74 68 65 20 65 6e 64 2d 70 6f 69 6e 74 20 62 65 63 6f 6d 65 73 ┆ing unђtil the end-point becomes┆
0x298c0…298e0 20 66 72 65 65 20 61 67 61 69 6e 2e 0d 0a 0d 0a 8c 85 e8 0a 49 6e 20 6f 72 64 65 72 20 74 6f 20 ┆ free again. їЁУ In order to ┆
0x298e0…29900 65 73 74 61 62 6c 69 73 68 20 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 61 ┆establish a connection between a┆
0x29900…29920 20 6c 6f 63 61 6c 20 63 6f 6e 6e 65 63 80 80 74 69 6f 6e 20 65 6e 64 2d 70 6f 80 0a 69 6e 74 20 ┆ local connecђђtion end-poђ int ┆
0x29920…29940 61 6e 64 20 61 20 72 65 6d 6f 74 65 20 65 6e 64 2d 70 6f 69 6e 74 2c 20 77 68 69 63 68 20 68 61 ┆and a remote end-point, which ha┆
0x29940…29960 73 20 62 65 65 6e 20 6d 61 64 65 20 61 76 61 69 6c 61 62 6c 65 20 61 73 20 64 65 73 63 72 69 80 ┆s been made available as descriђ┆
0x29960…29980 0a 62 65 64 20 61 62 6f 76 65 2c 20 61 20 72 65 73 69 64 65 6e 74 20 6d 75 73 74 20 63 61 6c 6c ┆ bed above, a resident must call┆
0x29980…299a0 20 63 6f 6e 6e 65 63 74 3a 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 63 6f 6e 6e 65 63 ┆ connect: PROCEDURE ┐▄пconnec┆
0x299a0…299c0 74 be 28 56 41 52 20 70 3a 20 70 6f 72 74 3b 20 69 6e 64 65 78 3a 20 31 2e 2e 6d 61 78 69 6e 74 ┆tЙ(VAR p: port; index: 1..maxint┆
0x299c0…299e0 3b 0d 0a 09 09 20 20 20 20 56 41 52 20 63 6f 6d 70 6c 2c 20 64 69 73 63 3a 20 72 65 66 65 72 65 ┆; VAR compl, disc: refere┆
0x299e0…29a00 6e 63 65 3b 0d 0a 09 09 20 20 20 20 49 4e 53 50 45 43 54 20 72 65 6d 6f 74 65 5f 6e 61 6d 65 3a ┆nce; INSPECT remote_name:┆
0x29a00…29a20 20 73 74 72 69 6e 67 3b 0d 0a 09 09 20 20 20 20 73 65 72 76 69 63 65 3a 20 63 6f 6e 6e 5f 73 65 ┆ string; service: conn_se┆
0x29a20…29a40 72 76 69 63 65 29 0d 0a 0d 0a 49 66 20 74 68 65 20 70 6f 72 74 20 69 73 20 63 6c 6f 73 65 64 20 ┆rvice) If the port is closed ┆
0x29a40…29a60 6f 72 20 63 6c 6f 73 69 6e 67 20 74 68 65 20 6d 65 73 73 61 67 65 20 64 65 73 69 67 6e 61 74 65 ┆or closing the message designate┆
0x29a60…29a80 64 20 62 79 20 63 6f 6d 70 6c 20 69 73 20 0a 72 65 74 75 72 6e 65 64 20 61 73 20 61 20 64 75 6d ┆d by compl is returned as a dum┆
0x29a80…29aa0 6d 79 20 65 76 65 6e 74 20 61 6e 64 20 74 68 65 20 6d 65 73 73 61 67 65 20 64 65 73 69 67 6e 61 ┆my event and the message designa┆
0x29aa0…29ac0 80 74 65 64 20 62 79 20 64 69 73 63 20 61 73 20 61 20 0a 64 69 73 63 6f 6e 6e 65 63 74 65 64 20 ┆ђted by disc as a disconnected ┆
0x29ac0…29ae0 65 76 65 6e 74 20 77 69 74 68 20 72 65 80 61 73 6f 6e 5f 63 6c 6f 73 65 64 2c 20 61 6e 64 20 74 ┆event with reђason_closed, and t┆
0x29ae0…29b00 68 65 20 63 61 6c 6c 20 68 61 73 20 6e 6f 20 66 75 72 74 68 65 72 20 65 66 80 0a 66 65 63 74 2e ┆he call has no further efђ fect.┆
0x29b00…29b20 20 4f 74 68 65 72 77 69 73 65 20 74 68 65 20 63 61 6c 6c 20 69 73 20 6f 6e 6c 79 20 61 63 63 65 ┆ Otherwise the call is only acce┆
0x29b20…29b40 70 74 65 64 20 69 66 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 69 6e 64 69 63 61 74 ┆pted if the state of the indicat┆
0x29b40…29b60 65 64 20 0a 65 6e 64 2d 70 6f 69 6e 74 20 69 73 20 66 72 65 65 2e 0d 0a 0d 0a 54 68 65 20 76 61 ┆ed end-point is free. The va┆
0x29b60…29b80 6c 75 65 20 6f 66 20 72 65 6d 6f 74 65 5f 6e 61 6d 65 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f ┆lue of remote_name is the name o┆
0x29b80…29ba0 66 20 74 68 65 20 72 65 6d 6f 74 65 20 70 6f 72 74 20 74 6f 20 77 68 69 63 68 20 61 20 0a 63 6f ┆f the remote port to which a co┆
0x29ba0…29bc0 6e 6e 65 63 74 69 6f 6e 20 69 73 20 72 65 71 75 65 73 74 65 64 2e 20 49 66 20 74 68 65 20 6c 65 ┆nnection is requested. If the le┆
0x29bc0…29be0 6e 67 74 68 20 6f 66 20 74 68 65 20 6e 61 6d 65 20 69 73 20 67 72 65 61 74 65 72 20 74 68 61 6e ┆ngth of the name is greater than┆
0x29be0…29c00 20 31 32 20 0a 61 20 66 61 75 6c 74 20 6f 63 63 75 72 73 2e 20 54 68 65 20 73 74 61 74 65 20 6f ┆ 12 a fault occurs. The state o┆
0x29c00…29c20 66 20 74 68 65 20 28 6c 6f 63 61 6c 29 20 65 6e 64 2d 70 6f 69 6e 74 20 62 65 63 6f 6d 65 73 20 ┆f the (local) end-point becomes ┆
0x29c20…29c40 63 6f 6e 6e 65 63 74 65 64 2c 20 0a 69 2e 65 2e 20 64 61 74 61 20 74 72 61 6e 73 66 65 72 20 63 ┆connected, i.e. data transfer c┆
0x29c40…29c60 61 6c 6c 73 20 6d 61 79 20 62 65 20 6d 61 64 65 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 66 6f 6c ┆alls may be made immediately fol┆
0x29c60…29c80 6c 6f 77 69 6e 67 20 74 68 65 20 63 61 6c 6c 20 6f 66 20 0a 63 6f 6e 6e 65 63 74 2e 20 54 68 69 ┆lowing the call of connect. Thi┆
0x29c80…29ca0 73 20 64 6f 65 73 20 6e 6f 74 20 69 6d 70 6c 79 20 74 68 61 74 20 74 68 65 20 61 63 74 75 61 6c ┆s does not imply that the actual┆
0x29ca0…29cc0 20 70 61 74 68 20 74 68 72 6f 75 67 68 20 74 68 65 20 49 4d 43 20 0a 6e 65 74 77 6f 72 6b 20 68 ┆ path through the IMC network h┆
0x29cc0…29ce0 61 73 20 62 65 65 6e 20 65 73 74 61 62 80 6c 69 73 68 65 64 20 61 74 20 74 68 69 73 20 74 69 6d ┆as been estabђlished at this tim┆
0x29ce0…29d00 65 2c 20 6e 6f 72 20 69 6e 20 66 61 63 74 20 74 68 61 74 20 69 74 20 65 76 65 72 20 0a 77 69 6c ┆e, nor in fact that it ever wil┆
0x29d00…29d20 6c 20 62 65 2e 0d 0a 0d 0a 54 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 70 61 72 61 6d 65 ┆l be. The value of the parame┆
0x29d20…29d40 74 65 72 20 63 6f 6d 70 6c 20 6d 61 79 20 62 65 20 4e 49 4c 2c 20 69 2e 65 2e 20 74 68 65 20 64 ┆ter compl may be NIL, i.e. the d┆
0x29d40…29d60 65 73 69 80 67 6e 61 80 74 65 64 20 0a 6d 65 73 73 61 67 65 20 69 73 20 6f 70 74 69 6f 6e 61 6c ┆esiђgnaђted message is optional┆
0x29d60…29d80 2e 20 49 66 20 69 74 20 69 73 20 70 72 65 73 65 6e 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 ┆. If it is present it will be us┆
0x29d80…29da0 65 64 20 74 6f 20 67 65 6e 65 80 72 61 74 65 20 61 20 6c 6f 80 0a 63 61 6c 5f 63 6f 6e 6e 65 63 ┆ed to geneђrate a loђ cal_connec┆
0x29da0…29dc0 74 20 65 76 65 6e 74 20 77 68 65 6e 20 74 68 65 20 61 63 74 75 61 6c 20 63 6f 6e 80 6e 65 63 74 ┆t event when the actual conђnect┆
0x29dc0…29de0 69 6f 6e 20 68 61 73 20 62 65 65 6e 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 0a 65 73 74 61 62 ┆ion has been successfully estab┆
0x29de0…29e00 6c 69 73 68 65 64 2e 20 54 68 69 73 20 65 76 65 6e 74 20 69 73 20 70 75 72 65 6c 79 20 69 6e 80 ┆lished. This event is purely inђ┆
0x29e00…29e20 66 6f 72 6d 61 74 69 76 65 20 61 6e 64 20 6e 6f 74 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 ┆formative and not associated wit┆
0x29e20…29e40 68 20 0a 61 6e 79 20 63 68 61 6e 67 65 20 6f 66 20 73 74 61 74 65 2e 20 49 66 20 74 68 65 20 6c ┆h any change of state. If the l┆
0x29e40…29e60 6f 63 61 6c 5f 63 6f 6e 6e 65 63 74 20 6d 65 73 73 61 80 67 65 20 69 73 20 70 72 65 73 65 6e 74 ┆ocal_connect messaђge is present┆
0x29e60…29e80 2c 20 62 75 74 20 0a 65 73 74 61 62 6c 69 73 68 6d 65 6e 74 20 6f 66 20 74 68 65 20 63 6f 6e 6e ┆, but establishment of the conn┆
0x29e80…29ea0 65 63 74 69 6f 6e 20 66 61 69 6c 73 2c 20 74 68 65 20 6d 65 73 73 61 67 65 20 77 69 6c 6c 20 62 ┆ection fails, the message will b┆
0x29ea0…29ec0 65 20 72 65 74 75 72 6e 65 64 20 61 73 20 0a 61 20 64 75 6d 80 6d 79 20 65 76 65 6e 74 2e 0d 0a ┆e returned as a dumђmy event. ┆
0x29ec0…29ee0 0d 0a 8c 85 e8 0a 54 68 65 20 6d 65 73 73 61 67 65 20 64 65 73 69 67 6e 61 74 65 64 20 62 79 20 ┆ їЁУ The message designated by ┆
0x29ee0…29f00 64 69 73 63 20 69 73 20 74 68 65 20 64 69 73 63 6f 6e 6e 65 63 74 65 64 20 65 76 65 6e 74 20 6d ┆disc is the disconnected event m┆
0x29f00…29f20 65 73 73 61 80 67 65 2e 20 49 74 20 0a 77 69 6c 6c 20 62 65 20 6f 75 74 73 74 61 6e 64 69 6e 67 ┆essaђge. It will be outstanding┆
0x29f20…29f40 20 75 6e 74 69 6c 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 63 6f 6e 80 6e 65 63 74 ┆ until the state of the conђnect┆
0x29f40…29f60 69 6f 6e 20 65 6e 64 2d 70 6f 69 6e 74 20 65 76 65 6e 80 0a 74 75 61 6c 6c 79 20 72 65 76 65 72 ┆ion end-point evenђ tually rever┆
0x29f60…29f80 74 73 20 74 6f 20 66 72 65 65 20 6f 72 20 74 68 65 20 70 6f 72 74 20 69 73 20 63 6c 6f 73 65 64 ┆ts to free or the port is closed┆
0x29f80…29fa0 2e 20 49 66 20 74 68 69 73 20 68 61 70 70 65 6e 73 20 62 65 63 61 75 73 65 20 69 74 20 0a 74 75 ┆. If this happens because it tu┆
0x29fa0…29fc0 72 6e 73 20 6f 75 74 20 74 6f 20 62 65 20 69 6d 70 6f 73 80 73 69 80 62 6c 65 20 74 6f 20 65 73 ┆rns out to be imposђsiђble to es┆
0x29fc0…29fe0 74 61 62 6c 69 73 68 20 74 68 65 20 61 63 74 75 61 6c 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 68 ┆tablish the actual connection th┆
0x29fe0…2a000 65 20 72 65 80 0a 61 73 6f 6e 20 77 69 6c 6c 20 62 65 20 65 69 74 68 65 72 20 72 65 61 73 6f 6e ┆e reђ ason will be either reason┆
0x2a000…2a020 5f 6e 61 6d 65 2c 20 69 66 20 61 20 70 6f 72 74 20 77 69 74 68 20 74 68 65 20 73 70 65 63 69 66 ┆_name, if a port with the specif┆
0x2a020…2a040 69 65 64 20 6e 61 6d 65 20 0a 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 2c 20 6f 72 ┆ied name could not be found, or┆
0x2a040…2a060 20 72 65 61 73 6f 6e 5f 72 65 80 73 6f 75 72 63 65 2c 20 69 66 20 74 68 65 20 6e 65 63 65 73 73 ┆ reason_reђsource, if the necess┆
0x2a060…2a080 61 72 79 20 72 65 73 6f 75 72 63 65 73 20 0a 77 65 72 65 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c ┆ary resources were not availabl┆
0x2a080…2a0a0 65 20 69 6e 20 74 68 65 20 49 4d 43 20 6e 65 74 77 6f 72 6b 20 6f 72 20 61 74 20 74 68 65 20 72 ┆e in the IMC network or at the r┆
0x2a0a0…2a0c0 65 6d 6f 74 65 20 70 6f 72 74 20 28 6e 6f 20 0a 65 6e 64 2d 70 6f 69 6e 74 20 77 69 74 68 20 73 ┆emote port (no end-point with s┆
0x2a0c0…2a0e0 74 61 74 65 20 61 63 63 65 70 74 5f 72 65 6d 6f 74 65 29 2e 0d 0a 0d 0a 54 68 65 20 73 65 72 76 ┆tate accept_remote). The serv┆
0x2a0e0…2a100 69 63 65 20 70 61 72 61 6d 65 74 65 72 20 73 65 6c 65 63 74 73 20 74 68 65 20 73 65 72 76 69 63 ┆ice parameter selects the servic┆
0x2a100…2a120 65 20 63 6c 61 73 73 20 6f 66 20 74 68 65 20 63 6f 6e 80 6e 65 63 80 74 69 6f 6e 2e 20 0a 54 77 ┆e class of the conђnecђtion. Tw┆
0x2a120…2a140 6f 20 73 65 72 76 69 63 65 20 63 6c 61 73 73 65 73 20 61 72 65 20 64 65 66 69 6e 65 64 3a 20 6e ┆o service classes are defined: n┆
0x2a140…2a160 6f 72 6d 61 6c 20 61 6e 64 20 68 69 67 68 2e 20 54 68 65 20 74 72 65 61 74 6d 65 6e 74 20 6f 66 ┆ormal and high. The treatment of┆
0x2a160…2a180 20 0a 73 65 72 76 69 63 65 20 63 6c 61 73 73 65 73 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 ┆ service classes depends on the┆
0x2a180…2a1a0 20 69 6d 70 6c 65 6d 65 6e 74 61 80 74 69 6f 6e 20 6f 66 20 74 68 65 20 49 4d 43 20 6e 65 74 77 ┆ implementaђtion of the IMC netw┆
0x2a1a0…2a1c0 6f 72 6b 2e 20 0a 54 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 73 65 72 76 69 63 65 20 70 61 ┆ork. The type of the service pa┆
0x2a1c0…2a1e0 72 61 6d 65 74 65 72 20 69 73 20 74 68 65 20 70 72 65 80 64 65 66 69 6e 65 64 20 65 6e 75 6d 65 ┆rameter is the preђdefined enume┆
0x2a1e0…2a200 72 61 74 69 6f 6e 20 74 79 70 65 0d 0a 0d 0a 09 63 6f 6e 6e 5f 73 65 72 76 69 63 65 3d 20 28 63 ┆ration type conn_service= (c┆
0x2a200…2a220 73 5f 6e 6f 72 6d 61 6c 2c 20 63 73 5f 68 69 67 68 29 2e 0d 0a 0d 0a 41 20 63 6f 6e 6e 65 63 74 ┆s_normal, cs_high). A connect┆
0x2a220…2a240 69 6f 6e 20 65 6e 64 2d 70 6f 69 6e 74 20 6d 61 79 20 61 6c 77 61 79 73 20 62 65 20 66 72 65 65 ┆ion end-point may always be free┆
0x2a240…2a260 64 20 62 79 20 61 20 63 61 6c 6c 20 6f 66 20 64 69 73 80 63 6f 6e 80 6e 65 63 74 3a 0d 0a 0d 0a ┆d by a call of disђconђnect: ┆
0x2a260…2a280 50 52 4f 43 45 44 55 52 45 20 bf dc d8 64 69 73 63 6f 6e 6e 65 63 74 be 28 56 41 52 20 70 3a 20 ┆PROCEDURE ┐▄пdisconnectЙ(VAR p: ┆
0x2a280…2a2a0 70 6f 72 74 3b 20 69 6e 64 65 78 3a 20 31 2e 2e 6d 61 78 69 6e 74 29 0d 0a 0d 0a 49 66 20 74 68 ┆port; index: 1..maxint) If th┆
0x2a2a0…2a2c0 65 20 69 6e 64 69 63 61 74 65 64 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 69 73 20 61 62 73 65 6e 74 ┆e indicated connection is absent┆
0x2a2c0…2a2e0 20 6f 72 20 69 66 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 63 6f 6e 80 6e 65 63 80 ┆ or if the state of the conђnecђ┆
0x2a2e0…2a300 0a 74 69 6f 6e 20 65 6e 64 2d 70 6f 69 6e 74 20 69 73 20 64 69 73 63 6f 6e 6e 65 63 74 69 6e 67 ┆ tion end-point is disconnecting┆
0x2a300…2a320 20 74 68 65 20 63 61 6c 6c 20 68 61 73 20 6e 6f 20 65 66 80 80 66 65 63 74 2e 20 4f 74 68 65 72 ┆ the call has no efђђfect. Other┆
0x2a320…2a340 80 77 69 73 65 20 69 66 20 0a 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6e 64 2d 70 6f 69 ┆ђwise if the connection end-poi┆
0x2a340…2a360 6e 74 20 69 73 20 65 6e 67 61 67 65 64 20 69 6e 20 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 69 ┆nt is engaged in a connection, i┆
0x2a360…2a380 2e 65 2e 20 69 66 20 69 74 73 20 73 74 61 74 65 20 0a 69 73 20 63 6f 6e 6e 65 63 74 65 64 20 6f ┆.e. if its state is connected o┆
0x2a380…2a3a0 72 20 72 65 73 65 74 74 69 6e 67 2c 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 6c 6c ┆r resetting, the connection will┆
0x2a3a0…2a3c0 20 62 65 20 72 65 80 6d 6f 76 65 64 2e 20 54 68 69 73 20 77 69 6c 6c 20 0a 62 65 20 64 6f 6e 65 ┆ be reђmoved. This will be done┆
0x2a3c0…2a3e0 20 67 72 61 63 65 66 75 6c 6c 79 2c 20 69 2e 65 2e 20 61 6c 6c 20 64 61 74 61 20 74 72 61 6e 73 ┆ gracefully, i.e. all data trans┆
0x2a3e0…2a400 66 65 72 73 20 66 6f 72 20 77 68 69 63 68 20 63 72 65 64 69 74 20 69 73 20 61 76 61 69 6c 61 62 ┆fers for which credit is availab┆
0x2a400…2a420 6c 65 20 0a 61 72 65 20 63 6f 6d 70 6c 65 74 65 64 20 62 65 66 6f 72 65 20 74 68 65 20 72 65 6d ┆le are completed before the rem┆
0x2a420…2a440 61 69 6e 69 6e 67 20 6f 75 74 73 74 61 6e 64 69 6e 67 20 6d 65 73 73 61 67 65 73 20 61 72 65 20 ┆aining outstanding messages are ┆
0x2a440…2a460 72 65 80 74 75 72 6e 65 64 2e 20 0a 41 74 20 62 6f 74 68 20 65 6e 64 73 20 6f 66 20 74 68 65 20 ┆reђturned. At both ends of the ┆
0x2a460…2a480 63 6f 6e 6e 65 63 80 74 69 6f 6e 20 61 6c 6c 20 6f 75 74 73 74 61 6e 64 69 6e 67 20 6d 65 73 80 ┆connecђtion all outstanding mesђ┆
0x2a480…2a4a0 73 61 67 65 73 20 65 78 63 65 70 74 20 74 68 65 20 0a 64 69 73 63 6f 6e 6e 65 63 74 65 64 20 65 ┆sages except the disconnected e┆
0x2a4a0…2a4c0 76 65 6e 74 20 6d 65 73 80 73 61 67 65 73 20 61 72 65 20 74 68 65 6e 20 72 65 74 75 72 80 6e 65 ┆vent mesђsages are then returђne┆
0x2a4c0…2a4e0 64 20 61 73 20 64 75 6d 6d 79 20 65 76 65 6e 74 73 2e 20 0a 57 68 69 6c 65 20 74 68 69 73 20 74 ┆d as dummy events. While this t┆
0x2a4e0…2a500 61 6b 65 73 20 70 6c 61 63 65 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 28 6c 6f 63 ┆akes place the state of the (loc┆
0x2a500…2a520 61 6c 29 20 65 6e 64 2d 70 6f 69 6e 74 20 69 73 20 64 69 73 63 6f 6e 6e 65 63 80 0a 74 69 6e 67 ┆al) end-point is disconnecђ ting┆
0x2a520…2a540 2e 20 46 69 6e 61 6c 6c 79 20 74 68 65 20 64 69 73 80 63 6f 6e 6e 65 63 74 65 64 20 65 76 65 6e ┆. Finally the disђconnected even┆
0x2a540…2a560 74 73 20 6f 63 63 75 72 20 28 61 74 20 62 6f 74 68 20 65 6e 64 73 29 20 77 69 74 68 20 72 65 80 ┆ts occur (at both ends) with reђ┆
0x2a560…2a580 0a 61 73 6f 6e 5f 6f 6b 2c 20 61 6e 64 20 74 68 65 20 73 74 61 74 65 20 62 65 63 6f 6d 65 73 20 ┆ ason_ok, and the state becomes ┆
0x2a580…2a5a0 66 72 65 65 2e 0d 0a 0d 0a 49 66 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 63 6f 6e ┆free. If the state of the con┆
0x2a5a0…2a5c0 6e 65 63 74 69 6f 6e 20 65 6e 64 2d 70 6f 69 6e 74 20 69 73 20 61 63 63 65 70 74 5f 72 65 6d 6f ┆nection end-point is accept_remo┆
0x2a5c0…2a5e0 74 65 20 77 68 65 6e 20 64 69 73 80 0a 63 6f 6e 6e 65 63 74 20 69 73 20 63 61 6c 6c 65 64 20 74 ┆te when disђ connect is called t┆
0x2a5e0…2a600 68 65 20 72 65 6d 6f 74 65 5f 63 6f 6e 6e 65 63 74 20 6d 65 73 73 61 67 65 20 77 69 6c 6c 20 62 ┆he remote_connect message will b┆
0x2a600…2a620 65 20 72 65 74 75 72 6e 65 64 20 61 73 20 61 20 0a 64 75 6d 6d 79 20 65 76 65 6e 74 2c 20 74 68 ┆e returned as a dummy event, th┆
0x2a620…2a640 65 20 64 69 73 63 6f 6e 6e 65 63 74 65 64 20 65 76 65 6e 74 20 77 69 6c 6c 20 6f 63 63 75 72 20 ┆e disconnected event will occur ┆
0x2a640…2a660 77 69 74 68 20 72 65 61 80 73 6f 6e 5f 6f 6b 2c 20 61 6e 64 20 0a 74 68 65 20 73 74 61 74 65 20 ┆with reaђson_ok, and the state ┆
0x2a660…2a680 6f 66 20 74 68 65 20 65 6e 64 2d 70 6f 69 6e 74 20 62 65 63 6f 6d 65 73 20 66 72 65 65 2e 0d 0a ┆of the end-point becomes free. ┆
0x2a680…2a6a0 0d 0a 8c 86 f8 0a 54 68 65 20 6f 6e 6c 79 20 72 65 61 73 6f 6e 20 66 6f 72 20 72 65 6d 6f 76 61 ┆ їєЭ The only reason for remova┆
0x2a6a0…2a6c0 6c 20 6f 66 20 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 68 69 63 68 20 68 61 73 20 6e 6f 74 20 ┆l of a connection which has not ┆
0x2a6c0…2a6e0 62 65 65 6e 20 64 69 73 80 0a 63 75 73 73 65 64 20 61 62 6f 76 65 20 28 74 68 69 73 20 69 6e 63 ┆been disђ cussed above (this inc┆
0x2a6e0…2a700 6c 75 64 65 73 20 72 65 6d 6f 76 61 6c 20 77 68 65 6e 20 61 20 70 6f 72 74 20 69 73 20 63 6c 6f ┆ludes removal when a port is clo┆
0x2a700…2a720 73 65 64 2c 20 63 66 2e 20 73 65 63 74 69 6f 6e 20 0a 31 31 2e 31 29 20 69 73 20 66 61 69 6c 75 ┆sed, cf. section 11.1) is failu┆
0x2a720…2a740 72 65 20 69 6e 20 73 6f 6d 65 20 63 6f 6d 70 6f 6e 65 6e 74 20 6f 66 20 74 68 65 20 49 4d 43 20 ┆re in some component of the IMC ┆
0x2a740…2a760 6e 65 74 77 6f 72 6b 2e 20 49 66 20 61 20 63 6f 6e 6e 65 63 80 0a 74 69 6f 6e 20 69 73 20 62 72 ┆network. If a connecђ tion is br┆
0x2a760…2a780 6f 6b 65 6e 20 66 6f 72 20 74 68 69 73 20 72 65 61 73 6f 6e 20 74 68 65 20 64 69 73 63 6f 6e 6e ┆oken for this reason the disconn┆
0x2a780…2a7a0 65 63 74 65 64 20 65 76 65 6e 74 20 77 69 6c 6c 20 6f 63 63 75 72 20 77 69 74 68 20 0a 72 65 61 ┆ected event will occur with rea┆
0x2a7a0…2a7c0 73 6f 6e 5f 6e 65 74 77 6f 72 6b 20 61 66 74 65 72 20 61 6c 6c 20 6f 74 68 65 72 20 6f 75 74 73 ┆son_network after all other outs┆
0x2a7c0…2a7e0 74 61 6e 64 69 6e 67 20 6d 65 73 80 73 61 67 65 73 20 68 61 76 65 20 62 65 65 6e 20 0a 72 65 74 ┆tanding mesђsages have been ret┆
0x2a7e0…2a800 75 72 6e 65 64 20 61 73 20 64 75 6d 6d 79 20 65 76 65 6e 74 73 2e 0d 0a 16 73 63 0d 0a 43 6f 6e ┆urned as dummy events. sc Con┆
0x2a800…2a820 6e 65 63 74 69 6f 6e 2d 62 61 73 65 64 20 44 61 74 61 20 54 72 61 6e 73 66 65 72 0d 0a 54 68 65 ┆nection-based Data Transfer The┆
0x2a820…2a840 20 72 6f 75 74 69 6e 65 73 20 66 6f 72 20 64 61 74 61 20 74 72 61 6e 73 66 65 72 20 6f 6e 20 63 ┆ routines for data transfer on c┆
0x2a840…2a860 6f 6e 6e 65 63 74 69 6f 6e 73 20 61 6e 64 20 66 6f 72 20 63 6f 6e 80 74 72 6f 6c 20 6f 66 20 64 ┆onnections and for conђtrol of d┆
0x2a860…2a880 61 74 61 20 0a 6d 65 73 73 61 67 65 73 3a 20 73 65 6e 64 2c 20 72 65 63 65 69 76 65 2c 20 72 65 ┆ata messages: send, receive, re┆
0x2a880…2a8a0 63 65 69 76 65 61 6c 6c 2c 20 67 65 74 63 72 65 80 64 69 74 2c 20 72 65 73 65 74 2c 20 61 6e 64 ┆ceiveall, getcreђdit, reset, and┆
0x2a8a0…2a8c0 20 67 65 74 72 65 73 65 74 2c 20 61 72 65 20 0a 64 65 73 63 72 69 62 65 64 20 69 6e 20 74 68 69 ┆ getreset, are described in thi┆
0x2a8c0…2a8e0 73 20 73 75 62 73 65 63 74 69 6f 6e 2e 0d 0a 0d 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 72 ┆s subsection. The following r┆
0x2a8e0…2a900 75 6c 65 20 68 6f 6c 64 73 20 66 6f 72 20 63 61 6c 6c 73 20 6f 66 20 61 6c 6c 20 74 68 65 73 65 ┆ule holds for calls of all these┆
0x2a900…2a920 20 72 6f 75 74 69 6e 65 73 20 65 78 80 63 65 70 74 20 72 65 63 65 80 0a 69 76 65 61 6c 6c 3a 20 ┆ routines exђcept receђ iveall: ┆
0x2a920…2a940 49 66 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 69 6e 64 69 63 61 74 65 64 20 62 79 20 74 ┆If the connection indicated by t┆
0x2a940…2a960 68 65 20 66 69 72 73 74 20 74 77 6f 20 70 61 72 61 6d 65 80 74 65 72 73 20 69 73 20 0a 61 62 73 ┆he first two parameђters is abs┆
0x2a960…2a980 65 6e 74 20 74 68 65 20 6d 65 73 73 61 67 65 20 64 65 73 69 67 6e 61 74 65 64 20 62 79 20 74 68 ┆ent the message designated by th┆
0x2a980…2a9a0 65 20 74 68 69 72 64 20 70 61 72 61 6d 65 74 65 72 20 69 73 20 72 65 74 75 72 6e 65 64 20 61 73 ┆e third parameter is returned as┆
0x2a9a0…2a9c0 20 61 20 0a 64 75 6d 6d 79 20 65 76 65 6e 74 20 61 6e 64 20 74 68 65 20 63 61 6c 6c 20 68 61 73 ┆ a dummy event and the call has┆
0x2a9c0…2a9e0 20 6e 6f 20 66 75 72 74 68 65 72 20 65 66 66 65 63 74 2e 20 4f 74 68 65 72 77 69 73 65 20 74 68 ┆ no further effect. Otherwise th┆
0x2a9e0…2aa00 65 20 63 61 6c 6c 20 69 73 20 0a 6f 6e 6c 79 20 70 65 72 6d 69 74 74 65 64 20 69 66 20 74 68 65 ┆e call is only permitted if the┆
0x2aa00…2aa20 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 65 6e 64 2d 70 6f 69 6e 74 20 69 73 20 63 6f 6e 6e 65 ┆ state of the end-point is conne┆
0x2aa20…2aa40 63 74 65 64 20 28 6f 72 20 72 65 73 65 74 74 69 6e 67 20 0a 69 6e 20 74 68 65 20 63 61 80 73 65 ┆cted (or resetting in the caђse┆
0x2aa40…2aa60 20 6f 66 20 67 65 74 72 65 73 65 74 29 2e 0d 0a 0d 0a 41 20 72 65 63 65 69 76 65 20 6d 65 73 73 ┆ of getreset). A receive mess┆
0x2aa60…2aa80 61 67 65 20 69 73 20 6d 61 64 65 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 61 20 73 70 65 63 ┆age is made available for a spec┆
0x2aa80…2aaa0 69 66 69 63 20 63 6f 6e 6e 65 63 80 80 74 69 6f 6e 20 62 79 20 61 20 0a 63 61 6c 6c 20 6f 66 20 ┆ific connecђђtion by a call of ┆
0x2aaa0…2aac0 72 65 63 65 69 76 65 3a 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 72 65 63 65 69 76 65 ┆receive: PROCEDURE ┐▄пreceive┆
0x2aac0…2aae0 be 28 56 41 52 20 70 3a 20 70 6f 72 74 3b 20 69 6e 64 65 78 3a 20 31 2e 2e 6d 61 78 69 6e 74 3b ┆Й(VAR p: port; index: 1..maxint;┆
0x2aae0…2ab00 0d 0a 09 09 20 20 20 20 56 41 52 20 64 61 74 61 6d 65 73 3a 20 72 65 66 65 72 65 6e 63 65 29 0d ┆ VAR datames: reference) ┆
0x2ab00…2ab20 0a 0d 0a 54 68 65 20 64 65 73 69 67 6e 61 74 65 64 20 6d 65 73 73 61 67 65 20 62 65 63 6f 6d 65 ┆ The designated message become┆
0x2ab20…2ab40 73 20 61 6e 20 6f 75 74 73 74 61 6e 64 69 6e 67 20 72 65 63 65 69 76 65 20 6d 65 73 73 61 80 67 ┆s an outstanding receive messaђg┆
0x2ab40…2ab60 65 20 66 6f 72 20 0a 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e 20 41 74 20 74 68 65 20 72 65 ┆e for the connection. At the re┆
0x2ab60…2ab80 6d 6f 74 65 20 65 6e 64 20 6f 66 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 68 65 20 63 ┆mote end of the connection the c┆
0x2ab80…2aba0 61 6c 6c 20 6d 61 79 20 0a 63 61 75 73 65 20 65 69 74 68 65 72 20 61 20 63 72 65 64 69 74 20 6f ┆all may cause either a credit o┆
0x2aba0…2abc0 72 20 61 20 64 61 74 61 5f 73 65 6e 74 20 65 76 65 6e 74 20 74 6f 20 6f 63 63 75 72 2e 20 49 66 ┆r a data_sent event to occur. If┆
0x2abc0…2abe0 20 62 6f 74 68 20 6b 69 6e 64 73 20 6f 66 20 0a 65 76 65 6e 74 20 6d 65 73 73 61 67 65 20 61 72 ┆ both kinds of event message ar┆
0x2abe0…2ac00 65 20 6f 75 74 73 74 61 6e 64 69 6e 67 20 6f 6e 6c 79 20 74 68 65 20 64 61 74 61 5f 73 65 6e 74 ┆e outstanding only the data_sent┆
0x2ac00…2ac20 20 65 76 65 6e 74 20 77 69 6c 6c 20 6f 63 63 75 72 2e 20 0a 57 68 65 6e 20 61 20 75 6e 69 74 20 ┆ event will occur. When a unit ┆
0x2ac20…2ac40 6f 66 20 64 61 74 61 20 68 61 73 20 62 65 65 6e 20 74 72 61 6e 73 66 65 72 72 65 64 20 66 72 6f ┆of data has been transferred fro┆
0x2ac40…2ac60 6d 20 61 20 72 65 6d 6f 74 65 20 73 65 6e 64 20 6d 65 73 73 61 67 65 20 0a 74 6f 20 74 68 65 20 ┆m a remote send message to the ┆
0x2ac60…2ac80 72 65 63 65 69 76 65 20 6d 65 73 73 61 80 67 65 20 74 68 65 20 6c 61 74 74 65 72 20 69 73 20 72 ┆receive messaђge the latter is r┆
0x2ac80…2aca0 65 80 74 75 72 6e 65 64 20 61 73 20 61 20 64 61 74 61 5f 61 72 72 69 76 65 64 20 65 76 65 6e 74 ┆eђturned as a data_arrived event┆
0x2aca0…2acc0 2e 20 0a 49 66 20 6e 65 63 65 73 80 73 61 72 79 2c 20 74 68 65 20 72 65 63 65 69 76 65 64 20 64 ┆. If necesђsary, the received d┆
0x2acc0…2ace0 61 74 61 20 75 6e 69 74 20 69 73 20 74 72 75 6e 63 61 74 65 64 20 74 6f 20 66 69 74 20 69 6e 74 ┆ata unit is truncated to fit int┆
0x2ace0…2ad00 6f 20 74 68 65 20 64 61 74 61 20 0a 61 72 65 61 20 6f 66 20 74 68 65 20 72 65 63 65 69 76 65 20 ┆o the data area of the receive ┆
0x2ad00…2ad20 6d 65 73 73 61 80 67 65 2c 20 61 6e 64 20 69 6e 20 74 68 69 73 20 63 61 73 65 20 74 68 65 20 65 ┆messaђge, and in this case the e┆
0x2ad20…2ad40 76 65 6e 74 20 77 69 6c 6c 20 62 65 20 0a 64 61 74 61 5f 6f 76 65 72 72 75 6e 2e 0d 0a 0d 0a 8c ┆vent will be data_overrun. ї┆
0x2ad40…2ad60 86 b0 0a 49 66 20 74 68 65 20 67 65 6e 65 72 61 6c 20 72 65 63 65 69 76 65 20 66 65 61 74 75 72 ┆є░ If the general receive featur┆
0x2ad60…2ad80 65 20 69 73 20 65 6e 61 62 6c 65 64 20 66 6f 72 20 61 20 70 6f 72 74 20 28 63 66 2e 20 74 68 65 ┆e is enabled for a port (cf. the┆
0x2ad80…2ada0 20 63 6e 74 72 6c 20 0a 70 61 72 61 6d 65 74 65 72 20 6f 66 20 6f 70 65 6e 70 6f 72 74 2c 20 73 ┆ cntrl parameter of openport, s┆
0x2ada0…2adc0 65 63 74 69 6f 6e 20 31 31 2e 31 29 20 61 20 67 65 6e 65 72 61 6c 20 72 65 63 65 69 76 65 20 6d ┆ection 11.1) a general receive m┆
0x2adc0…2ade0 65 73 73 61 67 65 20 66 6f 72 20 0a 74 68 65 20 77 68 6f 6c 65 20 70 6f 72 74 2c 20 6e 6f 74 20 ┆essage for the whole port, not ┆
0x2ade0…2ae00 64 65 64 69 63 61 74 65 64 20 74 6f 20 61 20 70 61 72 80 74 69 63 75 6c 61 72 20 63 6f 6e 80 6e ┆dedicated to a parђticular conђn┆
0x2ae00…2ae20 65 63 74 69 6f 6e 2c 20 6d 61 79 20 62 65 20 64 65 80 0a 6c 69 76 65 72 65 64 20 74 6f 20 74 68 ┆ection, may be deђ livered to th┆
0x2ae20…2ae40 65 20 49 4d 43 20 62 79 20 61 20 63 61 6c 6c 20 6f 66 20 72 65 63 65 69 76 65 61 6c 6c 3a 0d 0a ┆e IMC by a call of receiveall: ┆
0x2ae40…2ae60 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 72 65 63 65 69 76 65 61 6c 6c be 28 56 41 52 20 70 ┆ PROCEDURE ┐▄пreceiveallЙ(VAR p┆
0x2ae60…2ae80 3a 20 70 6f 72 74 3b 20 56 41 52 20 64 61 74 61 6d 65 73 3a 20 72 65 66 65 72 65 6e 63 65 29 0d ┆: port; VAR datames: reference) ┆
0x2ae80…2aea0 0a 0d 0a 49 66 20 74 68 65 20 70 6f 72 74 20 69 73 20 63 6c 6f 73 65 64 20 6f 72 20 63 6c 6f 73 ┆ If the port is closed or clos┆
0x2aea0…2aec0 69 6e 67 20 74 68 65 20 64 65 73 69 67 6e 61 74 65 64 20 6d 65 73 73 61 67 65 20 69 73 20 72 65 ┆ing the designated message is re┆
0x2aec0…2aee0 74 75 72 80 6e 65 64 20 61 73 20 0a 61 20 64 75 6d 6d 79 20 65 76 65 6e 74 20 61 6e 64 20 74 68 ┆turђned as a dummy event and th┆
0x2aee0…2af00 65 20 63 61 6c 6c 20 68 61 73 20 6e 6f 20 66 75 72 74 68 65 72 20 65 66 80 80 66 65 63 74 2e 20 ┆e call has no further efђђfect. ┆
0x2af00…2af20 49 66 20 74 68 65 20 67 65 6e 65 72 61 6c 20 72 65 80 0a 63 65 69 76 65 20 66 65 61 74 75 72 65 ┆If the general reђ ceive feature┆
0x2af20…2af40 20 69 73 20 6e 6f 74 20 65 6e 61 62 6c 65 64 20 61 20 66 61 75 6c 74 20 6f 63 63 75 72 73 2e 20 ┆ is not enabled a fault occurs. ┆
0x2af40…2af60 4f 74 68 65 72 77 69 73 65 20 74 68 65 20 6d 65 73 73 61 67 65 20 0a 62 65 63 6f 6d 65 73 20 61 ┆Otherwise the message becomes a┆
0x2af60…2af80 6e 20 6f 75 74 73 74 61 6e 64 69 6e 67 20 67 65 6e 65 72 61 6c 20 72 65 63 65 69 76 65 20 6d 65 ┆n outstanding general receive me┆
0x2af80…2afa0 73 73 61 67 65 2e 20 49 74 20 6d 61 79 20 62 65 20 75 73 65 64 20 66 6f 72 20 0a 61 6e 79 20 63 ┆ssage. It may be used for any c┆
0x2afa0…2afc0 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 69 6e 20 74 68 65 20 70 6f 72 74 2e 20 49 74 20 77 69 ┆onnection within the port. It wi┆
0x2afc0…2afe0 6c 6c 20 65 76 65 6e 74 75 80 61 6c 6c 79 20 62 65 20 72 65 74 75 72 6e 65 64 20 61 73 20 0a 64 ┆ll eventuђally be returned as d┆
0x2afe0…2b000 61 74 61 5f 61 72 72 69 76 65 64 20 6f 72 20 64 61 74 61 5f 6f 76 65 72 72 75 6e 2c 20 64 65 70 ┆ata_arrived or data_overrun, dep┆
0x2b000…2b020 65 6e 64 69 6e 67 20 6f 6e 20 77 68 65 74 68 65 72 20 74 68 65 20 72 65 63 65 69 76 65 64 20 64 ┆ending on whether the received d┆
0x2b020…2b040 61 74 61 20 0a 75 6e 69 74 20 68 61 64 20 74 6f 20 62 65 20 74 72 75 6e 63 61 74 65 64 20 74 6f ┆ata unit had to be truncated to┆
0x2b040…2b060 20 66 69 74 20 69 6e 74 6f 20 74 68 65 20 72 65 63 65 69 76 65 20 64 61 74 61 20 61 72 65 61 2e ┆ fit into the receive data area.┆
0x2b060…2b080 20 54 68 65 20 69 6e 64 65 78 20 0a 6f 66 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6e ┆ The index of the connection en┆
0x2b080…2b0a0 64 2d 70 6f 69 6e 74 20 74 6f 20 77 68 69 63 68 20 74 68 65 20 64 61 74 61 20 62 65 6c 6f 6e 67 ┆d-point to which the data belong┆
0x2b0a0…2b0c0 20 77 69 6c 6c 20 62 65 20 61 6e 20 0a 61 74 74 72 69 62 75 74 65 20 6f 66 20 74 68 65 20 6d 65 ┆ will be an attribute of the me┆
0x2b0c0…2b0e0 73 73 61 67 65 20 28 63 66 2e 20 73 65 63 74 69 6f 6e 20 31 31 2e 33 29 2e 20 49 6e 20 63 61 73 ┆ssage (cf. section 11.3). In cas┆
0x2b0e0…2b100 65 20 6f 66 20 6e 65 74 77 6f 72 6b 20 66 61 69 6c 75 72 65 20 0a 77 68 69 63 68 20 63 61 75 73 ┆e of network failure which caus┆
0x2b100…2b120 65 73 20 61 20 63 6f 6e 6e 65 63 80 74 69 6f 6e 20 6f 6e 20 74 68 65 20 70 6f 72 74 20 74 6f 20 ┆es a connecђtion on the port to ┆
0x2b120…2b140 62 65 20 72 65 6d 6f 76 65 64 20 74 68 65 20 6d 65 73 73 61 67 65 20 0a 6d 61 79 20 62 65 20 72 ┆be removed the message may be r┆
0x2b140…2b160 65 74 75 72 6e 65 64 20 61 73 20 61 20 64 75 6d 6d 79 20 65 76 65 6e 74 2e 0d 0a 0d 0a 41 20 73 ┆eturned as a dummy event. A s┆
0x2b160…2b180 65 6e 64 20 6d 65 73 73 61 67 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 75 6e 69 74 20 6f 66 ┆end message containing a unit of┆
0x2b180…2b1a0 20 64 61 74 61 20 74 6f 20 62 65 20 73 65 6e 74 20 6f 6e 20 61 20 73 70 65 63 69 80 66 69 65 64 ┆ data to be sent on a speciђfied┆
0x2b1a0…2b1c0 20 0a 63 6f 6e 6e 65 63 74 69 6f 6e 20 69 73 20 64 65 6c 69 76 65 72 65 64 20 74 6f 20 74 68 65 ┆ connection is delivered to the┆
0x2b1c0…2b1e0 20 49 4d 43 20 6e 65 74 77 6f 72 6b 20 62 79 20 61 20 63 61 6c 6c 20 6f 66 20 73 65 6e 64 3a 0d ┆ IMC network by a call of send: ┆
0x2b1e0…2b200 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 73 65 6e 64 be 28 56 41 52 20 70 3a 20 70 6f 72 ┆ PROCEDURE ┐▄пsendЙ(VAR p: por┆
0x2b200…2b220 74 3b 20 69 6e 64 65 78 3a 20 31 2e 2e 6d 61 78 69 6e 74 3b 0d 0a 09 09 20 56 41 52 20 64 61 74 ┆t; index: 1..maxint; VAR dat┆
0x2b220…2b240 61 6d 65 73 3a 20 72 65 66 65 72 65 6e 63 65 29 0d 0a 0d 0a 54 68 65 20 64 65 73 69 67 6e 61 74 ┆ames: reference) The designat┆
0x2b240…2b260 65 64 20 6d 65 73 73 61 67 65 20 62 65 63 6f 6d 65 73 20 61 6e 20 6f 75 74 73 74 61 6e 64 69 6e ┆ed message becomes an outstandin┆
0x2b260…2b280 67 20 73 65 6e 64 20 6d 65 73 73 61 67 65 2e 20 49 66 20 61 20 0a 72 65 63 65 69 76 65 20 6d 65 ┆g send message. If a receive me┆
0x2b280…2b2a0 73 73 61 67 65 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 74 68 65 20 72 65 6d 6f 74 65 ┆ssage is available at the remote┆
0x2b2a0…2b2c0 20 65 6e 64 2c 20 6f 72 20 77 68 65 6e 20 6f 6e 65 20 62 65 63 6f 6d 65 73 20 0a 61 76 61 69 6c ┆ end, or when one becomes avail┆
0x2b2c0…2b2e0 61 62 6c 65 20 28 63 61 6c 6c 20 6f 66 20 72 65 63 65 69 76 65 20 6f 72 20 72 65 63 65 69 76 65 ┆able (call of receive or receive┆
0x2b2e0…2b300 61 6c 6c 29 2c 20 74 68 65 20 69 6e 64 69 63 61 74 65 64 20 64 61 74 61 20 75 6e 69 74 20 69 73 ┆all), the indicated data unit is┆
0x2b300…2b320 20 0a 74 72 61 6e 73 66 65 72 72 65 64 20 74 6f 20 74 68 65 20 72 65 63 65 69 76 65 20 64 61 74 ┆ transferred to the receive dat┆
0x2b320…2b340 61 20 61 72 65 61 2e 20 54 68 65 6e 20 74 68 65 20 73 65 6e 64 20 6d 65 73 73 61 67 65 20 69 73 ┆a area. Then the send message is┆
0x2b340…2b360 20 0a 72 65 74 75 72 6e 65 64 20 61 73 20 64 61 74 61 5f 73 65 6e 74 2c 20 61 6e 64 20 74 68 65 ┆ returned as data_sent, and the┆
0x2b360…2b380 20 72 65 80 63 65 69 76 65 20 6d 65 73 73 61 67 65 20 61 74 20 74 68 65 20 72 65 6d 6f 74 65 20 ┆ reђceive message at the remote ┆
0x2b380…2b3a0 65 6e 64 20 61 73 20 0a 64 61 74 61 5f 61 72 72 69 76 65 64 20 28 6f 72 20 64 61 74 61 80 5f 6f ┆end as data_arrived (or dataђ_o┆
0x2b3a0…2b3c0 80 76 65 72 72 75 6e 29 2e 0d 0a 0d 0a 8c 86 80 0a 49 66 20 74 68 65 20 67 65 6e 65 72 61 6c 20 ┆ђverrun). їєђ If the general ┆
0x2b3c0…2b3e0 66 6c 6f 77 20 63 6f 6e 74 72 6f 6c 20 66 65 61 74 75 72 65 20 69 73 20 65 6e 61 62 6c 65 64 20 ┆flow control feature is enabled ┆
0x2b3e0…2b400 66 6f 72 20 61 20 70 6f 72 74 20 28 63 66 2e 20 74 68 65 20 0a 63 6e 74 72 6c 20 70 61 72 61 6d ┆for a port (cf. the cntrl param┆
0x2b400…2b420 65 74 65 72 20 6f 66 20 6f 70 65 6e 70 6f 72 74 2c 20 73 65 63 74 69 6f 6e 20 31 31 2e 31 29 2c ┆eter of openport, section 11.1),┆
0x2b420…2b440 20 66 6c 6f 77 20 63 6f 6e 74 72 6f 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 0a 70 65 72 74 61 ┆ flow control information perta┆
0x2b440…2b460 69 6e 69 6e 67 20 74 6f 20 61 20 73 70 65 63 69 66 69 65 64 20 63 6f 6e 6e 65 63 80 80 74 69 6f ┆ining to a specified connecђђtio┆
0x2b460…2b480 6e 20 63 61 6e 20 62 65 20 6f 62 74 61 69 6e 65 64 20 66 72 6f 6d 20 74 68 65 20 49 4d 43 20 62 ┆n can be obtained from the IMC b┆
0x2b480…2b4a0 79 20 0a 61 20 63 61 6c 6c 20 6f 66 20 67 65 74 63 72 65 64 69 74 3a 0d 0a 0d 0a 50 52 4f 43 45 ┆y a call of getcredit: PROCE┆
0x2b4a0…2b4c0 44 55 52 45 20 bf dc d8 67 65 74 63 72 65 64 69 74 be 28 56 41 52 20 70 3a 20 70 6f 72 74 3b 20 ┆DURE ┐▄пgetcreditЙ(VAR p: port; ┆
0x2b4c0…2b4e0 69 6e 64 65 78 3a 20 31 2e 2e 6d 61 78 69 6e 74 3b 0d 0a 09 09 20 20 20 20 20 20 56 41 52 20 63 ┆index: 1..maxint; VAR c┆
0x2b4e0…2b500 72 65 64 6d 65 73 3a 20 72 65 66 65 72 65 6e 63 65 29 0d 0a 0d 0a 54 68 65 20 64 65 73 69 67 6e ┆redmes: reference) The design┆
0x2b500…2b520 61 74 65 64 20 6d 65 73 73 61 67 65 20 62 65 63 6f 6d 65 73 20 61 6e 20 6f 75 74 73 74 61 6e 64 ┆ated message becomes an outstand┆
0x2b520…2b540 69 6e 67 20 63 72 65 64 69 74 20 6d 65 73 73 61 80 67 65 2e 20 49 74 20 69 73 20 0a 72 65 74 75 ┆ing credit messaђge. It is retu┆
0x2b540…2b560 72 6e 65 64 20 61 73 20 61 20 63 72 65 64 69 74 20 65 76 65 6e 74 20 77 68 65 6e 20 74 68 65 72 ┆rned as a credit event when ther┆
0x2b560…2b580 65 20 69 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 75 74 73 74 61 6e 64 69 6e 67 20 72 65 80 ┆e is one or more outstanding reђ┆
0x2b580…2b5a0 0a 63 65 69 76 65 20 6d 65 73 73 61 67 65 73 20 61 74 20 74 68 65 20 72 65 6d 6f 74 65 20 65 6e ┆ ceive messages at the remote en┆
0x2b5a0…2b5c0 64 20 6f 66 20 74 68 65 20 63 6f 6e 6e 65 63 80 74 69 6f 6e 20 28 63 61 6c 6c 20 6f 66 20 72 65 ┆d of the connecђtion (call of re┆
0x2b5c0…2b5e0 63 65 69 76 65 29 20 0a 66 6f 72 20 77 68 69 63 68 20 63 72 65 64 69 74 20 68 61 73 20 6e 6f 74 ┆ceive) for which credit has not┆
0x2b5e0…2b600 20 62 65 65 6e 20 67 69 76 65 6e 20 70 72 65 80 76 69 6f 75 73 6c 79 2e 20 54 68 65 20 6e 75 6d ┆ been given preђviously. The num┆
0x2b600…2b620 62 65 72 20 6f 66 20 73 75 63 68 20 0a 72 65 63 65 69 76 65 20 6d 65 73 73 61 67 65 73 20 69 73 ┆ber of such receive messages is┆
0x2b620…2b640 20 70 61 73 73 65 64 20 61 73 20 74 68 65 20 6d 65 73 73 61 67 65 20 61 74 74 72 69 62 75 74 65 ┆ passed as the message attribute┆
0x2b640…2b660 20 63 72 65 64 69 74 20 63 6f 75 6e 74 20 28 63 66 2e 20 0a 73 65 63 74 69 6f 6e 20 31 31 2e 33 ┆ credit count (cf. section 11.3┆
0x2b660…2b680 29 2e 20 48 6f 77 65 76 65 72 2c 20 61 20 63 72 65 64 69 74 20 65 76 65 6e 74 20 63 61 6e 20 6f ┆). However, a credit event can o┆
0x2b680…2b6a0 6e 6c 79 20 6f 63 63 75 72 20 70 72 6f 76 69 64 65 64 20 74 68 65 72 65 20 0a 69 73 20 61 74 20 ┆nly occur provided there is at ┆
0x2b6a0…2b6c0 6c 65 61 73 74 20 6f 6e 65 20 6f 75 74 73 74 61 6e 64 69 6e 67 20 72 65 73 65 74 5f 69 6e 64 69 ┆least one outstanding reset_indi┆
0x2b6c0…2b6e0 63 61 74 69 6f 6e 20 6d 65 73 73 61 67 65 20 61 74 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e ┆cation message at the connection┆
0x2b6e0…2b700 20 0a 65 6e 64 2d 70 6f 69 6e 74 2c 20 63 66 2e 20 67 65 74 72 65 73 65 74 2e 0d 0a 0d 0a 44 61 ┆ end-point, cf. getreset. Da┆
0x2b700…2b720 74 61 20 61 6e 64 20 63 72 65 64 69 74 20 6d 65 73 73 61 67 65 73 20 77 68 69 63 68 20 61 72 65 ┆ta and credit messages which are┆
0x2b720…2b740 20 6f 75 74 73 74 61 6e 64 69 6e 67 20 61 74 20 61 6e 20 65 6e 64 2d 70 6f 80 69 6e 74 20 6f 66 ┆ outstanding at an end-poђint of┆
0x2b740…2b760 20 61 20 0a 63 6f 6e 6e 65 63 74 69 6f 6e 20 6d 61 79 20 62 65 20 74 61 6b 65 6e 20 62 61 63 6b ┆ a connection may be taken back┆
0x2b760…2b780 20 77 69 74 68 6f 75 74 20 62 72 65 61 6b 69 6e 67 20 74 68 65 20 63 6f 6e 6e 65 63 80 74 69 6f ┆ without breaking the connecђtio┆
0x2b780…2b7a0 6e 20 62 79 20 0a 63 61 6c 80 6c 69 6e 67 20 72 65 73 65 74 3a 0d 0a 0d 0a 0e 0a 50 52 4f 43 45 ┆n by calђling reset: PROCE┆
0x2b7a0…2b7c0 44 55 52 45 20 bf dc d8 72 65 73 65 74 be 28 56 41 52 20 70 3a 20 70 6f 72 74 3b 20 69 6e 64 65 ┆DURE ┐▄пresetЙ(VAR p: port; inde┆
0x2b7c0…2b7e0 78 3a 20 31 2e 2e 6d 61 78 69 6e 74 3b 0d 0a 09 09 20 20 56 41 52 20 63 6f 6d 70 6c 3a 20 72 65 ┆x: 1..maxint; VAR compl: re┆
0x2b7e0…2b800 66 65 72 65 6e 63 65 29 0d 0a 0f 0a 0d 0a 49 6e 20 74 68 65 20 73 61 6d 65 20 67 72 61 63 65 66 ┆ference) In the same gracef┆
0x2b800…2b820 75 6c 20 66 61 73 68 69 6f 6e 20 61 73 20 77 68 65 6e 20 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 ┆ul fashion as when a connection ┆
0x2b820…2b840 69 73 20 72 65 6d 6f 76 65 64 20 61 6c 6c 20 0a 64 61 74 61 20 74 72 61 6e 73 66 65 72 73 20 66 ┆is removed all data transfers f┆
0x2b840…2b860 6f 72 20 77 68 69 63 68 20 63 72 65 64 69 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 61 72 65 ┆or which credit is available are┆
0x2b860…2b880 20 63 61 72 72 69 65 64 20 6f 75 74 20 66 69 72 73 74 2e 20 54 68 65 6e 20 0a 74 68 65 20 72 65 ┆ carried out first. Then the re┆
0x2b880…2b8a0 6d 61 69 6e 69 6e 67 20 64 61 74 61 20 61 6e 64 20 63 72 65 64 69 74 20 6d 65 73 73 61 67 65 73 ┆maining data and credit messages┆
0x2b8a0…2b8c0 20 61 72 65 20 72 65 74 75 72 6e 65 64 20 61 73 20 64 75 6d 6d 79 20 65 76 65 6e 74 73 2c 20 0a ┆ are returned as dummy events, ┆
0x2b8c0…2b8e0 62 75 74 20 6f 6e 6c 79 20 61 74 20 74 68 65 20 6c 6f 63 61 6c 20 65 6e 64 2d 70 6f 69 6e 74 2e ┆but only at the local end-point.┆
0x2b8e0…2b900 20 54 68 65 20 72 65 74 75 72 6e 20 6f 66 20 72 65 63 65 69 76 65 20 6d 65 73 73 61 67 65 73 20 ┆ The return of receive messages ┆
0x2b900…2b920 6d 61 79 20 0a 61 6d 6f 75 6e 74 20 74 6f 20 74 68 65 20 74 61 6b 69 6e 67 20 62 61 63 6b 20 6f ┆may amount to the taking back o┆
0x2b920…2b940 66 20 63 72 65 64 69 74 20 77 68 69 63 68 20 68 61 73 20 61 6c 72 65 61 64 79 20 62 65 65 6e 20 ┆f credit which has already been ┆
0x2b940…2b960 67 69 76 65 6e 20 74 6f 20 0a 74 68 65 20 72 65 6d 6f 74 65 20 72 65 73 69 80 80 64 65 6e 74 2e ┆given to the remote resiђђdent.┆
0x2b960…2b980 20 49 6e 20 74 68 69 73 20 63 61 73 65 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 6e 65 67 61 ┆ In this case the resulting nega┆
0x2b980…2b9a0 74 69 76 65 20 63 72 65 64 69 74 20 69 73 20 70 61 73 80 0a 73 65 64 20 61 73 20 74 68 65 20 63 ┆tive credit is pasђ sed as the c┆
0x2b9a0…2b9c0 72 65 64 69 74 20 63 6f 75 6e 74 20 61 74 74 72 69 62 75 74 65 20 6f 66 20 61 20 72 65 73 65 74 ┆redit count attribute of a reset┆
0x2b9c0…2b9e0 5f 69 6e 64 69 63 61 74 69 6f 6e 20 65 76 65 6e 74 2e 0d 0a 0d 0a 8c 86 80 0a 46 6f 6c 6c 6f 77 ┆_indication event. їєђ Follow┆
0x2b9e0…2ba00 69 6e 67 20 61 20 63 61 6c 6c 20 6f 66 20 72 65 73 65 74 20 74 68 65 20 73 74 61 74 65 20 6f 66 ┆ing a call of reset the state of┆
0x2ba00…2ba20 20 74 68 65 20 28 6c 6f 63 61 6c 29 20 63 6f 6e 6e 65 63 80 80 80 74 69 6f 6e 20 65 6e 64 2d 70 ┆ the (local) connecђђђtion end-p┆
0x2ba20…2ba40 6f 69 6e 74 20 0a 77 69 6c 6c 20 62 65 20 72 65 73 65 74 74 69 6e 67 2e 20 54 68 65 20 6d 65 73 ┆oint will be resetting. The mes┆
0x2ba40…2ba60 73 61 67 65 20 64 65 73 69 67 6e 61 74 65 64 20 62 79 20 63 6f 6d 70 6c 20 69 73 20 74 68 65 20 ┆sage designated by compl is the ┆
0x2ba60…2ba80 0a 72 65 73 65 74 5f 63 6f 6d 70 6c 65 74 69 6f 6e 20 65 76 65 6e 74 20 6d 65 73 73 61 67 65 2e ┆ reset_completion event message.┆
0x2ba80…2baa0 20 54 68 69 73 20 65 76 65 6e 74 20 6f 63 80 63 75 72 73 20 61 66 74 65 72 20 61 6c 6c 20 6f 75 ┆ This event ocђcurs after all ou┆
0x2baa0…2bac0 74 73 74 61 6e 80 0a 64 69 6e 67 20 64 61 74 61 20 61 6e 64 20 63 72 65 64 69 74 20 6d 65 73 73 ┆tstanђ ding data and credit mess┆
0x2bac0…2bae0 61 67 65 73 20 68 61 76 65 20 62 65 80 65 6e 20 72 65 74 75 72 6e 65 64 2e 20 57 68 65 6e 20 69 ┆ages have beђen returned. When i┆
0x2bae0…2bb00 74 20 6f 63 63 75 72 73 20 74 68 65 20 0a 73 74 61 74 65 20 6f 66 20 74 68 65 20 65 6e 64 2d 70 ┆t occurs the state of the end-p┆
0x2bb00…2bb20 6f 69 6e 74 20 72 65 80 76 65 72 74 73 20 74 6f 20 63 6f 6e 6e 65 63 74 65 64 2e 0d 0a 0d 0a 57 ┆oint reђverts to connected. W┆
0x2bb20…2bb40 68 65 6e 20 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6e 64 2d 70 6f 69 6e 74 20 68 61 73 20 62 ┆hen a connection end-point has b┆
0x2bb40…2bb60 65 65 6e 20 72 65 73 65 74 20 74 68 65 20 49 4d 43 20 68 61 73 20 61 6c 73 6f 20 72 65 73 65 74 ┆een reset the IMC has also reset┆
0x2bb60…2bb80 20 0a 69 74 73 20 61 63 63 6f 75 6e 74 20 6f 66 20 63 72 65 64 69 74 20 70 72 65 76 69 6f 75 73 ┆ its account of credit previous┆
0x2bb80…2bba0 6c 79 20 70 61 73 73 65 64 20 74 6f 20 74 68 65 20 72 65 73 69 80 80 64 65 6e 74 2e 20 43 72 65 ┆ly passed to the resiђђdent. Cre┆
0x2bba0…2bbc0 64 69 74 20 69 6e 66 6f 72 80 0a 6d 61 74 69 6f 6e 20 6f 62 74 61 69 6e 65 64 20 62 65 66 6f 72 ┆dit inforђ mation obtained befor┆
0x2bbc0…2bbe0 65 20 72 65 73 65 74 74 69 6e 67 20 69 73 20 74 68 65 72 65 80 66 6f 72 65 20 6e 6f 20 6c 6f 6e ┆e resetting is thereђfore no lon┆
0x2bbe0…2bc00 80 67 65 72 20 76 61 6c 69 64 2e 0d 0a 0d 0a 49 66 20 63 72 65 64 69 74 20 69 6e 66 6f 72 6d 61 ┆ђger valid. If credit informa┆
0x2bc00…2bc20 74 69 6f 6e 20 69 73 20 75 73 65 64 20 69 74 20 69 73 20 6e 65 63 65 73 73 61 72 79 20 74 6f 20 ┆tion is used it is necessary to ┆
0x2bc20…2bc40 6b 6e 6f 77 20 77 68 65 6e 20 63 72 65 64 69 74 20 69 73 20 0a 74 61 6b 65 6e 20 62 61 63 6b 20 ┆know when credit is taken back ┆
0x2bc40…2bc60 61 73 20 61 20 72 65 73 75 6c 74 20 6f 66 20 72 65 73 65 74 74 69 6e 67 20 6f 66 20 74 68 65 20 ┆as a result of resetting of the ┆
0x2bc60…2bc80 72 65 6d 6f 74 65 20 65 6e 64 2d 70 6f 69 6e 74 2e 20 41 20 0a 72 65 73 65 74 5f 69 6e 64 69 63 ┆remote end-point. A reset_indic┆
0x2bc80…2bca0 61 74 69 6f 6e 20 6d 65 73 73 61 67 65 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 63 ┆ation message which is used to c┆
0x2bca0…2bcc0 61 72 72 79 20 74 68 69 73 20 69 6e 66 6f 72 6d 61 80 74 69 6f 6e 20 69 73 20 0a 6d 61 64 65 20 ┆arry this informaђtion is made ┆
0x2bcc0…2bce0 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 20 49 4d 43 20 62 79 20 61 20 63 61 6c 6c 20 6f ┆available to the IMC by a call o┆
0x2bce0…2bd00 66 20 67 65 74 72 65 73 65 74 2e 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 bf dc d8 67 65 74 72 ┆f getreset. PROCEDURE ┐▄пgetr┆
0x2bd00…2bd20 65 73 65 74 be 28 56 41 52 20 70 3a 20 70 6f 72 74 3b 20 69 6e 64 65 78 3a 20 31 2e 2e 6d 61 78 ┆esetЙ(VAR p: port; index: 1..max┆
0x2bd20…2bd40 69 6e 74 3b 0d 0a 09 09 20 20 20 20 20 56 41 52 20 69 6e 64 69 63 3a 20 72 65 66 65 72 65 6e 63 ┆int; VAR indic: referenc┆
0x2bd40…2bd60 65 29 0d 0a 0d 0a 54 68 65 20 63 61 6c 6c 20 69 73 20 70 65 72 6d 69 74 74 65 64 20 69 66 20 74 ┆e) The call is permitted if t┆
0x2bd60…2bd80 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6e 64 2d 70 ┆he state of the connection end-p┆
0x2bd80…2bda0 6f 80 69 6e 74 20 69 73 20 63 6f 6e 80 0a 6e 65 63 74 65 64 20 6f 72 20 72 65 73 65 74 74 69 6e ┆oђint is conђ nected or resettin┆
0x2bda0…2bdc0 67 2c 20 62 75 74 20 64 6f 65 73 20 6e 6f 74 20 63 68 61 6e 67 65 20 74 68 65 20 73 74 61 80 74 ┆g, but does not change the staђt┆
0x2bdc0…2bde0 65 2e 20 54 68 65 20 6d 65 73 80 73 61 67 65 20 0a 64 65 73 69 67 6e 61 74 65 64 20 62 79 20 69 ┆e. The mesђsage designated by i┆
0x2bde0…2be00 6e 64 69 63 20 62 65 63 6f 6d 65 73 20 61 6e 20 6f 75 74 73 74 61 6e 80 64 69 6e 67 20 72 65 73 ┆ndic becomes an outstanђding res┆
0x2be00…2be20 65 74 5f 69 6e 64 69 63 61 74 69 6f 6e 20 65 76 65 6e 74 20 0a 6d 65 73 73 61 67 65 2e 20 54 68 ┆et_indication event message. Th┆
0x2be20…2be40 61 74 20 69 73 2c 20 77 68 65 6e 20 61 20 72 65 73 65 74 20 6f 63 63 75 72 73 20 61 74 20 74 68 ┆at is, when a reset occurs at th┆
0x2be40…2be60 65 20 72 65 6d 6f 74 65 20 65 6e 64 20 6f 66 20 74 68 65 20 63 6f 6e 80 0a 6e 65 63 74 69 6f 6e ┆e remote end of the conђ nection┆
0x2be60…2be80 20 63 61 75 73 69 6e 67 20 6c 6f 73 73 20 6f 66 20 63 72 65 64 69 74 20 74 68 69 73 20 6d 65 73 ┆ causing loss of credit this mes┆
0x2be80…2bea0 73 61 67 65 20 69 73 20 72 65 74 75 72 6e 65 64 20 61 73 20 72 65 73 65 74 5f 69 6e 64 69 80 0a ┆sage is returned as reset_indiђ ┆
0x2bea0…2bec0 63 61 74 69 6f 6e 20 77 69 74 68 20 61 20 63 72 65 64 69 74 20 63 6f 75 6e 74 20 65 71 75 61 6c ┆cation with a credit count equal┆
0x2bec0…2bee0 20 74 6f 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 72 65 64 69 74 73 20 74 68 61 74 20 68 ┆ to the number of credits that h┆
0x2bee0…2bf00 61 76 65 20 0a 62 65 65 6e 20 74 61 6b 65 6e 20 62 61 63 6b 2e 0d 0a 0d 0a 41 74 20 6c 65 61 73 ┆ave been taken back. At leas┆
0x2bf00…2bf20 74 20 6f 6e 65 20 72 65 73 65 74 5f 69 6e 64 69 63 61 74 69 6f 6e 20 6d 65 73 73 61 67 65 20 6d ┆t one reset_indication message m┆
0x2bf20…2bf40 75 73 74 20 62 65 20 6f 75 74 73 74 61 6e 64 69 6e 67 20 62 65 66 6f 72 65 20 61 20 0a 63 72 65 ┆ust be outstanding before a cre┆
0x2bf40…2bf60 64 69 74 20 65 76 65 6e 74 20 63 61 6e 20 6f 63 63 75 72 2c 20 63 66 2e 20 67 65 74 63 72 65 64 ┆dit event can occur, cf. getcred┆
0x2bf60…2bf80 69 74 2e 20 54 68 65 72 65 66 6f 72 65 20 61 20 63 61 6c 6c 20 6f 66 20 67 65 74 80 72 65 73 65 ┆it. Therefore a call of getђrese┆
0x2bf80…2bfa0 74 20 0a 6d 61 79 20 74 72 69 67 67 65 72 20 61 20 63 72 65 64 69 74 20 65 76 65 6e 74 2e 0d 0a ┆t may trigger a credit event. ┆
0x2bfa0…2bfc0 16 73 62 0d 0a 49 4d 43 20 4d 65 73 73 61 67 65 20 41 74 74 72 69 62 75 74 65 20 44 65 63 6f 64 ┆ sb IMC Message Attribute Decod┆
0x2bfc0…2bfe0 69 6e 67 0d 0a 8c 85 d0 0a 57 68 65 6e 65 76 65 72 20 61 20 6d 65 73 73 61 67 65 20 69 73 20 72 ┆ing їЁл Whenever a message is r┆
0x2bfe0…2c000 65 74 75 72 6e 65 64 20 61 73 20 61 6e 20 65 76 65 6e 74 20 74 68 65 20 65 76 65 6e 74 20 6b 69 ┆eturned as an event the event ki┆
0x2c000…2c020 6e 64 20 61 74 80 74 72 69 62 75 74 65 20 0a 69 73 20 73 65 74 20 74 6f 20 69 6e 64 69 63 61 74 ┆nd atђtribute is set to indicat┆
0x2c020…2c040 65 20 74 68 65 20 6b 69 6e 64 20 6f 66 20 65 76 65 6e 74 2e 20 54 68 69 73 20 61 74 74 72 69 80 ┆e the kind of event. This attriђ┆
0x2c040…2c060 62 75 74 65 20 6d 61 79 20 62 65 20 72 65 61 64 20 75 73 69 6e 67 20 0a 74 68 65 20 70 72 65 64 ┆bute may be read using the pred┆
0x2c060…2c080 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 76 65 6e 74 6b 69 6e 64 2c 20 63 66 2e 20 73 ┆efined function eventkind, cf. s┆
0x2c080…2c0a0 65 63 74 69 6f 6e 20 33 2e 37 2e 20 44 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 0a 65 76 ┆ection 3.7. Depending on the ev┆
0x2c0a0…2c0c0 65 6e 74 20 6b 69 6e 64 20 74 68 65 20 61 74 74 72 69 62 75 74 65 73 20 69 6e 64 65 78 2c 20 63 ┆ent kind the attributes index, c┆
0x2c0c0…2c0e0 72 65 64 69 74 20 63 6f 75 6e 74 2c 20 61 6e 64 20 72 65 61 73 6f 6e 20 6d 61 79 20 62 65 20 6d ┆redit count, and reason may be m┆
0x2c0e0…2c100 65 61 80 0a 6e 69 6e 67 66 75 6c 2e 20 54 68 65 73 65 20 61 74 80 74 72 69 62 75 74 65 73 20 6d ┆eaђ ningful. These atђtributes m┆
0x2c100…2c120 61 79 20 62 65 20 72 65 61 64 20 75 73 69 6e 67 20 74 68 65 20 74 68 72 65 65 20 66 75 6e 63 74 ┆ay be read using the three funct┆
0x2c120…2c140 69 6f 6e 73 20 0a 64 65 73 63 72 69 62 65 64 20 62 65 80 6c 6f 77 2e 20 41 20 66 61 75 6c 74 20 ┆ions described beђlow. A fault ┆
0x2c140…2c160 77 69 6c 6c 20 6f 63 63 75 72 20 69 66 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 66 75 6e 63 74 ┆will occur if one of these funct┆
0x2c160…2c180 69 6f 6e 73 20 69 73 20 63 61 6c 80 6c 65 64 20 0a 77 69 74 68 20 61 20 70 61 72 61 6d 65 74 65 ┆ions is calђled with a paramete┆
0x2c180…2c1a0 72 20 77 69 74 68 20 76 61 6c 75 65 20 4e 49 4c 2e 0d 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 bf dc ┆r with value NIL. FUNCTION ┐▄┆
0x2c1a0…2c1c0 d8 69 6e 64 65 78 be 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 30 2e 2e 6d 61 ┆пindexЙ(VAR r: reference): 0..ma┆
0x2c1c0…2c1e0 78 69 6e 74 0d 0a 0d 0a 67 69 76 65 73 20 74 68 65 20 69 6e 64 65 78 20 69 6e 20 74 68 65 20 72 ┆xint gives the index in the r┆
0x2c1e0…2c200 65 6c 65 76 61 6e 74 20 70 6f 72 74 20 6f 66 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 ┆elevant port of the connection e┆
0x2c200…2c220 6e 64 2d 70 6f 69 6e 74 20 74 6f 20 0a 77 68 69 63 68 20 74 68 65 20 65 76 65 6e 74 20 70 65 72 ┆nd-point to which the event per┆
0x2c220…2c240 74 61 69 6e 73 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 66 6f 72 20 6d 65 73 73 61 80 67 ┆tains. It is defined for messaђg┆
0x2c240…2c260 65 73 20 77 69 74 68 20 65 76 65 6e 74 20 6b 69 6e 64 20 0a 6c 6f 63 61 6c 5f 63 6f 6e 6e 65 63 ┆es with event kind local_connec┆
0x2c260…2c280 74 2c 20 72 65 6d 6f 74 65 5f 63 6f 6e 6e 65 63 74 2c 20 64 69 73 63 6f 6e 80 80 6e 65 63 74 65 ┆t, remote_connect, disconђђnecte┆
0x2c280…2c2a0 64 2c 20 72 65 80 73 65 74 5f 63 6f 6d 70 6c 65 74 69 6f 6e 2c 20 0a 72 65 73 65 74 5f 69 6e 64 ┆d, reђset_completion, reset_ind┆
0x2c2a0…2c2c0 69 63 61 74 69 6f 6e 2c 20 64 61 74 61 5f 73 65 6e 74 2c 20 64 61 80 74 61 5f 61 72 72 69 76 65 ┆ication, data_sent, daђta_arrive┆
0x2c2c0…2c2e0 64 2c 20 64 61 74 61 5f 6f 80 76 65 72 72 75 6e 2c 20 63 72 65 64 69 74 2c 20 61 6e 64 20 66 6f ┆d, data_oђverrun, credit, and fo┆
0x2c2e0…2c300 72 20 0a 64 75 6d 6d 79 20 65 76 65 6e 74 73 2e 20 49 66 20 74 68 65 20 65 76 65 6e 74 20 69 73 ┆r dummy events. If the event is┆
0x2c300…2c320 20 64 75 6d 6d 79 20 61 6e 64 20 74 68 65 72 65 20 69 73 20 6e 6f 20 61 70 70 6c 69 63 61 62 6c ┆ dummy and there is no applicabl┆
0x2c320…2c340 65 20 69 6e 64 65 78 20 0a 74 68 65 20 72 65 80 73 75 6c 74 20 77 69 6c 6c 20 62 65 20 30 2e 0d ┆e index the reђsult will be 0. ┆
0x2c340…2c360 0a 0d 0a 46 55 4e 43 54 49 4f 4e 20 bf dc d8 72 65 61 73 6f 6e be 28 56 41 52 20 72 3a 20 72 65 ┆ FUNCTION ┐▄пreasonЙ(VAR r: re┆
0x2c360…2c380 66 65 72 65 6e 63 65 29 3a 20 72 65 61 73 6f 6e 5f 74 79 70 65 0d 0a 0d 0a 67 69 76 65 73 20 74 ┆ference): reason_type gives t┆
0x2c380…2c3a0 68 65 20 72 65 61 73 6f 6e 20 66 6f 72 20 61 6e 20 65 76 65 6e 74 2e 20 49 74 20 69 73 20 72 65 ┆he reason for an event. It is re┆
0x2c3a0…2c3c0 6c 65 76 61 6e 74 20 66 6f 72 20 6d 65 73 73 61 67 65 73 20 77 69 74 68 20 65 76 65 6e 74 20 0a ┆levant for messages with event ┆
0x2c3c0…2c3e0 6b 69 6e 64 20 70 6f 72 74 5f 63 6c 6f 73 65 64 20 6f 72 20 64 69 73 63 6f 6e 6e 65 63 74 65 64 ┆kind port_closed or disconnected┆
0x2c3e0…2c400 2e 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 6f 66 20 74 68 65 20 70 72 65 80 64 65 66 69 6e ┆. The result is of the preђdefin┆
0x2c400…2c420 65 64 20 65 6e 75 80 0a 6d 65 72 61 74 69 6f 6e 20 74 79 70 65 0d 0a 0d 0a 09 72 65 61 73 6f 6e ┆ed enuђ meration type reason┆
0x2c420…2c440 5f 74 79 70 65 3d 20 28 72 65 61 73 6f 6e 5f 6f 6b 2c 20 72 65 61 73 6f 6e 5f 6e 61 6d 65 2c 20 ┆_type= (reason_ok, reason_name, ┆
0x2c440…2c460 72 65 61 73 6f 6e 5f 72 65 73 6f 75 72 63 65 2c 0d 0a 09 09 20 20 20 72 65 61 73 6f 6e 5f 63 6c ┆reason_resource, reason_cl┆
0x2c460…2c480 6f 73 65 64 2c 20 72 65 61 73 6f 6e 5f 6e 65 74 77 6f 72 6b 29 2e 0d 0a 0d 0a 41 6c 6c 20 75 73 ┆osed, reason_network). All us┆
0x2c480…2c4a0 65 73 20 6f 66 20 72 65 61 73 6f 6e 20 76 61 6c 75 65 73 20 61 72 65 20 65 78 70 6c 61 69 6e 65 ┆es of reason values are explaine┆
0x2c4a0…2c4c0 64 20 69 6e 20 74 68 65 20 70 72 65 63 65 64 69 6e 67 20 73 65 63 80 74 69 6f 6e 73 2e 0d 0a 0d ┆d in the preceding secђtions. ┆
0x2c4c0…2c4e0 0a 46 55 4e 43 54 49 4f 4e 20 bf dc d8 63 72 65 64 69 74 63 6f 75 6e 74 be 28 56 41 52 20 72 3a ┆ FUNCTION ┐▄пcreditcountЙ(VAR r:┆
0x2c4e0…2c500 20 72 65 66 65 72 65 6e 63 65 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 0d 0a 49 66 20 74 68 65 ┆ reference): 0..maxint If the┆
0x2c500…2c520 20 65 76 65 6e 74 20 6b 69 6e 64 20 69 73 20 63 72 65 64 69 74 20 74 68 65 20 72 65 73 75 6c 74 ┆ event kind is credit the result┆
0x2c520…2c540 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 65 80 63 65 69 76 65 20 6d 65 73 73 61 ┆ is the number of reђceive messa┆
0x2c540…2c560 80 0a 67 65 73 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 74 68 65 20 72 65 6d 6f 74 65 20 65 6e ┆ђ ges available at the remote en┆
0x2c560…2c580 64 2d 70 6f 69 6e 74 20 6f 66 20 74 68 65 20 63 6f 6e 80 6e 65 63 74 69 6f 6e 2e 20 49 66 20 74 ┆d-point of the conђnection. If t┆
0x2c580…2c5a0 68 65 20 65 76 65 6e 74 20 0a 6b 69 6e 64 20 69 73 20 72 65 73 65 74 5f 69 6e 64 69 63 61 74 69 ┆he event kind is reset_indicati┆
0x2c5a0…2c5c0 6f 6e 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 ┆on the result is the number of c┆
0x2c5c0…2c5e0 72 65 64 69 74 73 20 77 68 69 63 68 20 68 61 76 65 20 0a 62 65 65 6e 20 74 61 6b 65 6e 20 62 61 ┆redits which have been taken ba┆
0x2c5e0…2c600 63 6b 20 62 79 20 61 20 63 61 6c 6c 20 6f 66 20 72 65 73 65 74 20 61 74 20 74 68 65 20 72 65 6d ┆ck by a call of reset at the rem┆
0x2c600…2c620 6f 74 65 20 65 6e 64 2d 70 6f 69 6e 74 2e 0d 0a 16 73 62 0d 0a 4d 69 73 63 65 6c 6c 61 6e 65 6f ┆ote end-point. sb Miscellaneo┆
0x2c620…2c640 75 73 20 52 6f 75 74 69 6e 65 73 0d 0a 41 74 20 65 61 63 68 20 6e 6f 64 65 20 69 6e 20 61 6e 20 ┆us Routines At each node in an ┆
0x2c640…2c660 49 4d 43 20 6e 65 74 77 6f 72 6b 2c 20 74 68 65 20 49 4d 43 20 69 6d 70 6f 73 65 73 20 61 20 72 ┆IMC network, the IMC imposes a r┆
0x2c660…2c680 65 80 80 73 74 72 69 63 74 69 6f 6e 20 6f 6e 20 0a 75 73 65 72 73 20 6f 66 20 74 68 65 20 49 4d ┆eђђstriction on users of the IM┆
0x2c680…2c6a0 43 20 73 65 72 76 69 63 65 73 2c 20 6e 61 6d 65 6c 79 20 61 20 6d 61 78 69 6d 75 6d 20 6e 75 6d ┆C services, namely a maximum num┆
0x2c6a0…2c6c0 62 65 72 20 6f 66 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 0a 74 6f 20 61 6e 79 20 6f 6e 65 20 70 ┆ber of connections to any one p┆
0x2c6c0…2c6e0 6f 72 74 2e 20 54 68 69 73 20 6c 69 6d 69 74 61 80 74 69 6f 6e 20 63 61 6e 20 62 65 20 6f 62 74 ┆ort. This limitaђtion can be obt┆
0x2c6e0…2c700 61 69 6e 65 64 20 62 79 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 70 72 65 80 0a 64 65 66 69 6e 65 ┆ained by calling the preђ define┆
0x2c700…2c720 64 20 72 6f 75 74 69 6e 65 20 6d 61 78 63 6f 6e 6e 65 63 74 69 6f 6e 73 3a 0d 0a 0d 0a 46 55 4e ┆d routine maxconnections: FUN┆
0x2c720…2c740 43 54 49 4f 4e 20 bf dc d8 6d 61 78 63 6f 6e 6e 65 63 74 69 6f 6e 73 be 3a 20 30 2e 2e 6d 61 78 ┆CTION ┐▄пmaxconnectionsЙ: 0..max┆
0x2c740…2c760 69 6e 74 0d 0a 16 73 61 0d 0a 43 4f 4d 50 49 4c 45 52 20 44 49 52 45 43 54 49 56 45 53 0d 0a 16 ┆int sa COMPILER DIRECTIVES ┆
0x2c760…2c780 73 6f 20 64 69 72 65 63 74 69 76 65 73 2c 20 63 6f 6d 70 69 6c 65 72 0d 0a 44 69 72 65 63 74 69 ┆so directives, compiler Directi┆
0x2c780…2c7a0 76 65 73 20 74 6f 20 61 20 52 65 61 6c 2d 54 69 6d 65 20 50 61 73 63 61 6c 20 63 6f 6d 70 69 6c ┆ves to a Real-Time Pascal compil┆
0x2c7a0…2c7c0 65 72 20 6d 61 79 20 62 65 20 72 65 67 61 72 64 65 64 20 61 73 20 6c 65 78 69 63 61 6c 20 0a 73 ┆er may be regarded as lexical s┆
0x2c7c0…2c7e0 65 70 61 72 61 74 6f 72 73 2e 20 54 68 65 79 20 68 61 76 65 20 74 68 65 20 67 65 6e 65 72 61 6c ┆eparators. They have the general┆
0x2c7e0…2c800 20 66 6f 72 6d 3a 0d 0a 09 24 20 64 69 72 65 63 74 69 76 65 2d 6e 61 6d 65 20 70 61 72 61 6d 65 ┆ form: $ directive-name parame┆
0x2c800…2c820 74 65 72 73 20 65 6e 64 2d 6f 66 2d 6c 69 6e 65 0d 0a 67 69 76 65 6e 20 6f 6e 20 61 20 73 65 70 ┆ters end-of-line given on a sep┆
0x2c820…2c840 61 72 61 74 65 20 6c 69 6e 65 2e 20 41 6c 74 65 72 6e 61 74 69 76 65 6c 79 20 64 69 72 65 63 74 ┆arate line. Alternatively direct┆
0x2c840…2c860 69 76 65 73 20 6d 61 79 20 62 65 20 73 75 70 80 70 6c 69 65 64 20 61 73 20 0a 70 61 72 61 6d 65 ┆ives may be supђplied as parame┆
0x2c860…2c880 74 65 72 73 20 69 6e 20 74 68 65 20 63 61 6c 6c 20 6f 66 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 ┆ters in the call of the compiler┆
0x2c880…2c8a0 2e 20 53 6f 6d 65 20 6f 66 20 74 68 65 6d 20 6d 75 73 74 20 62 65 20 73 70 65 63 69 80 0a 66 69 ┆. Some of them must be speciђ fi┆
0x2c8a0…2c8c0 65 64 20 62 65 66 6f 72 65 20 74 68 65 20 66 69 72 73 74 20 6c 69 6e 65 20 6f 66 20 61 63 74 75 ┆ed before the first line of actu┆
0x2c8c0…2c8e0 61 6c 20 73 6f 75 72 80 63 65 20 74 65 78 74 20 69 73 20 6d 65 74 2c 20 76 69 7a 2e 20 65 69 74 ┆al sourђce text is met, viz. eit┆
0x2c8e0…2c900 68 65 72 20 69 6e 20 0a 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 63 61 6c 6c 20 6f 72 20 61 73 20 ┆her in the compiler call or as ┆
0x2c900…2c920 24 2d 64 69 80 72 65 63 74 69 76 65 20 6c 69 6e 65 73 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 74 ┆$-diђrective lines in front of t┆
0x2c920…2c940 68 65 20 6f 75 74 65 72 6d 6f 73 74 20 0a 70 72 6f 67 72 61 6d 2f 72 6f 75 74 69 6e 65 20 68 65 ┆he outermost program/routine he┆
0x2c940…2c960 61 80 64 69 6e 67 2e 0d 0a 0d 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 61 62 6c 65 20 6c ┆aђding. The following table l┆
0x2c960…2c980 69 73 74 73 20 74 68 65 20 6d 61 6e 64 61 74 6f 72 79 20 64 69 72 65 63 74 69 76 65 73 2e 20 41 ┆ists the mandatory directives. A┆
0x2c980…2c9a0 6e 20 69 6d 80 70 6c 65 6d 65 6e 80 74 61 74 69 6f 6e 20 0a 6d 61 79 20 73 75 70 70 6f 72 74 20 ┆n imђplemenђtation may support ┆
0x2c9a0…2c9c0 61 64 64 69 74 69 6f 6e 61 6c 20 64 69 72 65 63 74 69 76 65 73 2e 20 54 68 65 20 66 69 72 73 74 ┆additional directives. The first┆
0x2c9c0…2c9e0 20 74 68 72 65 65 20 64 69 72 65 63 74 69 80 76 65 73 20 77 68 69 63 68 20 61 72 65 20 0a 61 6c ┆ three directiђves which are al┆
0x2c9e0…2ca00 6c 20 75 73 65 64 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 74 68 65 20 61 70 70 65 61 72 61 6e 80 63 ┆l used to control the appearanђc┆
0x2ca00…2ca20 65 20 6f 66 20 61 20 63 6f 6d 70 69 6c 65 72 20 6c 69 73 74 69 6e 67 20 6d 75 73 74 20 61 70 70 ┆e of a compiler listing must app┆
0x2ca20…2ca40 65 61 72 20 0a 62 65 66 6f 72 65 20 74 68 65 20 66 69 72 73 74 20 6c 69 6e 65 20 6f 66 20 61 63 ┆ear before the first line of ac┆
0x2ca40…2ca60 74 75 61 6c 20 73 6f 75 72 63 65 20 74 65 78 74 2e 0d 0a 0d 0a 04 00 2d 4c 00 00 06 00 00 00 00 ┆tual source text. -L ┆
0x2ca60…2ca80 02 01 41 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 12 19 ┆ A1 ┆
0x2ca80…2caa0 24 2d 37 41 4b 55 5f 69 73 7d ff ff ff 04 04 00 2d 4c 00 00 06 00 00 00 00 02 01 41 31 00 00 00 ┆$-7AKU_is} -L A1 ┆
0x2caa0…2cac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 0f 19 24 2d 37 41 4b 55 5f ┆ $-7AKU_┆
0x2cac0…2cae0 69 73 7d ff ff ff 04 0a a1 6e 61 6d 65 09 70 61 72 61 6d 65 74 65 72 73 09 64 65 73 63 72 69 70 ┆is} Аname parameters descrip┆
0x2cae0…2cb00 74 69 6f 6e 05 20 5f 0d 0a 50 41 47 45 4c 45 4e 47 54 48 09 6e 75 6d 62 65 72 09 09 6d 61 78 69 ┆tion _ PAGELENGTH number maxi┆
0x2cb00…2cb20 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 6c 69 6e 65 73 20 70 65 72 0d 0a 28 64 65 66 61 75 6c ┆mum number of lines per (defaul┆
0x2cb20…2cb40 74 20 34 35 29 09 09 09 70 61 67 65 20 6f 66 20 6c 69 73 74 69 6e 67 2c 0d 0a 0d 0a 50 41 47 45 ┆t 45) page of listing, PAGE┆
0x2cb40…2cb60 57 49 44 54 48 09 6e 75 6d 62 65 72 09 09 6d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 ┆WIDTH number maximum number of ┆
0x2cb60…2cb80 63 68 61 72 61 63 74 65 72 73 0d 0a 28 64 65 66 61 75 6c 74 20 31 32 30 29 09 09 09 84 70 65 72 ┆characters (default 120) ёper┆
0x2cb80…2cba0 20 6c 69 6e 65 20 6f 66 20 6c 69 73 74 80 69 6e 67 2c 0d 0a 0d 0a 45 4a 45 43 54 09 6e 6f 6e 65 ┆ line of listђing, EJECT none┆
0x2cba0…2cbc0 09 09 84 66 6f 72 63 65 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 61 20 6e 65 77 20 70 61 67 65 ┆ ёforce the start of a new page┆
0x2cbc0…2cbe0 20 0a 19 a3 80 80 6f 66 20 74 68 65 20 6c 69 73 74 69 6e 67 0d 0a 0d 0a 54 49 54 4c 45 09 22 63 ┆ Бђђof the listing TITLE "c┆
0x2cbe0…2cc00 68 61 72 2e 73 74 72 69 6e 67 22 09 84 74 68 65 20 63 68 61 72 61 63 74 65 72 20 73 74 72 69 6e ┆har.string" ёthe character strin┆
0x2cc00…2cc20 67 20 69 73 20 70 6c 61 80 63 65 64 20 69 6e 20 0a 19 a3 80 80 74 68 65 20 74 69 74 6c 65 20 66 ┆g is plaђced in Бђђthe title f┆
0x2cc20…2cc40 69 65 6c 64 20 6f 66 20 74 68 65 20 68 65 61 64 65 72 20 0a 19 a3 80 80 6c 69 6e 65 20 6f 66 20 ┆ield of the header Бђђline of ┆
0x2cc40…2cc60 65 61 63 68 20 70 61 67 65 20 6f 66 20 74 68 65 20 6c 69 73 74 69 6e 67 2c 0d 0a 0d 0a 53 55 42 ┆each page of the listing, SUB┆
0x2cc60…2cc80 54 49 54 4c 45 09 22 63 68 61 72 2e 73 74 72 69 6e 67 22 09 84 74 68 65 20 63 68 61 72 61 63 74 ┆TITLE "char.string" ёthe charact┆
0x2cc80…2cca0 65 72 20 73 74 72 69 6e 67 20 69 73 20 70 6c 61 80 63 65 64 20 69 6e 20 0a 19 a3 80 80 74 68 65 ┆er string is plaђced in Бђђthe┆
0x2cca0…2ccc0 20 73 75 62 74 69 74 6c 65 20 6c 69 80 6e 65 20 6f 66 20 65 61 63 68 20 70 61 67 65 20 0a 19 a3 ┆ subtitle liђne of each page Б┆
0x2ccc0…2cce0 80 80 6f 66 20 74 68 65 20 6c 69 80 73 74 69 6e 67 2c 0d 0a 0d 0a 8c 8d f0 0a 43 4f 44 45 09 6e ┆ђђof the liђsting, їЇ CODE n┆
0x2cce0…2cd00 6f 6e 65 09 09 84 63 61 75 73 65 73 20 63 6f 64 65 20 67 65 6e 65 72 61 74 65 64 20 66 6f 72 20 ┆one ёcauses code generated for ┆
0x2cd00…2cd20 74 68 65 20 0a 19 a3 80 80 66 6f 6c 6c 6f 77 69 6e 67 20 6c 69 6e 65 73 20 6f 66 20 73 6f 75 72 ┆the Бђђfollowing lines of sour┆
0x2cd20…2cd40 80 63 65 20 74 65 78 74 20 74 6f 20 0a 19 a3 80 80 62 65 20 6c 69 73 74 65 64 2c 0d 0a 0d 0a 4e ┆ђce text to Бђђbe listed, N┆
0x2cd40…2cd60 4f 43 4f 44 45 09 6e 6f 6e 65 09 09 73 75 70 70 72 65 73 73 65 73 20 6c 69 73 74 69 6e 67 20 6f ┆OCODE none suppresses listing o┆
0x2cd60…2cd80 66 20 67 65 6e 65 72 61 74 65 64 0d 0a 28 64 65 66 61 75 6c 74 29 09 09 09 63 6f 64 65 2c 0d 0a ┆f generated (default) code, ┆
0x2cd80…2cda0 0d 0a 43 52 45 41 54 45 53 49 5a 45 09 6e 75 6d 62 65 72 09 09 84 64 65 74 65 72 6d 69 6e 65 73 ┆ CREATESIZE number ёdetermines┆
0x2cda0…2cdc0 20 73 74 61 63 6b 20 73 69 7a 65 20 6f 66 20 69 6e 80 80 63 61 72 80 0a 19 a3 80 80 6e 61 80 74 ┆ stack size of inђђcarђ Бђђnaђt┆
0x2cdc0…2cde0 69 6f 6e 73 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 80 77 69 6e 67 20 70 72 6f 80 0a 19 a3 80 80 ┆ions of the folloђwing proђ Бђђ┆
0x2cde0…2ce00 67 72 61 6d 28 73 29 20 69 66 20 74 68 65 20 76 61 80 6c 75 65 20 6f 66 20 74 68 65 20 73 69 80 ┆gram(s) if the vaђlue of the siђ┆
0x2ce00…2ce20 0a 19 a3 80 80 7a 65 5f 65 78 70 72 65 73 80 73 69 6f 6e 20 6f 66 20 74 68 65 20 63 72 65 61 74 ┆ Бђђze_expresђsion of the creat┆
0x2ce20…2ce40 65 20 63 61 6c 6c 20 0a 19 a3 80 80 69 73 20 30 2c 20 63 66 2e 20 73 65 63 74 69 6f 6e 20 39 2e ┆e call Бђђis 0, cf. section 9.┆
0x2ce40…2ce60 31 2c 20 28 69 6d 70 6c 65 80 6d 65 6e 80 0a 19 a3 80 80 74 61 74 69 6f 6e 20 64 65 70 65 6e 64 ┆1, (impleђmenђ Бђђtation depend┆
0x2ce60…2ce80 65 6e 74 29 0d 0a 0d 0a 49 4e 44 45 58 43 48 45 43 4b 09 6e 6f 6e 65 09 09 63 61 75 73 65 73 20 ┆ent) INDEXCHECK none causes ┆
0x2ce80…2cea0 63 68 65 63 6b 69 6e 67 20 6f 66 20 73 75 62 72 61 6e 67 65 20 0d 0a 28 64 65 66 61 75 6c 74 29 ┆checking of subrange (default)┆
0x2cea0…2cec0 09 09 09 84 63 6f 6e 73 74 72 61 69 6e 74 73 20 62 65 66 6f 72 65 20 69 6e 80 64 65 78 80 69 6e ┆ ёconstraints before inђdexђin┆
0x2cec0…2cee0 67 20 74 6f 20 0a 19 a3 80 80 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 63 6f 64 65 20 67 65 ┆g to Бђђbe included in code ge┆
0x2cee0…2cf00 80 6e 65 72 61 74 65 64 20 0a 19 a3 80 80 66 6f 72 20 74 68 65 20 66 6f 6c 80 6c 6f 77 69 6e 67 ┆ђnerated Бђђfor the folђlowing┆
0x2cf00…2cf20 20 6c 69 6e 65 73 20 6f 66 20 73 6f 75 72 63 65 20 0a 19 a3 80 80 74 65 78 74 2c 0d 0a 0d 0a 0c ┆ lines of source Бђђtext, ┆
0x2cf20…2cf40 83 e0 0a a1 6e 61 6d 65 09 70 61 72 61 6d 65 74 65 72 73 09 64 65 73 63 72 69 70 74 69 6f 6e 05 ┆ЃЯ Аname parameters description ┆
0x2cf40…2cf60 20 5f 0d 0a 4e 4f 49 4e 44 45 58 43 48 45 43 4b 09 6e 6f 6e 65 09 09 84 73 77 69 74 63 68 65 73 ┆ _ NOINDEXCHECK none ёswitches┆
0x2cf60…2cf80 20 6f 66 66 20 69 6e 64 65 78 20 63 68 65 63 6b 80 69 6e 67 2c 20 0a 19 a3 80 80 28 69 6d 70 6c ┆ off index checkђing, Бђђ(impl┆
0x2cf80…2cfa0 65 6d 65 6e 74 61 74 69 6f 6e 20 64 65 80 70 65 6e 64 65 6e 74 29 0d 0a 0d 0a 4c 49 53 54 09 6e ┆ementation deђpendent) LIST n┆
0x2cfa0…2cfc0 6f 6e 65 09 09 84 63 61 75 73 65 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 69 6e 65 73 ┆one ёcauses the following lines┆
0x2cfc0…2cfe0 20 6f 66 20 0a 19 a3 80 80 73 6f 75 72 63 65 20 74 65 78 74 20 74 6f 20 62 65 20 6c 69 80 73 74 ┆ of Бђђsource text to be liђst┆
0x2cfe0…2d000 65 64 2c 0d 0a 0d 0a 4e 4f 4c 49 53 54 09 6e 6f 6e 65 09 09 73 75 70 70 72 65 73 73 65 73 20 6c ┆ed, NOLIST none suppresses l┆
0x2d000…2d020 69 73 74 69 6e 67 20 6f 66 20 73 6f 75 72 63 65 0d 0a 28 64 65 66 61 75 6c 74 29 09 09 09 74 65 ┆isting of source (default) te┆
0x2d020…2d040 78 74 2c 0d 0a 0d 0a 52 41 4e 47 45 43 48 45 43 4b 09 6e 6f 6e 65 09 09 63 61 75 73 65 73 20 63 ┆xt, RANGECHECK none causes c┆
0x2d040…2d060 68 65 63 6b 69 6e 67 20 6f 66 20 73 75 62 72 61 6e 67 65 20 0d 0a 28 64 65 66 61 75 6c 74 29 09 ┆hecking of subrange (default) ┆
0x2d060…2d080 09 09 84 63 6f 6e 73 74 72 61 69 6e 74 73 20 62 65 66 6f 72 65 20 61 73 80 73 69 67 6e 80 6d 65 ┆ ёconstraints before asђsignђme┆
0x2d080…2d0a0 6e 74 20 74 6f 20 0a 19 a3 80 80 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 63 6f 64 65 20 67 ┆nt to Бђђbe included in code g┆
0x2d0a0…2d0c0 65 80 6e 65 72 61 74 65 64 20 0a 19 a3 80 80 66 6f 72 20 74 68 65 20 66 6f 6c 80 6c 6f 77 69 6e ┆eђnerated Бђђfor the folђlowin┆
0x2d0c0…2d0e0 67 20 6c 69 6e 65 73 20 6f 66 20 73 6f 75 72 63 65 20 0a 19 a3 80 80 74 65 78 74 2c 0d 0a 0d 0a ┆g lines of source Бђђtext, ┆
0x2d0e0…2d100 4e 4f 52 41 4e 47 45 43 48 45 43 4b 09 6e 6f 6e 65 09 09 84 73 77 69 74 63 68 65 73 20 6f 66 66 ┆NORANGECHECK none ёswitches off┆
0x2d100…2d120 20 72 61 6e 67 65 20 63 68 65 63 6b 80 69 6e 67 2c 20 0a 19 a3 80 80 28 69 6d 70 6c 65 6d 65 6e ┆ range checkђing, Бђђ(implemen┆
0x2d120…2d140 74 61 74 69 6f 6e 20 64 65 80 70 65 6e 64 65 6e 74 29 0d 0a 0d 0a 41 43 43 45 53 53 43 48 45 43 ┆tation deђpendent) ACCESSCHEC┆
0x2d140…2d160 4b 09 6e 6f 6e 65 09 09 84 63 61 75 73 65 73 20 63 6f 64 65 20 74 6f 20 62 65 20 67 65 80 6e 65 ┆K none ёcauses code to be geђne┆
0x2d160…2d180 72 61 80 74 65 64 20 66 6f 72 20 0a 19 a3 80 80 65 76 65 72 79 20 61 63 63 65 73 73 20 74 6f 20 ┆raђted for Бђђevery access to ┆
0x2d180…2d1a0 61 20 66 6f 72 80 6d 61 6c 20 70 61 72 61 80 0a 19 a3 80 80 6d 65 74 65 72 20 6f 62 6a 65 63 74 ┆a forђmal paraђ Бђђmeter object┆
0x2d1a0…2d1c0 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 6f 66 20 0a 19 a3 80 80 6b 69 6e 64 20 76 61 80 6c 75 ┆ which is not of Бђђkind vaђlu┆
0x2d1c0…2d1e0 65 2c 20 74 6f 20 63 68 65 63 6b 20 74 68 65 20 65 78 80 0a 19 a3 80 80 69 73 74 65 6e 80 63 65 ┆e, to check the exђ Бђђistenђce┆
0x2d1e0…2d200 20 6f 66 20 74 68 65 20 61 63 74 75 61 6c 20 70 61 72 61 6d 65 74 65 72 20 0a 19 a3 80 80 28 6e ┆ of the actual parameter Бђђ(n┆
0x2d200…2d220 6f 74 20 73 70 65 63 69 80 66 69 65 64 20 61 73 20 3f 29 2e 0d 0a 0d 0a 4e 4f 41 43 43 45 53 53 ┆ot speciђfied as ?). NOACCESS┆
0x2d220…2d240 43 48 45 43 4b 09 6e 6f 6e 65 09 09 73 77 69 74 63 68 65 73 20 6f 66 66 20 61 63 63 65 73 73 20 ┆CHECK none switches off access ┆
0x2d240…2d260 63 68 65 63 6b 69 6e 67 2e 0d 0a 28 64 65 66 61 75 6c 74 29 0d 0a 0d 0a 53 45 54 09 09 73 77 69 ┆checking. (default) SET swi┆
0x2d260…2d280 74 63 68 20 61 73 73 69 67 6e 2d 09 73 65 65 20 62 65 6c 6f 77 2c 0d 0a 09 09 6d 65 6e 74 20 6c ┆tch assign- see below, ment l┆
0x2d280…2d2a0 69 73 74 0d 0a 0d 0a 49 46 09 09 65 78 70 72 65 73 73 69 6f 6e 09 73 65 65 20 62 65 6c 6f 77 2c ┆ist IF expression see below,┆
0x2d2a0…2d2c0 0d 0a 0d 0a 45 4e 44 49 46 09 6e 6f 6e 65 09 09 73 65 65 20 62 65 6c 6f 77 2c 0d 0a 0d 0a 45 4c ┆ ENDIF none see below, EL┆
0x2d2c0…2d2e0 53 45 09 6e 6f 6e 65 09 09 73 65 65 20 62 65 6c 6f 77 2c 0d 0a 0d 0a 45 4c 53 45 49 46 09 65 78 ┆SE none see below, ELSEIF ex┆
0x2d2e0…2d300 70 72 65 73 73 69 6f 6e 09 73 65 65 20 62 65 6c 6f 77 2c 0d 0a 0d 0a 53 77 69 74 63 68 65 73 20 ┆pression see below, Switches ┆
0x2d300…2d320 61 72 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 76 61 72 69 61 62 6c 65 73 20 77 68 69 63 68 ┆are compile-time variables which┆
0x2d320…2d340 20 63 61 6e 20 2d 20 65 78 63 65 70 74 20 66 72 6f 6d 20 70 61 80 72 61 80 0a 6d 65 74 65 72 73 ┆ can - except from paђraђ meters┆
0x2d340…2d360 20 6f 66 20 74 68 65 20 74 72 61 6e 73 66 65 72 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 73 77 69 ┆ of the transfer function getswi┆
0x2d360…2d380 74 63 68 20 28 63 66 2e 20 33 2e 31 32 29 20 2d 20 6f 6e 6c 79 20 62 65 20 75 73 65 64 20 69 6e ┆tch (cf. 3.12) - only be used in┆
0x2d380…2d3a0 20 0a 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 73 20 6f 63 63 75 72 72 69 6e 67 20 69 6e 20 49 ┆ the expressions occurring in I┆
0x2d3a0…2d3c0 46 20 61 6e 64 20 45 4c 53 45 49 46 20 64 69 72 65 63 74 69 76 65 73 2e 20 41 20 73 77 69 74 63 ┆F and ELSEIF directives. A switc┆
0x2d3c0…2d3e0 68 20 61 73 80 0a 73 69 67 6e 6d 65 6e 74 20 6c 69 73 74 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 ┆h asђ signment list consists of ┆
0x2d3e0…2d400 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 73 77 69 74 63 68 20 61 73 73 69 67 6e 80 6d 65 6e 74 73 20 ┆one or more switch assignђments ┆
0x2d400…2d420 73 65 70 61 72 61 74 65 64 20 62 79 20 0a 63 6f 6d 6d 61 73 2e 20 41 20 73 77 69 74 63 68 20 61 ┆separated by commas. A switch a┆
0x2d420…2d440 73 73 69 67 6e 6d 65 6e 74 20 68 61 73 20 74 68 65 20 66 6f 72 6d 20 28 6e 75 6d 62 65 72 20 6d ┆ssignment has the form (number m┆
0x2d440…2d460 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 2c 20 0a 6e 6f 20 72 61 64 69 78 20 61 6c 6c 6f 77 65 ┆ust be integer, no radix allowe┆
0x2d460…2d480 64 29 3a 0d 0a 09 6e 61 6d 65 20 3d 20 6e 75 6d 62 65 72 0d 0a 0d 0a 41 20 73 77 69 74 63 68 20 ┆d): name = number A switch ┆
0x2d480…2d4a0 61 73 73 69 67 6e 6d 65 6e 74 20 65 69 74 68 65 72 20 69 6e 74 72 6f 64 75 63 65 73 20 61 6e 64 ┆assignment either introduces and┆
0x2d4a0…2d4c0 20 73 65 74 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 61 20 73 77 69 74 63 68 2c 20 0a 6f 72 ┆ sets the value of a switch, or┆
0x2d4c0…2d4e0 2c 20 69 66 20 74 68 65 20 73 77 69 74 63 68 20 68 61 73 20 62 65 65 6e 20 69 6e 74 72 6f 64 75 ┆, if the switch has been introdu┆
0x2d4e0…2d500 63 65 64 20 69 6e 20 61 20 70 72 65 80 76 69 6f 75 73 20 73 77 69 74 63 68 20 61 73 73 69 67 6e ┆ced in a preђvious switch assign┆
0x2d500…2d520 6d 65 6e 74 20 0a 28 53 45 54 20 64 69 72 65 63 74 69 76 65 29 2c 20 6d 65 72 65 6c 79 20 63 68 ┆ment (SET directive), merely ch┆
0x2d520…2d540 61 6e 67 65 73 20 74 68 65 20 76 61 6c 75 65 2e 0d 0a 0d 0a 8c 89 e0 0a 54 68 65 20 64 69 72 65 ┆anges the value. їЅЯ The dire┆
0x2d540…2d560 63 74 69 76 65 73 20 49 46 2c 20 45 4c 53 45 2c 20 45 4c 53 45 49 46 2c 20 61 6e 64 20 45 4e 44 ┆ctives IF, ELSE, ELSEIF, and END┆
0x2d560…2d580 49 46 20 70 72 6f 76 69 64 65 20 74 68 65 20 63 61 70 61 80 62 69 6c 69 74 79 20 0a 66 6f 72 20 ┆IF provide the capaђbility for ┆
0x2d580…2d5a0 63 6f 6e 64 69 74 69 6f 6e 61 6c 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2e 20 54 68 65 20 65 78 70 ┆conditional compilation. The exp┆
0x2d5a0…2d5c0 72 65 73 73 69 6f 6e 73 20 6f 63 63 75 72 80 80 72 69 6e 67 20 69 6e 20 49 46 20 61 6e 64 20 45 ┆ressions occurђђring in IF and E┆
0x2d5c0…2d5e0 4c 53 45 80 0a 49 46 20 64 69 72 65 63 74 69 76 65 20 6d 75 73 74 20 62 65 20 62 6f 6f 6c 65 61 ┆LSEђ IF directive must be boolea┆
0x2d5e0…2d600 6e 20 65 78 70 72 65 73 73 69 6f 6e 73 20 6f 62 65 79 69 6e 67 20 74 68 65 20 73 74 61 6e 64 61 ┆n expressions obeying the standa┆
0x2d600…2d620 72 64 20 72 75 6c 65 73 20 6f 66 20 0a 74 68 65 20 6c 61 6e 67 75 61 67 65 2e 20 54 68 65 20 6f ┆rd rules of the language. The o┆
0x2d620…2d640 70 65 72 61 6e 64 73 20 6d 75 73 74 20 62 65 20 73 77 69 74 63 68 65 73 20 61 6e 64 20 69 6e 74 ┆perands must be switches and int┆
0x2d640…2d660 65 67 65 72 20 6e 75 6d 62 65 72 73 2e 20 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6f 70 65 ┆eger numbers. The following ope┆
0x2d660…2d680 72 61 80 74 6f 72 73 20 6d 61 79 20 62 65 20 75 73 65 64 3a 20 3c 2c 20 3c 3d 2c 20 3e 3d 2c 20 ┆raђtors may be used: <, <=, >=, ┆
0x2d680…2d6a0 3e 2c 20 3d 2c 20 3c 3e 2c 20 41 4e 44 2c 20 4f 52 2c 20 0a 58 4f 52 2c 20 4e 4f 54 2e 0d 0a 0d ┆>, =, <>, AND, OR, XOR, NOT. ┆
0x2d6a0…2d6c0 0a 54 68 65 20 64 69 72 65 63 74 69 76 65 73 20 66 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 61 6c 20 ┆ The directives for conditional ┆
0x2d6c0…2d6e0 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 6d 61 79 20 62 65 20 75 73 65 64 20 74 6f 20 73 65 6c 65 63 ┆compilation may be used to selec┆
0x2d6e0…2d700 80 74 69 76 65 6c 79 20 0a 65 78 63 6c 75 64 65 20 62 6c 6f 63 6b 73 20 6f 66 20 6c 69 6e 65 73 ┆ђtively exclude blocks of lines┆
0x2d700…2d720 20 6f 66 20 73 6f 75 72 63 65 20 74 65 78 74 20 66 72 6f 6d 20 63 6f 6d 80 70 69 6c 61 74 69 6f ┆ of source text from comђpilatio┆
0x2d720…2d740 6e 2c 20 69 2e 65 2e 20 74 6f 20 63 61 75 73 65 20 0a 73 75 63 68 20 6c 69 6e 65 73 20 74 6f 20 ┆n, i.e. to cause such lines to ┆
0x2d740…2d760 62 65 20 74 72 65 61 74 65 64 20 61 73 20 63 6f 6d 80 80 6d 65 6e 74 73 2e 20 57 68 65 6e 20 6c ┆be treated as comђђments. When l┆
0x2d760…2d780 69 73 74 65 64 2c 20 65 61 63 68 20 65 78 63 6c 75 64 65 64 20 6c 69 6e 65 20 0a 77 69 6c 6c 20 ┆isted, each excluded line will ┆
0x2d780…2d7a0 62 65 20 6d 61 72 6b 65 64 20 77 69 74 68 20 0d 0a 2d 2d 20 61 70 70 65 61 72 69 6e 67 20 61 74 ┆be marked with -- appearing at┆
0x2d7a0…2d7c0 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 6c 69 6e 65 2e 0d 0a 0d 0a 54 ┆ the beginning of the line. T┆
0x2d7c0…2d7e0 68 65 20 64 69 72 65 63 74 69 76 65 20 49 46 20 61 6e 64 20 45 4e 44 49 46 20 6d 75 73 74 20 61 ┆he directive IF and ENDIF must a┆
0x2d7e0…2d800 6c 77 61 79 73 20 62 65 20 75 73 65 64 20 69 6e 20 6d 61 74 63 68 69 6e 67 20 70 61 69 72 73 2e ┆lways be used in matching pairs.┆
0x2d800…2d820 20 0a 45 4c 53 45 20 61 6e 64 20 45 4c 53 45 49 46 20 6d 61 79 20 6f 70 74 69 6f 6e 61 6c 6c 79 ┆ ELSE and ELSEIF may optionally┆
0x2d820…2d840 20 62 65 20 75 73 65 64 20 69 6e 20 63 6f 6e 6a 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 49 46 20 ┆ be used in conjunction with IF ┆
0x2d840…2d860 61 6e 64 20 0a 45 4e 44 49 46 2e 20 41 20 75 73 65 20 6f 66 20 63 6f 6e 64 69 74 69 6f 6e 61 6c ┆and ENDIF. A use of conditional┆
0x2d860…2d880 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 74 61 6b 65 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 ┆ compilation takes the following┆
0x2d880…2d8a0 20 66 6f 72 6d 3a 0d 0a 0d 0a 24 49 46 20 65 78 70 72 82 31 0d 0a 0d 0a 73 74 82 31 0d 0a 0d 0a ┆ form: $IF exprѓ1 stѓ1 ┆
0x2d8a0…2d8c0 24 45 4c 53 45 49 46 20 65 78 70 72 82 32 0d 0a 0d 0a 73 74 82 32 0d 0a 0d 0a 24 45 4c 53 45 49 ┆$ELSEIF exprѓ2 stѓ2 $ELSEI┆
0x2d8c0…2d8e0 46 20 65 78 70 72 82 33 0d 0a 0d 0a 73 74 82 33 0d 0a 0d 0a 2e 2e 2e 0d 0a 0d 0a 24 45 4c 53 45 ┆F exprѓ3 stѓ3 ... $ELSE┆
0x2d8e0…2d900 49 46 20 65 78 70 72 82 6e 0d 0a 0d 0a 73 74 82 6e 0d 0a 0d 0a 24 45 4c 53 45 0d 0a 0d 0a 73 74 ┆IF exprѓn stѓn $ELSE st┆
0x2d900…2d920 82 6e 2b 31 0d 0a 0d 0a 24 45 4e 44 49 46 0d 0a 0d 0a 8c 87 d8 0a 54 68 65 20 6f 6e 6c 79 20 6d ┆ѓn+1 $ENDIF їЄп The only m┆
0x2d920…2d940 61 6e 64 61 74 6f 72 79 20 70 61 72 74 73 20 61 72 65 20 74 68 65 20 49 46 20 61 6e 64 20 45 4e ┆andatory parts are the IF and EN┆
0x2d940…2d960 44 49 46 20 64 69 72 65 63 74 69 76 65 20 6c 69 80 6e 65 73 20 61 6e 64 20 0a 74 68 65 20 73 6f ┆DIF directive liђnes and the so┆
0x2d960…2d980 75 72 63 65 20 6c 69 6e 65 28 73 29 20 73 74 82 31 81 2e 20 54 68 65 20 65 66 66 65 63 74 20 69 ┆urce line(s) stѓ1Ђ. The effect i┆
0x2d980…2d9a0 73 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 20 49 66 20 74 68 65 20 76 61 6c 80 75 65 73 20 6f 66 20 ┆s as follows: If the valђues of ┆
0x2d9a0…2d9c0 61 6c 6c 20 0a 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 66 61 6c 73 65 20 74 ┆all the expressions are false t┆
0x2d9c0…2d9e0 68 65 6e 20 74 68 65 20 73 6f 75 72 63 65 20 6c 69 6e 65 73 20 73 74 82 31 81 2c 20 73 74 82 32 ┆hen the source lines stѓ1Ђ, stѓ2┆
0x2d9e0…2da00 81 2c 20 2e 2e 2e 2c 20 73 74 82 6e 81 20 61 72 65 20 0a 65 78 63 6c 75 64 65 64 20 66 72 6f 6d ┆Ђ, ..., stѓnЂ are excluded from┆
0x2da00…2da20 20 63 6f 6d 70 69 6c 61 80 74 69 6f 6e 2e 20 4f 74 80 68 65 72 77 69 73 65 20 6c 65 74 20 6b 20 ┆ compilaђtion. Otђherwise let k ┆
0x2da20…2da40 62 65 20 74 68 65 20 73 6d 61 6c 6c 65 73 74 20 6e 75 6d 62 65 72 20 0a 73 75 63 68 20 74 68 61 ┆be the smallest number such tha┆
0x2da40…2da60 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 65 78 70 72 82 6b 81 20 69 73 20 74 72 75 65 2e 20 ┆t the value of exprѓkЂ is true. ┆
0x2da60…2da80 54 68 65 6e 20 73 74 82 31 81 2c 20 2e 2e 2e 2c 20 73 74 82 6b 2d 31 81 2c 20 73 74 82 6b 2b 31 ┆Then stѓ1Ђ, ..., stѓk-1Ђ, stѓk+1┆
0x2da80…2daa0 81 2c 20 2e 2e 2e 2c 20 0a 73 74 82 6e 81 2c 20 61 6e 64 20 73 74 82 6e 2b 31 81 20 28 69 66 20 ┆Ђ, ..., stѓnЂ, and stѓn+1Ђ (if ┆
0x2daa0…2dac0 70 72 65 73 65 6e 74 29 20 61 72 65 20 65 78 63 6c 75 64 65 64 20 66 72 6f 6d 20 63 6f 6d 70 69 ┆present) are excluded from compi┆
0x2dac0…2dae0 6c 61 74 69 6f 6e 2e 0d 0a 0d 0a 43 6f 6e 64 69 74 69 6f 6e 61 6c 20 63 6f 6d 70 69 6c 61 74 69 ┆lation. Conditional compilati┆
0x2dae0…2db00 6f 6e 20 6d 61 79 20 62 65 20 75 73 65 64 20 61 74 20 73 65 76 65 72 61 6c 20 6e 65 73 74 65 64 ┆on may be used at several nested┆
0x2db00…2db20 20 6c 65 80 76 65 6c 73 2e 20 49 6e 20 74 68 65 20 0a 61 62 6f 76 65 20 74 65 72 6d 69 6e 6f 6c ┆ leђvels. In the above terminol┆
0x2db20…2db40 6f 67 79 20 61 6e 79 20 6f 66 20 74 68 65 20 73 74 82 69 81 20 6d 61 79 20 74 68 75 73 20 69 6e ┆ogy any of the stѓiЂ may thus in┆
0x2db40…2db60 80 80 63 6c 75 64 65 20 72 65 70 65 61 74 65 64 20 75 73 65 20 6f 66 20 0a 63 6f 6e 64 69 74 69 ┆ђђclude repeated use of conditi┆
0x2db60…2db80 6f 6e 61 6c 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2e 0d 0a 0d 0a 0e 0a a1 4e 6f 74 65 73 3a 0d 0a ┆onal compilation. АNotes: ┆
0x2db80…2dba0 53 77 69 74 63 68 65 73 20 61 6e 64 20 76 61 72 69 61 62 6c 65 73 20 69 6e 20 74 68 65 20 70 72 ┆Switches and variables in the pr┆
0x2dba0…2dbc0 6f 67 72 61 6d 20 74 65 78 74 20 62 65 6c 6f 6e 67 20 74 6f 20 73 65 80 70 61 72 61 80 74 65 20 ┆ogram text belong to seђparaђte ┆
0x2dbc0…2dbe0 6e 61 6d 65 20 0a 73 70 61 63 65 73 20 61 6e 64 20 63 61 6e 6e 6f 74 20 62 65 20 63 6f 6e 66 75 ┆name spaces and cannot be confu┆
0x2dbe0…2dc00 73 65 64 2e 20 54 68 65 20 73 61 6d 65 20 6e 61 6d 65 73 20 6d 61 79 20 62 65 20 75 73 65 64 2e ┆sed. The same names may be used.┆
0x2dc00…2dc20 0d 0a 0d 0a 0f 0a 44 69 72 65 63 74 69 76 65 73 20 6f 63 63 75 72 72 69 6e 67 20 69 6e 20 63 6f ┆ Directives occurring in co┆
0x2dc20…2dc40 6d 6d 65 6e 74 73 20 61 72 65 20 69 67 6e 6f 72 65 64 2c 20 69 6e 20 70 61 72 74 69 63 75 6c 61 ┆mments are ignored, in particula┆
0x2dc40…2dc60 72 20 74 68 6f 73 65 20 6f 63 80 0a 63 75 72 72 69 6e 67 20 69 6e 20 73 6f 75 72 63 65 20 6c 69 ┆r those ocђ curring in source li┆
0x2dc60…2dc80 6e 65 73 20 65 78 63 6c 75 64 65 64 20 66 72 6f 6d 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2e 0d 0a ┆nes excluded from compilation. ┆
0x2dc80…2dca0 16 61 70 0d 0a 16 73 61 0d 0a 52 45 46 45 52 45 4e 43 45 53 0d 0a 04 00 2d 4c 00 00 06 00 00 00 ┆ ap sa REFERENCES -L ┆
0x2dca0…2dcc0 00 02 01 41 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 11 ┆ A1 ┆
0x2dcc0…2dce0 19 23 2d 37 41 4b 55 5f 69 73 7d 87 91 ff 04 04 00 2d 4c 00 00 06 00 00 00 00 02 01 41 31 00 00 ┆ #-7AKU_is}ЄЉ -L A1 ┆
0x2dce0…2dd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 12 19 24 2d 37 41 4b 55 ┆ $-7AKU┆
0x2dd00…2dd20 5f 69 73 7d ff ff ff 04 0a 0d 0a 0d 0a 2f 50 61 73 63 61 6c 2f 09 54 68 65 20 50 72 6f 67 72 61 ┆_is} /Pascal/ The Progra┆
0x2dd20…2dd40 6d 6d 69 6e 67 20 4c 61 6e 67 75 61 67 65 20 50 61 73 63 61 6c 0d 0a 09 20 09 41 63 74 61 20 49 ┆mming Language Pascal Acta I┆
0x2dd40…2dd60 6e 66 6f 72 6d 61 74 69 63 61 2c 20 31 2c 20 33 35 2d 36 33 2c 20 31 39 37 31 0d 0a 20 20 20 20 ┆nformatica, 1, 35-63, 1971 ┆
0x2dd60…2dd80 20 20 20 20 20 20 20 20 20 20 20 20 4e 2e 20 57 69 72 74 68 0d 0a 0d 0a 2f 49 53 4f 20 50 61 73 ┆ N. Wirth /ISO Pas┆
0x2dd80…2dda0 63 61 6c 2f 09 49 53 4f 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 20 53 74 61 6e 64 61 72 64 20 ┆cal/ ISO International Standard ┆
0x2dda0…2ddc0 49 53 4f 2f 49 53 20 37 31 38 35 3a 0d 0a 09 09 84 53 70 65 63 69 66 69 63 61 74 69 6f 6e 20 66 ┆ISO/IS 7185: ёSpecification f┆
0x2ddc0…2dde0 6f 72 20 43 6f 6d 70 75 74 65 72 20 50 72 6f 67 72 61 6d 6d 69 6e 67 20 4c 61 6e 80 67 80 0a 19 ┆or Computer Programming Lanђgђ ┆
0x2dde0…2de00 90 80 80 75 61 67 65 20 50 61 73 63 61 6c 0d 0a 0d 0a 2f 49 53 4f 20 63 68 61 72 2e 73 65 74 2f ┆љђђuage Pascal /ISO char.set/┆
0x2de00…2de20 09 49 53 4f 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 20 53 74 61 6e 64 61 72 64 20 49 53 4f 2f ┆ ISO International Standard ISO/┆
0x2de20…2de40 49 53 20 36 34 36 3a 0d 0a 09 09 84 37 2d 62 69 74 20 43 6f 64 65 64 20 43 68 61 72 61 63 74 65 ┆IS 646: ё7-bit Coded Characte┆
0x2de40…2de60 72 20 53 65 74 20 66 6f 72 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 50 72 6f 80 0a 19 90 80 80 63 ┆r Set for Information Proђ љђђc┆
0x2de60…2de80 65 73 73 69 6e 67 20 49 6e 74 65 72 63 68 61 6e 67 65 0d 0a 0d 0a 2f 44 53 41 2f 09 52 43 53 4c ┆essing Interchange /DSA/ RCSL┆
0x2de80…2dea0 20 4e 6f 20 34 32 2d 69 31 39 38 32 3a 0d 0a 09 09 44 69 73 74 72 69 62 75 74 65 64 20 53 79 73 ┆ No 42-i1982: Distributed Sys┆
0x2dea0…2dec0 74 65 6d 20 41 72 63 68 69 74 65 63 74 75 72 65 0d 0a 09 09 41 20 43 6f 6e 63 65 70 74 75 61 6c ┆tem Architecture A Conceptual┆
0x2dec0…2dee0 20 46 72 61 6d 65 77 6f 72 6b 20 66 6f 72 20 53 79 73 74 65 6d 73 20 44 65 73 69 67 6e 0d 0a 0d ┆ Framework for Systems Design ┆
0x2dee0…2df00 0a 2f 44 53 41 2d 49 4d 43 2f 09 52 43 53 4c 20 4e 6f 20 34 32 2d 69 31 39 38 33 3a 0d 0a 09 09 ┆ /DSA-IMC/ RCSL No 42-i1983: ┆
0x2df00…2df20 44 53 41 20 49 6e 74 65 72 20 4d 6f 64 75 6c 65 20 43 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 0d 0a ┆DSA Inter Module Communication ┆
0x2df20…2df40 09 09 46 75 6e 63 74 69 6f 6e 61 6c 20 44 65 73 63 72 69 70 74 69 6f 6e 0d 0a 20 0d 0a 2f 50 6c ┆ Functional Description /Pl┆
0x2df40…2df60 61 74 6f 6e 2f 09 84 50 6c 61 74 6f 6e 2c 20 41 20 48 69 67 68 20 4c 65 76 65 6c 20 4c 61 6e 67 ┆aton/ ёPlaton, A High Level Lang┆
0x2df60…2df80 75 61 67 65 20 66 6f 72 20 53 79 73 74 65 6d 73 20 0a 19 90 80 80 50 72 6f 67 72 61 6d 6d 69 6e ┆uage for Systems љђђProgrammin┆
0x2df80…2dfa0 67 0d 0a 09 09 52 45 43 41 55 2c 20 52 2d 37 35 2d 35 39 0d 0a 09 09 a2 4a 7c 72 67 65 6e 20 53 ┆g RECAU, R-75-59 бJ|rgen S┆
0x2dfa0…2dfc0 74 61 75 6e 73 74 72 75 70 20 61 6e 64 20 53 76 65 6e 20 4d 65 69 62 6f 72 67 20 53 7c 72 65 6e ┆taunstrup and Sven Meiborg S|ren┆
0x2dfc0…2dfe0 73 65 6e 0d 0a 0c 88 a0 0a 20 20 20 0d 0a 15 b3 20 20 20 20 0d 0a 16 73 61 0d 0a 53 59 4e 54 41 ┆sen ѕа │ sa SYNTA┆
0x2dfe0…2e000 58 20 44 49 41 47 52 41 4d 53 0d 0a 0d 0a 54 68 69 73 20 61 70 70 65 6e 64 69 78 20 63 6f 6e 74 ┆X DIAGRAMS This appendix cont┆
0x2e000…2e020 61 69 6e 73 20 61 6c 6c 20 74 68 65 20 73 79 6e 74 61 78 20 64 69 61 67 72 61 6d 73 20 6f 66 20 ┆ains all the syntax diagrams of ┆
0x2e020…2e040 74 68 65 20 64 65 80 66 69 80 6e 69 74 69 6f 6e 20 6f 66 20 0a 52 65 61 6c 2d 54 69 6d 65 20 50 ┆the deђfiђnition of Real-Time P┆
0x2e040…2e060 61 73 63 61 6c 20 69 6e 20 61 6e 20 61 74 74 65 6d 70 74 65 64 20 6e 61 74 75 72 61 6c 20 74 6f ┆ascal in an attempted natural to┆
0x2e060…2e080 70 2d 64 6f 77 6e 20 72 65 61 64 69 6e 67 20 6f 72 64 65 72 2e 20 41 6c 6c 20 0a 73 79 6e 80 74 ┆p-down reading order. All synђt┆
0x2e080…2e0a0 61 78 20 64 69 61 67 72 61 6d 20 74 69 74 6c 65 73 20 6d 61 79 20 62 65 20 66 6f 75 6e 64 20 69 ┆ax diagram titles may be found i┆
0x2e0a0…2e0c0 6e 20 74 68 65 20 63 61 74 63 68 77 6f 72 64 20 69 6e 64 65 78 20 28 61 70 70 65 6e 64 69 78 20 ┆n the catchword index (appendix ┆
0x2e0c0…2e0e0 0a 44 29 20 6d 61 72 6b 65 64 20 77 69 74 68 20 61 20 74 72 61 69 6c 69 6e 67 20 3a 2e 20 0d 0a ┆ D) marked with a trailing :. ┆
0x2e0e0…2e100 16 6d 61 20 64 72 61 77 61 6c 6c 0d 0a 8c 81 a8 0a 16 73 61 0d 0a 50 52 45 44 45 46 49 4e 45 44 ┆ ma drawall їЂе sa PREDEFINED┆
0x2e100…2e120 20 45 4e 54 49 54 49 45 53 0d 0a 0d 0a 49 6e 20 73 65 63 74 69 6f 6e 20 43 2e 31 20 61 20 6c 69 ┆ ENTITIES In section C.1 a li┆
0x2e120…2e140 73 74 20 6f 66 20 70 72 65 64 65 66 69 6e 65 64 20 65 6e 74 69 74 69 65 73 20 69 73 20 67 69 76 ┆st of predefined entities is giv┆
0x2e140…2e160 65 6e 20 69 6e 20 61 6c 80 70 68 61 62 65 74 69 80 63 61 6c 20 0a 6f 72 64 65 72 20 61 6e 64 20 ┆en in alђphabetiђcal order and ┆
0x2e160…2e180 77 69 74 68 20 72 65 66 65 72 65 6e 63 65 20 74 6f 20 74 68 65 20 73 65 63 74 69 6f 6e 73 20 77 ┆with reference to the sections w┆
0x2e180…2e1a0 68 65 72 65 20 74 68 65 20 65 6e 74 69 74 69 65 73 20 61 72 65 20 64 65 80 0a 73 63 72 69 62 65 ┆here the entities are deђ scribe┆
0x2e1a0…2e1c0 64 2e 20 54 68 65 20 74 79 70 65 73 20 61 6e 64 20 70 73 65 75 64 6f 2d 66 75 6e 63 74 69 6f 6e ┆d. The types and pseudo-function┆
0x2e1c0…2e1e0 73 20 77 68 69 63 68 20 61 72 65 20 69 6e 74 72 69 6e 73 69 63 20 74 6f 20 74 68 65 20 0a 6c 61 ┆s which are intrinsic to the la┆
0x2e1e0…2e200 6e 67 75 61 67 65 2c 20 64 65 6e 6f 74 65 64 20 62 79 20 6b 65 79 77 6f 72 64 73 20 72 61 74 68 ┆nguage, denoted by keywords rath┆
0x2e200…2e220 65 72 20 74 68 61 6e 20 70 72 65 64 65 66 69 6e 65 64 20 6e 61 6d 65 73 2c 20 61 72 65 20 0a 6c ┆er than predefined names, are l┆
0x2e220…2e240 69 73 74 65 64 20 69 6e 20 73 65 63 74 69 6f 6e 73 20 43 2e 32 20 61 6e 64 20 43 2e 33 2e 0d 0a ┆isted in sections C.2 and C.3. ┆
0x2e240…2e260 0d 0a 0d 0a 16 73 62 0d 0a 52 6f 75 74 69 6e 65 73 2c 20 54 79 70 65 73 2c 20 61 6e 64 20 43 6f ┆ sb Routines, Types, and Co┆
0x2e260…2e280 6e 73 74 61 6e 74 73 0d 0a 0d 0a 04 00 2d 4c 00 00 06 00 00 00 00 02 01 41 31 00 00 00 00 00 00 ┆nstants -L A1 ┆
0x2e280…2e2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 09 0f 15 19 23 2d 37 41 4b 55 5f 69 ┆ #-7AKU_i┆
0x2e2a0…2e2c0 73 7d ff 04 04 00 2d 4c 00 00 06 00 00 00 00 02 01 41 31 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆s} -L A1 ┆
0x2e2c0…2e2e0 00 00 00 00 00 00 00 00 00 00 00 00 05 11 19 23 2d 37 41 4b 55 5f 69 73 7d 87 91 ff 04 0a a1 73 ┆ #-7AKU_is}ЄЉ Аs┆
0x2e2e0…2e300 65 63 74 69 6f 6e 09 6b 69 6e 64 09 09 09 64 65 66 69 6e 69 74 69 6f 6e 05 5f 0d 0a 0d 0a 33 2e ┆ection kind definition _ 3.┆
0x2e300…2e320 34 2e 33 09 46 55 4e 43 54 49 4f 4e 09 61 62 73 28 6e 3a 20 69 6e 74 65 67 65 72 29 3a 20 30 2e ┆4.3 FUNCTION abs(n: integer): 0.┆
0x2e320…2e340 2e 6d 61 78 69 6e 74 0d 0a 39 2e 32 2e 32 09 54 59 50 45 09 09 61 63 74 69 76 61 74 69 6f 6e 3d ┆.maxint 9.2.2 TYPE activation=┆
0x2e340…2e360 20 28 61 5f 6d 61 69 6c 62 6f 78 2c 20 61 5f 64 65 6c 61 79 29 0d 0a 33 2e 37 09 09 50 52 4f 43 ┆ (a_mailbox, a_delay) 3.7 PROC┆
0x2e360…2e380 45 44 55 52 45 09 61 6c 6c 6f 63 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 56 41 ┆EDURE alloc(VAR r: reference; VA┆
0x2e380…2e3a0 52 20 70 3a 20 70 6f 6f 6c 3b 0d 0a 09 09 09 09 20 56 41 52 20 72 61 3a 20 6d 61 69 6c 62 6f 78 ┆R p: pool; VAR ra: mailbox┆
0x2e3a0…2e3c0 29 0d 0a 39 2e 32 2e 32 09 46 55 4e 43 54 49 4f 4e 09 61 6c 6c 6f 63 64 65 6c 61 79 28 56 41 52 ┆) 9.2.2 FUNCTION allocdelay(VAR┆
0x2e3c0…2e3e0 20 70 3a 20 70 6f 6f 6c 3b 20 56 41 52 20 72 61 3a 20 6d 61 69 6c 62 6f 78 3b 0d 0a 09 09 09 09 ┆ p: pool; VAR ra: mailbox; ┆
0x2e3e0…2e400 20 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 3b 0d 0a 09 09 09 09 20 6e 6f 5f 6f 66 5f 6d ┆ VAR r: reference; no_of_m┆
0x2e400…2e420 73 65 63 73 3a 20 30 2e 2e 6d 61 78 69 6e 74 29 3a 20 61 63 74 69 76 61 74 69 6f 6e 0d 0a 33 2e ┆secs: 0..maxint): activation 3.┆
0x2e420…2e440 37 09 09 46 55 4e 43 54 49 4f 4e 09 61 6c 6c 6f 63 6d 65 6d 70 6f 6f 6c 28 56 41 52 20 70 3a 20 ┆7 FUNCTION allocmempool(VAR p: ┆
0x2e440…2e460 70 6f 6f 6c 3b 20 6e 6f 5f 6f 66 5f 6d 65 73 73 61 67 65 73 2c 0d 0a 09 09 09 09 20 62 75 66 73 ┆pool; no_of_messages, bufs┆
0x2e460…2e480 69 7a 65 3a 20 30 2e 2e 6d 61 78 69 6e 74 3b 20 6d 65 6d 3a 20 6d 65 6d 5f 74 79 70 65 29 3a 20 ┆ize: 0..maxint; mem: mem_type): ┆
0x2e480…2e4a0 30 2e 2e 6d 61 78 69 6e 74 0d 0a 33 2e 37 09 09 46 55 4e 43 54 49 4f 4e 09 61 6c 6c 6f 63 70 6f ┆0..maxint 3.7 FUNCTION allocpo┆
0x2e4a0…2e4c0 6f 6c 28 56 41 52 20 70 3a 20 70 6f 6f 6c 3b 20 6e 6f 5f 6f 66 5f 6d 65 73 73 61 67 65 73 3a 20 ┆ol(VAR p: pool; no_of_messages: ┆
0x2e4c0…2e4e0 30 2e 2e 6d 61 78 69 6e 74 3b 0d 0a 09 09 09 09 20 62 75 66 73 69 7a 65 3a 20 30 2e 2e 6d 61 78 ┆0..maxint; bufsize: 0..max┆
0x2e4e0…2e500 69 6e 74 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 0d 0a 35 2e 39 09 09 54 59 50 45 09 09 62 75 ┆int): 0..maxint 5.9 TYPE bu┆
0x2e500…2e520 66 66 65 72 28 62 75 66 73 69 7a 65 3a 20 30 2e 2e 6d 61 78 69 6e 74 29 3d 0d 0a 09 09 09 09 20 ┆ffer(bufsize: 0..maxint)= ┆
0x2e520…2e540 50 41 43 4b 45 44 20 41 52 52 41 59 28 30 2e 2e 62 75 66 73 69 7a 65 2d 31 29 20 4f 46 20 62 79 ┆PACKED ARRAY(0..bufsize-1) OF by┆
0x2e540…2e560 74 65 0d 0a 31 30 2e 31 09 46 55 4e 43 54 49 4f 4e 09 62 75 66 63 6f 75 6e 74 28 56 41 52 20 73 ┆te 10.1 FUNCTION bufcount(VAR s┆
0x2e560…2e580 74 61 63 6b 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 33 2e 37 ┆tack: reference): 0..maxint 3.7┆
0x2e580…2e5a0 09 09 46 55 4e 43 54 49 4f 4e 09 62 75 66 73 69 7a 65 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 ┆ FUNCTION bufsize(VAR r: refere┆
0x2e5a0…2e5c0 6e 63 65 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 33 2e 37 09 09 46 55 4e 43 54 49 4f 4e 09 62 ┆nce): 0..maxint 3.7 FUNCTION b┆
0x2e5c0…2e5e0 75 66 73 69 7a 65 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 ┆ufsize(VAR ch: chain): 0..maxint┆
0x2e5e0…2e600 0d 0a 33 2e 37 09 09 46 55 4e 43 54 49 4f 4e 09 62 79 74 65 63 6f 75 6e 74 28 56 41 52 20 72 3a ┆ 3.7 FUNCTION bytecount(VAR r:┆
0x2e600…2e620 20 72 65 66 65 72 65 6e 63 65 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 33 2e 37 09 09 46 55 4e ┆ reference): 0..maxint 3.7 FUN┆
0x2e620…2e640 43 54 49 4f 4e 09 62 79 74 65 63 6f 75 6e 74 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 29 3a 20 ┆CTION bytecount(VAR ch: chain): ┆
0x2e640…2e660 30 2e 2e 6d 61 78 69 6e 74 0d 0a 0d 0a 31 30 2e 32 09 50 52 4f 43 45 44 55 52 45 09 63 68 61 69 ┆0..maxint 10.2 PROCEDURE chai┆
0x2e660…2e680 6e 64 65 71 75 65 75 65 28 56 41 52 20 72 65 66 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 63 68 3a ┆ndequeue(VAR ref: reference; ch:┆
0x2e680…2e6a0 20 63 68 61 69 6e 29 0d 0a 31 30 2e 32 09 50 52 4f 43 45 44 55 52 45 09 63 68 61 69 6e 64 6f 77 ┆ chain) 10.2 PROCEDURE chaindow┆
0x2e6a0…2e6c0 6e 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 29 0d 0a 31 30 2e 32 09 50 52 4f 43 45 44 55 52 45 ┆n(VAR ch: chain) 10.2 PROCEDURE┆
0x2e6c0…2e6e0 09 63 68 61 69 6e 65 6e 71 75 65 75 65 28 56 41 52 20 72 65 66 3a 20 72 65 66 65 72 65 6e 63 65 ┆ chainenqueue(VAR ref: reference┆
0x2e6e0…2e700 3b 20 56 41 52 20 63 68 3a 20 63 68 61 69 6e 29 0d 0a 31 30 2e 32 09 46 55 4e 43 54 49 4f 4e 09 ┆; VAR ch: chain) 10.2 FUNCTION ┆
0x2e700…2e720 63 68 61 69 6e 6c 65 6e 67 74 68 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 29 3a 20 30 2e 2e 6d ┆chainlength(VAR ch: chain): 0..m┆
0x2e720…2e740 61 78 69 6e 74 0d 0a 31 30 2e 32 09 50 52 4f 43 45 44 55 52 45 09 63 68 61 69 6e 72 65 73 65 74 ┆axint 10.2 PROCEDURE chainreset┆
0x2e740…2e760 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 29 0d 0a 31 30 2e 32 09 50 52 4f 43 45 44 55 52 45 09 ┆(VAR ch: chain) 10.2 PROCEDURE ┆
0x2e760…2e780 63 68 61 69 6e 73 74 61 72 74 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 29 0d 0a 31 30 2e 32 09 ┆chainstart(VAR ch: chain) 10.2 ┆
0x2e780…2e7a0 50 52 4f 43 45 44 55 52 45 09 63 68 61 69 6e 75 70 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 29 ┆PROCEDURE chainup(VAR ch: chain)┆
0x2e7a0…2e7c0 0d 0a 33 2e 34 2e 32 09 46 55 4e 43 54 49 4f 4e 09 63 68 72 28 6e 3a 20 62 79 74 65 29 3a 20 63 ┆ 3.4.2 FUNCTION chr(n: byte): c┆
0x2e7c0…2e7e0 68 61 72 0d 0a 31 31 2e 31 2e 32 09 50 52 4f 43 45 44 55 52 45 09 63 6c 6f 73 65 70 6f 72 74 28 ┆har 11.1.2 PROCEDURE closeport(┆
0x2e7e0…2e800 56 41 52 20 70 3a 20 70 6f 72 74 29 0d 0a 31 31 2e 32 2e 31 09 50 52 4f 43 45 44 55 52 45 09 63 ┆VAR p: port) 11.2.1 PROCEDURE c┆
0x2e800…2e820 6f 6e 6e 65 63 74 28 56 41 52 20 70 3a 20 70 6f 72 74 3b 20 69 6e 64 65 78 3a 20 31 2e 2e 6d 61 ┆onnect(VAR p: port; index: 1..ma┆
0x2e820…2e840 78 69 6e 74 3b 0d 0a 09 20 09 09 09 20 56 41 52 20 63 6f 6d 70 6c 2c 20 64 69 73 63 3a 20 72 65 ┆xint; VAR compl, disc: re┆
0x2e840…2e860 66 65 72 65 6e 63 65 3b 0d 0a 09 20 20 09 09 20 20 09 20 49 4e 53 50 45 43 54 20 72 65 6d 6f 74 ┆ference; INSPECT remot┆
0x2e860…2e880 65 5f 6e 61 6d 65 3a 20 73 74 72 69 6e 67 3b 0d 0a 09 09 09 09 20 73 65 72 76 69 63 65 3a 20 63 ┆e_name: string; service: c┆
0x2e880…2e8a0 6f 6e 6e 5f 73 65 72 76 69 63 65 29 0d 0a 31 31 2e 32 2e 31 09 54 59 50 45 09 09 63 6f 6e 6e 5f ┆onn_service) 11.2.1 TYPE conn_┆
0x2e8a0…2e8c0 73 65 72 76 69 63 65 3d 20 28 63 73 5f 6e 6f 72 6d 61 6c 2c 20 63 73 5f 68 69 67 68 29 0d 0a 31 ┆service= (cs_normal, cs_high) 1┆
0x2e8c0…2e8e0 31 2e 31 09 54 59 50 45 09 09 63 6f 6e 74 72 6f 6c 5f 74 79 70 65 3d 20 50 41 43 4b 45 44 20 52 ┆1.1 TYPE control_type= PACKED R┆
0x2e8e0…2e900 45 43 4f 52 44 20 0d 0a 09 09 09 09 09 09 72 63 76 5f 61 6c 6c 2c 0d 0a 09 09 09 09 09 09 67 65 ┆ECORD rcv_all, ge┆
0x2e900…2e920 74 5f 63 72 65 64 69 74 2c 0d 0a 09 09 09 09 09 09 3f 2c 20 3f 2c 20 3f 2c 20 3f 2c 20 3f 2c 20 ┆t_credit, ?, ?, ?, ?, ?, ┆
0x2e920…2e940 3f 3a 20 62 6f 6f 6c 65 61 6e 0d 0a 09 09 09 20 20 20 09 09 20 20 20 20 20 20 20 20 45 4e 44 0d ┆?: boolean END ┆
0x2e940…2e960 0a 39 2e 31 09 09 54 59 50 45 09 09 63 72 65 61 74 65 5f 72 65 73 75 6c 74 3d 20 28 63 72 65 61 ┆ 9.1 TYPE create_result= (crea┆
0x2e960…2e980 74 65 5f 6f 6b 2c 20 6e 6f 5f 6d 65 6d 6f 72 79 2c 20 2e 2e 2e 29 0d 0a 0c 89 f8 0a a1 73 65 63 ┆te_ok, no_memory, ...) ЅЭ Аsec┆
0x2e980…2e9a0 74 69 6f 6e 09 6b 69 6e 64 09 09 09 64 65 66 69 6e 69 74 69 6f 6e 05 5f 0d 0a 0d 0a 31 31 2e 33 ┆tion kind definition _ 11.3┆
0x2e9a0…2e9c0 09 46 55 4e 43 54 49 4f 4e 09 63 72 65 64 69 74 63 6f 75 6e 74 28 56 41 52 20 72 3a 20 72 65 66 ┆ FUNCTION creditcount(VAR r: ref┆
0x2e9c0…2e9e0 65 72 65 6e 63 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 0d 0a 35 2e 39 09 09 54 59 50 45 09 09 ┆erenc): 0..maxint 5.9 TYPE ┆
0x2e9e0…2ea00 64 61 74 61 61 72 65 61 28 6f 66 66 73 65 74 2c 20 74 6f 70 3a 20 30 2e 2e 6d 61 78 69 6e 74 29 ┆dataarea(offset, top: 0..maxint)┆
0x2ea00…2ea20 20 3d 0d 0a 09 09 09 09 20 50 41 43 4b 45 44 20 41 52 52 41 59 28 6f 66 66 73 65 74 2e 2e 74 6f ┆ = PACKED ARRAY(offset..to┆
0x2ea20…2ea40 70 2d 31 29 20 4f 46 20 62 79 74 65 0d 0a 33 2e 34 2e 33 09 50 52 4f 43 45 44 55 52 45 09 64 65 ┆p-1) OF byte 3.4.3 PROCEDURE de┆
0x2ea40…2ea60 63 28 56 41 52 20 76 3a 20 69 6e 74 65 67 65 72 29 0d 0a 33 2e 34 2e 35 09 50 52 4f 43 45 44 55 ┆c(VAR v: integer) 3.4.5 PROCEDU┆
0x2ea60…2ea80 52 45 09 64 65 63 28 56 41 52 20 76 3a 20 62 79 74 65 29 0d 0a 39 2e 32 2e 32 09 50 52 4f 43 45 ┆RE dec(VAR v: byte) 9.2.2 PROCE┆
0x2ea80…2eaa0 44 55 52 45 09 64 65 6c 61 79 28 6e 6f 5f 6f 66 5f 6d 73 65 63 73 3a 20 30 2e 2e 6d 61 78 69 6e ┆DURE delay(no_of_msecs: 0..maxin┆
0x2eaa0…2eac0 74 29 0d 0a 31 31 2e 32 2e 31 09 50 52 4f 43 45 44 55 52 45 09 64 69 73 63 6f 6e 6e 65 63 74 28 ┆t) 11.2.1 PROCEDURE disconnect(┆
0x2eac0…2eae0 56 41 52 20 70 3a 20 70 6f 72 74 3b 20 69 6e 64 65 78 3a 20 31 2e 2e 6d 61 78 69 6e 74 29 0d 0a ┆VAR p: port; index: 1..maxint) ┆
0x2eae0…2eb00 0d 0a 33 2e 37 09 09 46 55 4e 43 54 49 4f 4e 09 65 76 65 6e 74 6b 69 6e 64 28 56 41 52 20 72 3a ┆ 3.7 FUNCTION eventkind(VAR r:┆
0x2eb00…2eb20 20 72 65 66 65 72 65 6e 63 65 29 3a 20 65 76 65 6e 74 5f 74 79 70 65 0d 0a 33 2e 37 09 09 46 55 ┆ reference): event_type 3.7 FU┆
0x2eb20…2eb40 4e 43 54 49 4f 4e 09 65 76 65 6e 74 6b 69 6e 64 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 29 3a ┆NCTION eventkind(VAR ch: chain):┆
0x2eb40…2eb60 20 65 76 65 6e 74 5f 74 79 70 65 0d 0a 33 2e 37 09 09 54 59 50 45 09 09 65 76 65 6e 74 5f 74 79 ┆ event_type 3.7 TYPE event_ty┆
0x2eb60…2eb80 70 65 3d 20 28 6e 6f 74 5f 65 76 65 6e 74 2c 20 6d 65 73 73 61 67 65 5f 65 76 65 6e 74 2c 20 0d ┆pe= (not_event, message_event, ┆
0x2eb80…2eba0 0a 09 09 20 20 20 20 09 09 20 61 6e 73 77 65 72 5f 65 76 65 6e 74 2c 20 70 72 6f 63 65 73 73 5f ┆ answer_event, process_┆
0x2eba0…2ebc0 72 65 6d 6f 76 65 64 2c 20 70 6f 72 74 5f 63 6c 6f 73 65 64 2c 0d 0a 09 09 09 09 20 64 69 73 63 ┆removed, port_closed, disc┆
0x2ebc0…2ebe0 6f 6e 6e 65 63 74 65 64 2c 20 3f 2c 20 3f 2c 20 6c 6f 63 61 6c 5f 63 6f 6e 6e 65 63 74 2c 0d 0a ┆onnected, ?, ?, local_connect, ┆
0x2ebe0…2ec00 09 09 09 09 20 72 65 6d 6f 74 65 5f 63 6f 6e 6e 65 63 74 2c 20 72 65 73 65 74 5f 69 6e 64 69 63 ┆ remote_connect, reset_indic┆
0x2ec00…2ec20 61 74 69 6f 6e 2c 20 0d 0a 09 09 09 09 20 72 65 73 65 74 5f 63 6f 6d 70 6c 65 74 69 6f 6e 2c 20 ┆ation, reset_completion, ┆
0x2ec20…2ec40 63 72 65 64 69 74 2c 20 20 64 61 74 61 5f 73 65 6e 74 2c 20 0d 0a 09 09 09 09 20 64 61 74 61 5f ┆credit, data_sent, data_┆
0x2ec40…2ec60 61 72 72 69 76 65 64 2c 20 64 61 74 61 5f 6f 76 65 72 72 75 6e 2c 20 3f 2c 20 64 75 6d 6d 79 5f ┆arrived, data_overrun, ?, dummy_┆
0x2ec60…2ec80 6c 63 6e 63 74 2c 20 0d 0a 09 09 09 09 20 64 75 6d 6d 79 5f 72 63 6e 63 74 2c 20 64 75 6d 6d 79 ┆lcnct, dummy_rcnct, dummy┆
0x2ec80…2eca0 5f 72 69 6e 64 69 63 2c 20 64 75 6d 6d 79 5f 72 63 6d 70 6c 2c 20 0d 0a 09 09 09 09 20 64 75 6d ┆_rindic, dummy_rcmpl, dum┆
0x2eca0…2ecc0 6d 79 5f 63 72 65 64 69 74 2c 20 64 75 6d 6d 79 5f 73 65 6e 74 2c 20 64 75 6d 6d 79 5f 61 72 72 ┆my_credit, dummy_sent, dummy_arr┆
0x2ecc0…2ece0 69 76 65 64 29 0d 0a 0d 0a 31 31 2e 32 2e 31 09 50 52 4f 43 45 44 55 52 45 09 67 65 74 63 6f 6e ┆ived) 11.2.1 PROCEDURE getcon┆
0x2ece0…2ed00 6e 65 63 74 69 6f 6e 28 56 41 52 20 70 3a 20 70 6f 72 74 3b 20 69 6e 64 65 78 3a 20 31 2e 2e 6d ┆nection(VAR p: port; index: 1..m┆
0x2ed00…2ed20 61 78 69 6e 74 3b 0d 0a 09 09 09 09 20 56 41 52 20 63 6f 6d 70 6c 2c 20 64 69 73 63 3a 20 72 65 ┆axint; VAR compl, disc: re┆
0x2ed20…2ed40 66 65 72 65 6e 63 65 29 0d 0a 31 31 2e 32 2e 32 09 50 52 4f 43 45 44 55 52 45 09 67 65 74 63 72 ┆ference) 11.2.2 PROCEDURE getcr┆
0x2ed40…2ed60 65 64 69 74 28 56 41 52 20 70 3a 20 70 6f 72 74 3b 20 69 6e 64 65 78 3a 20 31 2e 2e 6d 61 78 69 ┆edit(VAR p: port; index: 1..maxi┆
0x2ed60…2ed80 6e 74 3b 0d 0a 09 09 09 09 20 56 41 52 20 63 72 65 64 6d 65 73 3a 20 72 65 66 65 72 65 6e 63 65 ┆nt; VAR credmes: reference┆
0x2ed80…2eda0 29 0d 0a 31 31 2e 32 2e 32 09 50 52 4f 43 45 44 55 52 45 09 67 65 74 72 65 73 65 74 28 56 41 52 ┆) 11.2.2 PROCEDURE getreset(VAR┆
0x2eda0…2edc0 20 70 3a 20 70 6f 72 74 3b 20 69 6e 64 65 78 3a 20 31 2e 2e 6d 61 78 69 6e 74 3b 0d 0a 09 09 09 ┆ p: port; index: 1..maxint; ┆
0x2edc0…2ede0 09 20 56 41 52 20 69 6e 64 69 63 3a 20 72 65 66 65 72 65 6e 63 65 29 0d 0a 0d 0a 33 2e 37 09 09 ┆ VAR indic: reference) 3.7 ┆
0x2ede0…2ee00 46 55 4e 43 54 49 4f 4e 09 68 6f 6d 65 74 65 73 74 28 56 41 52 20 72 65 66 3a 20 72 65 66 65 72 ┆FUNCTION hometest(VAR ref: refer┆
0x2ee00…2ee20 65 6e 63 65 3b 20 56 41 52 20 70 3a 20 70 6f 6f 6c 29 3a 20 0d 0a 09 09 09 09 20 62 6f 6f 6c 65 ┆ence; VAR p: pool): boole┆
0x2ee20…2ee40 61 6e 0d 0a 0d 0a 33 2e 34 2e 33 09 50 52 4f 43 45 44 55 52 45 09 69 6e 63 28 56 41 52 20 76 3a ┆an 3.4.3 PROCEDURE inc(VAR v:┆
0x2ee40…2ee60 20 69 6e 74 65 67 65 72 29 0d 0a 33 2e 34 2e 35 09 50 52 4f 43 45 44 55 52 45 09 69 6e 63 28 56 ┆ integer) 3.4.5 PROCEDURE inc(V┆
0x2ee60…2ee80 41 52 20 76 3a 20 62 79 74 65 29 0d 0a 31 31 2e 33 09 46 55 4e 43 54 49 4f 4e 09 69 6e 64 65 78 ┆AR v: byte) 11.3 FUNCTION index┆
0x2ee80…2eea0 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 0d ┆(VAR r: reference): 0..maxint ┆
0x2eea0…2eec0 0a 39 2e 31 09 09 54 59 50 45 09 09 6c 69 6e 6b 5f 72 65 73 75 6c 74 3d 20 28 6c 69 6e 6b 5f 6f ┆ 9.1 TYPE link_result= (link_o┆
0x2eec0…2eee0 6b 2c 20 61 6c 72 65 61 64 79 5f 6c 69 6e 6b 65 64 2c 20 0d 0a 09 09 09 09 20 65 78 74 65 72 6e ┆k, already_linked, extern┆
0x2eee0…2ef00 61 6c 5f 6e 6f 74 5f 66 6f 75 6e 64 2c 20 2e 2e 2e 29 0d 0a 39 2e 32 2e 31 09 46 55 4e 43 54 49 ┆al_not_found, ...) 9.2.1 FUNCTI┆
0x2ef00…2ef20 4f 4e 09 6c 6f 63 6b 65 64 28 56 41 52 20 6d 62 78 3a 20 6d 61 69 6c 62 6f 78 29 3a 20 62 6f 6f ┆ON locked(VAR mbx: mailbox): boo┆
0x2ef20…2ef40 6c 65 61 6e 0d 0a 0d 0a 31 31 2e 34 09 46 55 4e 43 54 49 4f 4e 09 6d 61 78 63 6f 6e 6e 65 63 74 ┆lean 11.4 FUNCTION maxconnect┆
0x2ef40…2ef60 69 6f 6e 73 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 33 2e 34 2e 33 09 43 4f 4e 53 54 09 09 6d 61 ┆ions: 0..maxint 3.4.3 CONST ma┆
0x2ef60…2ef80 78 69 6e 74 0d 0a 33 2e 37 09 09 54 59 50 45 09 09 6d 65 6d 5f 74 79 70 65 3d 20 28 2e 2e 2e 29 ┆xint 3.7 TYPE mem_type= (...)┆
0x2ef80…2efa0 0d 0a 33 2e 34 2e 33 09 43 4f 4e 53 54 09 09 6d 69 6e 69 6e 74 0d 0a 0d 0a 33 2e 36 09 09 50 52 ┆ 3.4.3 CONST minint 3.6 PR┆
0x2efa0…2efc0 4f 43 45 44 55 52 45 09 6e 65 77 28 56 41 52 20 70 74 72 3a 20 70 74 72 74 79 70 65 29 0d 0a 33 ┆OCEDURE new(VAR ptr: ptrtype) 3┆
0x2efc0…2efe0 2e 36 09 09 46 55 4e 43 54 49 4f 4e 09 6e 69 6c 28 56 41 52 20 70 74 72 3a 20 70 74 72 74 79 70 ┆.6 FUNCTION nil(VAR ptr: ptrtyp┆
0x2efe0…2f000 65 29 3a 20 62 6f 6f 6c 65 61 6e 0d 0a 33 2e 37 09 09 46 55 4e 43 54 49 4f 4e 09 6e 69 6c 28 56 ┆e): boolean 3.7 FUNCTION nil(V┆
0x2f000…2f020 41 52 20 70 72 3a 20 70 72 6f 63 65 73 73 29 3a 20 62 6f 6f 6c 65 61 6e 0d 0a 33 2e 37 09 09 46 ┆AR pr: process): boolean 3.7 F┆
0x2f020…2f040 55 4e 43 54 49 4f 4e 09 6e 69 6c 28 56 41 52 20 72 65 66 3a 20 72 65 66 65 72 65 6e 63 65 29 3a ┆UNCTION nil(VAR ref: reference):┆
0x2f040…2f060 20 62 6f 6f 6c 65 61 6e 0d 0a 0d 0a 33 2e 37 09 09 46 55 4e 43 54 49 4f 4e 09 6f 66 66 73 65 74 ┆ boolean 3.7 FUNCTION offset┆
0x2f060…2f080 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 33 ┆(VAR r: reference): 0..maxint 3┆
0x2f080…2f0a0 2e 37 09 09 46 55 4e 43 54 49 4f 4e 09 6f 66 66 73 65 74 28 56 41 52 20 63 68 3a 20 63 68 61 69 ┆.7 FUNCTION offset(VAR ch: chai┆
0x2f0a0…2f0c0 6e 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 39 2e 32 2e 31 09 46 55 4e 43 54 49 4f 4e 09 6f 70 ┆n): 0..maxint 9.2.1 FUNCTION op┆
0x2f0c0…2f0e0 65 6e 28 56 41 52 20 6d 62 78 3a 20 6d 61 69 6c 62 6f 78 29 3a 20 62 6f 6f 6c 65 61 6e 0d 0a 0c ┆en(VAR mbx: mailbox): boolean ┆
0x2f0e0…2f100 89 f8 0a a1 73 65 63 74 69 6f 6e 09 6b 69 6e 64 09 09 09 64 65 66 69 6e 69 74 69 6f 6e 05 5f 0d ┆ЅЭ Аsection kind definition _ ┆
0x2f100…2f120 0a 0d 0a 31 31 2e 31 09 50 52 4f 43 45 44 55 52 45 09 6f 70 65 6e 70 6f 72 74 28 56 41 52 20 70 ┆ 11.1 PROCEDURE openport(VAR p┆
0x2f120…2f140 3a 20 70 6f 72 74 3b 20 56 41 52 20 63 6c 6f 73 65 6d 65 73 3a 20 72 65 66 65 72 65 6e 63 65 3b ┆: port; VAR closemes: reference;┆
0x2f140…2f160 0d 0a 09 09 09 09 20 49 4e 53 50 45 43 54 20 6e 61 6d 65 3a 20 73 74 72 69 6e 67 3b 20 73 63 6f ┆ INSPECT name: string; sco┆
0x2f160…2f180 70 65 3a 20 73 63 6f 70 65 5f 74 79 70 65 3b 0d 0a 09 09 09 09 20 6e 6f 5f 6f 66 5f 63 6f 6e 73 ┆pe: scope_type; no_of_cons┆
0x2f180…2f1a0 3a 20 30 2e 2e 6d 61 78 69 6e 74 3b 20 63 6e 74 72 6c 3a 20 63 6f 6e 74 72 6f 6c 5f 74 79 70 65 ┆: 0..maxint; cntrl: control_type┆
0x2f1a0…2f1c0 29 0d 0a 33 2e 34 09 09 46 55 4e 43 54 49 4f 4e 09 6f 72 64 28 76 3a 20 6f 74 79 70 65 29 3a 20 ┆) 3.4 FUNCTION ord(v: otype): ┆
0x2f1c0…2f1e0 69 6e 74 65 67 65 72 0d 0a 0d 0a 39 2e 32 2e 31 09 46 55 4e 43 54 49 4f 4e 09 70 61 73 73 69 76 ┆integer 9.2.1 FUNCTION passiv┆
0x2f1e0…2f200 65 28 56 41 52 20 6d 62 78 3a 20 6d 61 69 6c 62 6f 78 29 3a 20 62 6f 6f 6c 65 61 6e 0d 0a 31 30 ┆e(VAR mbx: mailbox): boolean 10┆
0x2f200…2f220 2e 31 09 50 52 4f 43 45 44 55 52 45 09 70 6f 70 28 56 41 52 20 70 6f 70 70 65 64 5f 6d 65 73 2c ┆.1 PROCEDURE pop(VAR popped_mes,┆
0x2f220…2f240 20 73 74 61 63 6b 5f 68 61 6e 64 6c 65 3a 20 72 65 66 65 72 65 6e 63 65 29 0d 0a 33 2e 34 09 09 ┆ stack_handle: reference) 3.4 ┆
0x2f240…2f260 46 55 4e 43 54 49 4f 4e 09 70 72 65 64 28 76 3a 20 6f 74 79 70 65 29 3a 20 6f 74 79 70 65 0d 0a ┆FUNCTION pred(v: otype): otype ┆
0x2f260…2f280 39 2e 31 09 09 54 59 50 45 09 09 70 72 69 6f 5f 74 79 70 65 3d 20 28 6d 69 6e 70 72 69 6f 72 69 ┆9.1 TYPE prio_type= (minpriori┆
0x2f280…2f2a0 74 79 2c 20 73 74 64 70 72 69 6f 72 69 74 79 2c 20 6d 61 78 70 72 69 6f 72 69 74 79 2c 0d 0a 09 ┆ty, stdpriority, maxpriority, ┆
0x2f2a0…2f2c0 09 09 09 20 2e 2e 2e 29 0d 0a 31 30 2e 31 09 50 52 4f 43 45 44 55 52 45 09 70 75 73 68 28 56 41 ┆ ...) 10.1 PROCEDURE push(VA┆
0x2f2c0…2f2e0 52 20 6e 65 77 5f 74 6f 70 2c 20 73 74 61 63 6b 5f 68 61 6e 64 6c 65 3a 20 72 65 66 65 72 65 6e ┆R new_top, stack_handle: referen┆
0x2f2e0…2f300 63 65 29 0d 0a 0d 0a 31 31 2e 33 09 46 55 4e 43 54 49 4f 4e 09 72 65 61 73 6f 6e 28 56 41 52 20 ┆ce) 11.3 FUNCTION reason(VAR ┆
0x2f300…2f320 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 72 65 61 73 6f 6e 5f 74 79 70 65 0d 0a 0e 0a 31 31 ┆r: reference): reason_type 11┆
0x2f320…2f340 2e 33 09 54 59 50 45 09 09 72 65 61 73 6f 6e 5f 74 79 70 65 3d 20 28 72 65 61 73 6f 6e 5f 6f 6b ┆.3 TYPE reason_type= (reason_ok┆
0x2f340…2f360 2c 20 72 65 61 73 6f 6e 5f 6e 61 6d 65 2c 20 0d 0a 09 09 09 09 20 72 65 61 73 6f 6e 5f 72 65 73 ┆, reason_name, reason_res┆
0x2f360…2f380 73 6f 75 72 63 65 2c 20 72 65 61 73 6f 6e 5f 63 6c 6f 73 65 64 2c 20 0d 0a 09 09 09 09 20 72 65 ┆source, reason_closed, re┆
0x2f380…2f3a0 61 73 6f 6e 5f 6e 65 74 77 6f 72 6b 29 0d 0a 0f 0a 31 31 2e 32 2e 32 09 50 52 4f 43 45 44 55 52 ┆ason_network) 11.2.2 PROCEDUR┆
0x2f3a0…2f3c0 45 09 72 65 63 65 69 76 65 28 56 41 52 20 70 3a 20 70 6f 72 74 3b 20 69 6e 64 65 78 3a 20 31 2e ┆E receive(VAR p: port; index: 1.┆
0x2f3c0…2f3e0 2e 6d 61 78 69 6e 74 0d 0a 09 09 09 09 20 56 41 52 20 64 61 74 61 6d 65 73 3a 20 72 65 66 65 72 ┆.maxint VAR datames: refer┆
0x2f3e0…2f400 65 6e 63 65 29 0d 0a 31 31 2e 32 2e 32 09 50 52 4f 43 45 44 55 52 45 09 72 65 63 65 69 76 65 61 ┆ence) 11.2.2 PROCEDURE receivea┆
0x2f400…2f420 6c 6c 28 56 41 52 20 70 3a 20 70 6f 72 74 3b 20 56 41 52 20 64 61 74 61 6d 65 73 3a 20 72 65 66 ┆ll(VAR p: port; VAR datames: ref┆
0x2f420…2f440 65 72 65 6e 63 65 29 0d 0a 33 2e 37 09 09 50 52 4f 43 45 44 55 52 45 09 72 65 6c 65 61 73 65 28 ┆erence) 3.7 PROCEDURE release(┆
0x2f440…2f460 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 0d 0a 33 2e 37 09 09 46 55 4e 43 54 49 4f 4e ┆VAR r: reference) 3.7 FUNCTION┆
0x2f460…2f480 09 72 65 6c 65 61 73 65 70 6f 6f 6c 28 56 41 52 20 70 3a 20 70 6f 6f 6c 3b 0d 0a 09 09 09 09 20 ┆ releasepool(VAR p: pool; ┆
0x2f480…2f4a0 6e 6f 5f 6f 66 5f 6d 65 73 73 61 67 65 73 3a 20 31 2e 2e 6d 61 78 69 6e 74 29 3a 20 30 2e 2e 6d ┆no_of_messages: 1..maxint): 0..m┆
0x2f4a0…2f4c0 61 78 69 6e 74 0d 0a 39 2e 31 09 09 50 52 4f 43 45 44 55 52 45 09 72 65 6d 6f 76 65 28 56 41 52 ┆axint 9.1 PROCEDURE remove(VAR┆
0x2f4c0…2f4e0 20 70 72 3a 20 70 72 6f 63 65 73 73 29 0d 0a 31 31 2e 32 2e 32 09 50 52 4f 43 45 44 55 52 45 09 ┆ pr: process) 11.2.2 PROCEDURE ┆
0x2f4e0…2f500 72 65 73 65 74 28 56 41 52 20 70 3a 20 70 6f 72 74 3b 20 69 6e 64 65 78 3a 20 31 2e 2e 6d 61 78 ┆reset(VAR p: port; index: 1..max┆
0x2f500…2f520 69 6e 74 3b 20 0d 0a 09 09 09 09 20 56 41 52 20 63 6f 6d 70 6c 3a 20 72 65 66 65 72 65 6e 63 65 ┆int; VAR compl: reference┆
0x2f520…2f540 29 0d 0a 33 2e 37 09 09 50 52 4f 43 45 44 55 52 45 09 72 65 73 65 74 65 76 65 6e 74 28 56 41 52 ┆) 3.7 PROCEDURE resetevent(VAR┆
0x2f540…2f560 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 0d 0a 33 2e 37 09 09 50 52 4f 43 45 44 55 52 45 09 72 ┆ r: reference) 3.7 PROCEDURE r┆
0x2f560…2f580 65 73 65 74 65 76 65 6e 74 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 29 0d 0a 39 2e 31 09 09 50 ┆esetevent(VAR ch: chain) 9.1 P┆
0x2f580…2f5a0 52 4f 43 45 44 55 52 45 09 72 65 73 75 6d 65 28 56 41 52 20 70 72 3a 20 70 72 6f 63 65 73 73 29 ┆ROCEDURE resume(VAR pr: process)┆
0x2f5a0…2f5c0 0d 0a 39 2e 32 2e 32 09 50 52 4f 43 45 44 55 52 45 09 72 65 74 75 72 6e 28 56 41 52 20 72 65 66 ┆ 9.2.2 PROCEDURE return(VAR ref┆
0x2f5c0…2f5e0 3a 20 72 65 66 65 72 65 6e 63 65 29 0d 0a 0d 0a 31 31 2e 31 09 54 59 50 45 09 09 73 63 6f 70 65 ┆: reference) 11.1 TYPE scope┆
0x2f5e0…2f600 5f 74 79 70 65 3d 20 28 61 6e 6f 6e 79 6d 6f 75 73 2c 20 6c 6f 63 61 6c 2c 20 72 65 67 69 6f 6e ┆_type= (anonymous, local, region┆
0x2f600…2f620 61 6c 2c 20 67 6c 6f 62 61 6c 29 0d 0a 31 31 2e 32 2e 32 09 50 52 4f 43 45 44 55 52 45 09 73 65 ┆al, global) 11.2.2 PROCEDURE se┆
0x2f620…2f640 6e 64 28 56 41 52 20 70 3a 20 70 6f 72 74 3b 20 69 6e 64 65 78 3a 20 31 2e 2e 6d 61 78 69 6e 74 ┆nd(VAR p: port; index: 1..maxint┆
0x2f640…2f660 3b 20 0d 0a 09 09 09 09 20 56 41 52 20 64 61 74 61 6d 65 73 3a 20 72 65 66 65 72 65 6e 63 65 29 ┆; VAR datames: reference)┆
0x2f660…2f680 0d 0a 33 2e 37 09 09 50 52 4f 43 45 44 55 52 45 09 73 65 74 62 79 74 65 63 6f 75 6e 74 28 56 41 ┆ 3.7 PROCEDURE setbytecount(VA┆
0x2f680…2f6a0 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 76 61 6c 3a 20 30 2e 2e 6d 61 78 69 6e 74 29 0d ┆R r: reference; val: 0..maxint) ┆
0x2f6a0…2f6c0 0a 33 2e 37 09 09 50 52 4f 43 45 44 55 52 45 09 73 65 74 62 79 74 65 63 6f 75 6e 74 28 56 41 52 ┆ 3.7 PROCEDURE setbytecount(VAR┆
0x2f6c0…2f6e0 20 63 68 3a 20 63 68 61 69 6e 3b 20 76 61 6c 3a 20 30 2e 2e 6d 61 78 69 6e 74 29 0d 0a 33 2e 37 ┆ ch: chain; val: 0..maxint) 3.7┆
0x2f6e0…2f700 09 09 50 52 4f 43 45 44 55 52 45 09 73 65 74 6f 66 66 73 65 74 28 56 41 52 20 72 3a 20 72 65 66 ┆ PROCEDURE setoffset(VAR r: ref┆
0x2f700…2f720 65 72 65 6e 63 65 3b 20 76 61 6c 3a 20 30 2e 2e 6d 61 78 69 6e 74 29 0d 0a 33 2e 37 09 09 50 52 ┆erence; val: 0..maxint) 3.7 PR┆
0x2f720…2f740 4f 43 45 44 55 52 45 09 73 65 74 6f 66 66 73 65 74 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 3b ┆OCEDURE setoffset(VAR ch: chain;┆
0x2f740…2f760 20 76 61 6c 3a 20 30 2e 2e 6d 61 78 69 6e 74 29 0d 0a 33 2e 37 09 09 50 52 4f 43 45 44 55 52 45 ┆ val: 0..maxint) 3.7 PROCEDURE┆
0x2f760…2f780 09 73 65 74 74 6f 70 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 3b 20 76 61 6c 3a 20 30 ┆ settop(VAR r: reference; val: 0┆
0x2f780…2f7a0 2e 2e 6d 61 78 69 6e 74 29 0d 0a 33 2e 37 09 09 50 52 4f 43 45 44 55 52 45 09 73 65 74 74 6f 70 ┆..maxint) 3.7 PROCEDURE settop┆
0x2f7a0…2f7c0 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 3b 20 76 61 6c 3a 20 30 2e 2e 6d 61 78 69 6e 74 29 0d ┆(VAR ch: chain; val: 0..maxint) ┆
0x2f7c0…2f7e0 0a 33 2e 37 09 09 50 52 4f 43 45 44 55 52 45 09 73 65 74 75 31 28 56 41 52 20 72 3a 20 72 65 66 ┆ 3.7 PROCEDURE setu1(VAR r: ref┆
0x2f7e0…2f800 65 72 65 6e 63 65 3b 20 62 3a 20 62 79 74 65 29 0d 0a 33 2e 37 09 09 50 52 4f 43 45 44 55 52 45 ┆erence; b: byte) 3.7 PROCEDURE┆
0x2f800…2f820 09 73 65 74 75 31 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 3b 20 62 3a 20 30 2e 32 35 35 29 0d ┆ setu1(VAR ch: chain; b: 0.255) ┆
0x2f820…2f840 0a 33 2e 37 09 09 50 52 4f 43 45 44 55 52 45 09 73 65 74 75 32 28 56 41 52 20 72 3a 20 72 65 66 ┆ 3.7 PROCEDURE setu2(VAR r: ref┆
0x2f840…2f860 65 72 65 6e 63 65 3b 20 62 3a 20 62 79 74 65 29 0d 0a 33 2e 37 09 09 50 52 4f 43 45 44 55 52 45 ┆erence; b: byte) 3.7 PROCEDURE┆
0x2f860…2f880 09 73 65 74 75 32 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 3b 20 62 3a 20 62 79 74 65 29 0d 0a ┆ setu2(VAR ch: chain; b: byte) ┆
0x2f880…2f8a0 33 2e 37 09 09 50 52 4f 43 45 44 55 52 45 09 73 65 74 75 33 28 56 41 52 20 72 3a 20 72 65 66 65 ┆3.7 PROCEDURE setu3(VAR r: refe┆
0x2f8a0…2f8c0 72 65 6e 63 65 3b 20 62 3a 20 62 79 74 65 29 0d 0a 33 2e 37 09 09 50 52 4f 43 45 44 55 52 45 09 ┆rence; b: byte) 3.7 PROCEDURE ┆
0x2f8c0…2f8e0 73 65 74 75 33 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 3b 20 62 3a 20 62 79 74 65 29 0d 0a 33 ┆setu3(VAR ch: chain; b: byte) 3┆
0x2f8e0…2f900 2e 37 09 09 50 52 4f 43 45 44 55 52 45 09 73 65 74 75 34 28 56 41 52 20 72 3a 20 72 65 66 65 72 ┆.7 PROCEDURE setu4(VAR r: refer┆
0x2f900…2f920 65 6e 63 65 3b 20 62 3a 20 62 79 74 65 29 0d 0a 33 2e 37 09 09 50 52 4f 43 45 44 55 52 45 09 73 ┆ence; b: byte) 3.7 PROCEDURE s┆
0x2f920…2f940 65 74 75 34 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 3b 20 62 3a 20 62 79 74 65 29 0d 0a 39 2e ┆etu4(VAR ch: chain; b: byte) 9.┆
0x2f940…2f960 32 2e 32 09 50 52 4f 43 45 44 55 52 45 09 73 69 67 6e 61 6c 28 56 41 52 20 6d 62 78 3a 20 6d 61 ┆2.2 PROCEDURE signal(VAR mbx: ma┆
0x2f960…2f980 69 6c 62 6f 78 3b 20 56 41 52 20 72 65 66 3a 20 72 65 66 65 72 65 6e 63 65 29 0d 0a 31 30 2e 31 ┆ilbox; VAR ref: reference) 10.1┆
0x2f980…2f9a0 09 46 55 4e 43 54 49 4f 4e 09 73 74 61 63 6b 64 65 70 74 68 28 56 41 52 20 73 74 61 63 6b 3a 20 ┆ FUNCTION stackdepth(VAR stack: ┆
0x2f9a0…2f9c0 72 65 66 65 72 65 6e 63 65 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 39 2e 31 09 09 50 52 4f 43 ┆reference): 0..maxint 9.1 PROC┆
0x2f9c0…2f9e0 45 44 55 52 45 09 73 74 61 72 74 28 56 41 52 20 70 72 3a 20 70 72 6f 63 65 73 73 3b 20 70 72 69 ┆EDURE start(VAR pr: process; pri┆
0x2f9e0…2fa00 6f 3a 20 70 72 69 6f 5f 74 79 70 65 29 0d 0a 39 2e 31 09 09 50 52 4f 43 45 44 55 52 45 09 73 74 ┆o: prio_type) 9.1 PROCEDURE st┆
0x2fa00…2fa20 6f 70 28 56 41 52 20 70 72 3a 20 70 72 6f 63 65 73 73 29 0d 0a 33 2e 38 2e 34 09 54 59 50 45 09 ┆op(VAR pr: process) 3.8.4 TYPE ┆
0x2fa20…2fa40 09 73 74 72 69 6e 67 28 6c 65 6e 67 74 68 3a 20 62 79 74 65 29 3d 20 41 52 52 41 59 28 31 2e 2e ┆ string(length: byte)= ARRAY(1..┆
0x2fa40…2fa60 6c 65 6e 67 74 68 29 20 4f 46 20 63 68 61 72 0d 0a 0c 8a 90 0a a1 73 65 63 74 69 6f 6e 09 6b 69 ┆length) OF char іљ Аsection ki┆
0x2fa60…2fa80 6e 64 09 09 09 64 65 66 69 6e 69 74 69 6f 6e 05 5f 0d 0a 0d 0a 33 2e 34 09 09 46 55 4e 43 54 49 ┆nd definition _ 3.4 FUNCTI┆
0x2fa80…2faa0 4f 4e 09 73 75 63 63 28 76 3a 20 6f 74 79 70 65 29 3a 20 6f 74 79 70 65 0d 0a 0d 0a 33 2e 37 09 ┆ON succ(v: otype): otype 3.7 ┆
0x2faa0…2fac0 09 46 55 4e 43 54 49 4f 4e 09 74 6f 70 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a ┆ FUNCTION top(VAR r: reference):┆
0x2fac0…2fae0 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 33 2e 37 09 09 46 55 4e 43 54 49 4f 4e 09 74 6f 70 28 56 41 ┆ 0..maxint 3.7 FUNCTION top(VA┆
0x2fae0…2fb00 52 20 63 68 3a 20 63 68 61 69 6e 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 37 2e 31 09 09 50 52 ┆R ch: chain): 0..maxint 7.1 PR┆
0x2fb00…2fb20 4f 43 45 44 55 52 45 09 74 72 61 63 65 28 66 61 75 6c 74 3a 20 69 6e 74 65 67 65 72 29 0d 0a 0d ┆OCEDURE trace(fault: integer) ┆
0x2fb20…2fb40 0a 39 2e 31 09 09 54 59 50 45 09 09 75 6e 6c 69 6e 6b 5f 72 65 73 75 6c 74 3d 20 28 75 6e 6c 69 ┆ 9.1 TYPE unlink_result= (unli┆
0x2fb40…2fb60 6e 6b 5f 6f 6b 2c 20 6e 6f 5f 70 72 6f 67 72 61 6d 5f 6c 69 6e 6b 65 64 2c 0d 0a 09 09 09 09 20 ┆nk_ok, no_program_linked, ┆
0x2fb60…2fb80 65 78 69 73 74 69 6e 67 5f 69 6e 63 61 72 6e 61 74 69 6f 6e 73 2c 20 2e 2e 2e 29 0d 0a 33 2e 37 ┆existing_incarnations, ...) 3.7┆
0x2fb80…2fba0 09 09 46 55 4e 43 54 49 4f 4e 09 75 31 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a ┆ FUNCTION u1(VAR r: reference):┆
0x2fba0…2fbc0 20 62 79 74 65 0d 0a 33 2e 37 09 09 46 55 4e 43 54 49 4f 4e 09 75 31 28 56 41 52 20 63 68 3a 20 ┆ byte 3.7 FUNCTION u1(VAR ch: ┆
0x2fbc0…2fbe0 63 68 61 69 6e 29 3a 20 62 79 74 65 0d 0a 33 2e 37 09 09 46 55 4e 43 54 49 4f 4e 09 75 32 28 56 ┆chain): byte 3.7 FUNCTION u2(V┆
0x2fbe0…2fc00 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 62 79 74 65 0d 0a 33 2e 37 09 09 46 55 4e ┆AR r: reference): byte 3.7 FUN┆
0x2fc00…2fc20 43 54 49 4f 4e 09 75 32 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 29 3a 20 62 79 74 65 0d 0a 33 ┆CTION u2(VAR ch: chain): byte 3┆
0x2fc20…2fc40 2e 37 09 09 46 55 4e 43 54 49 4f 4e 09 75 33 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 ┆.7 FUNCTION u3(VAR r: reference┆
0x2fc40…2fc60 29 3a 20 62 79 74 65 0d 0a 33 2e 37 09 09 46 55 4e 43 54 49 4f 4e 09 75 33 28 56 41 52 20 63 68 ┆): byte 3.7 FUNCTION u3(VAR ch┆
0x2fc60…2fc80 3a 20 63 68 61 69 6e 29 3a 20 62 79 74 65 0d 0a 33 2e 37 09 09 46 55 4e 43 54 49 4f 4e 09 75 34 ┆: chain): byte 3.7 FUNCTION u4┆
0x2fc80…2fca0 28 56 41 52 20 72 3a 20 72 65 66 65 72 65 6e 63 65 29 3a 20 62 79 74 65 0d 0a 33 2e 37 09 09 46 ┆(VAR r: reference): byte 3.7 F┆
0x2fca0…2fcc0 55 4e 43 54 49 4f 4e 09 75 34 28 56 41 52 20 63 68 3a 20 63 68 61 69 6e 29 3a 20 62 79 74 65 0d ┆UNCTION u4(VAR ch: chain): byte ┆
0x2fcc0…2fce0 0a 0d 0a 39 2e 32 2e 32 09 50 52 4f 43 45 44 55 52 45 09 77 61 69 74 28 56 41 52 20 72 65 66 3a ┆ 9.2.2 PROCEDURE wait(VAR ref:┆
0x2fce0…2fd00 20 72 65 66 65 72 65 6e 63 65 3b 20 56 41 52 20 6d 62 78 3a 20 6d 61 69 6c 62 6f 78 29 0d 0a 39 ┆ reference; VAR mbx: mailbox) 9┆
0x2fd00…2fd20 2e 32 2e 32 09 46 55 4e 43 54 49 4f 4e 09 77 61 69 74 64 65 6c 61 79 28 56 41 52 20 72 65 66 3a ┆.2.2 FUNCTION waitdelay(VAR ref:┆
0x2fd20…2fd40 20 72 65 66 65 72 65 6e 63 65 3b 20 56 41 52 20 6d 62 78 3a 20 6d 61 69 6c 62 6f 78 3b 0d 0a 09 ┆ reference; VAR mbx: mailbox; ┆
0x2fd40…2fd60 09 09 09 20 6e 6f 5f 6f 66 5f 6d 73 65 63 73 3a 20 30 2e 2e 6d 61 78 69 6e 74 29 3a 20 61 63 74 ┆ no_of_msecs: 0..maxint): act┆
0x2fd60…2fd80 69 76 61 74 69 6f 6e 0d 0a 0d 0a 0d 0a 16 73 62 0d 0a 4c 61 6e 67 75 61 67 65 20 49 6e 74 72 69 ┆ivation sb Language Intri┆
0x2fd80…2fda0 6e 73 69 63 20 54 79 70 65 73 0d 0a 0d 0a 04 00 2d 4c 00 00 06 00 00 00 00 02 01 41 31 00 00 00 ┆nsic Types -L A1 ┆
0x2fda0…2fdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 4b 55 5f ┆ #-7AKU_┆
0x2fdc0…2fde0 69 73 7d ff ff ff 04 04 00 2d 4c 00 00 06 00 00 00 00 02 01 41 31 00 00 00 00 00 00 00 00 00 00 ┆is} -L A1 ┆
0x2fde0…2fe00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 09 0f 15 19 23 2d 37 41 4b 55 5f 69 73 7d ff 04 ┆ #-7AKU_is} ┆
0x2fe00…2fe20 0a a1 73 65 63 74 69 6f 6e 09 6e 61 6d 65 05 5f 0d 0a 33 2e 34 2e 31 09 62 6f 6f 6c 65 61 6e 0d ┆ Аsection name _ 3.4.1 boolean ┆
0x2fe20…2fe40 0a 33 2e 34 2e 35 09 62 79 74 65 0d 0a 33 2e 37 2c 20 31 30 2e 32 09 63 68 61 69 6e 0d 0a 33 2e ┆ 3.4.5 byte 3.7, 10.2 chain 3.┆
0x2fe40…2fe60 34 2e 32 09 63 68 61 72 0d 0a 33 2e 34 2e 33 20 20 20 20 20 20 20 20 20 64 6f 75 62 6c 65 0d 0a ┆4.2 char 3.4.3 double ┆
0x2fe60…2fe80 33 2e 37 09 09 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 6d 0d 0a 33 2e 34 2e 33 09 69 6e 74 ┆3.7 external program 3.4.3 int┆
0x2fe80…2fea0 65 67 65 72 0d 0a 33 2e 37 09 09 6d 61 69 6c 62 6f 78 0d 0a 33 2e 37 09 09 70 6f 6f 6c 0d 0a 33 ┆eger 3.7 mailbox 3.7 pool 3┆
0x2fea0…2fec0 2e 37 2c 20 31 31 09 70 6f 72 74 0d 0a 33 2e 37 2c 20 39 2e 31 09 70 72 6f 63 65 73 73 0d 0a 33 ┆.7, 11 port 3.7, 9.1 process 3┆
0x2fec0…2fee0 2e 37 09 09 72 65 66 65 72 65 6e 63 65 0d 0a 0d 0a 0d 0a 16 73 62 0d 0a 4c 61 6e 67 75 61 67 65 ┆.7 reference sb Language┆
0x2fee0…2ff00 20 49 6e 74 72 69 6e 73 69 63 20 50 73 65 75 64 6f 2d 66 75 6e 63 74 69 6f 6e 0d 0a 0d 0a a1 73 ┆ Intrinsic Pseudo-function Аs┆
0x2ff00…2ff20 65 63 74 69 6f 6e 09 64 65 73 63 72 69 70 74 69 6f 6e 05 5f 0d 0a 39 2e 31 09 09 63 72 65 61 74 ┆ection description _ 9.1 creat┆
0x2ff20…2ff40 65 28 49 4e 53 50 45 43 54 20 69 6e 63 5f 6e 61 6d 65 3a 20 73 74 72 69 6e 67 3b 20 70 72 6f 67 ┆e(INSPECT inc_name: string; prog┆
0x2ff40…2ff60 72 61 6d 20 63 61 6c 6c 3b 0d 0a 09 09 20 56 41 52 20 70 72 3a 20 70 72 6f 63 65 73 73 3b 20 73 ┆ram call; VAR pr: process; s┆
0x2ff60…2ff80 69 7a 65 3a 20 30 2e 2e 6d 61 78 69 6e 74 3b 0d 0a 09 09 20 70 72 69 6f 72 69 74 79 3a 20 70 72 ┆ize: 0..maxint; priority: pr┆
0x2ff80…2ffa0 69 6f 5f 74 79 70 65 29 3a 20 63 72 65 61 74 65 5f 72 65 73 75 6c 74 0d 0a 33 2e 31 32 20 20 20 ┆io_type): create_result 3.12 ┆
0x2ffa0…2ffc0 20 20 20 20 20 20 09 67 65 74 73 77 69 74 63 68 28 73 77 69 74 63 68 5f 6e 61 6d 65 29 3a 20 69 ┆ getswitch(switch_name): i┆
0x2ffc0…2ffe0 6e 74 65 67 65 72 0d 0a 39 2e 31 09 09 6c 69 6e 6b 28 49 4e 53 50 45 43 54 20 6e 61 6d 65 3a 20 ┆nteger 9.1 link(INSPECT name: ┆
0x2ffe0…30000 73 74 72 69 6e 67 3b 0d 0a 09 09 20 56 41 52 20 70 72 6f 67 3a 20 70 72 6f 67 72 61 6d 29 3a 20 ┆string; VAR prog: program): ┆
0x30000…30020 6c 69 6e 6b 5f 72 65 73 75 6c 74 0d 0a 33 2e 32 09 09 74 79 70 65 73 69 7a 65 28 74 79 70 65 5f ┆link_result 3.2 typesize(type_┆
0x30020…30040 6e 61 6d 65 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 33 2e 31 31 2e 32 09 76 61 72 73 69 7a 65 ┆name): 0..maxint 3.11.2 varsize┆
0x30040…30060 28 76 61 72 69 61 62 6c 65 5f 6e 61 6d 65 29 3a 20 30 2e 2e 6d 61 78 69 6e 74 0d 0a 39 2e 31 09 ┆(variable_name): 0..maxint 9.1 ┆
0x30060…30080 09 75 6e 6c 69 6e 6b 28 56 41 52 20 70 72 6f 67 3a 20 70 72 6f 67 72 61 6d 29 3a 20 75 6e 6c 69 ┆ unlink(VAR prog: program): unli┆
0x30080…300a0 6e 6b 5f 72 65 73 75 6c 74 0d 0a 1a 1a 20 20 0d 0a 0a 1a 20 20 20 20 0d 0a 0a 1a 0d 0a 0a 1a 0a ┆nk_result ┆
0x300a0…300c0 1a 0d 0a 0a 1a 0a 1a 09 75 6e 6c 69 6e 6b 28 56 41 52 20 70 72 6f 67 3a 20 70 72 6f 67 72 61 6e ┆ unlink(VAR prog: progran┆
0x300c0…300e0 20 6d 61 79 20 62 65 20 74 61 6b 65 6e 20 62 61 31 2e 32 2e 32 09 50 52 4f 43 45 44 55 52 45 09 ┆ may be taken ba1.2.2 PROCEDURE ┆
0x300e0…30100 72 65 73 65 74 28 56 41 52 20 70 3a 20 70 6f 72 74 3b 20 69 6e 64 65 78 3a 20 31 2e 2e 6d 61 78 ┆reset(VAR p: port; index: 1..max┆