home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: Mailbox/MIME Entity
(archive/mbox).
You can browse this item here: M2OB.TXT
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| Mailbox/MIME Entity (archive/mbox)
| magic
| Supported |
1%
| dexvert
| Swift 3D 3D Graphic (poly/swift3D3DGraphic)
| ext
| Unsupported |
1%
| dexvert
| Boost Text serialization (other/boostTextSerialization)
| ext
| Unsupported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| Mailbox text, 1st line "From Modula to Oberon", ASCII text, with CRLF line terminators
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| x-fmt/111 Plain Text File
| default
| |
100%
| gt2
| Textdatei (DOS)
| default
| |
100%
| detectItEasy
| Format: plain text[CRLF]
| default (weak)
| |
100%
| xdgMime
| application/mbox
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 46 72 6f 6d 20 4d 6f 64 | 75 6c 61 20 74 6f 20 4f |From Mod|ula to O|
|00000010| 62 65 72 6f 6e 0d 0a 0d | 0a 4e 2e 20 57 69 72 74 |beron...|.N. Wirt|
|00000020| 68 0d 0a 0d 0a 41 62 73 | 74 72 61 63 74 0d 0a 0d |h....Abs|tract...|
|00000030| 0a 54 68 65 20 70 72 6f | 67 72 61 6d 6d 69 6e 67 |.The pro|gramming|
|00000040| 20 6c 61 6e 67 75 61 67 | 65 20 4f 62 65 72 6f 6e | languag|e Oberon|
|00000050| 20 69 73 20 74 68 65 20 | 72 65 73 75 6c 74 20 6f | is the |result o|
|00000060| 66 20 61 20 63 6f 6e 63 | 65 6e 74 72 61 74 65 64 |f a conc|entrated|
|00000070| 20 65 66 66 6f 72 74 20 | 74 6f 0d 0a 69 6e 63 72 | effort |to..incr|
|00000080| 65 61 73 65 20 74 68 65 | 20 70 6f 77 65 72 20 6f |ease the| power o|
|00000090| 66 20 4d 6f 64 75 6c 61 | 2d 32 20 61 6e 64 20 73 |f Modula|-2 and s|
|000000a0| 69 6d 75 6c 74 61 6e 65 | 6f 75 73 6c 79 20 74 6f |imultane|ously to|
|000000b0| 20 72 65 64 75 63 65 20 | 69 74 73 20 63 6f 6d 70 | reduce |its comp|
|000000c0| 6c 65 78 69 74 79 2e 0d | 0a 53 65 76 65 72 61 6c |lexity..|.Several|
|000000d0| 20 66 65 61 74 75 72 65 | 73 20 77 65 72 65 20 65 | feature|s were e|
|000000e0| 6c 69 6d 69 6e 61 74 65 | 64 2c 20 61 6e 64 20 61 |liminate|d, and a|
|000000f0| 20 66 65 77 20 77 65 72 | 65 20 61 64 64 65 64 20 | few wer|e added |
|00000100| 69 6e 20 6f 72 64 65 72 | 20 74 6f 20 69 6e 63 72 |in order| to incr|
|00000110| 65 61 73 65 0d 0a 74 68 | 65 20 65 78 70 72 65 73 |ease..th|e expres|
|00000120| 73 69 76 65 20 70 6f 77 | 65 72 20 61 6e 64 20 66 |sive pow|er and f|
|00000130| 6c 65 78 69 62 69 6c 69 | 74 79 20 6f 66 20 74 68 |lexibili|ty of th|
|00000140| 65 20 6c 61 6e 67 75 61 | 67 65 2e 20 54 68 69 73 |e langua|ge. This|
|00000150| 20 70 61 70 65 72 20 64 | 65 73 63 72 69 62 65 73 | paper d|escribes|
|00000160| 0d 0a 61 6e 64 20 6d 6f | 74 69 76 61 74 65 73 20 |..and mo|tivates |
|00000170| 74 68 65 20 63 68 61 6e | 67 65 73 2e 20 54 68 65 |the chan|ges. The|
|00000180| 20 6c 61 6e 67 75 61 67 | 65 20 69 73 20 64 65 66 | languag|e is def|
|00000190| 69 6e 65 64 20 69 6e 20 | 61 20 63 6f 6e 63 69 73 |ined in |a concis|
|000001a0| 65 20 72 65 70 6f 72 74 | 2e 0d 0a 0d 0a 49 6e 74 |e report|.....Int|
|000001b0| 72 6f 64 75 63 74 69 6f | 6e 0d 0a 0d 0a 54 68 65 |roductio|n....The|
|000001c0| 20 70 72 6f 67 72 61 6d | 6d 69 6e 67 20 6c 61 6e | program|ming lan|
|000001d0| 67 75 61 67 65 20 4f 62 | 65 72 6f 6e 20 65 76 6f |guage Ob|eron evo|
|000001e0| 6c 76 65 64 20 66 72 6f | 6d 20 61 20 70 72 6f 6a |lved fro|m a proj|
|000001f0| 65 63 74 20 77 68 6f 73 | 65 20 67 6f 61 6c 20 77 |ect whos|e goal w|
|00000200| 61 73 20 74 68 65 0d 0a | 64 65 73 69 67 6e 20 6f |as the..|design o|
|00000210| 66 20 61 20 6d 6f 64 65 | 72 6e 2c 20 66 6c 65 78 |f a mode|rn, flex|
|00000220| 69 62 6c 65 2c 20 61 6e | 64 20 65 66 66 69 63 69 |ible, an|d effici|
|00000230| 65 6e 74 20 6f 70 65 72 | 61 74 69 6e 67 20 73 79 |ent oper|ating sy|
|00000240| 73 74 65 6d 20 66 6f 72 | 20 61 0d 0a 73 69 6e 67 |stem for| a..sing|
|00000250| 6c 65 2d 75 73 65 72 20 | 77 6f 72 6b 73 74 61 74 |le-user |workstat|
|00000260| 69 6f 6e 2e 20 41 20 70 | 72 69 6e 63 69 70 61 6c |ion. A p|rincipal|
|00000270| 20 67 75 69 64 65 6c 69 | 6e 65 20 77 61 73 20 74 | guideli|ne was t|
|00000280| 6f 20 63 6f 6e 63 65 6e | 74 72 61 74 65 20 6f 6e |o concen|trate on|
|00000290| 0d 0a 70 72 6f 70 65 72 | 74 69 65 73 20 74 68 61 |..proper|ties tha|
|000002a0| 74 20 61 72 65 20 67 65 | 6e 75 69 6e 65 6c 79 20 |t are ge|nuinely |
|000002b0| 65 73 73 65 6e 74 69 61 | 6c 20 61 6e 64 20 2d 20 |essentia|l and - |
|000002c0| 61 73 20 61 20 63 6f 6e | 73 65 71 75 65 6e 63 65 |as a con|sequence|
|000002d0| 20 2d 20 74 6f 20 6f 6d | 69 74 0d 0a 65 70 68 65 | - to om|it..ephe|
|000002e0| 6d 65 72 61 6c 20 69 73 | 73 75 65 73 2e 20 49 74 |meral is|sues. It|
|000002f0| 20 69 73 20 74 68 65 20 | 62 65 73 74 20 77 61 79 | is the |best way|
|00000300| 20 74 6f 20 6b 65 65 70 | 20 61 20 73 79 73 74 65 | to keep| a syste|
|00000310| 6d 20 69 6e 20 68 61 6e | 64 2c 20 74 6f 20 6d 61 |m in han|d, to ma|
|00000320| 6b 65 20 69 74 0d 0a 75 | 6e 64 65 72 73 74 61 6e |ke it..u|nderstan|
|00000330| 64 61 62 6c 65 2c 20 65 | 78 70 6c 69 63 61 62 6c |dable, e|xplicabl|
|00000340| 65 2c 20 72 65 6c 69 61 | 62 6c 65 2c 20 61 6e 64 |e, relia|ble, and|
|00000350| 20 65 66 66 69 63 69 65 | 6e 74 6c 79 20 69 6d 70 | efficie|ntly imp|
|00000360| 6c 65 6d 65 6e 74 61 62 | 6c 65 2e 0d 0a 0d 0a 49 |lementab|le.....I|
|00000370| 6e 69 74 69 61 6c 6c 79 | 2c 20 69 74 20 77 61 73 |nitially|, it was|
|00000380| 20 70 6c 61 6e 6e 65 64 | 20 74 6f 20 65 78 70 72 | planned| to expr|
|00000390| 65 73 73 20 74 68 65 20 | 73 79 73 74 65 6d 20 69 |ess the |system i|
|000003a0| 6e 20 4d 6f 64 75 6c 61 | 2d 32 20 5b 31 5d 0d 0a |n Modula|-2 [1]..|
|000003b0| 28 73 75 62 73 65 71 75 | 65 6e 74 6c 79 20 63 61 |(subsequ|ently ca|
|000003c0| 6c 6c 65 64 20 4d 6f 64 | 75 6c 61 29 2c 20 61 73 |lled Mod|ula), as|
|000003d0| 20 74 68 61 74 20 6c 61 | 6e 67 75 61 67 65 20 73 | that la|nguage s|
|000003e0| 75 70 70 6f 72 74 73 20 | 74 68 65 20 6e 6f 74 69 |upports |the noti|
|000003f0| 6f 6e 20 6f 66 0d 0a 6d | 6f 64 75 6c 61 72 20 64 |on of..m|odular d|
|00000400| 65 73 69 67 6e 20 71 75 | 69 74 65 20 65 66 66 65 |esign qu|ite effe|
|00000410| 63 74 69 76 65 6c 79 2c | 20 61 6e 64 20 62 65 63 |ctively,| and bec|
|00000420| 61 75 73 65 20 61 6e 20 | 6f 70 65 72 61 74 69 6e |ause an |operatin|
|00000430| 67 20 73 79 73 74 65 6d | 20 68 61 73 20 74 6f 20 |g system| has to |
|00000440| 62 65 0d 0a 64 65 73 69 | 67 6e 65 64 20 69 6e 20 |be..desi|gned in |
|00000450| 74 65 72 6d 73 20 6f 66 | 20 73 65 70 61 72 61 74 |terms of| separat|
|00000460| 65 6c 79 20 63 6f 6d 70 | 69 6c 61 62 6c 65 20 70 |ely comp|ilable p|
|00000470| 61 72 74 73 20 77 69 74 | 68 20 63 6f 6e 73 63 69 |arts wit|h consci|
|00000480| 65 6e 74 69 6f 75 73 6c | 79 0d 0a 63 68 6f 73 65 |entiousl|y..chose|
|00000490| 6e 20 69 6e 74 65 72 66 | 61 63 65 73 2e 20 49 6e |n interf|aces. In|
|000004a0| 20 66 61 63 74 2c 20 61 | 6e 20 6f 70 65 72 61 74 | fact, a|n operat|
|000004b0| 69 6e 67 20 73 79 73 74 | 65 6d 20 73 68 6f 75 6c |ing syst|em shoul|
|000004c0| 64 20 62 65 20 6e 6f 20 | 6d 6f 72 65 20 74 68 61 |d be no |more tha|
|000004d0| 6e 20 61 0d 0a 73 65 74 | 20 6f 66 20 62 61 73 69 |n a..set| of basi|
|000004e0| 63 20 6d 6f 64 75 6c 65 | 73 2c 20 61 6e 64 20 74 |c module|s, and t|
|000004f0| 68 65 20 64 65 73 69 67 | 6e 20 6f 66 20 61 6e 20 |he desig|n of an |
|00000500| 61 70 70 6c 69 63 61 74 | 69 6f 6e 20 6d 75 73 74 |applicat|ion must|
|00000510| 20 62 65 20 63 6f 6e 73 | 69 64 65 72 65 64 0d 0a | be cons|idered..|
|00000520| 61 73 20 61 20 67 6f 61 | 6c 2d 6f 72 69 65 6e 74 |as a goa|l-orient|
|00000530| 65 64 20 65 78 74 65 6e | 73 69 6f 6e 20 6f 66 20 |ed exten|sion of |
|00000540| 74 68 61 74 20 62 61 73 | 69 63 20 73 65 74 3a 20 |that bas|ic set: |
|00000550| 50 72 6f 67 72 61 6d 6d | 69 6e 67 20 69 73 20 61 |Programm|ing is a|
|00000560| 6c 77 61 79 73 0d 0a 65 | 78 74 65 6e 64 69 6e 67 |lways..e|xtending|
|00000570| 20 61 20 67 69 76 65 6e | 20 73 79 73 74 65 6d 2e | a given| system.|
|00000580| 0d 0a 0d 0a 57 68 65 72 | 65 61 73 20 6d 6f 64 65 |....Wher|eas mode|
|00000590| 72 6e 20 6c 61 6e 67 75 | 61 67 65 73 2c 20 73 75 |rn langu|ages, su|
|000005a0| 63 68 20 61 73 20 4d 6f | 64 75 6c 61 2c 20 73 75 |ch as Mo|dula, su|
|000005b0| 70 70 6f 72 74 20 74 68 | 65 20 6e 6f 74 69 6f 6e |pport th|e notion|
|000005c0| 20 6f 66 0d 0a 65 78 74 | 65 6e 73 69 62 69 6c 69 | of..ext|ensibili|
|000005d0| 74 79 20 69 6e 20 74 68 | 65 20 70 72 6f 63 65 64 |ty in th|e proced|
|000005e0| 75 72 61 6c 20 72 65 61 | 6c 6d 2c 20 74 68 65 20 |ural rea|lm, the |
|000005f0| 6e 6f 74 69 6f 6e 20 69 | 73 20 6c 65 73 73 20 77 |notion i|s less w|
|00000600| 65 6c 6c 20 65 73 74 61 | 62 6c 69 73 68 65 64 0d |ell esta|blished.|
|00000610| 0a 69 6e 20 74 68 65 20 | 64 6f 6d 61 69 6e 20 6f |.in the |domain o|
|00000620| 66 20 64 61 74 61 20 74 | 79 70 65 73 2e 20 49 6e |f data t|ypes. In|
|00000630| 20 70 61 72 74 69 63 75 | 6c 61 72 2c 20 4d 6f 64 | particu|lar, Mod|
|00000640| 75 6c 61 20 64 6f 65 73 | 20 6e 6f 74 20 61 6c 6c |ula does| not all|
|00000650| 6f 77 20 74 68 65 0d 0a | 64 65 66 69 6e 69 74 69 |ow the..|definiti|
|00000660| 6f 6e 20 6f 66 20 6e 65 | 77 20 64 61 74 61 20 74 |on of ne|w data t|
|00000670| 79 70 65 73 20 61 73 20 | 65 78 74 65 6e 73 69 6f |ypes as |extensio|
|00000680| 6e 73 20 6f 66 20 6f 74 | 68 65 72 2c 20 70 72 6f |ns of ot|her, pro|
|00000690| 67 72 61 6d 6d 65 72 2d | 64 65 66 69 6e 65 64 0d |grammer-|defined.|
|000006a0| 0a 74 79 70 65 73 20 69 | 6e 20 61 6e 20 61 64 65 |.types i|n an ade|
|000006b0| 71 75 61 74 65 20 6d 61 | 6e 6e 65 72 2e 20 41 6e |quate ma|nner. An|
|000006c0| 20 61 64 64 69 74 69 6f | 6e 61 6c 20 66 65 61 74 | additio|nal feat|
|000006d0| 75 72 65 20 77 61 73 20 | 63 61 6c 6c 65 64 20 66 |ure was |called f|
|000006e0| 6f 72 2c 20 74 68 65 72 | 65 62 79 0d 0a 67 69 76 |or, ther|eby..giv|
|000006f0| 69 6e 67 20 72 69 73 65 | 20 74 6f 20 61 6e 20 65 |ing rise| to an e|
|00000700| 78 74 65 6e 73 69 6f 6e | 20 6f 66 20 4d 6f 64 75 |xtension| of Modu|
|00000710| 6c 61 2e 0d 0a 0d 0a 54 | 68 65 20 63 6f 6e 63 65 |la.....T|he conce|
|00000720| 70 74 20 6f 66 20 74 68 | 65 20 70 6c 61 6e 6e 65 |pt of th|e planne|
|00000730| 64 20 6f 70 65 72 61 74 | 69 6e 67 20 73 79 73 74 |d operat|ing syst|
|00000740| 65 6d 20 61 6c 73 6f 20 | 63 61 6c 6c 65 64 20 66 |em also |called f|
|00000750| 6f 72 20 61 20 68 69 67 | 68 6c 79 0d 0a 64 79 6e |or a hig|hly..dyn|
|00000760| 61 6d 69 63 2c 20 63 65 | 6e 74 72 61 6c 69 7a 65 |amic, ce|ntralize|
|00000770| 64 20 73 74 6f 72 61 67 | 65 20 6d 61 6e 61 67 65 |d storag|e manage|
|00000780| 6d 65 6e 74 20 72 65 6c | 79 69 6e 67 20 6f 6e 20 |ment rel|ying on |
|00000790| 74 68 65 20 74 65 63 68 | 6e 69 71 75 65 20 6f 66 |the tech|nique of|
|000007a0| 20 67 61 72 62 61 67 65 | 0d 0a 63 6f 6c 6c 65 63 | garbage|..collec|
|000007b0| 74 69 6f 6e 2e 20 41 6c | 74 68 6f 75 67 68 20 4d |tion. Al|though M|
|000007c0| 6f 64 75 6c 61 20 64 6f | 65 73 20 6e 6f 74 20 70 |odula do|es not p|
|000007d0| 72 65 76 65 6e 74 20 74 | 68 65 20 69 6e 63 6f 72 |revent t|he incor|
|000007e0| 70 6f 72 61 74 69 6f 6e | 20 6f 66 20 61 20 67 61 |poration| of a ga|
|000007f0| 72 62 61 67 65 0d 0a 63 | 6f 6c 6c 65 63 74 6f 72 |rbage..c|ollector|
|00000800| 20 69 6e 20 70 72 69 6e | 63 69 70 6c 65 2c 20 69 | in prin|ciple, i|
|00000810| 74 73 20 76 61 72 69 61 | 6e 74 20 72 65 63 6f 72 |ts varia|nt recor|
|00000820| 64 20 66 65 61 74 75 72 | 65 20 63 6f 6e 73 74 69 |d featur|e consti|
|00000830| 74 75 74 65 73 20 61 20 | 67 65 6e 75 69 6e 65 0d |tutes a |genuine.|
|00000840| 0a 6f 62 73 74 61 63 6c | 65 2e 20 41 73 20 74 68 |.obstacl|e. As th|
|00000850| 65 20 6e 65 77 20 66 61 | 63 69 6c 69 74 79 20 66 |e new fa|cility f|
|00000860| 6f 72 20 65 78 74 65 6e | 64 69 6e 67 20 74 79 70 |or exten|ding typ|
|00000870| 65 73 20 77 6f 75 6c 64 | 20 6d 61 6b 65 20 74 68 |es would| make th|
|00000880| 65 20 76 61 72 69 61 6e | 74 0d 0a 72 65 63 6f 72 |e varian|t..recor|
|00000890| 64 20 66 65 61 74 75 72 | 65 20 73 75 70 65 72 66 |d featur|e superf|
|000008a0| 6c 75 6f 75 73 2c 20 74 | 68 65 20 72 65 6d 6f 76 |luous, t|he remov|
|000008b0| 61 6c 20 6f 66 20 74 68 | 69 73 20 73 74 75 6d 62 |al of th|is stumb|
|000008c0| 6c 69 6e 67 20 62 6c 6f | 63 6b 20 77 61 73 20 61 |ling blo|ck was a|
|000008d0| 0d 0a 6c 6f 67 69 63 61 | 6c 20 64 65 63 69 73 69 |..logica|l decisi|
|000008e0| 6f 6e 2e 20 54 68 69 73 | 20 73 74 65 70 2c 20 68 |on. This| step, h|
|000008f0| 6f 77 65 76 65 72 2c 20 | 67 61 76 65 20 72 69 73 |owever, |gave ris|
|00000900| 65 20 74 6f 20 61 20 72 | 65 73 74 72 69 63 74 69 |e to a r|estricti|
|00000910| 6f 6e 20 28 73 75 62 73 | 65 74 29 0d 0a 6f 66 20 |on (subs|et)..of |
|00000920| 4d 6f 64 75 6c 61 2e 0d | 0a 0d 0a 49 74 20 73 6f |Modula..|...It so|
|00000930| 6f 6e 20 62 65 63 61 6d | 65 20 63 6c 65 61 72 20 |on becam|e clear |
|00000940| 74 68 61 74 20 74 68 65 | 20 72 75 6c 65 20 74 6f |that the| rule to|
|00000950| 20 63 6f 6e 63 65 6e 74 | 72 61 74 65 20 6f 6e 20 | concent|rate on |
|00000960| 74 68 65 20 65 73 73 65 | 6e 74 69 61 6c 20 61 6e |the esse|ntial an|
|00000970| 64 20 74 6f 0d 0a 65 6c | 69 6d 69 6e 61 74 65 20 |d to..el|iminate |
|00000980| 74 68 65 20 69 6e 65 73 | 73 65 6e 74 69 61 6c 20 |the ines|sential |
|00000990| 73 68 6f 75 6c 64 20 6e | 6f 74 20 6f 6e 6c 79 20 |should n|ot only |
|000009a0| 62 65 20 61 70 70 6c 69 | 65 64 20 74 6f 20 74 68 |be appli|ed to th|
|000009b0| 65 20 64 65 73 69 67 6e | 20 6f 66 20 74 68 65 0d |e design| of the.|
|000009c0| 0a 6e 65 77 20 73 79 73 | 74 65 6d 2c 20 62 75 74 |.new sys|tem, but|
|000009d0| 20 65 71 75 61 6c 6c 79 | 20 73 74 72 69 6e 67 65 | equally| stringe|
|000009e0| 6e 74 6c 79 20 74 6f 20 | 74 68 65 20 6c 61 6e 67 |ntly to |the lang|
|000009f0| 75 61 67 65 20 69 6e 20 | 77 68 69 63 68 20 74 68 |uage in |which th|
|00000a00| 65 20 73 79 73 74 65 6d | 20 69 73 0d 0a 66 6f 72 |e system| is..for|
|00000a10| 6d 75 6c 61 74 65 64 2e | 20 54 68 65 20 61 70 70 |mulated.| The app|
|00000a20| 6c 69 63 61 74 69 6f 6e | 20 6f 66 20 74 68 65 20 |lication| of the |
|00000a30| 70 72 69 6e 63 69 70 6c | 65 20 74 68 75 73 20 6c |principl|e thus l|
|00000a40| 65 64 20 66 72 6f 6d 20 | 4d 6f 64 75 6c 61 20 74 |ed from |Modula t|
|00000a50| 6f 20 61 20 6e 65 77 0d | 0a 6c 61 6e 67 75 61 67 |o a new.|.languag|
|00000a60| 65 2e 20 48 6f 77 65 76 | 65 72 2c 20 74 68 65 20 |e. Howev|er, the |
|00000a70| 61 64 6a 65 63 74 69 76 | 65 20 22 6e 65 77 22 20 |adjectiv|e "new" |
|00000a80| 68 61 73 20 74 6f 20 62 | 65 20 75 6e 64 65 72 73 |has to b|e unders|
|00000a90| 74 6f 6f 64 20 69 6e 20 | 70 72 6f 70 65 72 0d 0a |tood in |proper..|
|00000aa0| 63 6f 6e 74 65 78 74 3a | 20 4f 62 65 72 6f 6e 20 |context:| Oberon |
|00000ab0| 65 76 6f 6c 76 65 64 20 | 66 72 6f 6d 20 4d 6f 64 |evolved |from Mod|
|00000ac0| 75 6c 61 20 62 79 20 76 | 65 72 79 20 66 65 77 20 |ula by v|ery few |
|00000ad0| 61 64 64 69 74 69 6f 6e | 73 20 61 6e 64 20 73 65 |addition|s and se|
|00000ae0| 76 65 72 61 6c 0d 0a 73 | 75 62 74 72 61 63 74 69 |veral..s|ubtracti|
|00000af0| 6f 6e 73 2e 20 49 6e 20 | 72 65 6c 79 69 6e 67 20 |ons. In |relying |
|00000b00| 6f 6e 20 65 76 6f 6c 75 | 74 69 6f 6e 20 72 61 74 |on evolu|tion rat|
|00000b10| 68 65 72 20 74 68 61 6e | 20 72 65 76 6f 6c 75 74 |her than| revolut|
|00000b20| 69 6f 6e 20 77 65 20 72 | 65 6d 61 69 6e 20 69 6e |ion we r|emain in|
|00000b30| 0d 0a 74 68 65 20 74 72 | 61 64 69 74 69 6f 6e 20 |..the tr|adition |
|00000b40| 6f 66 20 61 20 6c 6f 6e | 67 20 64 65 76 65 6c 6f |of a lon|g develo|
|00000b50| 70 6d 65 6e 74 20 74 68 | 61 74 20 6c 65 64 20 66 |pment th|at led f|
|00000b60| 72 6f 6d 20 41 6c 67 6f | 6c 20 74 6f 20 50 61 73 |rom Algo|l to Pas|
|00000b70| 63 61 6c 2c 20 74 68 65 | 6e 20 74 6f 0d 0a 4d 6f |cal, the|n to..Mo|
|00000b80| 64 75 6c 61 2d 32 2c 20 | 61 6e 64 20 65 76 65 6e |dula-2, |and even|
|00000b90| 74 75 61 6c 6c 79 20 74 | 6f 20 4f 62 65 72 6f 6e |tually t|o Oberon|
|00000ba0| 2e 20 54 68 65 20 63 6f | 6d 6d 6f 6e 20 74 72 61 |. The co|mmon tra|
|00000bb0| 69 74 73 20 6f 66 20 74 | 68 65 73 65 20 6c 61 6e |its of t|hese lan|
|00000bc0| 67 75 61 67 65 73 0d 0a | 61 72 65 20 74 68 65 69 |guages..|are thei|
|00000bd0| 72 20 70 72 6f 63 65 64 | 75 72 61 6c 20 72 61 74 |r proced|ural rat|
|00000be0| 68 65 72 20 74 68 61 6e | 20 66 75 6e 63 74 69 6f |her than| functio|
|00000bf0| 6e 61 6c 20 6d 6f 64 65 | 6c 20 61 6e 64 20 74 68 |nal mode|l and th|
|00000c00| 65 20 73 74 72 69 63 74 | 20 74 79 70 69 6e 67 20 |e strict| typing |
|00000c10| 6f 66 0d 0a 64 61 74 61 | 2e 20 45 76 65 6e 20 6d |of..data|. Even m|
|00000c20| 6f 72 65 20 66 75 6e 64 | 61 6d 65 6e 74 61 6c 2c |ore fund|amental,|
|00000c30| 20 70 65 72 68 61 70 73 | 2c 20 69 73 20 74 68 65 | perhaps|, is the|
|00000c40| 20 69 64 65 61 20 6f 66 | 20 61 62 73 74 72 61 63 | idea of| abstrac|
|00000c50| 74 69 6f 6e 3a 20 74 68 | 65 0d 0a 6c 61 6e 67 75 |tion: th|e..langu|
|00000c60| 61 67 65 20 6d 75 73 74 | 20 62 65 20 64 65 66 69 |age must| be defi|
|00000c70| 6e 65 64 20 69 6e 20 74 | 65 72 6d 73 20 6f 66 20 |ned in t|erms of |
|00000c80| 6d 61 74 68 65 6d 61 74 | 69 63 61 6c 2c 20 61 62 |mathemat|ical, ab|
|00000c90| 73 74 72 61 63 74 20 63 | 6f 6e 63 65 70 74 73 0d |stract c|oncepts.|
|00000ca0| 0a 77 69 74 68 6f 75 74 | 20 72 65 66 65 72 65 6e |.without| referen|
|00000cb0| 63 65 20 74 6f 20 61 6e | 79 20 63 6f 6d 70 75 74 |ce to an|y comput|
|00000cc0| 69 6e 67 20 6d 65 63 68 | 61 6e 69 73 6d 2e 20 4f |ing mech|anism. O|
|00000cd0| 6e 6c 79 20 69 66 20 61 | 20 6c 61 6e 67 75 61 67 |nly if a| languag|
|00000ce0| 65 20 73 61 74 69 73 66 | 69 65 73 0d 0a 74 68 69 |e satisf|ies..thi|
|00000cf0| 73 20 63 72 69 74 65 72 | 69 6f 6e 2c 20 63 61 6e |s criter|ion, can|
|00000d00| 20 69 74 20 62 65 20 63 | 61 6c 6c 65 64 20 22 68 | it be c|alled "h|
|00000d10| 69 67 68 65 72 2d 6c 65 | 76 65 6c 22 2e 20 4e 6f |igher-le|vel". No|
|00000d20| 20 73 79 6e 74 61 63 74 | 69 63 20 63 6f 61 74 69 | syntact|ic coati|
|00000d30| 6e 67 0d 0a 77 68 61 74 | 73 6f 65 76 65 72 20 63 |ng..what|soever c|
|00000d40| 61 6e 20 65 61 72 6e 20 | 61 20 6c 61 6e 67 75 61 |an earn |a langua|
|00000d50| 67 65 20 74 68 69 73 20 | 61 74 74 72 69 62 75 74 |ge this |attribut|
|00000d60| 65 20 61 6c 6f 6e 65 2e | 0d 0a 0d 0a 54 68 65 20 |e alone.|....The |
|00000d70| 64 65 66 69 6e 69 74 69 | 6f 6e 20 6f 66 20 61 20 |definiti|on of a |
|00000d80| 6c 61 6e 67 75 61 67 65 | 20 6d 75 73 74 20 62 65 |language| must be|
|00000d90| 20 63 6f 68 65 72 65 6e | 74 20 61 6e 64 20 63 6f | coheren|t and co|
|00000da0| 6e 63 69 73 65 2e 20 54 | 68 69 73 20 63 61 6e 20 |ncise. T|his can |
|00000db0| 6f 6e 6c 79 20 62 65 0d | 0a 61 63 68 69 65 76 65 |only be.|.achieve|
|00000dc0| 64 20 62 79 20 61 20 63 | 61 72 65 66 75 6c 20 63 |d by a c|areful c|
|00000dd0| 68 6f 69 63 65 20 6f 66 | 20 74 68 65 20 75 6e 64 |hoice of| the und|
|00000de0| 65 72 6c 79 69 6e 67 20 | 61 62 73 74 72 61 63 74 |erlying |abstract|
|00000df0| 69 6f 6e 73 20 61 6e 64 | 20 61 6e 0d 0a 61 70 70 |ions and| an..app|
|00000e00| 72 6f 70 72 69 61 74 65 | 20 73 74 72 75 63 74 75 |ropriate| structu|
|00000e10| 72 65 20 63 6f 6d 62 69 | 6e 69 6e 67 20 74 68 65 |re combi|ning the|
|00000e20| 6d 2e 20 54 68 65 20 6c | 61 6e 67 75 61 67 65 20 |m. The l|anguage |
|00000e30| 6d 61 6e 75 61 6c 20 6d | 75 73 74 20 62 65 0d 0a |manual m|ust be..|
|00000e40| 72 65 61 73 6f 6e 61 62 | 6c 79 20 73 68 6f 72 74 |reasonab|ly short|
|00000e50| 2c 20 61 76 6f 69 64 69 | 6e 67 20 74 68 65 20 65 |, avoidi|ng the e|
|00000e60| 78 70 6c 61 6e 61 74 69 | 6f 6e 20 6f 66 20 69 6e |xplanati|on of in|
|00000e70| 64 69 76 69 64 75 61 6c | 20 63 61 73 65 73 20 64 |dividual| cases d|
|00000e80| 65 72 69 76 61 62 6c 65 | 0d 0a 66 72 6f 6d 20 74 |erivable|..from t|
|00000e90| 68 65 20 67 65 6e 65 72 | 61 6c 20 72 75 6c 65 73 |he gener|al rules|
|00000ea0| 2e 20 54 68 65 20 70 6f | 77 65 72 20 6f 66 20 61 |. The po|wer of a|
|00000eb0| 20 66 6f 72 6d 61 6c 69 | 73 6d 20 6d 75 73 74 20 | formali|sm must |
|00000ec0| 6e 6f 74 20 62 65 20 6d | 65 61 73 75 72 65 64 20 |not be m|easured |
|00000ed0| 62 79 0d 0a 74 68 65 20 | 6c 65 6e 67 74 68 20 6f |by..the |length o|
|00000ee0| 66 20 69 74 73 20 64 65 | 73 63 72 69 70 74 69 6f |f its de|scriptio|
|00000ef0| 6e 2e 20 54 6f 20 74 68 | 65 20 63 6f 6e 74 72 61 |n. To th|e contra|
|00000f00| 72 79 2c 20 61 6e 20 6f | 76 65 72 6c 79 20 6c 65 |ry, an o|verly le|
|00000f10| 6e 67 74 68 79 0d 0a 64 | 65 66 69 6e 69 74 69 6f |ngthy..d|efinitio|
|00000f20| 6e 20 69 73 20 61 20 73 | 75 72 65 20 73 79 6d 70 |n is a s|ure symp|
|00000f30| 74 6f 6d 20 6f 66 20 69 | 6e 61 64 65 71 75 61 63 |tom of i|nadequac|
|00000f40| 79 2e 20 49 6e 20 74 68 | 69 73 20 72 65 73 70 65 |y. In th|is respe|
|00000f50| 63 74 2c 20 6e 6f 74 20 | 63 6f 6d 70 6c 65 78 69 |ct, not |complexi|
|00000f60| 74 79 0d 0a 62 75 74 20 | 73 69 6d 70 6c 69 63 69 |ty..but |simplici|
|00000f70| 74 79 20 6d 75 73 74 20 | 62 65 20 74 68 65 20 67 |ty must |be the g|
|00000f80| 6f 61 6c 2e 0d 0a 0d 0a | 49 6e 20 73 70 69 74 65 |oal.....|In spite|
|00000f90| 20 6f 66 20 69 74 73 20 | 62 72 65 76 69 74 79 2c | of its |brevity,|
|00000fa0| 20 61 20 64 65 73 63 72 | 69 70 74 69 6f 6e 20 6d | a descr|iption m|
|00000fb0| 75 73 74 20 62 65 20 63 | 6f 6d 70 6c 65 74 65 2e |ust be c|omplete.|
|00000fc0| 20 43 6f 6d 70 6c 65 74 | 65 6e 65 73 73 20 69 73 | Complet|eness is|
|00000fd0| 20 74 6f 0d 0a 62 65 20 | 61 63 68 69 65 76 65 64 | to..be |achieved|
|00000fe0| 20 77 69 74 68 69 6e 20 | 74 68 65 20 66 72 61 6d | within |the fram|
|00000ff0| 65 77 6f 72 6b 20 6f 66 | 20 74 68 65 20 63 68 6f |ework of| the cho|
|00001000| 73 65 6e 20 61 62 73 74 | 72 61 63 74 69 6f 6e 73 |sen abst|ractions|
|00001010| 2e 20 4c 69 6d 69 74 61 | 74 69 6f 6e 73 0d 0a 69 |. Limita|tions..i|
|00001020| 6d 70 6f 73 65 64 20 62 | 79 20 70 61 72 74 69 63 |mposed b|y partic|
|00001030| 75 6c 61 72 20 69 6d 70 | 6c 65 6d 65 6e 74 61 74 |ular imp|lementat|
|00001040| 69 6f 6e 73 20 64 6f 20 | 6e 6f 74 20 62 65 6c 6f |ions do |not belo|
|00001050| 6e 67 20 74 6f 20 61 20 | 6c 61 6e 67 75 61 67 65 |ng to a |language|
|00001060| 0d 0a 64 65 66 69 6e 69 | 74 69 6f 6e 20 70 72 6f |..defini|tion pro|
|00001070| 70 65 72 2e 20 45 78 61 | 6d 70 6c 65 73 20 6f 66 |per. Exa|mples of|
|00001080| 20 73 75 63 68 20 72 65 | 73 74 72 69 63 74 69 6f | such re|strictio|
|00001090| 6e 73 20 61 72 65 20 74 | 68 65 20 6d 61 78 69 6d |ns are t|he maxim|
|000010a0| 75 6d 20 76 61 6c 75 65 | 73 20 6f 66 0d 0a 6e 75 |um value|s of..nu|
|000010b0| 6d 62 65 72 73 2c 20 72 | 6f 75 6e 64 69 6e 67 20 |mbers, r|ounding |
|000010c0| 61 6e 64 20 74 72 75 6e | 63 61 74 69 6f 6e 20 65 |and trun|cation e|
|000010d0| 72 72 6f 72 73 20 69 6e | 20 61 72 69 74 68 6d 65 |rrors in| arithme|
|000010e0| 74 69 63 2c 20 61 6e 64 | 20 61 63 74 69 6f 6e 73 |tic, and| actions|
|000010f0| 20 74 61 6b 65 6e 0d 0a | 77 68 65 6e 20 61 20 70 | taken..|when a p|
|00001100| 72 6f 67 72 61 6d 20 76 | 69 6f 6c 61 74 65 73 20 |rogram v|iolates |
|00001110| 74 68 65 20 73 74 61 74 | 65 64 20 72 75 6c 65 73 |the stat|ed rules|
|00001120| 2e 20 49 74 20 73 68 6f | 75 6c 64 20 6e 6f 74 20 |. It sho|uld not |
|00001130| 62 65 20 6e 65 63 65 73 | 73 61 72 79 20 74 6f 0d |be neces|sary to.|
|00001140| 0a 73 75 70 70 6c 65 6d | 65 6e 74 20 61 20 6c 61 |.supplem|ent a la|
|00001150| 6e 67 75 61 67 65 20 64 | 65 66 69 6e 69 74 69 6f |nguage d|efinitio|
|00001160| 6e 20 77 69 74 68 20 61 | 20 76 6f 6c 75 6d 69 6e |n with a| volumin|
|00001170| 6f 75 73 20 73 74 61 6e | 64 61 72 64 73 20 64 6f |ous stan|dards do|
|00001180| 63 75 6d 65 6e 74 20 74 | 6f 0d 0a 63 6f 76 65 72 |cument t|o..cover|
|00001190| 20 22 75 6e 66 6f 72 65 | 73 65 65 6e 22 20 63 61 | "unfore|seen" ca|
|000011a0| 73 65 73 2e 0d 0a 0d 0a | 42 75 74 20 6e 65 69 74 |ses.....|But neit|
|000011b0| 68 65 72 20 73 68 6f 75 | 6c 64 20 61 20 70 72 6f |her shou|ld a pro|
|000011c0| 67 72 61 6d 6d 69 6e 67 | 20 6c 61 6e 67 75 61 67 |gramming| languag|
|000011d0| 65 20 62 65 20 61 20 6d | 61 74 68 65 6d 61 74 69 |e be a m|athemati|
|000011e0| 63 61 6c 20 74 68 65 6f | 72 79 20 6f 6e 6c 79 2e |cal theo|ry only.|
|000011f0| 20 49 74 0d 0a 6d 75 73 | 74 20 62 65 20 61 20 70 | It..mus|t be a p|
|00001200| 72 61 63 74 69 63 61 6c | 20 74 6f 6f 6c 2e 20 54 |ractical| tool. T|
|00001210| 68 69 73 20 69 6d 70 6f | 73 65 73 20 63 65 72 74 |his impo|ses cert|
|00001220| 61 69 6e 20 6c 69 6d 69 | 74 73 20 6f 6e 20 74 68 |ain limi|ts on th|
|00001230| 65 20 74 65 72 73 65 6e | 65 73 73 20 6f 66 0d 0a |e tersen|ess of..|
|00001240| 74 68 65 20 66 6f 72 6d | 61 6c 69 73 6d 2e 20 53 |the form|alism. S|
|00001250| 65 76 65 72 61 6c 20 66 | 65 61 74 75 72 65 73 20 |everal f|eatures |
|00001260| 6f 66 20 4f 62 65 72 6f | 6e 20 61 72 65 20 73 75 |of Obero|n are su|
|00001270| 70 65 72 66 6c 75 6f 75 | 73 20 66 72 6f 6d 20 61 |perfluou|s from a|
|00001280| 20 70 75 72 65 6c 79 0d | 0a 74 68 65 6f 72 65 74 | purely.|.theoret|
|00001290| 69 63 61 6c 20 70 6f 69 | 6e 74 20 6f 66 20 76 69 |ical poi|nt of vi|
|000012a0| 65 77 2e 20 54 68 65 79 | 20 61 72 65 20 6e 65 76 |ew. They| are nev|
|000012b0| 65 72 74 68 65 6c 65 73 | 73 20 72 65 74 61 69 6e |ertheles|s retain|
|000012c0| 65 64 20 66 6f 72 20 70 | 72 61 63 74 69 63 61 6c |ed for p|ractical|
|000012d0| 0d 0a 72 65 61 73 6f 6e | 73 2c 20 65 69 74 68 65 |..reason|s, eithe|
|000012e0| 72 20 66 6f 72 20 70 72 | 6f 67 72 61 6d 6d 65 72 |r for pr|ogrammer|
|000012f0| 73 27 20 63 6f 6e 76 65 | 6e 69 65 6e 63 65 20 6f |s' conve|nience o|
|00001300| 72 20 74 6f 20 61 6c 6c | 6f 77 20 66 6f 72 20 65 |r to all|ow for e|
|00001310| 66 66 69 63 69 65 6e 74 | 20 63 6f 64 65 0d 0a 67 |fficient| code..g|
|00001320| 65 6e 65 72 61 74 69 6f | 6e 20 77 69 74 68 6f 75 |eneratio|n withou|
|00001330| 74 20 74 68 65 20 6e 65 | 63 65 73 73 69 74 79 20 |t the ne|cessity |
|00001340| 6f 66 20 63 6f 6d 70 6c | 65 78 2c 20 22 6f 70 74 |of compl|ex, "opt|
|00001350| 69 6d 69 7a 69 6e 67 22 | 20 70 61 74 74 65 72 6e |imizing"| pattern|
|00001360| 20 6d 61 74 63 68 69 6e | 67 0d 0a 61 6c 67 6f 72 | matchin|g..algor|
|00001370| 69 74 68 6d 73 20 69 6e | 20 63 6f 6d 70 69 6c 65 |ithms in| compile|
|00001380| 72 73 2e 20 45 78 61 6d | 70 6c 65 73 20 6f 66 20 |rs. Exam|ples of |
|00001390| 73 75 63 68 20 66 65 61 | 74 75 72 65 73 20 61 72 |such fea|tures ar|
|000013a0| 65 20 74 68 65 20 70 72 | 65 73 65 6e 63 65 20 6f |e the pr|esence o|
|000013b0| 66 0d 0a 73 65 76 65 72 | 61 6c 20 66 6f 72 6d 73 |f..sever|al forms|
|000013c0| 20 6f 66 20 72 65 70 65 | 74 69 74 69 76 65 20 73 | of repe|titive s|
|000013d0| 74 61 74 65 6d 65 6e 74 | 73 2c 20 61 6e 64 20 6f |tatement|s, and o|
|000013e0| 66 20 73 74 61 6e 64 61 | 72 64 20 70 72 6f 63 65 |f standa|rd proce|
|000013f0| 64 75 72 65 73 20 73 75 | 63 68 20 61 73 0d 0a 49 |dures su|ch as..I|
|00001400| 4e 43 2c 20 44 45 43 2c | 20 61 6e 64 20 4f 44 44 |NC, DEC,| and ODD|
|00001410| 2e 20 54 68 65 79 20 63 | 6f 6d 70 6c 69 63 61 74 |. They c|omplicat|
|00001420| 65 20 6e 65 69 74 68 65 | 72 20 74 68 65 20 6c 61 |e neithe|r the la|
|00001430| 6e 67 75 61 67 65 20 63 | 6f 6e 63 65 70 74 75 61 |nguage c|onceptua|
|00001440| 6c 6c 79 20 6e 6f 72 0d | 0a 74 68 65 20 63 6f 6d |lly nor.|.the com|
|00001450| 70 69 6c 65 72 20 74 6f | 20 61 6e 79 20 73 69 67 |piler to| any sig|
|00001460| 6e 69 66 69 63 61 6e 74 | 20 64 65 67 72 65 65 2e |nificant| degree.|
|00001470| 0d 0a 0d 0a 54 68 65 73 | 65 20 75 6e 64 65 72 6c |....Thes|e underl|
|00001480| 79 69 6e 67 20 70 72 65 | 6d 69 73 65 73 20 6d 75 |ying pre|mises mu|
|00001490| 73 74 20 62 65 20 6b 65 | 70 74 20 69 6e 20 6d 69 |st be ke|pt in mi|
|000014a0| 6e 64 20 77 68 65 6e 20 | 63 6f 6d 70 61 72 69 6e |nd when |comparin|
|000014b0| 67 20 4f 62 65 72 6f 6e | 20 77 69 74 68 0d 0a 6f |g Oberon| with..o|
|000014c0| 74 68 65 72 20 6c 61 6e | 67 75 61 67 65 73 2e 20 |ther lan|guages. |
|000014d0| 4e 65 69 74 68 65 72 20 | 74 68 65 20 6c 61 6e 67 |Neither |the lang|
|000014e0| 75 61 67 65 20 6e 6f 72 | 20 69 74 73 20 64 65 66 |uage nor| its def|
|000014f0| 69 6e 69 6e 67 20 64 6f | 63 75 6d 65 6e 74 20 72 |ining do|cument r|
|00001500| 65 61 63 68 20 74 68 65 | 0d 0a 69 64 65 61 6c 3b |each the|..ideal;|
|00001510| 20 62 75 74 20 4f 62 65 | 72 6f 6e 20 61 70 70 72 | but Obe|ron appr|
|00001520| 6f 78 69 6d 61 74 65 73 | 20 74 68 65 73 65 20 67 |oximates| these g|
|00001530| 6f 61 6c 73 20 6d 75 63 | 68 20 62 65 74 74 65 72 |oals muc|h better|
|00001540| 20 74 68 61 6e 20 69 74 | 73 0d 0a 70 72 65 64 65 | than it|s..prede|
|00001550| 63 65 73 73 6f 72 73 2e | 0d 0a 0d 0a 41 20 63 6f |cessors.|....A co|
|00001560| 6d 70 69 6c 65 72 20 66 | 6f 72 20 4f 62 65 72 6f |mpiler f|or Obero|
|00001570| 6e 20 68 61 73 20 62 65 | 65 6e 20 69 6d 70 6c 65 |n has be|en imple|
|00001580| 6d 65 6e 74 65 64 20 66 | 6f 72 20 74 68 65 20 4e |mented f|or the N|
|00001590| 53 33 32 30 30 30 20 70 | 72 6f 63 65 73 73 6f 72 |S32000 p|rocessor|
|000015a0| 20 66 61 6d 69 6c 79 0d | 0a 61 6e 64 20 69 73 20 | family.|.and is |
|000015b0| 65 6d 62 65 64 64 65 64 | 20 69 6e 20 74 68 65 20 |embedded| in the |
|000015c0| 4f 62 65 72 6f 6e 20 6f | 70 65 72 61 74 69 6e 67 |Oberon o|perating|
|000015d0| 20 65 6e 76 69 72 6f 6e | 6d 65 6e 74 20 5b 38 5d | environ|ment [8]|
|000015e0| 2e 20 54 68 65 20 63 6f | 6d 70 69 6c 65 72 0d 0a |. The co|mpiler..|
|000015f0| 72 65 71 75 69 72 65 73 | 20 6c 65 73 73 20 74 68 |requires| less th|
|00001600| 61 6e 20 35 30 20 4b 42 | 79 74 65 20 6f 66 20 6d |an 50 KB|yte of m|
|00001610| 65 6d 6f 72 79 2c 20 63 | 6f 6e 73 69 73 74 73 20 |emory, c|onsists |
|00001620| 6f 66 20 36 20 6d 6f 64 | 75 6c 65 73 20 77 69 74 |of 6 mod|ules wit|
|00001630| 68 20 61 20 74 6f 74 61 | 6c 0d 0a 6f 66 20 61 62 |h a tota|l..of ab|
|00001640| 6f 75 74 20 34 30 30 30 | 20 6c 69 6e 65 73 20 6f |out 4000| lines o|
|00001650| 66 20 73 6f 75 72 63 65 | 20 63 6f 64 65 2c 20 61 |f source| code, a|
|00001660| 6e 64 20 63 6f 6d 70 69 | 6c 65 73 20 69 74 73 65 |nd compi|les itse|
|00001670| 6c 66 20 69 6e 20 61 62 | 6f 75 74 20 31 35 20 73 |lf in ab|out 15 s|
|00001680| 65 63 6f 6e 64 73 0d 0a | 6f 6e 20 61 20 77 6f 72 |econds..|on a wor|
|00001690| 6b 73 74 61 74 69 6f 6e | 20 77 69 74 68 20 61 20 |kstation| with a |
|000016a0| 32 35 4d 48 7a 20 4e 53 | 33 32 35 33 32 20 70 72 |25MHz NS|32532 pr|
|000016b0| 6f 63 65 73 73 6f 72 2e | 0d 0a 0d 0a 41 66 74 65 |ocessor.|....Afte|
|000016c0| 72 20 65 78 74 65 6e 73 | 69 76 65 20 65 78 70 65 |r extens|ive expe|
|000016d0| 72 69 65 6e 63 65 20 69 | 6e 20 70 72 6f 67 72 61 |rience i|n progra|
|000016e0| 6d 6d 69 6e 67 20 77 69 | 74 68 20 4f 62 65 72 6f |mming wi|th Obero|
|000016f0| 6e 2c 20 61 20 72 65 76 | 69 73 69 6f 6e 20 77 61 |n, a rev|ision wa|
|00001700| 73 0d 0a 64 65 66 69 6e | 65 64 20 61 6e 64 20 69 |s..defin|ed and i|
|00001710| 6d 70 6c 65 6d 65 6e 74 | 65 64 2e 20 54 68 65 20 |mplement|ed. The |
|00001720| 64 69 66 66 65 72 65 6e | 63 65 73 20 62 65 74 77 |differen|ces betw|
|00001730| 65 65 6e 20 74 68 65 20 | 74 77 6f 20 76 65 72 73 |een the |two vers|
|00001740| 69 6f 6e 73 20 61 72 65 | 0d 0a 73 75 6d 6d 61 72 |ions are|..summar|
|00001750| 69 73 65 64 20 74 6f 77 | 61 72 64 73 20 74 68 65 |ised tow|ards the|
|00001760| 20 65 6e 64 20 6f 66 20 | 74 68 65 20 70 61 70 65 | end of |the pape|
|00001770| 72 2e 20 53 75 62 73 65 | 71 75 65 6e 74 6c 79 2c |r. Subse|quently,|
|00001780| 20 77 65 20 70 72 65 73 | 65 6e 74 20 61 20 62 72 | we pres|ent a br|
|00001790| 69 65 66 0d 0a 69 6e 74 | 72 6f 64 75 63 74 69 6f |ief..int|roductio|
|000017a0| 6e 20 74 6f 20 28 72 65 | 76 69 73 65 64 29 20 4f |n to (re|vised) O|
|000017b0| 62 65 72 6f 6e 20 61 73 | 73 75 6d 69 6e 67 20 66 |beron as|suming f|
|000017c0| 61 6d 69 6c 69 61 72 69 | 74 79 20 77 69 74 68 20 |amiliari|ty with |
|000017d0| 4d 6f 64 75 6c 61 20 28 | 6f 72 0d 0a 50 61 73 63 |Modula (|or..Pasc|
|000017e0| 61 6c 29 2c 20 63 6f 6e | 63 65 6e 74 72 61 74 69 |al), con|centrati|
|000017f0| 6e 67 20 6f 6e 20 74 68 | 65 20 61 64 64 65 64 20 |ng on th|e added |
|00001800| 66 65 61 74 75 72 65 73 | 20 61 6e 64 20 6c 69 73 |features| and lis|
|00001810| 74 69 6e 67 20 74 68 65 | 20 65 6c 69 6d 69 6e 61 |ting the| elimina|
|00001820| 74 65 64 0d 0a 6f 6e 65 | 73 2e 20 49 6e 20 6f 72 |ted..one|s. In or|
|00001830| 64 65 72 20 74 6f 20 62 | 65 20 61 62 6c 65 20 74 |der to b|e able t|
|00001840| 6f 20 73 74 61 72 74 20 | 77 69 74 68 20 61 20 63 |o start |with a c|
|00001850| 6c 65 61 6e 20 73 6c 61 | 74 65 2c 20 74 68 65 20 |lean sla|te, the |
|00001860| 6c 61 74 74 65 72 20 61 | 72 65 20 74 61 6b 65 6e |latter a|re taken|
|00001870| 0d 0a 66 69 72 73 74 2e | 0d 0a 0d 0a 46 65 61 74 |..first.|....Feat|
|00001880| 75 72 65 73 20 6f 6d 69 | 74 74 65 64 20 66 72 6f |ures omi|tted fro|
|00001890| 6d 20 4d 6f 64 75 6c 61 | 0d 0a 0d 0a 44 61 74 61 |m Modula|....Data|
|000018a0| 20 74 79 70 65 73 0d 0a | 0d 0a 56 61 72 69 61 6e | types..|..Varian|
|000018b0| 74 20 72 65 63 6f 72 64 | 73 20 61 72 65 20 65 6c |t record|s are el|
|000018c0| 69 6d 69 6e 61 74 65 64 | 2c 20 62 65 63 61 75 73 |iminated|, becaus|
|000018d0| 65 20 74 68 65 79 20 63 | 6f 6e 73 74 69 74 75 74 |e they c|onstitut|
|000018e0| 65 20 61 20 67 65 6e 75 | 69 6e 65 0d 0a 64 69 66 |e a genu|ine..dif|
|000018f0| 66 69 63 75 6c 74 79 20 | 66 6f 72 20 74 68 65 20 |ficulty |for the |
|00001900| 69 6d 70 6c 65 6d 65 6e | 74 61 74 69 6f 6e 20 6f |implemen|tation o|
|00001910| 66 20 61 20 72 65 6c 69 | 61 62 6c 65 20 73 74 6f |f a reli|able sto|
|00001920| 72 61 67 65 20 6d 61 6e | 61 67 65 6d 65 6e 74 20 |rage man|agement |
|00001930| 73 79 73 74 65 6d 0d 0a | 62 61 73 65 64 20 6f 6e |system..|based on|
|00001940| 20 61 75 74 6f 6d 61 74 | 69 63 20 67 61 72 62 61 | automat|ic garba|
|00001950| 67 65 20 63 6f 6c 6c 65 | 63 74 69 6f 6e 2e 20 54 |ge colle|ction. T|
|00001960| 68 65 20 66 75 6e 63 74 | 69 6f 6e 61 6c 69 74 79 |he funct|ionality|
|00001970| 20 6f 66 20 76 61 72 69 | 61 6e 74 20 72 65 63 6f | of vari|ant reco|
|00001980| 72 64 73 0d 0a 69 73 20 | 70 72 65 73 65 72 76 65 |rds..is |preserve|
|00001990| 64 20 62 79 20 74 68 65 | 20 69 6e 74 72 6f 64 75 |d by the| introdu|
|000019a0| 63 74 69 6f 6e 20 6f 66 | 20 65 78 74 65 6e 73 69 |ction of| extensi|
|000019b0| 62 6c 65 20 64 61 74 61 | 20 74 79 70 65 73 2e 0d |ble data| types..|
|000019c0| 0a 0d 0a 4f 70 61 71 75 | 65 20 74 79 70 65 73 20 |...Opaqu|e types |
|000019d0| 63 61 74 65 72 20 66 6f | 72 20 74 68 65 20 63 6f |cater fo|r the co|
|000019e0| 6e 63 65 70 74 20 6f 66 | 20 61 62 73 74 72 61 63 |ncept of| abstrac|
|000019f0| 74 20 64 61 74 61 20 74 | 79 70 65 20 61 6e 64 20 |t data t|ype and |
|00001a00| 69 6e 66 6f 72 6d 61 74 | 69 6f 6e 0d 0a 68 69 64 |informat|ion..hid|
|00001a10| 69 6e 67 2e 20 54 68 65 | 79 20 61 72 65 20 65 6c |ing. The|y are el|
|00001a20| 69 6d 69 6e 61 74 65 64 | 20 61 73 20 73 75 63 68 |iminated| as such|
|00001a30| 2c 20 62 65 63 61 75 73 | 65 20 61 67 61 69 6e 20 |, becaus|e again |
|00001a40| 74 68 65 20 63 6f 6e 63 | 65 70 74 20 69 73 20 63 |the conc|ept is c|
|00001a50| 6f 76 65 72 65 64 0d 0a | 62 79 20 74 68 65 20 6e |overed..|by the n|
|00001a60| 65 77 20 66 61 63 69 6c | 69 74 79 20 6f 66 20 65 |ew facil|ity of e|
|00001a70| 78 74 65 6e 64 65 64 20 | 72 65 63 6f 72 64 20 74 |xtended |record t|
|00001a80| 79 70 65 73 2e 0d 0a 0d | 0a 45 6e 75 6d 65 72 61 |ypes....|.Enumera|
|00001a90| 74 69 6f 6e 20 74 79 70 | 65 73 20 61 70 70 65 61 |tion typ|es appea|
|00001aa0| 72 20 74 6f 20 62 65 20 | 61 20 73 69 6d 70 6c 65 |r to be |a simple|
|00001ab0| 20 65 6e 6f 75 67 68 20 | 66 65 61 74 75 72 65 20 | enough |feature |
|00001ac0| 74 6f 20 62 65 0d 0a 75 | 6e 63 6f 6e 74 72 6f 76 |to be..u|ncontrov|
|00001ad0| 65 72 73 69 61 6c 2e 20 | 48 6f 77 65 76 65 72 2c |ersial. |However,|
|00001ae0| 20 74 68 65 79 20 64 65 | 66 79 20 65 78 74 65 6e | they de|fy exten|
|00001af0| 73 69 62 69 6c 69 74 79 | 20 6f 76 65 72 20 6d 6f |sibility| over mo|
|00001b00| 64 75 6c 65 20 62 6f 75 | 6e 64 61 72 69 65 73 2e |dule bou|ndaries.|
|00001b10| 0d 0a 45 69 74 68 65 72 | 20 61 20 66 61 63 69 6c |..Either| a facil|
|00001b20| 69 74 79 20 74 6f 20 65 | 78 74 65 6e 64 20 67 69 |ity to e|xtend gi|
|00001b30| 76 65 6e 20 65 6e 75 6d | 65 72 61 74 69 6f 6e 20 |ven enum|eration |
|00001b40| 74 79 70 65 73 20 68 61 | 73 20 74 6f 20 62 65 20 |types ha|s to be |
|00001b50| 69 6e 74 72 6f 64 75 63 | 65 64 2c 0d 0a 6f 72 20 |introduc|ed,..or |
|00001b60| 74 68 65 79 20 68 61 76 | 65 20 74 6f 20 62 65 20 |they hav|e to be |
|00001b70| 64 72 6f 70 70 65 64 2e | 20 41 20 72 65 61 73 6f |dropped.| A reaso|
|00001b80| 6e 20 69 6e 20 66 61 76 | 6f 75 72 20 6f 66 20 74 |n in fav|our of t|
|00001b90| 68 65 20 6c 61 74 74 65 | 72 2c 20 72 61 64 69 63 |he latte|r, radic|
|00001ba0| 61 6c 0d 0a 73 6f 6c 75 | 74 69 6f 6e 20 77 61 73 |al..solu|tion was|
|00001bb0| 20 74 68 65 20 6f 62 73 | 65 72 76 61 74 69 6f 6e | the obs|ervation|
|00001bc0| 20 74 68 61 74 20 69 6e | 20 61 20 67 72 6f 77 69 | that in| a growi|
|00001bd0| 6e 67 20 6e 75 6d 62 65 | 72 20 6f 66 20 70 72 6f |ng numbe|r of pro|
|00001be0| 67 72 61 6d 73 20 74 68 | 65 0d 0a 69 6e 64 69 73 |grams th|e..indis|
|00001bf0| 63 72 69 6d 69 6e 61 74 | 65 20 75 73 65 20 6f 66 |criminat|e use of|
|00001c00| 20 65 6e 75 6d 65 72 61 | 74 69 6f 6e 73 20 28 61 | enumera|tions (a|
|00001c10| 6e 64 20 73 75 62 72 61 | 6e 67 65 73 29 20 68 61 |nd subra|nges) ha|
|00001c20| 64 20 6c 65 64 20 74 6f | 20 61 20 74 79 70 65 0d |d led to| a type.|
|00001c30| 0a 65 78 70 6c 6f 73 69 | 6f 6e 20 74 68 61 74 20 |.explosi|on that |
|00001c40| 63 6f 6e 74 72 69 62 75 | 74 65 64 20 6e 6f 74 20 |contribu|ted not |
|00001c50| 74 6f 20 70 72 6f 67 72 | 61 6d 20 63 6c 61 72 69 |to progr|am clari|
|00001c60| 74 79 20 62 75 74 20 72 | 61 74 68 65 72 20 74 6f |ty but r|ather to|
|00001c70| 20 76 65 72 62 6f 73 69 | 74 79 2e 0d 0a 49 6e 20 | verbosi|ty...In |
|00001c80| 63 6f 6e 6e 65 63 74 69 | 6f 6e 20 77 69 74 68 20 |connecti|on with |
|00001c90| 69 6d 70 6f 72 74 20 61 | 6e 64 20 65 78 70 6f 72 |import a|nd expor|
|00001ca0| 74 2c 20 65 6e 75 6d 65 | 72 61 74 69 6f 6e 73 20 |t, enume|rations |
|00001cb0| 67 69 76 65 20 72 69 73 | 65 20 74 6f 20 74 68 65 |give ris|e to the|
|00001cc0| 0d 0a 65 78 63 65 70 74 | 69 6f 6e 61 6c 20 72 75 |..except|ional ru|
|00001cd0| 6c 65 20 74 68 61 74 20 | 74 68 65 20 69 6d 70 6f |le that |the impo|
|00001ce0| 72 74 20 6f 66 20 61 20 | 74 79 70 65 20 69 64 65 |rt of a |type ide|
|00001cf0| 6e 74 69 66 69 65 72 20 | 61 6c 73 6f 20 63 61 75 |ntifier |also cau|
|00001d00| 73 65 73 20 74 68 65 0d | 0a 28 61 75 74 6f 6d 61 |ses the.|.(automa|
|00001d10| 74 69 63 29 20 69 6d 70 | 6f 72 74 20 6f 66 20 61 |tic) imp|ort of a|
|00001d20| 6c 6c 20 61 73 73 6f 63 | 69 61 74 65 64 20 63 6f |ll assoc|iated co|
|00001d30| 6e 73 74 61 6e 74 20 69 | 64 65 6e 74 69 66 69 65 |nstant i|dentifie|
|00001d40| 72 73 2e 20 54 68 69 73 | 20 65 78 63 65 70 74 69 |rs. This| excepti|
|00001d50| 6f 6e 61 6c 0d 0a 72 75 | 6c 65 20 64 65 66 69 65 |onal..ru|le defie|
|00001d60| 73 20 63 6f 6e 63 65 70 | 74 75 61 6c 20 73 69 6d |s concep|tual sim|
|00001d70| 70 6c 69 63 69 74 79 20 | 61 6e 64 20 63 61 75 73 |plicity |and caus|
|00001d80| 65 73 20 75 6e 70 6c 65 | 61 73 61 6e 74 20 70 72 |es unple|asant pr|
|00001d90| 6f 62 6c 65 6d 73 20 66 | 6f 72 20 74 68 65 0d 0a |oblems f|or the..|
|00001da0| 69 6d 70 6c 65 6d 65 6e | 74 6f 72 2e 0d 0a 0d 0a |implemen|tor.....|
|00001db0| 53 75 62 72 61 6e 67 65 | 20 74 79 70 65 73 20 77 |Subrange| types w|
|00001dc0| 65 72 65 20 69 6e 74 72 | 6f 64 75 63 65 64 20 69 |ere intr|oduced i|
|00001dd0| 6e 20 50 61 73 63 61 6c | 20 28 61 6e 64 20 61 64 |n Pascal| (and ad|
|00001de0| 6f 70 74 65 64 20 69 6e | 20 4d 6f 64 75 6c 61 29 |opted in| Modula)|
|00001df0| 20 66 6f 72 20 74 77 6f | 0d 0a 72 65 61 73 6f 6e | for two|..reason|
|00001e00| 73 3a 20 28 31 29 20 74 | 6f 20 69 6e 64 69 63 61 |s: (1) t|o indica|
|00001e10| 74 65 20 74 68 61 74 20 | 61 20 76 61 72 69 61 62 |te that |a variab|
|00001e20| 6c 65 20 61 63 63 65 70 | 74 73 20 61 20 6c 69 6d |le accep|ts a lim|
|00001e30| 69 74 65 64 20 72 61 6e | 67 65 20 6f 66 20 76 61 |ited ran|ge of va|
|00001e40| 6c 75 65 73 0d 0a 6f 66 | 20 74 68 65 20 62 61 73 |lues..of| the bas|
|00001e50| 65 20 74 79 70 65 20 61 | 6e 64 20 74 6f 20 61 6c |e type a|nd to al|
|00001e60| 6c 6f 77 20 61 20 63 6f | 6d 70 69 6c 65 72 20 74 |low a co|mpiler t|
|00001e70| 6f 20 67 65 6e 65 72 61 | 74 65 20 61 70 70 72 6f |o genera|te appro|
|00001e80| 70 72 69 61 74 65 20 67 | 75 61 72 64 73 20 66 6f |priate g|uards fo|
|00001e90| 72 0d 0a 61 73 73 69 67 | 6e 6d 65 6e 74 73 2c 20 |r..assig|nments, |
|00001ea0| 61 6e 64 20 28 32 29 20 | 74 6f 20 61 6c 6c 6f 77 |and (2) |to allow|
|00001eb0| 20 61 20 63 6f 6d 70 69 | 6c 65 72 20 74 6f 20 61 | a compi|ler to a|
|00001ec0| 6c 6c 6f 63 61 74 65 20 | 74 68 65 20 6d 69 6e 69 |llocate |the mini|
|00001ed0| 6d 61 6c 20 73 74 6f 72 | 61 67 65 0d 0a 73 70 61 |mal stor|age..spa|
|00001ee0| 63 65 20 6e 65 65 64 65 | 64 20 74 6f 20 73 74 6f |ce neede|d to sto|
|00001ef0| 72 65 20 76 61 6c 75 65 | 73 20 6f 66 20 74 68 65 |re value|s of the|
|00001f00| 20 69 6e 64 69 63 61 74 | 65 64 20 73 75 62 72 61 | indicat|ed subra|
|00001f10| 6e 67 65 2e 20 54 68 69 | 73 20 61 70 70 65 61 72 |nge. Thi|s appear|
|00001f20| 65 64 0d 0a 64 65 73 69 | 72 61 62 6c 65 20 69 6e |ed..desi|rable in|
|00001f30| 20 63 6f 6e 6e 65 63 74 | 69 6f 6e 20 77 69 74 68 | connect|ion with|
|00001f40| 20 70 61 63 6b 65 64 20 | 72 65 63 6f 72 64 73 2e | packed |records.|
|00001f50| 20 56 65 72 79 20 66 65 | 77 20 69 6d 70 6c 65 6d | Very fe|w implem|
|00001f60| 65 6e 74 61 74 69 6f 6e | 73 20 68 61 76 65 0d 0a |entation|s have..|
|00001f70| 74 61 6b 65 6e 20 61 64 | 76 61 6e 74 61 67 65 20 |taken ad|vantage |
|00001f80| 6f 66 20 74 68 69 73 20 | 73 70 61 63 65 20 73 61 |of this |space sa|
|00001f90| 76 69 6e 67 20 66 61 63 | 69 6c 69 74 79 2c 20 62 |ving fac|ility, b|
|00001fa0| 65 63 61 75 73 65 20 74 | 68 65 20 61 64 64 69 74 |ecause t|he addit|
|00001fb0| 69 6f 6e 61 6c 0d 0a 63 | 6f 6d 70 69 6c 65 72 20 |ional..c|ompiler |
|00001fc0| 63 6f 6d 70 6c 65 78 69 | 74 79 20 69 73 20 76 65 |complexi|ty is ve|
|00001fd0| 72 79 20 63 6f 6e 73 69 | 64 65 72 61 62 6c 65 2e |ry consi|derable.|
|00001fe0| 20 52 65 61 73 6f 6e 20 | 31 20 61 6c 6f 6e 65 2c | Reason |1 alone,|
|00001ff0| 20 68 6f 77 65 76 65 72 | 2c 20 64 69 64 20 6e 6f | however|, did no|
|00002000| 74 0d 0a 61 70 70 65 61 | 72 20 74 6f 20 70 72 6f |t..appea|r to pro|
|00002010| 76 69 64 65 20 73 75 66 | 66 69 63 69 65 6e 74 20 |vide suf|ficient |
|00002020| 6a 75 73 74 69 66 69 63 | 61 74 69 6f 6e 20 74 6f |justific|ation to|
|00002030| 20 72 65 74 61 69 6e 20 | 74 68 65 20 73 75 62 72 | retain |the subr|
|00002040| 61 6e 67 65 20 66 61 63 | 69 6c 69 74 79 0d 0a 69 |ange fac|ility..i|
|00002050| 6e 20 4f 62 65 72 6f 6e | 2e 0d 0a 0d 0a 57 69 74 |n Oberon|.....Wit|
|00002060| 68 20 74 68 65 20 61 62 | 73 65 6e 63 65 20 6f 66 |h the ab|sence of|
|00002070| 20 65 6e 75 6d 65 72 61 | 74 69 6f 6e 20 61 6e 64 | enumera|tion and|
|00002080| 20 73 75 62 72 61 6e 67 | 65 20 74 79 70 65 73 2c | subrang|e types,|
|00002090| 20 74 68 65 20 67 65 6e | 65 72 61 6c 20 70 6f 73 | the gen|eral pos|
|000020a0| 73 69 62 69 6c 69 74 79 | 0d 0a 6f 66 20 64 65 66 |sibility|..of def|
|000020b0| 69 6e 69 6e 67 20 73 65 | 74 20 74 79 70 65 73 20 |ining se|t types |
|000020c0| 62 61 73 65 64 20 6f 6e | 20 67 69 76 65 6e 20 65 |based on| given e|
|000020d0| 6c 65 6d 65 6e 74 20 74 | 79 70 65 73 20 61 70 70 |lement t|ypes app|
|000020e0| 65 61 72 65 64 20 61 73 | 20 72 65 64 75 6e 64 61 |eared as| redunda|
|000020f0| 6e 74 2e 0d 0a 49 6e 73 | 74 65 61 64 2c 20 61 20 |nt...Ins|tead, a |
|00002100| 73 69 6e 67 6c 65 2c 20 | 62 61 73 69 63 20 74 79 |single, |basic ty|
|00002110| 70 65 20 53 45 54 20 69 | 73 20 69 6e 74 72 6f 64 |pe SET i|s introd|
|00002120| 75 63 65 64 2c 20 77 68 | 6f 73 65 20 76 61 6c 75 |uced, wh|ose valu|
|00002130| 65 73 20 61 72 65 20 73 | 65 74 73 20 6f 66 0d 0a |es are s|ets of..|
|00002140| 69 6e 74 65 67 65 72 73 | 20 66 72 6f 6d 20 30 20 |integers| from 0 |
|00002150| 74 6f 20 61 6e 20 69 6d | 70 6c 65 6d 65 6e 74 61 |to an im|plementa|
|00002160| 74 69 6f 6e 2d 64 65 66 | 69 6e 65 64 20 6d 61 78 |tion-def|ined max|
|00002170| 69 6d 75 6d 2e 0d 0a 0d | 0a 54 68 65 20 62 61 73 |imum....|.The bas|
|00002180| 69 63 20 74 79 70 65 20 | 43 41 52 44 49 4e 41 4c |ic type |CARDINAL|
|00002190| 20 68 61 64 20 62 65 65 | 6e 20 69 6e 74 72 6f 64 | had bee|n introd|
|000021a0| 75 63 65 64 20 69 6e 20 | 4d 6f 64 75 6c 61 20 69 |uced in |Modula i|
|000021b0| 6e 20 6f 72 64 65 72 20 | 74 6f 20 61 6c 6c 6f 77 |n order |to allow|
|000021c0| 0d 0a 61 64 64 72 65 73 | 73 20 61 72 69 74 68 6d |..addres|s arithm|
|000021d0| 65 74 69 63 20 77 69 74 | 68 20 76 61 6c 75 65 73 |etic wit|h values|
|000021e0| 20 66 72 6f 6d 20 30 20 | 74 6f 20 32 31 36 20 6f | from 0 |to 216 o|
|000021f0| 6e 20 31 36 2d 62 69 74 | 20 63 6f 6d 70 75 74 65 |n 16-bit| compute|
|00002200| 72 73 2e 20 57 69 74 68 | 20 74 68 65 0d 0a 70 72 |rs. With| the..pr|
|00002210| 65 76 61 6c 65 6e 63 65 | 20 6f 66 20 33 32 2d 62 |evalence| of 32-b|
|00002220| 69 74 20 61 64 64 72 65 | 73 73 65 73 20 69 6e 20 |it addre|sses in |
|00002230| 6d 6f 64 65 72 6e 20 70 | 72 6f 63 65 73 73 6f 72 |modern p|rocessor|
|00002240| 73 2c 20 74 68 65 20 6e | 65 65 64 20 66 6f 72 20 |s, the n|eed for |
|00002250| 75 6e 73 69 67 6e 65 64 | 0d 0a 61 72 69 74 68 6d |unsigned|..arithm|
|00002260| 65 74 69 63 20 68 61 73 | 20 70 72 61 63 74 69 63 |etic has| practic|
|00002270| 61 6c 6c 79 20 76 61 6e | 69 73 68 65 64 2c 20 61 |ally van|ished, a|
|00002280| 6e 64 20 74 68 65 72 65 | 66 6f 72 65 20 74 68 65 |nd there|fore the|
|00002290| 20 74 79 70 65 20 43 41 | 52 44 49 4e 41 4c 20 68 | type CA|RDINAL h|
|000022a0| 61 73 0d 0a 62 65 65 6e | 20 65 6c 69 6d 69 6e 61 |as..been| elimina|
|000022b0| 74 65 64 2e 20 57 69 74 | 68 20 69 74 2c 20 74 68 |ted. Wit|h it, th|
|000022c0| 65 20 62 6f 74 68 65 72 | 73 6f 6d 65 20 69 6e 63 |e bother|some inc|
|000022d0| 6f 6d 70 61 74 69 62 69 | 6c 69 74 69 65 73 20 6f |ompatibi|lities o|
|000022e0| 66 20 6f 70 65 72 61 6e | 64 73 20 6f 66 0d 0a 74 |f operan|ds of..t|
|000022f0| 79 70 65 73 20 43 41 52 | 44 49 4e 41 4c 20 61 6e |ypes CAR|DINAL an|
|00002300| 64 20 49 4e 54 45 47 45 | 52 20 68 61 76 65 20 64 |d INTEGE|R have d|
|00002310| 69 73 61 70 70 65 61 72 | 65 64 2e 0d 0a 0d 0a 50 |isappear|ed.....P|
|00002320| 6f 69 6e 74 65 72 20 74 | 79 70 65 73 20 61 72 65 |ointer t|ypes are|
|00002330| 20 72 65 73 74 72 69 63 | 74 65 64 20 74 6f 20 62 | restric|ted to b|
|00002340| 65 20 62 6f 75 6e 64 20 | 74 6f 20 61 20 72 65 63 |e bound |to a rec|
|00002350| 6f 72 64 20 74 79 70 65 | 20 6f 72 20 74 6f 20 61 |ord type| or to a|
|00002360| 6e 20 61 72 72 61 79 0d | 0a 74 79 70 65 2e 0d 0a |n array.|.type...|
|00002370| 0d 0a 54 68 65 20 6e 6f | 74 69 6f 6e 20 6f 66 20 |..The no|tion of |
|00002380| 61 20 64 65 66 69 6e 61 | 62 6c 65 20 69 6e 64 65 |a defina|ble inde|
|00002390| 78 20 74 79 70 65 20 6f | 66 20 61 72 72 61 79 73 |x type o|f arrays|
|000023a0| 20 68 61 73 20 61 6c 73 | 6f 20 62 65 65 6e 20 61 | has als|o been a|
|000023b0| 62 61 6e 64 6f 6e 65 64 | 3a 20 41 6c 6c 0d 0a 69 |bandoned|: All..i|
|000023c0| 6e 64 69 63 65 73 20 61 | 72 65 20 62 79 20 64 65 |ndices a|re by de|
|000023d0| 66 61 75 6c 74 20 69 6e | 74 65 67 65 72 73 2e 20 |fault in|tegers. |
|000023e0| 46 75 72 74 68 65 72 6d | 6f 72 65 2c 20 74 68 65 |Furtherm|ore, the|
|000023f0| 20 6c 6f 77 65 72 20 62 | 6f 75 6e 64 20 69 73 20 | lower b|ound is |
|00002400| 66 69 78 65 64 20 74 6f | 0d 0a 30 3b 20 61 72 72 |fixed to|..0; arr|
|00002410| 61 79 20 64 65 63 6c 61 | 72 61 74 69 6f 6e 73 20 |ay decla|rations |
|00002420| 73 70 65 63 69 66 79 20 | 61 20 6e 75 6d 62 65 72 |specify |a number|
|00002430| 20 6f 66 20 65 6c 65 6d | 65 6e 74 73 20 28 6c 65 | of elem|ents (le|
|00002440| 6e 67 74 68 29 20 72 61 | 74 68 65 72 20 74 68 61 |ngth) ra|ther tha|
|00002450| 6e 20 61 0d 0a 70 61 69 | 72 20 6f 66 20 62 6f 75 |n a..pai|r of bou|
|00002460| 6e 64 73 2e 20 54 68 69 | 73 20 62 72 65 61 6b 20 |nds. Thi|s break |
|00002470| 77 69 74 68 20 61 20 6c | 6f 6e 67 20 73 74 61 6e |with a l|ong stan|
|00002480| 64 69 6e 67 20 74 72 61 | 64 69 74 69 6f 6e 20 73 |ding tra|dition s|
|00002490| 69 6e 63 65 20 41 6c 67 | 6f 6c 20 36 30 0d 0a 63 |ince Alg|ol 60..c|
|000024a0| 6c 65 61 72 6c 79 20 64 | 65 6d 6f 6e 73 74 72 61 |learly d|emonstra|
|000024b0| 74 65 73 20 74 68 65 20 | 70 72 69 6e 63 69 70 6c |tes the |principl|
|000024c0| 65 20 6f 66 20 65 6c 69 | 6d 69 6e 61 74 69 6e 67 |e of eli|minating|
|000024d0| 20 74 68 65 20 69 6e 65 | 73 73 65 6e 74 69 61 6c | the ine|ssential|
|000024e0| 2e 20 54 68 65 0d 0a 73 | 70 65 63 69 66 69 63 61 |. The..s|pecifica|
|000024f0| 74 69 6f 6e 20 6f 66 20 | 61 6e 20 61 72 62 69 74 |tion of |an arbit|
|00002500| 72 61 72 79 20 6c 6f 77 | 65 72 20 62 6f 75 6e 64 |rary low|er bound|
|00002510| 20 68 61 72 64 6c 79 20 | 70 72 6f 76 69 64 65 73 | hardly |provides|
|00002520| 20 61 6e 79 20 61 64 64 | 69 74 69 6f 6e 61 6c 0d | any add|itional.|
|00002530| 0a 65 78 70 72 65 73 73 | 69 76 65 20 70 6f 77 65 |.express|ive powe|
|00002540| 72 2e 20 49 74 20 72 65 | 70 72 65 73 65 6e 74 73 |r. It re|presents|
|00002550| 20 61 20 72 61 74 68 65 | 72 20 6c 69 6d 69 74 65 | a rathe|r limite|
|00002560| 64 20 6b 69 6e 64 20 6f | 66 20 6d 61 70 70 69 6e |d kind o|f mappin|
|00002570| 67 20 6f 66 20 69 6e 64 | 69 63 65 73 0d 0a 77 68 |g of ind|ices..wh|
|00002580| 69 63 68 20 69 6e 74 72 | 6f 64 75 63 65 73 20 61 |ich intr|oduces a|
|00002590| 20 68 69 64 64 65 6e 20 | 63 6f 6d 70 75 74 61 74 | hidden |computat|
|000025a0| 69 6f 6e 61 6c 20 65 66 | 66 6f 72 74 20 74 68 61 |ional ef|fort tha|
|000025b0| 74 20 69 73 20 69 6e 63 | 6f 6d 6d 65 6e 73 75 72 |t is inc|ommensur|
|000025c0| 61 74 65 20 77 69 74 68 | 0d 0a 74 68 65 20 73 75 |ate with|..the su|
|000025d0| 70 70 6f 73 65 64 20 67 | 61 69 6e 20 69 6e 20 63 |pposed g|ain in c|
|000025e0| 6f 6e 76 65 6e 69 65 6e | 63 65 2e 20 54 68 69 73 |onvenien|ce. This|
|000025f0| 20 65 66 66 6f 72 74 20 | 69 73 20 70 61 72 74 69 | effort |is parti|
|00002600| 63 75 6c 61 72 6c 79 20 | 68 65 61 76 79 20 69 6e |cularly |heavy in|
|00002610| 0d 0a 63 6f 6e 6e 65 63 | 74 69 6f 6e 20 77 69 74 |..connec|tion wit|
|00002620| 68 20 62 6f 75 6e 64 20 | 63 68 65 63 6b 69 6e 67 |h bound |checking|
|00002630| 20 61 6e 64 20 77 69 74 | 68 20 64 79 6e 61 6d 69 | and wit|h dynami|
|00002640| 63 20 61 72 72 61 79 73 | 2e 0d 0a 0d 0a 4d 6f 64 |c arrays|.....Mod|
|00002650| 75 6c 65 73 20 61 6e 64 | 20 69 6d 70 6f 72 74 2f |ules and| import/|
|00002660| 65 78 70 6f 72 74 20 72 | 75 6c 65 73 0d 0a 0d 0a |export r|ules....|
|00002670| 45 78 70 65 72 69 65 6e | 63 65 20 77 69 74 68 20 |Experien|ce with |
|00002680| 4d 6f 64 75 6c 61 20 6f | 76 65 72 20 74 68 65 20 |Modula o|ver the |
|00002690| 6c 61 73 74 20 65 69 67 | 68 74 20 79 65 61 72 73 |last eig|ht years|
|000026a0| 20 68 61 73 20 73 68 6f | 77 6e 20 74 68 61 74 20 | has sho|wn that |
|000026b0| 6c 6f 63 61 6c 0d 0a 6d | 6f 64 75 6c 65 73 20 77 |local..m|odules w|
|000026c0| 65 72 65 20 72 61 72 65 | 6c 79 20 75 73 65 64 2e |ere rare|ly used.|
|000026d0| 20 43 6f 6e 73 69 64 65 | 72 69 6e 67 20 74 68 65 | Conside|ring the|
|000026e0| 20 61 64 64 69 74 69 6f | 6e 61 6c 20 63 6f 6d 70 | additio|nal comp|
|000026f0| 6c 65 78 69 74 79 20 6f | 66 20 74 68 65 0d 0a 63 |lexity o|f the..c|
|00002700| 6f 6d 70 69 6c 65 72 20 | 72 65 71 75 69 72 65 64 |ompiler |required|
|00002710| 20 74 6f 20 68 61 6e 64 | 6c 65 20 74 68 65 6d 2c | to hand|le them,|
|00002720| 20 61 6e 64 20 74 68 65 | 20 61 64 64 69 74 69 6f | and the| additio|
|00002730| 6e 61 6c 20 63 6f 6d 70 | 6c 69 63 61 74 69 6f 6e |nal comp|lication|
|00002740| 73 20 69 6e 20 74 68 65 | 0d 0a 76 69 73 69 62 6c |s in the|..visibl|
|00002750| 69 74 79 20 72 75 6c 65 | 73 20 6f 66 20 74 68 65 |ity rule|s of the|
|00002760| 20 6c 61 6e 67 75 61 67 | 65 20 64 65 66 69 6e 69 | languag|e defini|
|00002770| 74 69 6f 6e 2c 20 74 68 | 65 20 65 6c 69 6d 69 6e |tion, th|e elimin|
|00002780| 61 74 69 6f 6e 20 6f 66 | 20 6c 6f 63 61 6c 0d 0a |ation of| local..|
|00002790| 6d 6f 64 75 6c 65 73 20 | 61 70 70 65 61 72 73 20 |modules |appears |
|000027a0| 6a 75 73 74 69 66 69 65 | 64 2e 0d 0a 0d 0a 54 68 |justifie|d.....Th|
|000027b0| 65 20 71 75 61 6c 69 66 | 69 63 61 74 69 6f 6e 20 |e qualif|ication |
|000027c0| 6f 66 20 61 6e 20 69 6d | 70 6f 72 74 65 64 20 6f |of an im|ported o|
|000027d0| 62 6a 65 63 74 27 73 20 | 69 64 65 6e 74 69 66 69 |bject's |identifi|
|000027e0| 65 72 20 78 20 62 79 20 | 74 68 65 20 65 78 70 6f |er x by |the expo|
|000027f0| 72 74 69 6e 67 0d 0a 6d | 6f 64 75 6c 65 27 73 20 |rting..m|odule's |
|00002800| 6e 61 6d 65 20 4d 2c 20 | 76 69 7a 2e 20 4d 2e 78 |name M, |viz. M.x|
|00002810| 2c 20 63 61 6e 20 62 65 | 20 63 69 72 63 75 6d 76 |, can be| circumv|
|00002820| 65 6e 74 65 64 20 69 6e | 20 4d 6f 64 75 6c 61 20 |ented in| Modula |
|00002830| 62 79 20 74 68 65 20 75 | 73 65 20 6f 66 20 74 68 |by the u|se of th|
|00002840| 65 0d 0a 69 6d 70 6f 72 | 74 20 63 6c 61 75 73 65 |e..impor|t clause|
|00002850| 20 46 52 4f 4d 20 4d 20 | 49 4d 50 4f 52 54 20 78 | FROM M |IMPORT x|
|00002860| 2e 20 54 68 69 73 20 66 | 61 63 69 6c 69 74 79 20 |. This f|acility |
|00002870| 68 61 73 20 61 6c 73 6f | 20 62 65 65 6e 20 64 69 |has also| been di|
|00002880| 73 63 61 72 64 65 64 2e | 0d 0a 45 78 70 65 72 69 |scarded.|..Experi|
|00002890| 65 6e 63 65 20 69 6e 20 | 70 72 6f 67 72 61 6d 6d |ence in |programm|
|000028a0| 69 6e 67 20 73 79 73 74 | 65 6d 73 20 69 6e 76 6f |ing syst|ems invo|
|000028b0| 6c 76 69 6e 67 20 6d 61 | 6e 79 20 6d 6f 64 75 6c |lving ma|ny modul|
|000028c0| 65 73 20 68 61 73 20 74 | 61 75 67 68 74 20 74 68 |es has t|aught th|
|000028d0| 61 74 0d 0a 74 68 65 20 | 65 78 70 6c 69 63 69 74 |at..the |explicit|
|000028e0| 20 71 75 61 6c 69 66 69 | 63 61 74 69 6f 6e 20 6f | qualifi|cation o|
|000028f0| 66 20 65 61 63 68 20 6f | 63 63 75 72 72 65 6e 63 |f each o|ccurrenc|
|00002900| 65 20 6f 66 20 78 20 69 | 73 20 61 63 74 75 61 6c |e of x i|s actual|
|00002910| 6c 79 20 70 72 65 66 65 | 72 61 62 6c 65 2e 0d 0a |ly prefe|rable...|
|00002920| 41 20 73 69 6d 70 6c 69 | 66 69 63 61 74 69 6f 6e |A simpli|fication|
|00002930| 20 6f 66 20 74 68 65 20 | 63 6f 6d 70 69 6c 65 72 | of the |compiler|
|00002940| 20 69 73 20 61 20 77 65 | 6c 63 6f 6d 65 20 73 69 | is a we|lcome si|
|00002950| 64 65 2d 65 66 66 65 63 | 74 2e 0d 0a 0d 0a 54 68 |de-effec|t.....Th|
|00002960| 65 20 64 75 61 6c 20 72 | 6f 6c 65 20 6f 66 20 74 |e dual r|ole of t|
|00002970| 68 65 20 6d 61 69 6e 20 | 6d 6f 64 75 6c 65 20 69 |he main |module i|
|00002980| 6e 20 4d 6f 64 75 6c 61 | 20 69 73 20 63 6f 6e 63 |n Modula| is conc|
|00002990| 65 70 74 75 61 6c 6c 79 | 20 63 6f 6e 66 75 73 69 |eptually| confusi|
|000029a0| 6e 67 2e 20 49 74 0d 0a | 63 6f 6e 73 74 69 74 75 |ng. It..|constitu|
|000029b0| 74 65 73 20 61 20 6d 6f | 64 75 6c 65 20 69 6e 20 |tes a mo|dule in |
|000029c0| 74 68 65 20 73 65 6e 73 | 65 20 6f 66 20 61 20 70 |the sens|e of a p|
|000029d0| 61 63 6b 61 67 65 20 6f | 66 20 64 61 74 61 20 61 |ackage o|f data a|
|000029e0| 6e 64 20 70 72 6f 63 65 | 64 75 72 65 73 0d 0a 65 |nd proce|dures..e|
|000029f0| 6e 63 6c 6f 73 65 64 20 | 62 79 20 61 20 73 63 6f |nclosed |by a sco|
|00002a00| 70 65 20 6f 66 20 76 69 | 73 69 62 69 6c 69 74 79 |pe of vi|sibility|
|00002a10| 2c 20 61 6e 64 20 61 74 | 20 74 68 65 20 73 61 6d |, and at| the sam|
|00002a20| 65 20 74 69 6d 65 20 69 | 74 20 63 6f 6e 73 74 69 |e time i|t consti|
|00002a30| 74 75 74 65 73 20 61 0d | 0a 73 69 6e 67 6c 65 20 |tutes a.|.single |
|00002a40| 70 72 6f 63 65 64 75 72 | 65 20 63 61 6c 6c 65 64 |procedur|e called|
|00002a50| 20 6d 61 69 6e 20 70 72 | 6f 67 72 61 6d 2e 20 41 | main pr|ogram. A|
|00002a60| 20 6d 6f 64 75 6c 65 20 | 69 73 20 63 6f 6d 70 6f | module |is compo|
|00002a70| 73 65 64 20 6f 66 20 74 | 77 6f 20 74 65 78 74 75 |sed of t|wo textu|
|00002a80| 61 6c 0d 0a 70 69 65 63 | 65 73 2c 20 63 61 6c 6c |al..piec|es, call|
|00002a90| 65 64 20 74 68 65 20 64 | 65 66 69 6e 69 74 69 6f |ed the d|efinitio|
|00002aa0| 6e 20 70 61 72 74 20 61 | 6e 64 20 74 68 65 20 69 |n part a|nd the i|
|00002ab0| 6d 70 6c 65 6d 65 6e 74 | 61 74 69 6f 6e 20 70 61 |mplement|ation pa|
|00002ac0| 72 74 2e 20 54 68 65 20 | 66 6f 72 6d 65 72 0d 0a |rt. The |former..|
|00002ad0| 69 73 20 6d 69 73 73 69 | 6e 67 20 69 6e 20 74 68 |is missi|ng in th|
|00002ae0| 65 20 63 61 73 65 20 6f | 66 20 61 20 6d 61 69 6e |e case o|f a main|
|00002af0| 20 70 72 6f 67 72 61 6d | 20 6d 6f 64 75 6c 65 2e | program| module.|
|00002b00| 0d 0a 0d 0a 42 79 20 63 | 6f 6e 74 72 61 73 74 2c |....By c|ontrast,|
|00002b10| 20 61 20 6d 6f 64 75 6c | 65 20 69 6e 20 4f 62 65 | a modul|e in Obe|
|00002b20| 72 6f 6e 20 69 73 20 69 | 6e 20 69 74 73 65 6c 66 |ron is i|n itself|
|00002b30| 20 63 6f 6d 70 6c 65 74 | 65 20 61 6e 64 20 63 6f | complet|e and co|
|00002b40| 6e 73 74 69 74 75 74 65 | 73 20 61 0d 0a 75 6e 69 |nstitute|s a..uni|
|00002b50| 74 20 6f 66 20 63 6f 6d | 70 69 6c 61 74 69 6f 6e |t of com|pilation|
|00002b60| 2e 20 44 65 66 69 6e 69 | 74 69 6f 6e 20 61 6e 64 |. Defini|tion and|
|00002b70| 20 69 6d 70 6c 65 6d 65 | 6e 74 61 74 69 6f 6e 20 | impleme|ntation |
|00002b80| 70 61 72 74 73 20 61 72 | 65 20 6d 65 72 67 65 64 |parts ar|e merged|
|00002b90| 3b 20 6e 61 6d 65 73 0d | 0a 74 6f 20 62 65 20 76 |; names.|.to be v|
|00002ba0| 69 73 69 62 6c 65 20 69 | 6e 20 63 6c 69 65 6e 74 |isible i|n client|
|00002bb0| 20 6d 6f 64 75 6c 65 73 | 2c 20 69 2e 65 2e 20 65 | modules|, i.e. e|
|00002bc0| 78 70 6f 72 74 65 64 20 | 69 64 65 6e 74 69 66 69 |xported |identifi|
|00002bd0| 65 72 73 2c 20 61 72 65 | 20 6d 61 72 6b 65 64 2c |ers, are| marked,|
|00002be0| 20 61 6e 64 0d 0a 74 68 | 65 79 20 74 79 70 69 63 | and..th|ey typic|
|00002bf0| 61 6c 6c 79 20 70 72 65 | 63 65 64 65 20 74 68 65 |ally pre|cede the|
|00002c00| 20 64 65 63 6c 61 72 61 | 74 69 6f 6e 73 20 6f 66 | declara|tions of|
|00002c10| 20 6f 62 6a 65 63 74 73 | 20 6e 6f 74 20 65 78 70 | objects| not exp|
|00002c20| 6f 72 74 65 64 2e 20 41 | 0d 0a 63 6f 6d 70 69 6c |orted. A|..compil|
|00002c30| 61 74 69 6f 6e 20 67 65 | 6e 65 72 61 74 65 73 20 |ation ge|nerates |
|00002c40| 69 6e 20 67 65 6e 65 72 | 61 6c 20 61 20 63 68 61 |in gener|al a cha|
|00002c50| 6e 67 65 64 20 6f 62 6a | 65 63 74 20 66 69 6c 65 |nged obj|ect file|
|00002c60| 20 61 6e 64 20 61 20 6e | 65 77 20 73 79 6d 62 6f | and a n|ew symbo|
|00002c70| 6c 0d 0a 66 69 6c 65 2e | 20 54 68 65 20 6c 61 74 |l..file.| The lat|
|00002c80| 74 65 72 20 63 6f 6e 74 | 61 69 6e 73 20 69 6e 66 |ter cont|ains inf|
|00002c90| 6f 72 6d 61 74 69 6f 6e | 20 61 62 6f 75 74 20 65 |ormation| about e|
|00002ca0| 78 70 6f 72 74 65 64 20 | 6f 62 6a 65 63 74 73 20 |xported |objects |
|00002cb0| 66 6f 72 20 75 73 65 20 | 69 6e 20 74 68 65 0d 0a |for use |in the..|
|00002cc0| 63 6f 6d 70 69 6c 61 74 | 69 6f 6e 20 6f 66 20 63 |compilat|ion of c|
|00002cd0| 6c 69 65 6e 74 20 6d 6f | 64 75 6c 65 73 2e 20 54 |lient mo|dules. T|
|00002ce0| 68 65 20 67 65 6e 65 72 | 61 74 69 6f 6e 20 6f 66 |he gener|ation of|
|00002cf0| 20 61 20 6e 65 77 20 73 | 79 6d 62 6f 6c 20 66 69 | a new s|ymbol fi|
|00002d00| 6c 65 20 6d 75 73 74 2c | 0d 0a 68 6f 77 65 76 65 |le must,|..howeve|
|00002d10| 72 2c 20 62 65 20 73 70 | 65 63 69 66 69 63 61 6c |r, be sp|ecifical|
|00002d20| 6c 79 20 65 6e 61 62 6c | 65 64 20 62 79 20 61 20 |ly enabl|ed by a |
|00002d30| 63 6f 6d 70 69 6c 65 72 | 20 6f 70 74 69 6f 6e 2c |compiler| option,|
|00002d40| 20 62 65 63 61 75 73 65 | 20 69 74 20 77 69 6c 6c | because| it will|
|00002d50| 0d 0a 69 6e 76 61 6c 69 | 64 61 74 65 20 70 72 65 |..invali|date pre|
|00002d60| 76 69 6f 75 73 20 63 6f | 6d 70 69 6c 61 74 69 6f |vious co|mpilatio|
|00002d70| 6e 73 20 6f 66 20 63 6c | 69 65 6e 74 73 2e 0d 0a |ns of cl|ients...|
|00002d80| 0d 0a 54 68 65 20 6e 6f | 74 69 6f 6e 20 6f 66 20 |..The no|tion of |
|00002d90| 61 20 6d 61 69 6e 20 70 | 72 6f 67 72 61 6d 20 68 |a main p|rogram h|
|00002da0| 61 73 20 62 65 65 6e 20 | 61 62 61 6e 64 6f 6e 65 |as been |abandone|
|00002db0| 64 2e 20 49 6e 73 74 65 | 61 64 2c 20 74 68 65 20 |d. Inste|ad, the |
|00002dc0| 73 65 74 20 6f 66 0d 0a | 6d 6f 64 75 6c 65 73 20 |set of..|modules |
|00002dd0| 6c 69 6e 6b 65 64 20 74 | 68 72 6f 75 67 68 20 69 |linked t|hrough i|
|00002de0| 6d 70 6f 72 74 73 20 74 | 79 70 69 63 61 6c 6c 79 |mports t|ypically|
|00002df0| 20 63 6f 6e 74 61 69 6e | 73 20 28 70 61 72 61 6d | contain|s (param|
|00002e00| 65 74 65 72 6c 65 73 73 | 29 0d 0a 70 72 6f 63 65 |eterless|)..proce|
|00002e10| 64 75 72 65 73 2e 20 54 | 68 65 79 20 61 72 65 20 |dures. T|hey are |
|00002e20| 74 6f 20 62 65 20 63 6f | 6e 73 69 64 65 72 65 64 |to be co|nsidered|
|00002e30| 20 61 73 20 69 6e 64 69 | 76 69 64 75 61 6c 6c 79 | as indi|vidually|
|00002e40| 20 61 63 74 69 76 61 74 | 61 62 6c 65 2c 20 61 6e | activat|able, an|
|00002e50| 64 20 74 68 65 79 0d 0a | 61 72 65 20 63 61 6c 6c |d they..|are call|
|00002e60| 65 64 20 63 6f 6d 6d 61 | 6e 64 73 2e 20 53 75 63 |ed comma|nds. Suc|
|00002e70| 68 20 61 6e 20 61 63 74 | 69 76 61 74 69 6f 6e 20 |h an act|ivation |
|00002e80| 68 61 73 20 74 68 65 20 | 66 6f 72 6d 20 4d 2e 50 |has the |form M.P|
|00002e90| 2c 20 77 68 65 72 65 20 | 50 20 64 65 6e 6f 74 65 |, where |P denote|
|00002ea0| 73 0d 0a 74 68 65 20 63 | 6f 6d 6d 61 6e 64 20 61 |s..the c|ommand a|
|00002eb0| 6e 64 20 4d 20 74 68 65 | 20 6d 6f 64 75 6c 65 20 |nd M the| module |
|00002ec0| 63 6f 6e 74 61 69 6e 69 | 6e 67 20 69 74 2e 20 54 |containi|ng it. T|
|00002ed0| 68 65 20 65 66 66 65 63 | 74 20 6f 66 20 61 20 63 |he effec|t of a c|
|00002ee0| 6f 6d 6d 61 6e 64 20 69 | 73 0d 0a 63 6f 6e 73 69 |ommand i|s..consi|
|00002ef0| 64 65 72 65 64 20 2d 20 | 6e 6f 74 20 6c 69 6b 65 |dered - |not like|
|00002f00| 20 74 68 61 74 20 6f 66 | 20 61 20 6d 61 69 6e 20 | that of| a main |
|00002f10| 70 72 6f 67 72 61 6d 20 | 61 73 20 61 63 63 65 70 |program |as accep|
|00002f20| 74 69 6e 67 20 69 6e 70 | 75 74 20 61 6e 64 0d 0a |ting inp|ut and..|
|00002f30| 74 72 61 6e 73 66 6f 72 | 6d 69 6e 67 20 69 74 20 |transfor|ming it |
|00002f40| 74 6f 20 6f 75 74 70 75 | 74 20 2d 20 61 73 20 61 |to outpu|t - as a|
|00002f50| 20 63 68 61 6e 67 65 20 | 6f 66 20 73 74 61 74 65 | change |of state|
|00002f60| 20 72 65 70 72 65 73 65 | 6e 74 65 64 20 62 79 20 | represe|nted by |
|00002f70| 67 6c 6f 62 61 6c 0d 0a | 64 61 74 61 2e 0d 0a 0d |global..|data....|
|00002f80| 0a 53 74 61 74 65 6d 65 | 6e 74 73 0d 0a 0d 0a 54 |.Stateme|nts....T|
|00002f90| 68 65 20 77 69 74 68 20 | 73 74 61 74 65 6d 65 6e |he with |statemen|
|00002fa0| 74 20 6f 66 20 4d 6f 64 | 75 6c 61 20 68 61 73 20 |t of Mod|ula has |
|00002fb0| 62 65 65 6e 20 64 69 73 | 63 61 72 64 65 64 2e 20 |been dis|carded. |
|00002fc0| 4c 69 6b 65 20 69 6e 20 | 74 68 65 20 63 61 73 65 |Like in |the case|
|00002fd0| 20 6f 66 0d 0a 69 6d 70 | 6f 72 74 65 64 20 69 64 | of..imp|orted id|
|00002fe0| 65 6e 74 69 66 69 65 72 | 73 2c 20 74 68 65 20 65 |entifier|s, the e|
|00002ff0| 78 70 6c 69 63 69 74 20 | 71 75 61 6c 69 66 69 63 |xplicit |qualific|
|00003000| 61 74 69 6f 6e 20 6f 66 | 20 66 69 65 6c 64 20 69 |ation of| field i|
|00003010| 64 65 6e 74 69 66 69 65 | 72 73 20 69 73 20 74 6f |dentifie|rs is to|
|00003020| 0d 0a 62 65 20 70 72 65 | 66 65 72 72 65 64 2e 20 |..be pre|ferred. |
|00003030| 41 6e 6f 74 68 65 72 20 | 66 6f 72 6d 20 6f 66 20 |Another |form of |
|00003040| 77 69 74 68 20 73 74 61 | 74 65 6d 65 6e 74 20 69 |with sta|tement i|
|00003050| 73 20 69 6e 74 72 6f 64 | 75 63 65 64 3b 20 69 74 |s introd|uced; it|
|00003060| 20 68 61 73 20 61 0d 0a | 64 69 66 66 65 72 65 6e | has a..|differen|
|00003070| 74 20 66 75 6e 63 74 69 | 6f 6e 20 61 6e 64 20 69 |t functi|on and i|
|00003080| 73 20 63 61 6c 6c 65 64 | 20 61 20 72 65 67 69 6f |s called| a regio|
|00003090| 6e 61 6c 20 67 75 61 72 | 64 20 28 73 65 65 20 62 |nal guar|d (see b|
|000030a0| 65 6c 6f 77 29 2e 0d 0a | 0d 0a 54 68 65 20 65 6c |elow)...|..The el|
|000030b0| 69 6d 69 6e 61 74 69 6f | 6e 20 6f 66 20 74 68 65 |iminatio|n of the|
|000030c0| 20 66 6f 72 20 73 74 61 | 74 65 6d 65 6e 74 20 63 | for sta|tement c|
|000030d0| 6f 6e 73 74 69 74 75 74 | 65 73 20 61 20 62 72 65 |onstitut|es a bre|
|000030e0| 61 6b 20 77 69 74 68 20 | 61 6e 6f 74 68 65 72 20 |ak with |another |
|000030f0| 6c 6f 6e 67 0d 0a 73 74 | 61 6e 64 69 6e 67 20 74 |long..st|anding t|
|00003100| 72 61 64 69 74 69 6f 6e | 2e 20 54 68 65 20 62 61 |radition|. The ba|
|00003110| 72 6f 71 75 65 20 6d 65 | 63 68 61 6e 69 73 6d 20 |roque me|chanism |
|00003120| 6f 66 20 41 6c 67 6f 6c | 20 36 30 27 73 20 66 6f |of Algol| 60's fo|
|00003130| 72 20 73 74 61 74 65 6d | 65 6e 74 20 68 61 64 0d |r statem|ent had.|
|00003140| 0a 62 65 65 6e 20 74 72 | 69 6d 6d 65 64 20 73 69 |.been tr|immed si|
|00003150| 67 6e 69 66 69 63 61 6e | 74 6c 79 20 69 6e 20 50 |gnifican|tly in P|
|00003160| 61 73 63 61 6c 20 28 61 | 6e 64 20 4d 6f 64 75 6c |ascal (a|nd Modul|
|00003170| 61 29 2e 20 49 74 73 20 | 6d 61 72 67 69 6e 61 6c |a). Its |marginal|
|00003180| 20 76 61 6c 75 65 20 69 | 6e 0d 0a 70 72 61 63 74 | value i|n..pract|
|00003190| 69 63 65 20 68 61 73 20 | 6c 65 64 20 74 6f 20 69 |ice has |led to i|
|000031a0| 74 73 20 61 62 73 65 6e | 63 65 20 66 72 6f 6d 20 |ts absen|ce from |
|000031b0| 4f 62 65 72 6f 6e 2e 0d | 0a 0d 0a 4c 6f 77 2d 6c |Oberon..|...Low-l|
|000031c0| 65 76 65 6c 20 66 61 63 | 69 6c 69 74 69 65 73 0d |evel fac|ilities.|
|000031d0| 0a 0d 0a 4d 6f 64 75 6c | 61 20 6d 61 6b 65 73 20 |...Modul|a makes |
|000031e0| 61 63 63 65 73 73 20 74 | 6f 20 6d 61 63 68 69 6e |access t|o machin|
|000031f0| 65 2d 73 70 65 63 69 66 | 69 63 20 66 61 63 69 6c |e-specif|ic facil|
|00003200| 69 74 69 65 73 20 70 6f | 73 73 69 62 6c 65 20 74 |ities po|ssible t|
|00003210| 68 72 6f 75 67 68 0d 0a | 6c 6f 77 2d 6c 65 76 65 |hrough..|low-leve|
|00003220| 6c 20 63 6f 6e 73 74 72 | 75 63 74 73 2c 20 73 75 |l constr|ucts, su|
|00003230| 63 68 20 61 73 20 74 68 | 65 20 64 61 74 61 20 74 |ch as th|e data t|
|00003240| 79 70 65 73 20 41 44 44 | 52 45 53 53 20 61 6e 64 |ypes ADD|RESS and|
|00003250| 20 57 4f 52 44 2c 20 61 | 62 73 6f 6c 75 74 65 0d | WORD, a|bsolute.|
|00003260| 0a 61 64 64 72 65 73 73 | 69 6e 67 20 6f 66 20 76 |.address|ing of v|
|00003270| 61 72 69 61 62 6c 65 73 | 2c 20 61 6e 64 20 74 79 |ariables|, and ty|
|00003280| 70 65 20 63 61 73 74 69 | 6e 67 20 66 75 6e 63 74 |pe casti|ng funct|
|00003290| 69 6f 6e 73 2e 20 4d 6f | 73 74 20 6f 66 20 74 68 |ions. Mo|st of th|
|000032a0| 65 6d 20 61 72 65 0d 0a | 70 61 63 6b 61 67 65 64 |em are..|packaged|
|000032b0| 20 69 6e 20 61 20 6d 6f | 64 75 6c 65 20 63 61 6c | in a mo|dule cal|
|000032c0| 6c 65 64 20 53 59 53 54 | 45 4d 2e 20 54 68 65 73 |led SYST|EM. Thes|
|000032d0| 65 20 66 65 61 74 75 72 | 65 73 20 77 65 72 65 20 |e featur|es were |
|000032e0| 73 75 70 70 6f 73 65 64 | 20 74 6f 20 62 65 0d 0a |supposed| to be..|
|000032f0| 72 61 72 65 6c 79 20 75 | 73 65 64 20 61 6e 64 20 |rarely u|sed and |
|00003300| 65 61 73 69 6c 79 20 76 | 69 73 69 62 6c 65 20 74 |easily v|isible t|
|00003310| 68 72 6f 75 67 68 20 74 | 68 65 20 70 72 65 73 65 |hrough t|he prese|
|00003320| 6e 63 65 20 6f 66 20 74 | 68 65 20 69 64 65 6e 74 |nce of t|he ident|
|00003330| 69 66 69 65 72 0d 0a 53 | 59 53 54 45 4d 20 69 6e |ifier..S|YSTEM in|
|00003340| 20 61 20 6d 6f 64 75 6c | 65 27 73 20 69 6d 70 6f | a modul|e's impo|
|00003350| 72 74 20 6c 69 73 74 2e | 20 45 78 70 65 72 69 65 |rt list.| Experie|
|00003360| 6e 63 65 20 68 61 73 20 | 72 65 76 65 61 6c 65 64 |nce has |revealed|
|00003370| 2c 20 68 6f 77 65 76 65 | 72 2c 20 74 68 61 74 20 |, howeve|r, that |
|00003380| 61 0d 0a 73 69 67 6e 69 | 66 69 63 61 6e 74 20 6e |a..signi|ficant n|
|00003390| 75 6d 62 65 72 20 6f 66 | 20 70 72 6f 67 72 61 6d |umber of| program|
|000033a0| 6d 65 72 73 20 69 6d 70 | 6f 72 74 20 74 68 69 73 |mers imp|ort this|
|000033b0| 20 6d 6f 64 75 6c 65 20 | 71 75 69 74 65 0d 0a 69 | module |quite..i|
|000033c0| 6e 64 69 73 63 72 69 6d | 69 6e 61 74 65 6c 79 2e |ndiscrim|inately.|
|000033d0| 20 41 20 70 61 72 74 69 | 63 75 6c 61 72 6c 79 20 | A parti|cularly |
|000033e0| 73 65 64 75 63 74 69 76 | 65 20 74 72 61 70 20 69 |seductiv|e trap i|
|000033f0| 73 20 74 68 65 20 75 73 | 65 20 6f 66 20 20 4d 6f |s the us|e of Mo|
|00003400| 64 75 6c 61 27 73 0d 0a | 74 79 70 65 20 74 72 61 |dula's..|type tra|
|00003410| 6e 73 66 65 72 20 66 75 | 6e 63 74 69 6f 6e 73 2e |nsfer fu|nctions.|
|00003420| 0d 0a 0d 0a 49 74 20 61 | 70 70 65 61 72 73 20 70 |....It a|ppears p|
|00003430| 72 65 66 65 72 61 62 6c | 65 20 74 6f 20 64 72 6f |referabl|e to dro|
|00003440| 70 20 74 68 65 20 70 72 | 65 74 65 6e 73 65 20 6f |p the pr|etense o|
|00003450| 66 20 70 6f 72 74 61 62 | 69 6c 69 74 79 20 6f 66 |f portab|ility of|
|00003460| 20 70 72 6f 67 72 61 6d | 73 20 74 68 61 74 0d 0a | program|s that..|
|00003470| 69 6d 70 6f 72 74 20 61 | 20 22 73 74 61 6e 64 61 |import a| "standa|
|00003480| 72 64 22 2c 20 79 65 74 | 20 73 79 73 74 65 6d 2d |rd", yet| system-|
|00003490| 73 70 65 63 69 66 69 63 | 20 6d 6f 64 75 6c 65 2e |specific| module.|
|000034a0| 20 54 79 70 65 20 74 72 | 61 6e 73 66 65 72 20 66 | Type tr|ansfer f|
|000034b0| 75 6e 63 74 69 6f 6e 73 | 0d 0a 64 65 6e 6f 74 65 |unctions|..denote|
|000034c0| 64 20 62 79 20 74 79 70 | 65 20 69 64 65 6e 74 69 |d by typ|e identi|
|000034d0| 66 69 65 72 73 20 61 72 | 65 20 74 68 65 72 65 66 |fiers ar|e theref|
|000034e0| 6f 72 65 20 65 6c 69 6d | 69 6e 61 74 65 64 2c 20 |ore elim|inated, |
|000034f0| 61 6e 64 20 74 68 65 20 | 6d 6f 64 75 6c 65 20 53 |and the |module S|
|00003500| 59 53 54 45 4d 0d 0a 69 | 73 20 72 65 73 74 72 69 |YSTEM..i|s restri|
|00003510| 63 74 65 64 20 74 6f 20 | 70 72 6f 76 69 64 69 6e |cted to |providin|
|00003520| 67 20 61 20 66 65 77 20 | 6d 61 63 68 69 6e 65 2d |g a few |machine-|
|00003530| 73 70 65 63 69 66 69 63 | 20 66 75 6e 63 74 69 6f |specific| functio|
|00003540| 6e 73 20 74 68 61 74 20 | 74 79 70 69 63 61 6c 6c |ns that |typicall|
|00003550| 79 0d 0a 61 72 65 20 63 | 6f 6d 70 69 6c 65 64 20 |y..are c|ompiled |
|00003560| 69 6e 74 6f 20 69 6e 6c | 69 6e 65 20 63 6f 64 65 |into inl|ine code|
|00003570| 2e 20 49 6e 20 70 61 72 | 74 69 63 75 6c 61 72 2c |. In par|ticular,|
|00003580| 20 69 74 20 64 6f 65 73 | 20 6e 6f 74 20 63 6f 6e | it does| not con|
|00003590| 74 61 69 6e 20 61 6e 79 | 20 64 61 74 61 0d 0a 74 |tain any| data..t|
|000035a0| 79 70 65 73 2c 20 73 75 | 63 68 20 61 73 20 41 44 |ypes, su|ch as AD|
|000035b0| 44 52 45 53 53 20 61 6e | 64 20 57 4f 52 44 2e 20 |DRESS an|d WORD. |
|000035c0| 49 6e 64 69 76 69 64 75 | 61 6c 20 69 6d 70 6c 65 |Individu|al imple|
|000035d0| 6d 65 6e 74 61 74 69 6f | 6e 73 20 61 72 65 20 66 |mentatio|ns are f|
|000035e0| 72 65 65 20 74 6f 0d 0a | 70 72 6f 76 69 64 65 20 |ree to..|provide |
|000035f0| 61 70 70 72 6f 70 72 69 | 61 74 65 20 76 65 72 73 |appropri|ate vers|
|00003600| 69 6f 6e 73 20 6f 66 20 | 74 68 65 20 6d 6f 64 75 |ions of |the modu|
|00003610| 6c 65 20 53 59 53 54 45 | 4d 2c 20 62 75 74 20 74 |le SYSTE|M, but t|
|00003620| 68 65 69 72 20 66 61 63 | 69 6c 69 74 69 65 73 20 |heir fac|ilities |
|00003630| 64 6f 0d 0a 6e 6f 74 20 | 62 65 6c 6f 6e 67 20 74 |do..not |belong t|
|00003640| 6f 20 74 68 65 20 6c 61 | 6e 67 75 61 67 65 20 64 |o the la|nguage d|
|00003650| 65 66 69 6e 69 74 69 6f | 6e 2e 20 54 68 65 20 75 |efinitio|n. The u|
|00003660| 73 65 20 6f 66 20 53 59 | 53 54 45 4d 20 64 65 63 |se of SY|STEM dec|
|00003670| 6c 61 72 65 73 20 61 20 | 70 72 6f 67 72 61 6d 0d |lares a |program.|
|00003680| 0a 74 6f 20 62 65 20 70 | 61 74 65 6e 74 6c 79 20 |.to be p|atently |
|00003690| 69 6d 70 6c 65 6d 65 6e | 74 61 74 69 6f 6e 2d 73 |implemen|tation-s|
|000036a0| 70 65 63 69 66 69 63 20 | 61 6e 64 20 74 68 65 72 |pecific |and ther|
|000036b0| 65 62 79 20 6e 6f 6e 2d | 70 6f 72 74 61 62 6c 65 |eby non-|portable|
|000036c0| 2e 0d 0a 0d 0a 43 6f 6e | 63 75 72 72 65 6e 63 79 |.....Con|currency|
|000036d0| 0d 0a 0d 0a 54 68 65 20 | 73 79 73 74 65 6d 20 4f |....The |system O|
|000036e0| 62 65 72 6f 6e 20 64 6f | 65 73 20 6e 6f 74 20 72 |beron do|es not r|
|000036f0| 65 71 75 69 72 65 20 61 | 6e 79 20 6c 61 6e 67 75 |equire a|ny langu|
|00003700| 61 67 65 20 66 61 63 69 | 6c 69 74 69 65 73 20 66 |age faci|lities f|
|00003710| 6f 72 20 65 78 70 72 65 | 73 73 69 6e 67 0d 0a 63 |or expre|ssing..c|
|00003720| 6f 6e 63 75 72 72 65 6e | 74 20 70 72 6f 63 65 73 |oncurren|t proces|
|00003730| 73 65 73 2e 20 54 68 65 | 20 70 65 72 74 69 6e 65 |ses. The| pertine|
|00003740| 6e 74 20 72 75 64 69 6d | 65 6e 74 61 72 79 20 66 |nt rudim|entary f|
|00003750| 65 61 74 75 72 65 73 20 | 6f 66 20 4d 6f 64 75 6c |eatures |of Modul|
|00003760| 61 2c 20 69 6e 0d 0a 70 | 61 72 74 69 63 75 6c 61 |a, in..p|articula|
|00003770| 72 20 74 68 65 20 63 6f | 72 6f 75 74 69 6e 65 2c |r the co|routine,|
|00003780| 20 77 65 72 65 20 74 68 | 65 72 65 66 6f 72 65 20 | were th|erefore |
|00003790| 6e 6f 74 20 72 65 74 61 | 69 6e 65 64 2e 20 54 68 |not reta|ined. Th|
|000037a0| 69 73 20 65 78 63 6c 75 | 73 69 6f 6e 20 69 73 0d |is exclu|sion is.|
|000037b0| 0a 6d 65 72 65 6c 79 20 | 61 20 72 65 66 6c 65 63 |.merely |a reflec|
|000037c0| 74 69 6f 6e 20 6f 66 20 | 6f 75 72 20 61 63 74 75 |tion of |our actu|
|000037d0| 61 6c 20 6e 65 65 64 73 | 20 77 69 74 68 69 6e 20 |al needs| within |
|000037e0| 74 68 65 20 63 6f 6e 63 | 72 65 74 65 20 70 72 6f |the conc|rete pro|
|000037f0| 6a 65 63 74 2c 20 62 75 | 74 0d 0a 6e 6f 74 20 6f |ject, bu|t..not o|
|00003800| 6e 20 74 68 65 20 67 65 | 6e 65 72 61 6c 20 72 65 |n the ge|neral re|
|00003810| 6c 65 76 61 6e 63 65 20 | 6f 66 20 63 6f 6e 63 75 |levance |of concu|
|00003820| 72 72 65 6e 63 79 20 69 | 6e 20 70 72 6f 67 72 61 |rrency i|n progra|
|00003830| 6d 6d 69 6e 67 2e 0d 0a | 0d 0a 46 65 61 74 75 72 |mming...|..Featur|
|00003840| 65 73 20 69 6e 74 72 6f | 64 75 63 65 64 20 69 6e |es intro|duced in|
|00003850| 20 4f 62 65 72 6f 6e 0d | 0a 0d 0a 49 6e 20 63 6f | Oberon.|...In co|
|00003860| 6e 74 72 61 73 74 20 74 | 6f 20 74 68 65 20 6e 75 |ntrast t|o the nu|
|00003870| 6d 62 65 72 20 6f 66 20 | 65 6c 69 6d 69 6e 61 74 |mber of |eliminat|
|00003880| 65 64 20 66 65 61 74 75 | 72 65 73 2c 20 74 68 65 |ed featu|res, the|
|00003890| 72 65 20 61 72 65 20 6f | 6e 6c 79 20 61 20 66 65 |re are o|nly a fe|
|000038a0| 77 20 6e 65 77 0d 0a 6f | 6e 65 73 2e 20 54 68 65 |w new..o|nes. The|
|000038b0| 20 69 6d 70 6f 72 74 61 | 6e 74 20 6e 65 77 20 63 | importa|nt new c|
|000038c0| 6f 6e 63 65 70 74 73 20 | 61 72 65 20 74 79 70 65 |oncepts |are type|
|000038d0| 20 65 78 74 65 6e 73 69 | 6f 6e 20 61 6e 64 20 74 | extensi|on and t|
|000038e0| 79 70 65 20 69 6e 63 6c | 75 73 69 6f 6e 2e 0d 0a |ype incl|usion...|
|000038f0| 46 75 72 74 68 65 72 6d | 6f 72 65 2c 20 6f 70 65 |Furtherm|ore, ope|
|00003900| 6e 20 61 72 72 61 79 73 | 20 6d 61 79 20 68 61 76 |n arrays| may hav|
|00003910| 65 20 73 65 76 65 72 61 | 6c 20 64 69 6d 65 6e 73 |e severa|l dimens|
|00003920| 69 6f 6e 73 20 28 69 6e | 64 69 63 65 73 29 2c 20 |ions (in|dices), |
|00003930| 77 68 65 72 65 61 73 20 | 69 6e 0d 0a 4d 6f 64 75 |whereas |in..Modu|
|00003940| 6c 61 20 74 68 65 79 20 | 77 65 72 65 20 63 6f 6e |la they |were con|
|00003950| 66 69 6e 65 64 20 74 6f | 20 61 20 73 69 6e 67 6c |fined to| a singl|
|00003960| 65 20 64 69 6d 65 6e 73 | 69 6f 6e 2e 0d 0a 0d 0a |e dimens|ion.....|
|00003970| 54 79 70 65 20 65 78 74 | 65 6e 73 69 6f 6e 0d 0a |Type ext|ension..|
|00003980| 0d 0a 54 68 65 20 6d 6f | 73 74 20 69 6d 70 6f 72 |..The mo|st impor|
|00003990| 74 61 6e 74 20 61 64 64 | 69 74 69 6f 6e 20 69 73 |tant add|ition is|
|000039a0| 20 74 68 65 20 66 61 63 | 69 6c 69 74 79 20 6f 66 | the fac|ility of|
|000039b0| 20 65 78 74 65 6e 64 65 | 64 20 72 65 63 6f 72 64 | extende|d record|
|000039c0| 20 74 79 70 65 73 2e 20 | 49 74 0d 0a 70 65 72 6d | types. |It..perm|
|000039d0| 69 74 73 20 74 68 65 20 | 63 6f 6e 73 74 72 75 63 |its the |construc|
|000039e0| 74 69 6f 6e 20 6f 66 20 | 6e 65 77 20 74 79 70 65 |tion of |new type|
|000039f0| 73 20 6f 6e 20 74 68 65 | 20 62 61 73 69 73 20 6f |s on the| basis o|
|00003a00| 66 20 65 78 69 73 74 69 | 6e 67 20 74 79 70 65 73 |f existi|ng types|
|00003a10| 2c 20 61 6e 64 0d 0a 65 | 73 74 61 62 6c 69 73 68 |, and..e|stablish|
|00003a20| 65 73 20 61 20 63 65 72 | 74 61 69 6e 20 64 65 67 |es a cer|tain deg|
|00003a30| 72 65 65 20 6f 66 20 63 | 6f 6d 70 61 74 69 62 69 |ree of c|ompatibi|
|00003a40| 6c 69 74 79 20 62 65 74 | 77 65 65 6e 20 74 68 65 |lity bet|ween the|
|00003a50| 20 6e 65 77 20 61 6e 64 | 20 6f 6c 64 0d 0a 74 79 | new and| old..ty|
|00003a60| 70 65 73 2e 20 41 73 73 | 75 6d 69 6e 67 20 61 20 |pes. Ass|uming a |
|00003a70| 67 69 76 65 6e 20 74 79 | 70 65 0d 0a 0d 0a 54 20 |given ty|pe....T |
|00003a80| 20 3d 20 20 52 45 43 4f | 52 44 20 78 2c 20 79 3a | = RECO|RD x, y:|
|00003a90| 20 49 4e 54 45 47 45 52 | 20 45 4e 44 0d 0a 0d 0a | INTEGER| END....|
|00003aa0| 65 78 74 65 6e 73 69 6f | 6e 73 20 6d 61 79 20 62 |extensio|ns may b|
|00003ab0| 65 20 64 65 66 69 6e 65 | 64 20 77 68 69 63 68 20 |e define|d which |
|00003ac0| 63 6f 6e 74 61 69 6e 20 | 63 65 72 74 61 69 6e 20 |contain |certain |
|00003ad0| 66 69 65 6c 64 73 20 69 | 6e 20 61 64 64 69 74 69 |fields i|n additi|
|00003ae0| 6f 6e 20 74 6f 20 74 68 | 65 0d 0a 65 78 69 73 74 |on to th|e..exist|
|00003af0| 69 6e 67 20 6f 6e 65 73 | 2e 20 46 6f 72 20 65 78 |ing ones|. For ex|
|00003b00| 61 6d 70 6c 65 0d 0a 0d | 0a 54 30 20 20 3d 20 20 |ample...|.T0 = |
|00003b10| 52 45 43 4f 52 44 20 28 | 54 29 20 20 7a 3a 20 52 |RECORD (|T) z: R|
|00003b20| 45 41 4c 20 45 4e 44 0d | 0a 54 31 20 20 3d 20 20 |EAL END.|.T1 = |
|00003b30| 52 45 43 4f 52 44 20 28 | 54 29 20 20 77 3a 20 4c |RECORD (|T) w: L|
|00003b40| 4f 4e 47 52 45 41 4c 20 | 45 4e 44 0d 0a 0d 0a 64 |ONGREAL |END....d|
|00003b50| 65 66 69 6e 65 20 74 79 | 70 65 73 20 77 69 74 68 |efine ty|pes with|
|00003b60| 20 66 69 65 6c 64 73 20 | 78 2c 20 79 2c 20 7a 20 | fields |x, y, z |
|00003b70| 61 6e 64 20 78 2c 20 79 | 2c 20 77 20 72 65 73 70 |and x, y|, w resp|
|00003b80| 65 63 74 69 76 65 6c 79 | 2e 20 57 65 20 64 65 66 |ectively|. We def|
|00003b90| 69 6e 65 20 61 20 74 79 | 70 65 0d 0a 64 65 63 6c |ine a ty|pe..decl|
|00003ba0| 61 72 65 64 20 62 79 0d | 0a 0d 0a 54 27 20 20 3d |ared by.|...T' =|
|00003bb0| 20 20 52 45 43 4f 52 44 | 20 28 54 29 20 3c 66 69 | RECORD| (T) <fi|
|00003bc0| 65 6c 64 20 64 65 66 69 | 6e 69 74 69 6f 6e 73 3e |eld defi|nitions>|
|00003bd0| 20 45 4e 44 0d 0a 0d 0a | 74 6f 20 62 65 20 61 20 | END....|to be a |
|00003be0| 28 64 69 72 65 63 74 29 | 20 65 78 74 65 6e 73 69 |(direct)| extensi|
|00003bf0| 6f 6e 20 6f 66 20 54 2c | 20 61 6e 64 20 63 6f 6e |on of T,| and con|
|00003c00| 76 65 72 73 65 6c 79 20 | 54 20 74 6f 20 62 65 20 |versely |T to be |
|00003c10| 74 68 65 20 28 64 69 72 | 65 63 74 29 20 62 61 73 |the (dir|ect) bas|
|00003c20| 65 0d 0a 74 79 70 65 20 | 6f 66 20 54 27 2e 20 45 |e..type |of T'. E|
|00003c30| 78 74 65 6e 64 65 64 20 | 74 79 70 65 73 20 6d 61 |xtended |types ma|
|00003c40| 79 20 62 65 20 65 78 74 | 65 6e 64 65 64 20 61 67 |y be ext|ended ag|
|00003c50| 61 69 6e 2c 20 67 69 76 | 69 6e 67 20 72 69 73 65 |ain, giv|ing rise|
|00003c60| 20 74 6f 20 74 68 65 0d | 0a 66 6f 6c 6c 6f 77 69 | to the.|.followi|
|00003c70| 6e 67 20 64 65 66 69 6e | 69 74 69 6f 6e 73 3a 0d |ng defin|itions:.|
|00003c80| 0a 0d 0a 41 20 74 79 70 | 65 20 54 27 20 69 73 20 |...A typ|e T' is |
|00003c90| 61 6e 20 65 78 74 65 6e | 73 69 6f 6e 20 6f 66 20 |an exten|sion of |
|00003ca0| 54 2c 20 69 66 20 54 27 | 20 3d 20 54 20 6f 72 20 |T, if T'| = T or |
|00003cb0| 54 27 20 69 73 20 61 20 | 64 69 72 65 63 74 20 65 |T' is a |direct e|
|00003cc0| 78 74 65 6e 73 69 6f 6e | 20 6f 66 20 61 6e 0d 0a |xtension| of an..|
|00003cd0| 65 78 74 65 6e 73 69 6f | 6e 20 6f 66 20 54 2e 20 |extensio|n of T. |
|00003ce0| 43 6f 6e 76 65 72 73 65 | 6c 79 2c 20 54 20 69 73 |Converse|ly, T is|
|00003cf0| 20 61 20 62 61 73 65 20 | 74 79 70 65 20 6f 66 20 | a base |type of |
|00003d00| 54 27 2c 20 69 66 20 54 | 20 3d 20 54 27 20 6f 72 |T', if T| = T' or|
|00003d10| 20 54 20 69 73 20 74 68 | 65 0d 0a 64 69 72 65 63 | T is th|e..direc|
|00003d20| 74 20 62 61 73 65 20 74 | 79 70 65 20 6f 66 20 61 |t base t|ype of a|
|00003d30| 20 62 61 73 65 20 74 79 | 70 65 20 6f 66 20 54 27 | base ty|pe of T'|
|00003d40| 2e 20 57 65 20 64 65 6e | 6f 74 65 20 74 68 69 73 |. We den|ote this|
|00003d50| 20 72 65 6c 61 74 69 6f | 6e 73 68 69 70 20 62 79 | relatio|nship by|
|00003d60| 20 54 27 20 2e 0d 0a 54 | 2e 0d 0a 0d 0a 54 68 65 | T' ...T|.....The|
|00003d70| 20 72 75 6c 65 20 6f 66 | 20 61 73 73 69 67 6e 6d | rule of| assignm|
|00003d80| 65 6e 74 20 63 6f 6d 70 | 61 74 69 62 69 6c 69 74 |ent comp|atibilit|
|00003d90| 79 20 73 74 61 74 65 73 | 20 74 68 61 74 20 76 61 |y states| that va|
|00003da0| 6c 75 65 73 20 6f 66 20 | 61 6e 20 65 78 74 65 6e |lues of |an exten|
|00003db0| 64 65 64 20 74 79 70 65 | 0d 0a 61 72 65 20 61 73 |ded type|..are as|
|00003dc0| 73 69 67 6e 61 62 6c 65 | 20 74 6f 20 76 61 72 69 |signable| to vari|
|00003dd0| 61 62 6c 65 73 20 6f 66 | 20 74 68 65 69 72 20 62 |ables of| their b|
|00003de0| 61 73 65 20 74 79 70 65 | 73 2e 20 46 6f 72 20 65 |ase type|s. For e|
|00003df0| 78 61 6d 70 6c 65 2c 20 | 61 20 72 65 63 6f 72 64 |xample, |a record|
|00003e00| 20 6f 66 0d 0a 74 79 70 | 65 20 54 30 20 63 61 6e | of..typ|e T0 can|
|00003e10| 20 62 65 20 61 73 73 69 | 67 6e 65 64 20 74 6f 20 | be assi|gned to |
|00003e20| 61 20 76 61 72 69 61 62 | 6c 65 20 6f 66 20 74 68 |a variab|le of th|
|00003e30| 65 20 62 61 73 65 20 74 | 79 70 65 20 54 2e 20 54 |e base t|ype T. T|
|00003e40| 68 69 73 20 61 73 73 69 | 67 6e 6d 65 6e 74 0d 0a |his assi|gnment..|
|00003e50| 69 6e 76 6f 6c 76 65 73 | 20 74 68 65 20 66 69 65 |involves| the fie|
|00003e60| 6c 64 73 20 78 20 61 6e | 64 20 79 20 6f 6e 6c 79 |lds x an|d y only|
|00003e70| 2c 20 61 6e 64 20 69 6e | 20 66 61 63 74 20 63 6f |, and in| fact co|
|00003e80| 6e 73 74 69 74 75 74 65 | 73 20 61 20 70 72 6f 6a |nstitute|s a proj|
|00003e90| 65 63 74 69 6f 6e 20 6f | 66 0d 0a 74 68 65 20 76 |ection o|f..the v|
|00003ea0| 61 6c 75 65 20 6f 6e 74 | 6f 20 74 68 65 20 73 70 |alue ont|o the sp|
|00003eb0| 61 63 65 20 73 70 61 6e | 6e 65 64 20 62 79 20 74 |ace span|ned by t|
|00003ec0| 68 65 20 62 61 73 65 20 | 74 79 70 65 2e 0d 0a 0d |he base |type....|
|00003ed0| 0a 49 74 20 69 73 20 69 | 6d 70 6f 72 74 61 6e 74 |.It is i|mportant|
|00003ee0| 20 74 6f 20 61 6c 6c 6f | 77 20 6d 6f 64 75 6c 65 | to allo|w module|
|00003ef0| 73 20 77 68 69 63 68 20 | 69 6d 70 6f 72 74 20 61 |s which |import a|
|00003f00| 20 62 61 73 65 20 74 79 | 70 65 20 74 6f 20 62 65 | base ty|pe to be|
|00003f10| 20 61 62 6c 65 20 74 6f | 0d 0a 64 65 63 6c 61 72 | able to|..declar|
|00003f20| 65 20 65 78 74 65 6e 64 | 65 64 20 74 79 70 65 73 |e extend|ed types|
|00003f30| 2e 20 49 6e 20 66 61 63 | 74 2c 20 74 68 69 73 20 |. In fac|t, this |
|00003f40| 69 73 20 70 72 6f 62 61 | 62 6c 79 20 74 68 65 20 |is proba|bly the |
|00003f50| 6e 6f 72 6d 61 6c 20 75 | 73 61 67 65 2e 0d 0a 0d |normal u|sage....|
|00003f60| 0a 54 68 69 73 20 63 6f | 6e 63 65 70 74 20 6f 66 |.This co|ncept of|
|00003f70| 20 65 78 74 65 6e 73 69 | 62 6c 65 20 64 61 74 61 | extensi|ble data|
|00003f80| 20 74 79 70 65 20 67 61 | 69 6e 73 20 69 6d 70 6f | type ga|ins impo|
|00003f90| 72 74 61 6e 63 65 20 77 | 68 65 6e 20 65 78 74 65 |rtance w|hen exte|
|00003fa0| 6e 64 65 64 20 74 6f 0d | 0a 70 6f 69 6e 74 65 72 |nded to.|.pointer|
|00003fb0| 73 2e 20 49 74 20 69 73 | 20 61 70 70 72 6f 70 72 |s. It is| appropr|
|00003fc0| 69 61 74 65 20 74 6f 20 | 73 61 79 20 74 68 61 74 |iate to |say that|
|00003fd0| 20 61 20 70 6f 69 6e 74 | 65 72 20 74 79 70 65 20 | a point|er type |
|00003fe0| 50 27 20 62 6f 75 6e 64 | 20 74 6f 20 54 27 0d 0a |P' bound| to T'..|
|00003ff0| 65 78 74 65 6e 64 73 20 | 61 20 70 6f 69 6e 74 65 |extends |a pointe|
|00004000| 72 20 74 79 70 65 20 50 | 2c 20 69 66 20 50 20 69 |r type P|, if P i|
|00004010| 73 20 62 6f 75 6e 64 20 | 74 6f 20 61 20 62 61 73 |s bound |to a bas|
|00004020| 65 20 74 79 70 65 20 54 | 20 6f 66 20 54 27 2c 20 |e type T| of T', |
|00004030| 61 6e 64 20 74 6f 0d 0a | 65 78 74 65 6e 64 20 74 |and to..|extend t|
|00004040| 68 65 20 61 73 73 69 67 | 6e 6d 65 6e 74 20 72 75 |he assig|nment ru|
|00004050| 6c 65 20 74 6f 20 63 6f | 76 65 72 20 74 68 69 73 |le to co|ver this|
|00004060| 20 63 61 73 65 2e 20 49 | 74 20 69 73 20 6e 6f 77 | case. I|t is now|
|00004070| 20 70 6f 73 73 69 62 6c | 65 20 74 6f 20 66 6f 72 | possibl|e to for|
|00004080| 6d 0d 0a 64 61 74 61 20 | 73 74 72 75 63 74 75 72 |m..data |structur|
|00004090| 65 73 20 77 68 6f 73 65 | 20 6e 6f 64 65 73 20 61 |es whose| nodes a|
|000040a0| 72 65 20 6f 66 20 64 69 | 66 66 65 72 65 6e 74 20 |re of di|fferent |
|000040b0| 74 79 70 65 73 2c 20 69 | 2e 65 2e 20 69 6e 68 6f |types, i|.e. inho|
|000040c0| 6d 6f 67 65 6e 65 6f 75 | 73 20 64 61 74 61 0d 0a |mogeneou|s data..|
|000040d0| 73 74 72 75 63 74 75 72 | 65 73 2e 20 54 68 65 20 |structur|es. The |
|000040e0| 69 6e 68 6f 6d 6f 67 65 | 6e 65 69 74 79 20 69 73 |inhomoge|neity is|
|000040f0| 20 61 75 74 6f 6d 61 74 | 69 63 61 6c 6c 79 20 28 | automat|ically (|
|00004100| 61 6e 64 20 6d 6f 73 74 | 20 73 65 6e 73 69 62 6c |and most| sensibl|
|00004110| 79 29 20 62 6f 75 6e 64 | 65 64 0d 0a 62 79 20 74 |y) bound|ed..by t|
|00004120| 68 65 20 66 61 63 74 20 | 74 68 61 74 20 74 68 65 |he fact |that the|
|00004130| 20 6e 6f 64 65 73 20 61 | 72 65 20 6c 69 6e 6b 65 | nodes a|re linke|
|00004140| 64 20 62 79 20 70 6f 69 | 6e 74 65 72 73 20 6f 66 |d by poi|nters of|
|00004150| 20 61 20 63 6f 6d 6d 6f | 6e 20 62 61 73 65 20 74 | a commo|n base t|
|00004160| 79 70 65 2e 0d 0a 0d 0a | 54 79 70 69 63 61 6c 6c |ype.....|Typicall|
|00004170| 79 2c 20 74 68 65 20 70 | 6f 69 6e 74 65 72 20 66 |y, the p|ointer f|
|00004180| 69 65 6c 64 73 20 65 73 | 74 61 62 6c 69 73 68 69 |ields es|tablishi|
|00004190| 6e 67 20 74 68 65 20 73 | 74 72 75 63 74 75 72 65 |ng the s|tructure|
|000041a0| 20 61 72 65 20 63 6f 6e | 74 61 69 6e 65 64 20 69 | are con|tained i|
|000041b0| 6e 0d 0a 74 68 65 20 62 | 61 73 65 20 74 79 70 65 |n..the b|ase type|
|000041c0| 20 54 2c 20 61 6e 64 20 | 74 68 65 20 70 72 6f 63 | T, and |the proc|
|000041d0| 65 64 75 72 65 73 20 6d | 61 6e 69 70 75 6c 61 74 |edures m|anipulat|
|000041e0| 69 6e 67 20 74 68 65 20 | 73 74 72 75 63 74 75 72 |ing the |structur|
|000041f0| 65 20 61 72 65 20 64 65 | 66 69 6e 65 64 0d 0a 69 |e are de|fined..i|
|00004200| 6e 20 74 68 65 20 73 61 | 6d 65 20 28 62 61 73 65 |n the sa|me (base|
|00004210| 29 20 6d 6f 64 75 6c 65 | 20 61 73 20 54 2e 20 49 |) module| as T. I|
|00004220| 6e 64 69 76 69 64 75 61 | 6c 20 65 78 74 65 6e 73 |ndividua|l extens|
|00004230| 69 6f 6e 73 20 28 76 61 | 72 69 61 6e 74 73 29 20 |ions (va|riants) |
|00004240| 61 72 65 0d 0a 64 65 66 | 69 6e 65 64 20 69 6e 20 |are..def|ined in |
|00004250| 63 6c 69 65 6e 74 20 6d | 6f 64 75 6c 65 73 20 74 |client m|odules t|
|00004260| 6f 67 65 74 68 65 72 20 | 77 69 74 68 20 70 72 6f |ogether |with pro|
|00004270| 63 65 64 75 72 65 73 20 | 6f 70 65 72 61 74 69 6e |cedures |operatin|
|00004280| 67 20 6f 6e 20 6e 6f 64 | 65 73 20 6f 66 0d 0a 74 |g on nod|es of..t|
|00004290| 68 65 20 65 78 74 65 6e | 64 65 64 20 74 79 70 65 |he exten|ded type|
|000042a0| 2e 20 54 68 69 73 20 73 | 63 68 65 6d 65 20 69 73 |. This s|cheme is|
|000042b0| 20 69 6e 20 66 75 6c 6c | 20 61 63 63 6f 72 64 61 | in full| accorda|
|000042c0| 6e 63 65 20 77 69 74 68 | 20 74 68 65 20 6e 6f 74 |nce with| the not|
|000042d0| 69 6f 6e 20 6f 66 0d 0a | 73 79 73 74 65 6d 20 65 |ion of..|system e|
|000042e0| 78 74 65 6e 73 69 62 69 | 6c 69 74 79 3a 20 6e 65 |xtensibi|lity: ne|
|000042f0| 77 20 6d 6f 64 75 6c 65 | 73 20 64 65 66 69 6e 69 |w module|s defini|
|00004300| 6e 67 20 6e 65 77 20 65 | 78 74 65 6e 73 69 6f 6e |ng new e|xtension|
|00004310| 73 20 6d 61 79 20 62 65 | 20 61 64 64 65 64 20 74 |s may be| added t|
|00004320| 6f 20 61 0d 0a 73 79 73 | 74 65 6d 20 77 69 74 68 |o a..sys|tem with|
|00004330| 6f 75 74 20 72 65 71 75 | 69 72 69 6e 67 20 61 20 |out requ|iring a |
|00004340| 63 68 61 6e 67 65 20 6f | 66 20 74 68 65 20 62 61 |change o|f the ba|
|00004350| 73 65 20 6d 6f 64 75 6c | 65 73 2c 20 6e 6f 74 20 |se modul|es, not |
|00004360| 65 76 65 6e 20 74 68 65 | 69 72 0d 0a 72 65 63 6f |even the|ir..reco|
|00004370| 6d 70 69 6c 61 74 69 6f | 6e 2e 0d 0a 0d 0a 41 73 |mpilatio|n.....As|
|00004380| 20 61 63 63 65 73 73 20 | 74 6f 20 61 6e 20 69 6e | access |to an in|
|00004390| 64 69 76 69 64 75 61 6c | 20 6e 6f 64 65 20 76 69 |dividual| node vi|
|000043a0| 61 20 61 20 70 6f 69 6e | 74 65 72 20 62 6f 75 6e |a a poin|ter boun|
|000043b0| 64 20 74 6f 20 61 20 62 | 61 73 65 20 74 79 70 65 |d to a b|ase type|
|000043c0| 20 70 72 6f 76 69 64 65 | 73 0d 0a 61 20 70 72 6f | provide|s..a pro|
|000043d0| 6a 65 63 74 65 64 20 76 | 69 65 77 20 6f 66 20 74 |jected v|iew of t|
|000043e0| 68 65 20 6e 6f 64 65 20 | 64 61 74 61 20 6f 6e 6c |he node |data onl|
|000043f0| 79 2c 20 61 20 66 61 63 | 69 6c 69 74 79 20 74 6f |y, a fac|ility to|
|00004400| 20 77 69 64 65 6e 20 74 | 68 65 20 76 69 65 77 20 | widen t|he view |
|00004410| 69 73 0d 0a 6e 65 63 65 | 73 73 61 72 79 2e 20 49 |is..nece|ssary. I|
|00004420| 74 20 64 65 70 65 6e 64 | 73 20 6f 6e 20 74 68 65 |t depend|s on the|
|00004430| 20 61 62 69 6c 69 74 79 | 20 74 6f 20 64 65 74 65 | ability| to dete|
|00004440| 72 6d 69 6e 65 20 74 68 | 65 20 61 63 74 75 61 6c |rmine th|e actual|
|00004450| 20 74 79 70 65 20 6f 66 | 20 74 68 65 0d 0a 72 65 | type of| the..re|
|00004460| 66 65 72 65 6e 63 65 64 | 20 6e 6f 64 65 2e 20 54 |ferenced| node. T|
|00004470| 68 69 73 20 69 73 20 61 | 63 68 69 65 76 65 64 20 |his is a|chieved |
|00004480| 62 79 20 61 20 74 79 70 | 65 20 74 65 73 74 2c 20 |by a typ|e test, |
|00004490| 61 20 42 6f 6f 6c 65 61 | 6e 20 65 78 70 72 65 73 |a Boolea|n expres|
|000044a0| 73 69 6f 6e 20 6f 66 0d | 0a 74 68 65 20 66 6f 72 |sion of.|.the for|
|000044b0| 6d 0d 0a 0d 0a 74 20 49 | 53 20 54 27 20 20 28 6f |m....t I|S T' (o|
|000044c0| 72 20 20 20 70 20 49 53 | 20 50 27 29 0d 0a 0d 0a |r p IS| P')....|
|000044d0| 49 66 20 74 68 65 20 74 | 65 73 74 20 69 73 20 61 |If the t|est is a|
|000044e0| 66 66 69 72 6d 61 74 69 | 76 65 2c 20 61 6e 20 61 |ffirmati|ve, an a|
|000044f0| 73 73 69 67 6e 6d 65 6e | 74 20 74 27 20 3a 3d 20 |ssignmen|t t' := |
|00004500| 74 20 28 74 27 20 6f 66 | 20 74 79 70 65 20 54 27 |t (t' of| type T'|
|00004510| 29 20 6f 72 20 70 27 20 | 3a 3d 0d 0a 70 20 28 70 |) or p' |:=..p (p|
|00004520| 27 20 6f 66 20 74 79 70 | 65 20 50 27 29 20 73 68 |' of typ|e P') sh|
|00004530| 6f 75 6c 64 20 62 65 20 | 70 6f 73 73 69 62 6c 65 |ould be |possible|
|00004540| 2e 20 54 68 65 20 73 74 | 61 74 69 63 20 76 69 65 |. The st|atic vie|
|00004550| 77 20 6f 66 20 74 79 70 | 65 73 2c 20 68 6f 77 65 |w of typ|es, howe|
|00004560| 76 65 72 2c 0d 0a 70 72 | 6f 68 69 62 69 74 73 20 |ver,..pr|ohibits |
|00004570| 74 68 69 73 2e 20 4e 6f | 74 65 20 74 68 61 74 20 |this. No|te that |
|00004580| 62 6f 74 68 20 61 73 73 | 69 67 6e 6d 65 6e 74 73 |both ass|ignments|
|00004590| 20 76 69 6f 6c 61 74 65 | 20 74 68 65 20 72 75 6c | violate| the rul|
|000045a0| 65 20 6f 66 20 61 73 73 | 69 67 6e 6d 65 6e 74 0d |e of ass|ignment.|
|000045b0| 0a 63 6f 6d 70 61 74 69 | 62 69 6c 69 74 79 2e 20 |.compati|bility. |
|000045c0| 54 68 65 20 64 65 73 69 | 72 65 64 20 61 73 73 69 |The desi|red assi|
|000045d0| 67 6e 6d 65 6e 74 20 69 | 73 20 6d 61 64 65 20 70 |gnment i|s made p|
|000045e0| 6f 73 73 69 62 6c 65 20 | 62 79 20 70 72 6f 76 69 |ossible |by provi|
|000045f0| 64 69 6e 67 20 61 20 74 | 79 70 65 0d 0a 67 75 61 |ding a t|ype..gua|
|00004600| 72 64 20 6f 66 20 74 68 | 65 20 66 6f 72 6d 0d 0a |rd of th|e form..|
|00004610| 0d 0a 74 27 20 3a 3d 20 | 74 28 54 27 29 20 20 28 |..t' := |t(T') (|
|00004620| 70 27 20 3a 3d 20 70 28 | 50 27 29 29 0d 0a 0d 0a |p' := p(|P'))....|
|00004630| 61 6e 64 20 62 79 20 74 | 68 65 20 73 61 6d 65 20 |and by t|he same |
|00004640| 74 6f 6b 65 6e 20 61 63 | 63 65 73 73 20 74 6f 20 |token ac|cess to |
|00004650| 74 68 65 20 66 69 65 6c | 64 20 7a 20 6f 66 20 61 |the fiel|d z of a|
|00004660| 20 54 30 20 28 73 65 65 | 20 70 72 65 76 69 6f 75 | T0 (see| previou|
|00004670| 73 20 65 78 61 6d 70 6c | 65 73 29 0d 0a 69 73 20 |s exampl|es)..is |
|00004680| 6d 61 64 65 20 70 6f 73 | 73 69 62 6c 65 20 62 79 |made pos|sible by|
|00004690| 20 61 20 74 79 70 65 20 | 67 75 61 72 64 20 69 6e | a type |guard in|
|000046a0| 20 74 68 65 20 64 65 73 | 69 67 6e 61 74 6f 72 20 | the des|ignator |
|000046b0| 20 74 28 54 30 29 2e 7a | 2e 20 48 65 72 65 20 74 | t(T0).z|. Here t|
|000046c0| 68 65 20 67 75 61 72 64 | 0d 0a 61 73 73 65 72 74 |he guard|..assert|
|000046d0| 73 20 74 68 61 74 20 74 | 20 69 73 20 28 63 75 72 |s that t| is (cur|
|000046e0| 72 65 6e 74 6c 79 29 20 | 6f 66 20 74 79 70 65 20 |rently) |of type |
|000046f0| 54 30 2e 20 49 6e 20 61 | 6e 61 6c 6f 67 79 20 74 |T0. In a|nalogy t|
|00004700| 6f 20 61 72 72 61 79 20 | 62 6f 75 6e 64 20 63 68 |o array |bound ch|
|00004710| 65 63 6b 73 0d 0a 61 6e | 64 20 63 61 73 65 20 73 |ecks..an|d case s|
|00004720| 65 6c 65 63 74 6f 72 73 | 2c 20 61 20 66 61 69 6c |electors|, a fail|
|00004730| 69 6e 67 20 67 75 61 72 | 64 20 6c 65 61 64 73 20 |ing guar|d leads |
|00004740| 74 6f 20 70 72 6f 67 72 | 61 6d 20 61 62 6f 72 74 |to progr|am abort|
|00004750| 69 6f 6e 2e 0d 0a 0d 0a | 57 68 65 72 65 61 73 20 |ion.....|Whereas |
|00004760| 61 20 67 75 61 72 64 20 | 6f 66 20 74 68 65 20 66 |a guard |of the f|
|00004770| 6f 72 6d 20 74 28 54 29 | 20 61 73 73 65 72 74 73 |orm t(T)| asserts|
|00004780| 20 74 68 61 74 20 74 20 | 69 73 20 6f 66 20 74 79 | that t |is of ty|
|00004790| 70 65 20 54 20 66 6f 72 | 20 74 68 65 0d 0a 64 65 |pe T for| the..de|
|000047a0| 73 69 67 6e 61 74 6f 72 | 20 28 73 74 61 72 74 69 |signator| (starti|
|000047b0| 6e 67 20 77 69 74 68 29 | 20 74 20 6f 6e 6c 79 2c |ng with)| t only,|
|000047c0| 20 61 20 72 65 67 69 6f | 6e 61 6c 20 74 79 70 65 | a regio|nal type|
|000047d0| 20 67 75 61 72 64 20 6d | 61 69 6e 74 61 69 6e 73 | guard m|aintains|
|000047e0| 20 74 68 65 0d 0a 61 73 | 73 65 72 74 69 6f 6e 20 | the..as|sertion |
|000047f0| 6f 76 65 72 20 61 6e 20 | 65 6e 74 69 72 65 20 73 |over an |entire s|
|00004800| 65 71 75 65 6e 63 65 20 | 6f 66 20 73 74 61 74 65 |equence |of state|
|00004810| 6d 65 6e 74 73 2e 20 49 | 74 20 68 61 73 20 74 68 |ments. I|t has th|
|00004820| 65 20 66 6f 72 6d 0d 0a | 0d 0a 57 49 54 48 20 74 |e form..|..WITH t|
|00004830| 3a 20 54 20 44 4f 20 53 | 74 61 74 65 6d 65 6e 74 |: T DO S|tatement|
|00004840| 53 65 71 75 65 6e 63 65 | 20 45 4e 44 0d 0a 0d 0a |Sequence| END....|
|00004850| 61 6e 64 20 73 70 65 63 | 69 66 69 65 73 20 74 68 |and spec|ifies th|
|00004860| 61 74 20 74 20 69 73 20 | 74 6f 20 62 65 20 72 65 |at t is |to be re|
|00004870| 67 61 72 64 65 64 20 61 | 73 20 6f 66 20 74 79 70 |garded a|s of typ|
|00004880| 65 20 54 20 77 69 74 68 | 69 6e 20 74 68 65 20 65 |e T with|in the e|
|00004890| 6e 74 69 72 65 0d 0a 73 | 74 61 74 65 6d 65 6e 74 |ntire..s|tatement|
|000048a0| 20 73 65 71 75 65 6e 63 | 65 2e 20 54 79 70 69 63 | sequenc|e. Typic|
|000048b0| 61 6c 6c 79 2c 20 54 20 | 69 73 20 61 6e 20 65 78 |ally, T |is an ex|
|000048c0| 74 65 6e 73 69 6f 6e 20 | 6f 66 20 74 68 65 20 64 |tension |of the d|
|000048d0| 65 63 6c 61 72 65 64 20 | 74 79 70 65 20 6f 66 20 |eclared |type of |
|000048e0| 74 2e 0d 0a 4e 6f 74 65 | 20 74 68 61 74 20 61 73 |t...Note| that as|
|000048f0| 73 69 67 6e 6d 65 6e 74 | 73 20 74 6f 20 74 20 77 |signment|s to t w|
|00004900| 69 74 68 69 6e 20 74 68 | 65 20 72 65 67 69 6f 6e |ithin th|e region|
|00004910| 20 74 68 65 72 65 66 6f | 72 65 20 72 65 71 75 69 | therefo|re requi|
|00004920| 72 65 20 74 68 65 20 61 | 73 73 69 67 6e 65 64 0d |re the a|ssigned.|
|00004930| 0a 76 61 6c 75 65 20 74 | 6f 20 62 65 20 28 61 6e |.value t|o be (an|
|00004940| 20 65 78 74 65 6e 73 69 | 6f 6e 29 20 6f 66 20 74 | extensi|on) of t|
|00004950| 79 70 65 20 54 2e 20 54 | 68 65 20 72 65 67 69 6f |ype T. T|he regio|
|00004960| 6e 61 6c 20 67 75 61 72 | 64 20 73 65 72 76 65 73 |nal guar|d serves|
|00004970| 20 74 6f 20 72 65 64 75 | 63 65 0d 0a 74 68 65 20 | to redu|ce..the |
|00004980| 6e 75 6d 62 65 72 20 6f | 66 20 67 75 61 72 64 20 |number o|f guard |
|00004990| 65 76 61 6c 75 61 74 69 | 6f 6e 73 2e 0d 0a 0d 0a |evaluati|ons.....|
|000049a0| 41 73 20 61 6e 20 65 78 | 61 6d 70 6c 65 20 6f 66 |As an ex|ample of|
|000049b0| 20 74 68 65 20 75 73 65 | 20 6f 66 20 74 79 70 65 | the use| of type|
|000049c0| 20 74 65 73 74 73 20 61 | 6e 64 20 67 75 61 72 64 | tests a|nd guard|
|000049d0| 73 2c 20 63 6f 6e 73 69 | 64 65 72 20 74 68 65 20 |s, consi|der the |
|000049e0| 66 6f 6c 6c 6f 77 69 6e | 67 0d 0a 74 79 70 65 73 |followin|g..types|
|000049f0| 20 4e 6f 64 65 20 61 6e | 64 20 4f 62 6a 65 63 74 | Node an|d Object|
|00004a00| 20 64 65 66 69 6e 65 64 | 20 69 6e 20 61 20 6d 6f | defined| in a mo|
|00004a10| 64 75 6c 65 20 4d 3a 0d | 0a 0d 0a 54 59 50 45 20 |dule M:.|...TYPE |
|00004a20| 20 4e 6f 64 65 20 3d 20 | 20 50 4f 49 4e 54 45 52 | Node = | POINTER|
|00004a30| 20 54 4f 20 4f 62 6a 65 | 63 74 3b 0d 0a 20 20 4f | TO Obje|ct;.. O|
|00004a40| 62 6a 65 63 74 20 3d 20 | 20 52 45 43 4f 52 44 20 |bject = | RECORD |
|00004a50| 6b 65 79 2c 20 78 2c 20 | 79 3a 20 49 4e 54 45 47 |key, x, |y: INTEG|
|00004a60| 45 52 3b 0d 0a 09 20 6c | 65 66 74 2c 20 72 69 67 |ER;... l|eft, rig|
|00004a70| 68 74 3a 20 4e 6f 64 65 | 0d 0a 20 20 20 20 45 4e |ht: Node|.. EN|
|00004a80| 44 0d 0a 0d 0a 45 6c 65 | 6d 65 6e 74 73 20 69 6e |D....Ele|ments in|
|00004a90| 20 61 20 74 72 65 65 20 | 73 74 72 75 63 74 75 72 | a tree |structur|
|00004aa0| 65 20 61 6e 63 68 6f 72 | 65 64 20 69 6e 20 61 20 |e anchor|ed in a |
|00004ab0| 76 61 72 69 61 62 6c 65 | 20 63 61 6c 6c 65 64 20 |variable| called |
|00004ac0| 72 6f 6f 74 20 28 6f 66 | 20 74 79 70 65 0d 0a 4e |root (of| type..N|
|00004ad0| 6f 64 65 29 20 61 72 65 | 20 73 65 61 72 63 68 65 |ode) are| searche|
|00004ae0| 64 20 62 79 20 74 68 65 | 20 70 72 6f 63 65 64 75 |d by the| procedu|
|00004af0| 72 65 20 20 65 6c 65 6d | 65 6e 74 20 20 64 65 66 |re elem|ent def|
|00004b00| 69 6e 65 64 20 69 6e 20 | 4d 2e 0d 0a 0d 0a 50 52 |ined in |M.....PR|
|00004b10| 4f 43 45 44 55 52 45 20 | 65 6c 65 6d 65 6e 74 28 |OCEDURE |element(|
|00004b20| 6b 3a 20 49 4e 54 45 47 | 45 52 29 3a 20 4e 6f 64 |k: INTEG|ER): Nod|
|00004b30| 65 3b 0d 0a 20 20 56 41 | 52 20 70 3a 20 4e 6f 64 |e;.. VA|R p: Nod|
|00004b40| 65 3b 0d 0a 42 45 47 49 | 4e 20 70 20 3a 3d 20 72 |e;..BEGI|N p := r|
|00004b50| 6f 6f 74 3b 0d 0a 20 20 | 57 48 49 4c 45 20 28 70 |oot;.. |WHILE (p|
|00004b60| 20 23 20 4e 49 4c 29 20 | 26 20 28 70 2e 6b 65 79 | # NIL) |& (p.key|
|00004b70| 20 23 20 6b 29 20 44 4f | 0d 0a 20 20 20 20 49 46 | # k) DO|.. IF|
|00004b80| 20 70 2e 6b 65 79 20 3c | 20 6b 20 54 48 45 4e 20 | p.key <| k THEN |
|00004b90| 70 20 3a 3d 20 70 2e 6c | 65 66 74 20 45 4c 53 45 |p := p.l|eft ELSE|
|00004ba0| 20 70 20 3a 3d 20 70 2e | 72 69 67 68 74 20 45 4e | p := p.|right EN|
|00004bb0| 44 0d 0a 20 20 45 4e 44 | 20 3b 0d 0a 20 20 52 45 |D.. END| ;.. RE|
|00004bc0| 54 55 52 4e 20 70 0d 0a | 45 4e 44 20 65 6c 65 6d |TURN p..|END elem|
|00004bd0| 65 6e 74 0d 0a 0d 0a 4c | 65 74 20 65 78 74 65 6e |ent....L|et exten|
|00004be0| 73 69 6f 6e 73 20 6f 66 | 20 74 68 65 20 74 79 70 |sions of| the typ|
|00004bf0| 65 20 4f 62 6a 65 63 74 | 20 62 65 20 64 65 66 69 |e Object| be defi|
|00004c00| 6e 65 64 20 28 74 6f 67 | 65 74 68 65 72 20 77 69 |ned (tog|ether wi|
|00004c10| 74 68 20 74 68 65 69 72 | 20 70 6f 69 6e 74 65 72 |th their| pointer|
|00004c20| 0d 0a 74 79 70 65 73 29 | 20 69 6e 20 61 20 6d 6f |..types)| in a mo|
|00004c30| 64 75 6c 65 20 4d 31 20 | 77 68 69 63 68 20 69 73 |dule M1 |which is|
|00004c40| 20 61 20 63 6c 69 65 6e | 74 20 6f 66 20 4d 3a 0d | a clien|t of M:.|
|00004c50| 0a 0d 0a 54 59 50 45 20 | 20 52 65 63 74 61 6e 67 |...TYPE | Rectang|
|00004c60| 6c 65 20 3d 20 20 50 4f | 49 4e 54 45 52 20 54 4f |le = PO|INTER TO|
|00004c70| 20 52 65 63 74 4f 62 6a | 65 63 74 3b 0d 0a 20 20 | RectObj|ect;.. |
|00004c80| 52 65 63 74 4f 62 6a 65 | 63 74 20 3d 09 52 45 43 |RectObje|ct =.REC|
|00004c90| 4f 52 44 20 28 4f 62 6a | 65 63 74 29 20 77 2c 20 |ORD (Obj|ect) w, |
|00004ca0| 68 3a 20 52 45 41 4c 20 | 45 4e 44 20 3b 0d 0a 20 |h: REAL |END ;.. |
|00004cb0| 20 43 69 72 63 6c 65 20 | 3d 20 20 50 4f 49 4e 54 | Circle |= POINT|
|00004cc0| 45 52 20 54 4f 20 43 69 | 72 63 6c 65 4f 62 6a 65 |ER TO Ci|rcleObje|
|00004cd0| 63 74 3b 0d 0a 20 20 43 | 69 72 63 6c 65 4f 62 6a |ct;.. C|ircleObj|
|00004ce0| 65 63 74 20 3d 20 20 52 | 45 43 4f 52 44 20 28 4f |ect = R|ECORD (O|
|00004cf0| 62 6a 65 63 74 29 20 72 | 61 64 3a 20 52 45 41 4c |bject) r|ad: REAL|
|00004d00| 3b 20 73 68 61 64 65 64 | 3a 20 42 4f 4f 4c 45 41 |; shaded|: BOOLEA|
|00004d10| 4e 20 45 4e 44 0d 0a 0d | 0a 41 66 74 65 72 20 74 |N END...|.After t|
|00004d20| 68 65 20 73 65 61 72 63 | 68 20 6f 66 20 61 6e 20 |he searc|h of an |
|00004d30| 65 6c 65 6d 65 6e 74 2c | 20 74 68 65 20 74 79 70 |element,| the typ|
|00004d40| 65 20 74 65 73 74 20 69 | 73 20 75 73 65 64 20 74 |e test i|s used t|
|00004d50| 6f 20 64 69 73 63 72 69 | 6d 69 6e 61 74 65 0d 0a |o discri|minate..|
|00004d60| 62 65 74 77 65 65 6e 20 | 74 68 65 20 64 69 66 66 |between |the diff|
|00004d70| 65 72 65 6e 74 20 65 78 | 74 65 6e 73 69 6f 6e 73 |erent ex|tensions|
|00004d80| 2c 20 61 6e 64 20 74 68 | 65 20 74 79 70 65 20 67 |, and th|e type g|
|00004d90| 75 61 72 64 20 74 6f 20 | 61 63 63 65 73 73 20 65 |uard to |access e|
|00004da0| 78 74 65 6e 73 69 6f 6e | 0d 0a 66 69 65 6c 64 73 |xtension|..fields|
|00004db0| 2e 20 46 6f 72 20 65 78 | 61 6d 70 6c 65 3a 0d 0a |. For ex|ample:..|
|00004dc0| 0d 0a 70 20 3a 3d 20 4d | 2e 65 6c 65 6d 65 6e 74 |..p := M|.element|
|00004dd0| 28 4b 29 3b 0d 0a 49 46 | 20 70 20 23 20 4e 49 4c |(K);..IF| p # NIL|
|00004de0| 20 54 48 45 4e 0d 0a 20 | 20 49 46 20 70 20 49 53 | THEN.. | IF p IS|
|00004df0| 20 52 65 63 74 61 6e 67 | 6c 65 20 54 48 45 4e 20 | Rectang|le THEN |
|00004e00| 20 2e 2e 2e 20 20 70 28 | 52 65 63 74 61 6e 67 6c | ... p(|Rectangl|
|00004e10| 65 29 2e 77 20 20 2e 2e | 2e 0d 0a 20 20 45 4c 53 |e).w ..|... ELS|
|00004e20| 49 46 20 28 70 20 49 53 | 20 43 69 72 63 6c 65 29 |IF (p IS| Circle)|
|00004e30| 20 26 20 7e 70 28 43 69 | 72 63 6c 65 29 2e 73 68 | & ~p(Ci|rcle).sh|
|00004e40| 61 64 65 64 20 54 48 45 | 4e 20 20 2e 2e 2e 20 20 |aded THE|N ... |
|00004e50| 70 28 43 69 72 63 6c 65 | 29 2e 72 61 64 20 20 2e |p(Circle|).rad .|
|00004e60| 2e 2e 0d 0a 20 20 45 4c | 53 49 46 20 20 2e 2e 2e |.... EL|SIF ...|
|00004e70| 0d 0a 0d 0a 54 68 65 20 | 65 78 74 65 6e 73 69 62 |....The |extensib|
|00004e80| 69 6c 69 74 79 20 6f 66 | 20 61 20 73 79 73 74 65 |ility of| a syste|
|00004e90| 6d 20 72 65 73 74 73 20 | 75 70 6f 6e 20 74 68 65 |m rests |upon the|
|00004ea0| 20 70 72 65 6d 69 73 65 | 20 74 68 61 74 20 6e 65 | premise| that ne|
|00004eb0| 77 20 6d 6f 64 75 6c 65 | 73 0d 0a 64 65 66 69 6e |w module|s..defin|
|00004ec0| 69 6e 67 20 6e 65 77 20 | 65 78 74 65 6e 73 69 6f |ing new |extensio|
|00004ed0| 6e 73 20 6d 61 79 20 62 | 65 20 61 64 64 65 64 20 |ns may b|e added |
|00004ee0| 77 69 74 68 6f 75 74 20 | 72 65 71 75 69 72 69 6e |without |requirin|
|00004ef0| 67 20 61 64 61 70 74 61 | 74 69 6f 6e 73 20 6e 6f |g adapta|tions no|
|00004f00| 72 20 65 76 65 6e 0d 0a | 72 65 63 6f 6d 70 69 6c |r even..|recompil|
|00004f10| 61 74 69 6f 6e 20 6f 66 | 20 74 68 65 20 65 78 69 |ation of| the exi|
|00004f20| 73 74 69 6e 67 20 70 61 | 72 74 73 2c 20 61 6c 74 |sting pa|rts, alt|
|00004f30| 68 6f 75 67 68 20 63 6f | 6d 70 6f 6e 65 6e 74 73 |hough co|mponents|
|00004f40| 20 6f 66 20 74 68 65 20 | 6e 65 77 20 74 79 70 65 | of the |new type|
|00004f50| 73 0d 0a 61 72 65 20 69 | 6e 63 6c 75 64 65 64 20 |s..are i|ncluded |
|00004f60| 69 6e 20 61 6c 72 65 61 | 64 79 20 65 78 69 73 74 |in alrea|dy exist|
|00004f70| 69 6e 67 20 64 61 74 61 | 20 73 74 72 75 63 74 75 |ing data| structu|
|00004f80| 72 65 73 2e 0d 0a 0d 0a | 54 68 65 20 74 79 70 65 |res.....|The type|
|00004f90| 20 65 78 74 65 6e 73 69 | 6f 6e 20 66 61 63 69 6c | extensi|on facil|
|00004fa0| 69 74 79 20 6e 6f 74 20 | 6f 6e 6c 79 20 72 65 70 |ity not |only rep|
|00004fb0| 6c 61 63 65 73 20 4d 6f | 64 75 6c 61 27 73 20 76 |laces Mo|dula's v|
|00004fc0| 61 72 69 61 6e 74 20 72 | 65 63 6f 72 64 73 2c 20 |ariant r|ecords, |
|00004fd0| 62 75 74 0d 0a 72 65 70 | 72 65 73 65 6e 74 73 20 |but..rep|resents |
|00004fe0| 61 20 74 79 70 65 2d 73 | 61 66 65 20 61 6c 74 65 |a type-s|afe alte|
|00004ff0| 72 6e 61 74 69 76 65 2e | 20 45 71 75 61 6c 6c 79 |rnative.| Equally|
|00005000| 20 69 6d 70 6f 72 74 61 | 6e 74 20 69 73 20 69 74 | importa|nt is it|
|00005010| 73 20 65 66 66 65 63 74 | 20 6f 66 0d 0a 72 65 6c |s effect| of..rel|
|00005020| 61 74 69 6e 67 20 74 79 | 70 65 73 20 69 6e 20 61 |ating ty|pes in a|
|00005030| 20 74 79 70 65 20 68 69 | 65 72 61 72 63 68 79 2e | type hi|erarchy.|
|00005040| 20 57 65 20 63 6f 6d 70 | 61 72 65 2c 20 66 6f 72 | We comp|are, for|
|00005050| 20 65 78 61 6d 70 6c 65 | 2c 20 74 68 65 20 4d 6f | example|, the Mo|
|00005060| 64 75 6c 61 0d 0a 74 79 | 70 65 73 0d 0a 0d 0a 54 |dula..ty|pes....T|
|00005070| 30 27 20 20 3d 20 20 52 | 45 43 4f 52 44 20 74 3a |0' = R|ECORD t:|
|00005080| 20 54 3b 20 20 7a 3a 20 | 52 45 41 4c 20 45 4e 44 | T; z: |REAL END|
|00005090| 20 3b 0d 0a 54 31 27 20 | 20 3d 20 20 52 45 43 4f | ;..T1' | = RECO|
|000050a0| 52 44 20 74 3a 20 54 3b | 20 20 77 3a 20 4c 4f 4e |RD t: T;| w: LON|
|000050b0| 47 52 45 41 4c 20 45 4e | 44 0d 0a 0d 0a 77 68 69 |GREAL EN|D....whi|
|000050c0| 63 68 20 72 65 66 65 72 | 20 74 6f 20 74 68 65 20 |ch refer| to the |
|000050d0| 64 65 66 69 6e 69 74 69 | 6f 6e 20 6f 66 20 54 20 |definiti|on of T |
|000050e0| 67 69 76 65 6e 20 61 62 | 6f 76 65 2c 20 77 69 74 |given ab|ove, wit|
|000050f0| 68 20 74 68 65 20 65 78 | 74 65 6e 64 65 64 20 4f |h the ex|tended O|
|00005100| 62 65 72 6f 6e 0d 0a 74 | 79 70 65 73 20 54 30 20 |beron..t|ypes T0 |
|00005110| 61 6e 64 20 54 31 20 64 | 65 66 69 6e 65 64 20 61 |and T1 d|efined a|
|00005120| 62 6f 76 65 2e 20 46 69 | 72 73 74 2c 20 74 68 65 |bove. Fi|rst, the|
|00005130| 20 4f 62 65 72 6f 6e 20 | 74 79 70 65 73 20 72 65 | Oberon |types re|
|00005140| 66 72 61 69 6e 20 66 72 | 6f 6d 0d 0a 69 6e 74 72 |frain fr|om..intr|
|00005150| 6f 64 75 63 69 6e 67 20 | 61 20 6e 65 77 20 6e 61 |oducing |a new na|
|00005160| 6d 69 6e 67 20 73 63 6f | 70 65 2e 20 47 69 76 65 |ming sco|pe. Give|
|00005170| 6e 20 61 20 76 61 72 69 | 61 62 6c 65 20 72 30 20 |n a vari|able r0 |
|00005180| 6f 66 20 74 79 70 65 20 | 54 30 2c 20 77 65 20 77 |of type |T0, we w|
|00005190| 72 69 74 65 0d 0a 72 30 | 2e 78 20 69 6e 73 74 65 |rite..r0|.x inste|
|000051a0| 61 64 20 6f 66 20 72 30 | 2e 74 2e 78 20 61 73 20 |ad of r0|.t.x as |
|000051b0| 69 6e 20 4d 6f 64 75 6c | 61 2e 20 53 65 63 6f 6e |in Modul|a. Secon|
|000051c0| 64 2c 20 74 68 65 20 74 | 79 70 65 73 20 54 2c 20 |d, the t|ypes T, |
|000051d0| 54 30 27 2c 20 61 6e 64 | 20 54 31 27 20 61 72 65 |T0', and| T1' are|
|000051e0| 0d 0a 64 69 73 74 69 6e | 63 74 20 61 6e 64 20 75 |..distin|ct and u|
|000051f0| 6e 72 65 6c 61 74 65 64 | 2e 20 49 6e 20 63 6f 6e |nrelated|. In con|
|00005200| 74 72 61 73 74 2c 20 54 | 30 20 61 6e 64 20 54 31 |trast, T|0 and T1|
|00005210| 20 61 72 65 20 72 65 6c | 61 74 65 64 20 74 6f 20 | are rel|ated to |
|00005220| 54 20 61 73 0d 0a 65 78 | 74 65 6e 73 69 6f 6e 73 |T as..ex|tensions|
|00005230| 2e 20 54 68 69 73 20 62 | 65 63 6f 6d 65 73 20 6d |. This b|ecomes m|
|00005240| 61 6e 69 66 65 73 74 20 | 74 68 72 6f 75 67 68 20 |anifest |through |
|00005250| 74 68 65 20 74 79 70 65 | 20 74 65 73 74 2c 20 77 |the type| test, w|
|00005260| 68 69 63 68 20 61 73 73 | 65 72 74 73 20 74 68 61 |hich ass|erts tha|
|00005270| 74 0d 0a 76 61 72 69 61 | 62 6c 65 20 72 30 20 69 |t..varia|ble r0 i|
|00005280| 73 20 6e 6f 74 20 6f 6e | 6c 79 20 6f 66 20 74 79 |s not on|ly of ty|
|00005290| 70 65 20 54 30 2c 20 62 | 75 74 20 61 6c 73 6f 20 |pe T0, b|ut also |
|000052a0| 6f 66 20 62 61 73 65 20 | 74 79 70 65 20 54 2e 0d |of base |type T..|
|000052b0| 0a 0d 0a 54 68 65 20 64 | 65 63 6c 61 72 61 74 69 |...The d|eclarati|
|000052c0| 6f 6e 20 6f 66 20 65 78 | 74 65 6e 64 65 64 20 72 |on of ex|tended r|
|000052d0| 65 63 6f 72 64 20 74 79 | 70 65 73 2c 20 74 68 65 |ecord ty|pes, the|
|000052e0| 20 74 79 70 65 20 74 65 | 73 74 2c 20 61 6e 64 20 | type te|st, and |
|000052f0| 74 68 65 20 74 79 70 65 | 20 67 75 61 72 64 0d 0a |the type| guard..|
|00005300| 61 72 65 20 74 68 65 20 | 6f 6e 6c 79 20 61 64 64 |are the |only add|
|00005310| 69 74 69 6f 6e 61 6c 20 | 66 65 61 74 75 72 65 73 |itional |features|
|00005320| 20 69 6e 74 72 6f 64 75 | 63 65 64 20 69 6e 20 74 | introdu|ced in t|
|00005330| 68 69 73 20 63 6f 6e 74 | 65 78 74 2e 20 41 20 6d |his cont|ext. A m|
|00005340| 6f 72 65 0d 0a 65 78 74 | 65 6e 73 69 76 65 20 64 |ore..ext|ensive d|
|00005350| 69 73 63 75 73 73 69 6f | 6e 20 69 73 20 70 72 6f |iscussio|n is pro|
|00005360| 76 69 64 65 64 20 69 6e | 20 5b 32 5d 2e 20 54 68 |vided in| [2]. Th|
|00005370| 65 20 63 6f 6e 63 65 70 | 74 20 69 73 20 76 65 72 |e concep|t is ver|
|00005380| 79 20 73 69 6d 69 6c 61 | 72 20 74 6f 20 74 68 65 |y simila|r to the|
|00005390| 0d 0a 63 6c 61 73 73 20 | 6e 6f 74 69 6f 6e 20 6f |..class |notion o|
|000053a0| 66 20 53 69 6d 75 6c 61 | 20 36 37 20 5b 33 5d 2c |f Simula| 67 [3],|
|000053b0| 20 53 6d 61 6c 6c 74 61 | 6c 6b 20 5b 34 5d 2c 20 | Smallta|lk [4], |
|000053c0| 4f 62 6a 65 63 74 20 50 | 61 73 63 61 6c 20 5b 35 |Object P|ascal [5|
|000053d0| 5d 2c 20 43 2b 2b 20 5b | 36 5d 2c 0d 0a 61 6e 64 |], C++ [|6],..and|
|000053e0| 20 6f 74 68 65 72 73 2c | 20 77 68 65 72 65 20 74 | others,| where t|
|000053f0| 68 65 20 70 72 6f 70 65 | 72 74 69 65 73 20 6f 66 |he prope|rties of|
|00005400| 20 74 68 65 20 62 61 73 | 65 20 63 6c 61 73 73 20 | the bas|e class |
|00005410| 61 72 65 20 73 61 69 64 | 20 74 6f 20 62 65 20 69 |are said| to be i|
|00005420| 6e 68 65 72 69 74 65 64 | 0d 0a 62 79 20 74 68 65 |nherited|..by the|
|00005430| 20 64 65 72 69 76 65 64 | 20 63 6c 61 73 73 65 73 | derived| classes|
|00005440| 2e 20 54 68 65 20 63 6c | 61 73 73 20 66 61 63 69 |. The cl|ass faci|
|00005450| 6c 69 74 79 20 73 74 69 | 70 75 6c 61 74 65 73 20 |lity sti|pulates |
|00005460| 74 68 61 74 20 61 6c 6c | 20 70 72 6f 63 65 64 75 |that all| procedu|
|00005470| 72 65 73 0d 0a 61 70 70 | 6c 69 63 61 62 6c 65 20 |res..app|licable |
|00005480| 74 6f 20 6f 62 6a 65 63 | 74 73 20 6f 66 20 74 68 |to objec|ts of th|
|00005490| 65 20 63 6c 61 73 73 20 | 62 65 20 64 65 66 69 6e |e class |be defin|
|000054a0| 65 64 20 74 6f 67 65 74 | 68 65 72 20 77 69 74 68 |ed toget|her with|
|000054b0| 20 74 68 65 20 64 61 74 | 61 0d 0a 64 65 66 69 6e | the dat|a..defin|
|000054c0| 69 74 69 6f 6e 2e 20 54 | 68 69 73 20 64 6f 67 6d |ition. T|his dogm|
|000054d0| 61 20 73 74 65 6d 73 20 | 66 72 6f 6d 20 74 68 65 |a stems |from the|
|000054e0| 20 6e 6f 74 69 6f 6e 20 | 6f 66 20 61 62 73 74 72 | notion |of abstr|
|000054f0| 61 63 74 20 64 61 74 61 | 20 74 79 70 65 2c 20 62 |act data| type, b|
|00005500| 75 74 20 69 74 0d 0a 69 | 73 20 61 20 73 65 72 69 |ut it..i|s a seri|
|00005510| 6f 75 73 20 6f 62 73 74 | 61 63 6c 65 20 69 6e 20 |ous obst|acle in |
|00005520| 74 68 65 20 64 65 76 65 | 6c 6f 70 6d 65 6e 74 20 |the deve|lopment |
|00005530| 6f 66 20 6c 61 72 67 65 | 20 73 79 73 74 65 6d 73 |of large| systems|
|00005540| 2c 20 77 68 65 72 65 20 | 74 68 65 0d 0a 70 6f 73 |, where |the..pos|
|00005550| 73 69 62 69 6c 69 74 79 | 20 74 6f 20 61 64 64 20 |sibility| to add |
|00005560| 66 75 72 74 68 65 72 20 | 70 72 6f 63 65 64 75 72 |further |procedur|
|00005570| 65 73 20 64 65 66 69 6e | 65 64 20 69 6e 20 61 64 |es defin|ed in ad|
|00005580| 64 69 74 69 6f 6e 61 6c | 20 6d 6f 64 75 6c 65 73 |ditional| modules|
|00005590| 20 69 73 0d 0a 68 69 67 | 68 6c 79 20 64 65 73 69 | is..hig|hly desi|
|000055a0| 72 61 62 6c 65 2e 20 49 | 74 20 69 73 20 61 77 6b |rable. I|t is awk|
|000055b0| 77 61 72 64 20 74 6f 20 | 62 65 20 6f 62 6c 69 67 |ward to |be oblig|
|000055c0| 65 64 20 74 6f 20 72 65 | 64 65 66 69 6e 65 20 61 |ed to re|define a|
|000055d0| 20 63 6c 61 73 73 20 73 | 6f 6c 65 6c 79 0d 0a 62 | class s|olely..b|
|000055e0| 65 63 61 75 73 65 20 61 | 20 6d 65 74 68 6f 64 20 |ecause a| method |
|000055f0| 28 70 72 6f 63 65 64 75 | 72 65 29 20 68 61 73 20 |(procedu|re) has |
|00005600| 62 65 65 6e 20 61 64 64 | 65 64 20 6f 72 20 63 68 |been add|ed or ch|
|00005610| 61 6e 67 65 64 2c 20 70 | 61 72 74 69 63 75 6c 61 |anged, p|articula|
|00005620| 72 6c 79 20 77 68 65 6e | 0d 0a 74 68 69 73 20 63 |rly when|..this c|
|00005630| 68 61 6e 67 65 20 72 65 | 71 75 69 72 65 73 20 61 |hange re|quires a|
|00005640| 20 72 65 63 6f 6d 70 69 | 6c 61 74 69 6f 6e 20 6f | recompi|lation o|
|00005650| 66 20 74 68 65 20 63 6c | 61 73 73 20 64 65 66 69 |f the cl|ass defi|
|00005660| 6e 69 74 69 6f 6e 20 61 | 6e 64 20 6f 66 20 61 6c |nition a|nd of al|
|00005670| 6c 20 69 74 73 0d 0a 63 | 6c 69 65 6e 74 20 6d 6f |l its..c|lient mo|
|00005680| 64 75 6c 65 73 2e 0d 0a | 0d 0a 57 65 20 65 6d 70 |dules...|..We emp|
|00005690| 68 61 73 69 73 65 20 74 | 68 61 74 20 74 68 65 20 |hasise t|hat the |
|000056a0| 74 79 70 65 20 65 78 74 | 65 6e 73 69 6f 6e 20 66 |type ext|ension f|
|000056b0| 61 63 69 6c 69 74 79 20 | 2d 20 61 6c 74 68 6f 75 |acility |- althou|
|000056c0| 67 68 20 67 61 69 6e 69 | 6e 67 20 69 74 73 20 6d |gh gaini|ng its m|
|000056d0| 61 6a 6f 72 0d 0a 72 6f | 6c 65 20 69 6e 20 63 6f |ajor..ro|le in co|
|000056e0| 6e 6e 65 63 74 69 6f 6e | 20 77 69 74 68 20 70 6f |nnection| with po|
|000056f0| 69 6e 74 65 72 73 20 74 | 6f 20 62 75 69 6c 64 20 |inters t|o build |
|00005700| 68 65 74 65 72 6f 67 65 | 6e 65 6f 75 73 2c 20 64 |heteroge|neous, d|
|00005710| 79 6e 61 6d 69 63 20 64 | 61 74 61 0d 0a 73 74 72 |ynamic d|ata..str|
|00005720| 75 63 74 75 72 65 73 20 | 61 73 20 73 68 6f 77 6e |uctures |as shown|
|00005730| 20 69 6e 20 74 68 65 20 | 65 78 61 6d 70 6c 65 20 | in the |example |
|00005740| 61 62 6f 76 65 20 2d 20 | 61 6c 73 6f 20 61 70 70 |above - |also app|
|00005750| 6c 69 65 73 20 74 6f 20 | 73 74 61 74 69 63 61 6c |lies to |statical|
|00005760| 6c 79 0d 0a 64 65 63 6c | 61 72 65 64 20 6f 62 6a |ly..decl|ared obj|
|00005770| 65 63 74 73 20 75 73 65 | 64 20 61 73 20 76 61 72 |ects use|d as var|
|00005780| 69 61 62 6c 65 20 70 61 | 72 61 6d 65 74 65 72 73 |iable pa|rameters|
|00005790| 2e 20 53 75 63 68 20 6f | 62 6a 65 63 74 73 20 61 |. Such o|bjects a|
|000057a0| 72 65 20 61 6c 6c 6f 63 | 61 74 65 64 20 69 6e 0d |re alloc|ated in.|
|000057b0| 0a 61 20 77 6f 72 6b 73 | 70 61 63 65 20 6f 72 67 |.a works|pace org|
|000057c0| 61 6e 69 7a 65 64 20 61 | 73 20 61 20 73 74 61 63 |anized a|s a stac|
|000057d0| 6b 20 6f 66 20 70 72 6f | 63 65 64 75 72 65 20 61 |k of pro|cedure a|
|000057e0| 63 74 69 76 61 74 69 6f | 6e 20 72 65 63 6f 72 64 |ctivatio|n record|
|000057f0| 73 2c 20 61 6e 64 0d 0a | 74 68 65 72 65 66 6f 72 |s, and..|therefor|
|00005800| 65 20 74 61 6b 65 20 61 | 64 76 61 6e 74 61 67 65 |e take a|dvantage|
|00005810| 20 6f 66 20 61 6e 20 65 | 78 74 72 65 6d 65 6c 79 | of an e|xtremely|
|00005820| 20 65 66 66 69 63 69 65 | 6e 74 20 61 6c 6c 6f 63 | efficie|nt alloc|
|00005830| 61 74 69 6f 6e 20 61 6e | 64 0d 0a 64 65 61 6c 6c |ation an|d..deall|
|00005840| 6f 63 61 74 69 6f 6e 20 | 73 63 68 65 6d 65 2e 0d |ocation |scheme..|
|00005850| 0a 0d 0a 49 6e 20 4f 62 | 65 72 6f 6e 2c 20 70 72 |...In Ob|eron, pr|
|00005860| 6f 63 65 64 75 72 65 20 | 74 79 70 65 73 20 72 61 |ocedure |types ra|
|00005870| 74 68 65 72 20 74 68 61 | 6e 20 70 72 6f 63 65 64 |ther tha|n proced|
|00005880| 75 72 65 73 20 28 6d 65 | 74 68 6f 64 73 29 20 61 |ures (me|thods) a|
|00005890| 72 65 20 63 6f 6e 6e 65 | 63 74 65 64 0d 0a 77 69 |re conne|cted..wi|
|000058a0| 74 68 20 6f 62 6a 65 63 | 74 73 20 69 6e 20 74 68 |th objec|ts in th|
|000058b0| 65 20 70 72 6f 67 72 61 | 6d 20 74 65 78 74 2e 20 |e progra|m text. |
|000058c0| 54 68 65 20 62 69 6e 64 | 69 6e 67 20 6f 66 20 61 |The bind|ing of a|
|000058d0| 63 74 75 61 6c 20 6d 65 | 74 68 6f 64 73 20 28 73 |ctual me|thods (s|
|000058e0| 70 65 63 69 66 69 63 0d | 0a 70 72 6f 63 65 64 75 |pecific.|.procedu|
|000058f0| 72 65 73 29 20 74 6f 20 | 6f 62 6a 65 63 74 73 20 |res) to |objects |
|00005900| 28 69 6e 73 74 61 6e 63 | 65 73 29 20 69 73 20 64 |(instanc|es) is d|
|00005910| 65 6c 61 79 65 64 20 75 | 6e 74 69 6c 20 74 68 65 |elayed u|ntil the|
|00005920| 20 70 72 6f 67 72 61 6d | 20 69 73 0d 0a 65 78 65 | program| is..exe|
|00005930| 63 75 74 65 64 2e 20 54 | 68 65 20 61 73 73 6f 63 |cuted. T|he assoc|
|00005940| 69 61 74 69 6f 6e 20 6f | 66 20 61 20 70 72 6f 63 |iation o|f a proc|
|00005950| 65 64 75 72 65 20 74 79 | 70 65 20 77 69 74 68 20 |edure ty|pe with |
|00005960| 61 20 64 61 74 61 20 74 | 79 70 65 20 6f 63 63 75 |a data t|ype occu|
|00005970| 72 73 0d 0a 74 68 72 6f | 75 67 68 20 74 68 65 20 |rs..thro|ugh the |
|00005980| 64 65 63 6c 61 72 61 74 | 69 6f 6e 20 6f 66 20 61 |declarat|ion of a|
|00005990| 20 72 65 63 6f 72 64 20 | 66 69 65 6c 64 2e 20 54 | record |field. T|
|000059a0| 68 69 73 20 66 69 65 6c | 64 20 69 73 20 67 69 76 |his fiel|d is giv|
|000059b0| 65 6e 20 61 20 70 72 6f | 63 65 64 75 72 65 0d 0a |en a pro|cedure..|
|000059c0| 74 79 70 65 2e 20 54 68 | 65 20 61 73 73 6f 63 69 |type. Th|e associ|
|000059d0| 61 74 69 6f 6e 20 6f 66 | 20 61 20 6d 65 74 68 6f |ation of| a metho|
|000059e0| 64 20 2d 20 74 6f 20 75 | 73 65 20 53 6d 61 6c 6c |d - to u|se Small|
|000059f0| 74 61 6c 6b 20 74 65 72 | 6d 69 6e 6f 6c 6f 67 79 |talk ter|minology|
|00005a00| 20 2d 20 77 69 74 68 20 | 61 6e 0d 0a 6f 62 6a 65 | - with |an..obje|
|00005a10| 63 74 20 6f 63 63 75 72 | 73 20 74 68 72 6f 75 67 |ct occur|s throug|
|00005a20| 68 20 74 68 65 20 61 73 | 73 69 67 6e 6d 65 6e 74 |h the as|signment|
|00005a30| 20 6f 66 20 61 20 73 70 | 65 63 69 66 69 63 20 70 | of a sp|ecific p|
|00005a40| 72 6f 63 65 64 75 72 65 | 20 61 73 20 76 61 6c 75 |rocedure| as valu|
|00005a50| 65 20 74 6f 0d 0a 74 68 | 65 20 66 69 65 6c 64 2c |e to..th|e field,|
|00005a60| 20 61 6e 64 20 6e 6f 74 | 20 74 68 72 6f 75 67 68 | and not| through|
|00005a70| 20 61 20 73 74 61 74 69 | 63 20 64 65 63 6c 61 72 | a stati|c declar|
|00005a80| 61 74 69 6f 6e 20 69 6e | 20 74 68 65 20 65 78 74 |ation in| the ext|
|00005a90| 65 6e 64 65 64 20 74 79 | 70 65 27 73 0d 0a 64 65 |ended ty|pe's..de|
|00005aa0| 66 69 6e 69 74 69 6f 6e | 20 77 68 69 63 68 20 74 |finition| which t|
|00005ab0| 68 65 6e 20 22 6f 76 65 | 72 72 69 64 65 73 22 20 |hen "ove|rrides" |
|00005ac0| 74 68 65 20 64 65 63 6c | 61 72 61 74 69 6f 6e 20 |the decl|aration |
|00005ad0| 67 69 76 65 6e 20 69 6e | 20 74 68 65 20 62 61 73 |given in| the bas|
|00005ae0| 65 20 74 79 70 65 2e 0d | 0a 53 75 63 68 20 61 20 |e type..|.Such a |
|00005af0| 70 72 6f 63 65 64 75 72 | 65 20 69 73 20 63 61 6c |procedur|e is cal|
|00005b00| 6c 65 64 20 61 20 68 61 | 6e 64 6c 65 72 2e 20 55 |led a ha|ndler. U|
|00005b10| 73 69 6e 67 20 74 79 70 | 65 20 74 65 73 74 73 2c |sing typ|e tests,|
|00005b20| 20 74 68 65 20 68 61 6e | 64 6c 65 72 20 69 73 0d | the han|dler is.|
|00005b30| 0a 63 61 70 61 62 6c 65 | 20 6f 66 20 64 69 73 63 |.capable| of disc|
|00005b40| 72 69 6d 69 6e 61 74 69 | 6e 67 20 61 6d 6f 6e 67 |riminati|ng among|
|00005b50| 20 64 69 66 66 65 72 65 | 6e 74 20 65 78 74 65 6e | differe|nt exten|
|00005b60| 73 69 6f 6e 73 20 6f 66 | 20 74 68 65 20 72 65 63 |sions of| the rec|
|00005b70| 6f 72 64 27 73 0d 0a 28 | 6f 62 6a 65 63 74 27 73 |ord's..(|object's|
|00005b80| 29 20 62 61 73 65 20 74 | 79 70 65 2e 20 49 6e 20 |) base t|ype. In |
|00005b90| 53 6d 61 6c 6c 74 61 6c | 6b 2c 20 74 68 65 20 63 |Smalltal|k, the c|
|00005ba0| 6f 6d 70 61 74 69 62 69 | 6c 69 74 79 20 72 75 6c |ompatibi|lity rul|
|00005bb0| 65 73 20 62 65 74 77 65 | 65 6e 20 61 20 63 6c 61 |es betwe|en a cla|
|00005bc0| 73 73 0d 0a 61 6e 64 20 | 69 74 73 20 73 75 62 63 |ss..and |its subc|
|00005bd0| 6c 61 73 73 65 73 20 61 | 72 65 20 63 6f 6e 66 69 |lasses a|re confi|
|00005be0| 6e 65 64 20 74 6f 20 70 | 6f 69 6e 74 65 72 73 2c |ned to p|ointers,|
|00005bf0| 20 74 68 65 72 65 62 79 | 20 69 6e 74 65 72 74 77 | thereby| intertw|
|00005c00| 69 6e 69 6e 67 20 74 68 | 65 0d 0a 63 6f 6e 63 65 |ining th|e..conce|
|00005c10| 70 74 73 20 6f 66 20 61 | 63 63 65 73 73 20 6d 65 |pts of a|ccess me|
|00005c20| 74 68 6f 64 20 61 6e 64 | 20 64 61 74 61 20 74 79 |thod and| data ty|
|00005c30| 70 65 20 69 6e 20 61 6e | 20 75 6e 64 65 73 69 72 |pe in an| undesir|
|00005c40| 61 62 6c 65 20 77 61 79 | 2e 20 49 6e 20 4f 62 65 |able way|. In Obe|
|00005c50| 72 6f 6e 2c 0d 0a 74 68 | 65 20 72 65 6c 61 74 69 |ron,..th|e relati|
|00005c60| 6f 6e 73 68 69 70 20 62 | 65 74 77 65 65 6e 20 61 |onship b|etween a|
|00005c70| 20 74 79 70 65 20 61 6e | 64 20 69 74 73 20 65 78 | type an|d its ex|
|00005c80| 74 65 6e 73 69 6f 6e 73 | 20 69 73 20 62 61 73 65 |tensions| is base|
|00005c90| 64 20 6f 6e 20 74 68 65 | 0d 0a 65 73 74 61 62 6c |d on the|..establ|
|00005ca0| 69 73 68 65 64 20 6d 61 | 74 68 65 6d 61 74 69 63 |ished ma|thematic|
|00005cb0| 61 6c 20 63 6f 6e 63 65 | 70 74 20 6f 66 20 70 72 |al conce|pt of pr|
|00005cc0| 6f 6a 65 63 74 69 6f 6e | 2e 0d 0a 0d 0a 49 6e 20 |ojection|.....In |
|00005cd0| 4d 6f 64 75 6c 61 2c 20 | 69 74 20 69 73 20 70 6f |Modula, |it is po|
|00005ce0| 73 73 69 62 6c 65 20 74 | 6f 20 64 65 63 6c 61 72 |ssible t|o declar|
|00005cf0| 65 20 61 20 70 6f 69 6e | 74 65 72 20 74 79 70 65 |e a poin|ter type|
|00005d00| 20 77 69 74 68 69 6e 20 | 61 6e 0d 0a 69 6d 70 6c | within |an..impl|
|00005d10| 65 6d 65 6e 74 61 74 69 | 6f 6e 20 6d 6f 64 75 6c |ementati|on modul|
|00005d20| 65 2c 20 61 6e 64 20 74 | 6f 20 65 78 70 6f 72 74 |e, and t|o export|
|00005d30| 20 69 74 20 61 73 20 61 | 6e 20 6f 70 61 71 75 65 | it as a|n opaque|
|00005d40| 20 74 79 70 65 20 62 79 | 20 6c 69 73 74 69 6e 67 | type by| listing|
|00005d50| 20 74 68 65 0d 0a 73 61 | 6d 65 20 69 64 65 6e 74 | the..sa|me ident|
|00005d60| 69 66 69 65 72 20 69 6e | 20 74 68 65 20 63 6f 72 |ifier in| the cor|
|00005d70| 72 65 73 70 6f 6e 64 69 | 6e 67 20 64 65 66 69 6e |respondi|ng defin|
|00005d80| 69 74 69 6f 6e 20 6d 6f | 64 75 6c 65 2e 20 54 68 |ition mo|dule. Th|
|00005d90| 65 20 6e 65 74 20 65 66 | 66 65 63 74 20 69 73 0d |e net ef|fect is.|
|00005da0| 0a 74 68 61 74 20 74 68 | 65 20 74 79 70 65 20 69 |.that th|e type i|
|00005db0| 73 20 65 78 70 6f 72 74 | 65 64 20 77 68 69 6c 65 |s export|ed while|
|00005dc0| 20 61 6c 6c 20 69 74 73 | 20 70 72 6f 70 65 72 74 | all its| propert|
|00005dd0| 69 65 73 20 72 65 6d 61 | 69 6e 20 68 69 64 64 65 |ies rema|in hidde|
|00005de0| 6e 20 28 69 6e 76 69 73 | 69 62 6c 65 0d 0a 74 6f |n (invis|ible..to|
|00005df0| 20 63 6c 69 65 6e 74 73 | 29 2e 20 49 6e 20 4f 62 | clients|). In Ob|
|00005e00| 65 72 6f 6e 2c 20 74 68 | 69 73 20 66 61 63 69 6c |eron, th|is facil|
|00005e10| 69 74 79 20 69 73 20 67 | 65 6e 65 72 61 6c 69 7a |ity is g|eneraliz|
|00005e20| 65 64 20 69 6e 20 74 68 | 65 20 73 65 6e 73 65 20 |ed in th|e sense |
|00005e30| 74 68 61 74 20 74 68 65 | 0d 0a 73 65 6c 65 63 74 |that the|..select|
|00005e40| 69 6f 6e 20 6f 66 20 74 | 68 65 20 72 65 63 6f 72 |ion of t|he recor|
|00005e50| 64 20 66 69 65 6c 64 73 | 20 74 6f 20 62 65 20 65 |d fields| to be e|
|00005e60| 78 70 6f 72 74 65 64 20 | 69 73 20 61 72 62 69 74 |xported |is arbit|
|00005e70| 72 61 72 79 20 61 6e 64 | 20 69 6e 63 6c 75 64 65 |rary and| include|
|00005e80| 73 20 74 68 65 0d 0a 63 | 61 73 65 73 20 61 6c 6c |s the..c|ases all|
|00005e90| 20 61 6e 64 20 6e 6f 6e | 65 2e 20 54 68 65 20 63 | and non|e. The c|
|00005ea0| 6f 6c 6c 65 63 74 69 6f | 6e 20 6f 66 20 65 78 70 |ollectio|n of exp|
|00005eb0| 6f 72 74 65 64 20 66 69 | 65 6c 64 73 20 64 65 66 |orted fi|elds def|
|00005ec0| 69 6e 65 73 20 61 20 70 | 61 72 74 69 61 6c 0d 0a |ines a p|artial..|
|00005ed0| 76 69 65 77 20 2d 20 61 | 20 70 75 62 6c 69 63 20 |view - a| public |
|00005ee0| 70 72 6f 6a 65 63 74 69 | 6f 6e 20 2d 20 74 6f 20 |projecti|on - to |
|00005ef0| 63 6c 69 65 6e 74 73 2e | 0d 0a 0d 0a 49 6e 20 63 |clients.|....In c|
|00005f00| 6c 69 65 6e 74 20 6d 6f | 64 75 6c 65 73 20 61 73 |lient mo|dules as|
|00005f10| 20 77 65 6c 6c 20 61 73 | 20 69 6e 20 74 68 65 20 | well as| in the |
|00005f20| 6d 6f 64 75 6c 65 20 69 | 74 73 65 6c 66 2c 20 69 |module i|tself, i|
|00005f30| 74 20 69 73 20 70 6f 73 | 73 69 62 6c 65 20 74 6f |t is pos|sible to|
|00005f40| 20 64 65 66 69 6e 65 0d | 0a 65 78 74 65 6e 73 69 | define.|.extensi|
|00005f50| 6f 6e 73 20 6f 66 20 74 | 68 65 20 62 61 73 65 20 |ons of t|he base |
|00005f60| 74 79 70 65 20 28 65 2e | 67 2e 20 54 65 78 74 56 |type (e.|g. TextV|
|00005f70| 69 65 77 65 72 73 20 6f | 72 20 47 72 61 70 68 56 |iewers o|r GraphV|
|00005f80| 69 65 77 65 72 73 29 2e | 20 4f 66 0d 0a 69 6d 70 |iewers).| Of..imp|
|00005f90| 6f 72 74 61 6e 63 65 20 | 69 73 20 61 6c 73 6f 20 |ortance |is also |
|00005fa0| 74 68 65 20 66 61 63 74 | 20 74 68 61 74 20 6e 6f |the fact| that no|
|00005fb0| 6e 2d 65 78 70 6f 72 74 | 65 64 20 63 6f 6d 70 6f |n-export|ed compo|
|00005fc0| 6e 65 6e 74 73 20 28 66 | 69 65 6c 64 73 29 20 6d |nents (f|ields) m|
|00005fd0| 61 79 20 68 61 76 65 0d | 0a 74 79 70 65 73 20 74 |ay have.|.types t|
|00005fe0| 68 61 74 20 61 72 65 20 | 6e 6f 74 20 65 78 70 6f |hat are |not expo|
|00005ff0| 72 74 65 64 20 65 69 74 | 68 65 72 2e 20 48 65 6e |rted eit|her. Hen|
|00006000| 63 65 2c 20 69 74 20 69 | 73 20 70 6f 73 73 69 62 |ce, it i|s possib|
|00006010| 6c 65 20 74 6f 20 68 69 | 64 65 20 63 65 72 74 61 |le to hi|de certa|
|00006020| 69 6e 0d 0a 64 61 74 61 | 20 74 79 70 65 73 20 65 |in..data| types e|
|00006030| 66 66 65 63 74 69 76 65 | 6c 79 2c 20 61 6c 74 68 |ffective|ly, alth|
|00006040| 6f 75 67 68 20 63 6f 6d | 70 6f 6e 65 6e 74 73 20 |ough com|ponents |
|00006050| 6f 66 20 28 6f 70 61 71 | 75 65 6c 79 29 20 65 78 |of (opaq|uely) ex|
|00006060| 70 6f 72 74 65 64 20 74 | 79 70 65 73 0d 0a 72 65 |ported t|ypes..re|
|00006070| 66 65 72 20 74 6f 20 74 | 68 65 6d 2e 0d 0a 0d 0a |fer to t|hem.....|
|00006080| 54 79 70 65 20 69 6e 63 | 6c 75 73 69 6f 6e 0d 0a |Type inc|lusion..|
|00006090| 0d 0a 4d 6f 64 65 72 6e | 20 70 72 6f 63 65 73 73 |..Modern| process|
|000060a0| 6f 72 73 20 66 65 61 74 | 75 72 65 20 61 72 69 74 |ors feat|ure arit|
|000060b0| 68 6d 65 74 69 63 20 6f | 70 65 72 61 74 69 6f 6e |hmetic o|peration|
|000060c0| 73 20 6f 6e 20 73 65 76 | 65 72 61 6c 20 6e 75 6d |s on sev|eral num|
|000060d0| 62 65 72 20 66 6f 72 6d | 61 74 73 2e 0d 0a 49 74 |ber form|ats...It|
|000060e0| 20 69 73 20 64 65 73 69 | 72 61 62 6c 65 20 74 6f | is desi|rable to|
|000060f0| 20 68 61 76 65 20 61 6c | 6c 20 74 68 65 73 65 20 | have al|l these |
|00006100| 66 6f 72 6d 61 74 73 20 | 72 65 66 6c 65 63 74 65 |formats |reflecte|
|00006110| 64 20 69 6e 20 74 68 65 | 20 6c 61 6e 67 75 61 67 |d in the| languag|
|00006120| 65 20 61 73 0d 0a 62 61 | 73 69 63 20 74 79 70 65 |e as..ba|sic type|
|00006130| 73 2e 20 4f 62 65 72 6f | 6e 20 66 65 61 74 75 72 |s. Obero|n featur|
|00006140| 65 73 20 66 69 76 65 20 | 6f 66 20 74 68 65 6d 3a |es five |of them:|
|00006150| 0d 0a 0d 0a 4c 4f 4e 47 | 49 4e 54 2c 20 49 4e 54 |....LONG|INT, INT|
|00006160| 45 47 45 52 2c 20 53 48 | 4f 52 54 49 4e 54 20 20 |EGER, SH|ORTINT |
|00006170| 28 69 6e 74 65 67 65 72 | 20 74 79 70 65 73 29 0d |(integer| types).|
|00006180| 0a 4c 4f 4e 47 52 45 41 | 4c 2c 20 52 45 41 4c 09 |.LONGREA|L, REAL.|
|00006190| 28 72 65 61 6c 20 74 79 | 70 65 73 29 0d 0a 0d 0a |(real ty|pes)....|
|000061a0| 57 69 74 68 20 74 68 65 | 20 70 72 6f 6c 69 66 65 |With the| prolife|
|000061b0| 72 61 74 69 6f 6e 20 6f | 66 20 62 61 73 69 63 20 |ration o|f basic |
|000061c0| 74 79 70 65 73 2c 20 61 | 20 72 65 6c 61 78 61 74 |types, a| relaxat|
|000061d0| 69 6f 6e 20 6f 66 20 63 | 6f 6d 70 61 74 69 62 69 |ion of c|ompatibi|
|000061e0| 6c 69 74 79 20 72 75 6c | 65 73 0d 0a 61 6d 6f 6e |lity rul|es..amon|
|000061f0| 67 20 74 68 65 6d 20 62 | 65 63 6f 6d 65 73 20 61 |g them b|ecomes a|
|00006200| 6c 6d 6f 73 74 20 6d 61 | 6e 64 61 74 6f 72 79 2e |lmost ma|ndatory.|
|00006210| 20 28 4e 6f 74 65 20 74 | 68 61 74 20 69 6e 20 4d | (Note t|hat in M|
|00006220| 6f 64 75 6c 61 20 74 68 | 65 20 6e 75 6d 65 72 69 |odula th|e numeri|
|00006230| 63 20 74 79 70 65 73 0d | 0a 49 4e 54 45 47 45 52 |c types.|.INTEGER|
|00006240| 2c 20 43 41 52 44 49 4e | 41 4c 2c 20 61 6e 64 20 |, CARDIN|AL, and |
|00006250| 52 45 41 4c 20 61 72 65 | 20 69 6e 63 6f 6d 70 61 |REAL are| incompa|
|00006260| 74 69 62 6c 65 29 2e 20 | 54 6f 20 74 68 69 73 20 |tible). |To this |
|00006270| 65 6e 64 2c 20 74 68 65 | 20 6e 6f 74 69 6f 6e 20 |end, the| notion |
|00006280| 6f 66 0d 0a 74 79 70 65 | 20 69 6e 63 6c 75 73 69 |of..type| inclusi|
|00006290| 6f 6e 20 69 73 20 69 6e | 74 72 6f 64 75 63 65 64 |on is in|troduced|
|000062a0| 3a 20 61 20 74 79 70 65 | 20 54 20 69 6e 63 6c 75 |: a type| T inclu|
|000062b0| 64 65 73 20 61 20 74 79 | 70 65 20 54 27 2c 20 69 |des a ty|pe T', i|
|000062c0| 66 20 74 68 65 20 76 61 | 6c 75 65 73 20 6f 66 0d |f the va|lues of.|
|000062d0| 0a 74 79 70 65 20 54 27 | 20 61 72 65 20 61 6c 73 |.type T'| are als|
|000062e0| 6f 20 76 61 6c 75 65 73 | 20 6f 66 20 74 79 70 65 |o values| of type|
|000062f0| 20 54 2e 20 4f 62 65 72 | 6f 6e 20 70 6f 73 74 75 | T. Ober|on postu|
|00006300| 6c 61 74 65 73 20 74 68 | 65 20 66 6f 6c 6c 6f 77 |lates th|e follow|
|00006310| 69 6e 67 0d 0a 68 69 65 | 72 61 72 63 68 79 3a 0d |ing..hie|rarchy:.|
|00006320| 0a 0d 0a 4c 4f 4e 47 52 | 45 41 4c 20 20 4a 20 20 |...LONGR|EAL J |
|00006330| 52 45 41 4c 20 20 4a 20 | 20 4c 4f 4e 47 49 4e 54 |REAL J | LONGINT|
|00006340| 20 20 4a 20 20 49 4e 54 | 45 47 45 52 20 20 4a 20 | J INT|EGER J |
|00006350| 20 53 48 4f 52 54 49 4e | 54 0d 0a 0d 0a 54 68 65 | SHORTIN|T....The|
|00006360| 20 61 73 73 69 67 6e 6d | 65 6e 74 20 72 75 6c 65 | assignm|ent rule|
|00006370| 20 69 73 20 72 65 6c 61 | 78 65 64 20 61 63 63 6f | is rela|xed acco|
|00006380| 72 64 69 6e 67 6c 79 3a | 20 41 20 76 61 6c 75 65 |rdingly:| A value|
|00006390| 20 6f 66 20 74 79 70 65 | 20 54 27 20 63 61 6e 20 | of type| T' can |
|000063a0| 62 65 0d 0a 61 73 73 69 | 67 6e 65 64 20 74 6f 20 |be..assi|gned to |
|000063b0| 61 20 76 61 72 69 61 62 | 6c 65 20 6f 66 20 74 79 |a variab|le of ty|
|000063c0| 70 65 20 54 2c 20 69 66 | 20 54 27 20 69 73 20 69 |pe T, if| T' is i|
|000063d0| 6e 63 6c 75 64 65 64 20 | 69 6e 20 54 20 28 6f 72 |ncluded |in T (or|
|000063e0| 20 69 66 20 54 27 20 65 | 78 74 65 6e 64 73 0d 0a | if T' e|xtends..|
|000063f0| 54 29 2c 20 69 2e 65 2e | 20 69 66 20 20 54 20 4a |T), i.e.| if T J|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.