home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-02-23 | 59.7 KB | 1,385 lines |
-
- â ï Ç é Ç 6
- ============
-
- ÄÅêæÇìêà ƒç¢èÇ
- ==============
-
- é ú½áóÑ ñáÑΓß∩ ¬αáΓ¬«Ñ «»¿ßá¡¿Ñ ∩ºδ¬á JPI Modula-2. â½áóá ß«ßΓáó½Ñ¡á ¬«¼»á¬Γ¡« ¿ ñ«½ª-
- ¡á ¿ºπτáΓ∞ß∩ ΓΘáΓѽ∞¡«. æΓ¿½∞ «»¿ßá¡¿∩ ¼áΓÑα¿á½á ¬«¡ΓαáßΓ¿απÑΓ ß ΓÑ«αÑΓ¿τÑ߬¿¼¿ αáºαáí«Γ¬á-
- ¼¿, ó ¬«Γ«αδσ ß«ñÑনΓß∩ í«½∞ΦÑ ¿¡Σ«α¼áµ¿¿ ¿ »«∩ߡѡ¿⌐.
- Åα«úαá¼¼δ ñ«½ª¡δ ß««ΓóÑΓßΓó«óáΓ∞ ß¿¡Γá¬ß¿ßπ ∩ºδ¬á Modula-2. æ¿¡Γá¬ß¿ß πßΓá¡áó½¿óáÑΓ
- íẫóπε ΓѬßΓ«óπε ßΓαπ¬Γπαπ »α¿ú«ñ¡δσ ¬ »α¿¼Ñ¡Ñ¡¿ε »α«úαá¼¼. 諼»¿½∩Γ«α »α¿¡¿¼áÑΓ ñ½∩ «íαá-
- í«Γ¬¿ Γ«½∞¬« ß¿¡Γá¬ß¿τÑ߬¿ »αáó¿½∞¡δÑ »α«úαá¼¼δ.
- é«-óΓ«αδσ, »α«úαá¼¼δ ñ«½ª¡δ ß««ΓóÑΓßΓó«óáΓ∞ ßѼá¡Γ¿¬Ñ óαѼѡ¿ ¬«¼»¿½∩µ¿¿ (ßΓáΓ¿τÑ߬«⌐)
- ∩ºδ¬á Modula-2. ¥Γ« ¿¼ÑÑΓ «Γ¡«ΦÑ¡¿Ñ ¬ º¡áτÑ¡¿ε, ßó∩ºá¡¡«¼π ß ¿ñÑ¡Γ¿Σ¿¬áΓ«αἿ »α«úαá¼¼δ ¿
- ß»«ß«íπ ¿σ ¿ß»«½∞º«óá¡¿∩. èα«¼Ñ óßÑú« »α«τÑú« φΓ« ó¬½ετáÑΓ ¬«¡Γα«½∞ Γ¿»«ó. ÄΦ¿í¬¿ ó φΓ¿σ
- ß½πτá∩σ Γá¬ªÑ «»αÑñѽ∩εΓß∩ ß »«¼«Θ∞ε ¬«¼»¿½∩Γ«αá.
- ê, ¡á¬«¡Ñµ, »α«úαá¼¼δ ñ«½ª¡δ ß««ΓóÑΓßΓó«óáΓ∞ ßѼá¡Γ¿¬Ñ óαѼѡ¿ óδ»«½¡Ñ¡¿∩ (ñ¿¡á¼¿τÑß-
- ¬«⌐) Modula-2. Å«ñ φΓ¿¼ »«ñαáºπ¼ÑóáÑΓß∩ ñÑ⌐ßΓó¿Γѽ∞¡«Ñ »«óÑñÑ¡¿Ñ óδ»«½¡∩Ѽ«⌐ »α«úαá¼¼δ.
- ìá»α¿¼Ñα, ΓαÑíπÑΓß∩, τΓ«íδ óѽ¿τ¿¡δ ¿¡ñѬ߫ó ¼áßß¿ó«ó ¡áσ«ñ¿½¿ß∞ ó «»αÑñѽѡ¡δσ »αÑñѽáσ.
- éδ»«½¡Ñ¡¿Ñ φΓ¿σ »αáó¿½ ¡Ñ ∩ó½∩ÑΓß∩ «í∩ºáΓѽ∞¡δ¼ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ. àß½¿ «¡¿ ¡Ñ
- ß«í½εñáεΓß∩, Γ« φΓ« ¼«ªÑΓ »α¿óÑßΓ¿ ¬ ¡Ñ«»αÑñѽѡ¡δ¼ αѺπ½∞ΓáΓá¼, ¡« ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡«
- ó µÑ½∩σ »«½πτÑ¡¿∩ »«í«τ¡δσ φΣΣÑ¬Γ«ó.
- üẫóá∩ áασ¿ΓѬΓπαá ¼áΦ¿¡δ «Γ¡«ß¿Γß∩ ¬ ßѼÑ⌐ßΓóπ 8086 ß áñαÑß¡δ¼ »α«ßΓαá¡ßΓó«¼ 2**20
- (1 îíá⌐Γ) íá⌐Γ »« 8 í¿Γ. ö¿º¿τÑ߬¿⌐ áñαÑß Σ«α¼¿απÑΓß∩ ß »«¼«Θ∞ε 16-í¿Γ«ó«ú« ßÑú¼Ñ¡Γá ¿ 16 -
- í¿Γ«ó«ú« ß¼ÑΘÑ¡¿∩; áíß«½εΓ¡δ⌐ áñαÑß íá⌐Γá: (16 * ßÑú¼Ñ¡Γ) + ß¼ÑΘÑ¡¿Ñ.
- ä½∩ ¿½½εßΓαᵿ¿ ¬áªñ«⌐ ¬«¡µÑ»µ¿¿ íπñπΓ ¿ß»«½∞º«óáΓ∞ß∩ »α¿¼Ñαδ; ¡Ñ¬«Γ«αδÑ ¿º ¡¿σ íπñπΓ
- «Γ¡«ß¿Γ∞ß∩ ¬ »α¿óÑñÑ¡¡δ¼ αá¡ÑÑ »α¿¼Ñαá¼.
-
- Ä ÆàèæÆÇò
- =========
-
- ïѬßѼδ
- -------
-
- ïѬßÑ¼δ »αÑñßΓáó½∩εΓ ß«í«⌐ íẫóδÑ ΓѬßΓ«óδÑ φ½Ñ¼Ñ¡Γδ, ¡á ¬«Γ«αδσ «ß¡«óá¡á ßΓαπ¬Γπαá
- Modula-2. ïѬßÑ¼á »αÑñßΓáó½∩ÑΓ ß«í«⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ß¿¼ó«½«ó ¬«ñá ASCII. ïѬßѼδ αáºñÑ-
- ½∩εΓß∩ ¡á 4 ¬½áßßá:
- - ¬½ετÑóδÑ ß½«óá;
- - «úαá¡¿τ¿Γѽ¿;
- - α«ñ«óδÑ ½Ñ¬ßѼδ;
- - αáºñѽ¿Γѽ¿.
- è½ετÑóδÑ ß½«óá ¿ «úαá¡¿τ¿Γѽ¿ ß«ßΓ«∩Γ ¿º Σ¿¬ß¿α«óá¡¡δσ »«ß½Ññ«óáΓѽ∞¡«ßΓÑ⌐ ß¿¼ó«½«ó ó
- Γ« óαѼ∩, ¬á¬ ñ½∩ ¬áªñ«⌐ «íΘÑ⌐ ½Ñ¬ßѼδ 󫺼«ª¡« ¼¡«ªÑßΓó« »«ß½Ññ«óáΓѽ∞¡«ßΓÑ⌐ ß¿¼ó«½«ó.
- êß»«½∞ºπεΓß∩ ß½ÑñπεΘ¿Ñ ¬½ετÑóδÑ ß½«óá:
-
- AND FOR OR
- ARRAY FORWARD POINTER
- BEGIN FROM PROCEDURE
- BY GOTO RECORD
- CASE IF REPEAT
- CONST IMPLEMENTATION RETURN
- DEFINITION IMPORT SET
- DIV IN THEN
- DO LABEL TO
- ELSE LOOP TYPE
- ELSIF MOD UNTIL
- END MODULE VAR
- EXIT NOT WHILE
- EXPORT OF WITH
-
- êß»«½∞ºπεΓß∩ ß½ÑñπεΘ¿Ñ «úαá¡¿τ¿Γѽ¿:
-
- + - * / := & . , ;
- : ( ) [ ] { } ^ ~
- = # <> < <= > >= << >>
- | ..
-
- êß»«½∞ºπεΓß∩ ß½ÑñπεΘ¿Ñ «íΘ¿Ñ ½Ñ¬ßѼδ:
-
- êñÑ¡Γ¿Σ¿¬áΓ«α
- -------------
-
- - »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ íπ¬ó («Γ "A" ñ« "Z", «Γ "a" ñ« "z" ¿ "_") ¿ µ¿Σα («Γ "0" ñ« "9"),
- ¬«Γ«αδ⌐ ñ«½ªÑ¡ ¡áτ¿¡áΓ∞ß∩ ß íπ¬óδ, ¿ß¬½ετá∩ 42 ¬½ετÑóδσ ß½«óá, »α¿óÑñÑ¡¡δσ óδΦÑ. üπ¬óδ
- óÑασ¡Ñú« ¿ ¡¿ª¡Ñú« αÑú¿ßΓα«ó ßτ¿ΓáεΓß∩ αẽ¿τ¡δ¼¿. ìá»α¿¼Ñα:
-
- X HelloThere Agent_007 _main
-
- äÑß∩Γ¿τ¡δ⌐ ½¿ΓÑαá½
- -------------------
-
- - »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ µ¿Σα.
-
- 12345 0 255
-
- é«ß∞¼Ñα¿τ¡δ⌐ ½¿ΓÑαá½
- --------------------
-
- - »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ó«ß∞¼Ñα¿τ¡δσ µ¿Σα («Γ "0" ñ« "7"), ºá ¬«Γ«α«⌐ ß½ÑñπÑΓ íπ¬óá "é":
-
- 10é (=8) 377é (=255)
-
- ÿÑßΓ¡áñµáΓÑα¿τ¡δ⌐ ½¿ΓÑαá½
- -------------------------
-
- - »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ µ¿Σα ¿ ΦÑßΓ¡áñµáΓÑα¿τ¡δσ íπ¬ó («Γ "A" ñ« "F"), ºá ¬«Γ«α«⌐ ß½ÑñπÑΓ
- íπ¬óá "H", φΓá »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ñ«½ª¡á ¡áτ¿¡áΓ∞ß∩ ß µ¿Σαδ.
-
- 10ì (=16) OFFH (=255)
-
- äÑ⌐ßΓó¿Γѽ∞¡δ⌐ ½¿ΓÑαá½
- ----------------------
-
- - »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ µ¿Σα, ºá ¬«Γ«α«⌐ ß½ÑñπÑΓ ".", ºá ¬«Γ«α«⌐, ó ßó«ε «τÑαÑñ∞, ¼«ªÑΓ
- ß½Ññ«óáΓ∞ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ µ¿Σα, íπ¬óá à, º¡á¬ + ¿½¿ -, ºá ¬«Γ«α묨 ¼«ªÑΓ ß½Ññ«óáΓ∞ »«ß-
- ½Ññ«óáΓѽ∞¡«ßΓ∞ µ¿Σα.
-
- 3.14 12.3à-3 (=0,0123)
-
- æΓ᫬«óδ⌐ ½¿ΓÑαá½
- -----------------
-
- - »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ß¿¼ó«½«ó, ºá¬½ετÑ¡¡δσ ó ¬áóδτ¬¿ (") ¿½¿ ('). é¡πΓα¿ ªÑ φΓ«⌐ »«ß-
- ½Ññ«óáΓѽ∞¡«ßΓ¿ ¡Ñ ¼«ªÑΓ ß«ñÑαªáΓ∞ß∩ ß¿¼ó«½ " ¿½¿ '. ū߽Ññ«óáΓѽ∞¡«ßΓ∞ ¡Ñ ¼«ªÑΓ íδΓ∞ »α«-
- ñ«½ªÑ¡á ºá »αÑñѽδ ßΓ᫬¿. æΓ᫬á ñ½¿¡«⌐ Ññ¿¡¿µá Γá¬ªÑ ¡áºδóáÑΓß∩ ß¿¼ó«½«¼.
- æ¿¼ó«½ ¼«ªÑΓ Γá¬ªÑ óδαáªáΓ∞ß∩ ó ó«ß∞¼Ñα¿τ¡«¼ ¬«ñÑ
- ASCII, ¬á¬ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ó«ß∞¼Ñα¿τ¡δσ µ¿Σα, ºá ¬«Γ«α«⌐
- ß½ÑñπÑΓ "æ":
-
- 'Hi' "that's ok" 101C (='A')
-
- êß»«½∞ºπεΓß∩ ß½ÑñπεΘ¿Ñ αáºñѽ¿Γѽ¿:
-
- - »α«íѽδ - ½εíá∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ »α«íѽ«ó, ß¿¼ó«½δ Γáíπ½∩µ¿¿ ¿ «úαá¡¿τ¿Γѽ∞ ßΓα«-
- ¬¿;
- - ¬«¼¼Ñ¡Γáα¿¿ - ½εíá∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ß¿¼ó«½«ó, ºá¬½ετÑ¡¡δσ ó '(*' ¿ '*)'. 諼¼Ñ¡-
- Γáα¿¿ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ¿ »α«ñ½ÑóáΓ∞ß∩ ºá »αÑñÑ½δ «úαá¡¿τ¿ΓѽÑ⌐ ßΓ᫬¿.
- ïѬßѼδ "#" ¿ "<>" ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ «ñ¡á ó¼ÑßΓ« ñαπú«⌐ ΓᬪÑ, ¬á¬ ¿ AND ¿ "&", NOT
- ¿ "~".
- êñÑ¡Γ¿Σ¿¬áΓ«αδ ¿ß»«½∞ºπεΓß∩ ñ½∩ «í«º¡áτÑ¡¿∩ «íΩÑ¬Γ«ó, «»αÑñѽ∩Ѽδσ »«½∞º«óáΓѽѼ.
- äÑß∩Γ¿τ¡δÑ, ó«ß∞¼Ñα¿τ¡δÑ ¿ ΦÑßΓ¡áñµáΓÑα¿τ¡δÑ ½Ñ¬ßÑ¼δ «í«º¡áτáεΓ µÑ½δÑ τ¿ß½á.
- äÑ⌐ßΓó¿Γѽ∞¡δÑ ½Ñ¬ßÑ¼δ «í«º¡áτáεΓ ñÑ⌐ßΓó¿Γѽ∞¡δÑ τ¿ß½á.
- ¥¬ß»«¡Ñ¡µ¿á½∞¡á∩ τáßΓ∞ «í«º¡áτáÑΓ π¼¡«ªÑ¡¿Ñ ¡á π¬áºá¡¡πε ßΓѻѡ∞ τ¿ß½á 10.
- èáªñá∩ ½Ñ¬ßѼá ß«ñÑαª¿Γ ¬á¬ ¼«ª¡« í«½∞ΦÑÑ τ¿ß½« ß¿¼ó«½«ó: 123 - φΓ« «ñ¿¡ ½¿ΓÑαá½, ß«ß-
- Γ«∩Θ¿⌐ ¿º ΓαÑσ µ¿Σα, á ¡Ñ Γα¿ ½¿ΓÑαá½á, ß«ßΓ«∩Θ¿σ ¬áªñδ⌐ ¿º «ñ¡«⌐ µ¿Σαδ.
- Éáºñѽ¿Γѽ¿, ¿ß¬½ετá∩ ¬«¼¼Ñ¡Γáα¿¿, ¡áτ¿¡áεΘ¿Ñß∩ ß '(*$' (ß¼. âïÇéô 7), ¡Ñ ó½¿∩εΓ ¡á
- »α«úαá¼¼π, ºá ¿ß¬½ετÑ¡¿Ñ¼ «Γñѽ∞¡δσ ½Ñ¬ßѼ.
-
- æ¿¡Γá¬ß¿ß
- ---------
-
- æ¿¡Γá¬ß¿ß ∩ºδ¬á Modula-2 «»¿ßδóáÑΓ, ¬á¬ úαπ»»¿α«óáΓ∞ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ ½Ñ¬ßѼ, τΓ«íδ
- »«½πτ¿Γ∞ »αáó¿½∞¡δ⌐ ΓѬßΓ »α«úαá¼¼δ. æ¿¡Γá¬ß¿ß ß«ñÑαª¿Γ ¡áí«α ß¿¡Γá¬ß¿τÑ߬¿σ ¬«¡ßΓαπ¬µ¿⌐ ¿
- »αáó¿½. Åαáó¿½á πßΓá¡áó½¿óáεΓ, ¬á¬ ¬«¡ßΓαπ¬µ¿¿ ¿ ½¿ΓÑαá½δ ñ«½ª¡δ ß«Ññ¿¡∩Γ∞ß∩, τΓ«íδ «íαẫ-
- óáΓ∞ ¡«óδÑ ¬«¡ßΓαπ¬µ¿¿. èáªñ«⌐ ¬«¡ßΓαπ¬µ¿¿ ß««ΓóÑΓßΓóπÑΓ ¡Ñ߬«½∞¬« »α«ñπ¬Γ«ó »« óδí«απ,
- ¬áªñδ⌐ ¿º ¬«Γ«αδσ óδαáªáÑΓ ó«º¼«ª¡«Ñ »α¿¼Ñ¡Ñ¡¿Ñ ñá¡¡«⌐ ¬«¡ßΓαπ¬µ¿¿; αẽ¿τ¡δÑ óáα¿á¡Γδ »α«-
- ñπ¬Γ«ó íπñπΓ »α¿ó«ñ¿Γ∞ß∩, úñÑ φΓ« π¼ÑßΓ¡« ¿ ¡Ñ úαπ»»«⌐.
- Åα¿ «íαẫóá¡¿¿ »αáó¿½ ¿ß»«½∞ºπεΓß∩ ß½ÑñπεΘ¿Ñ ¼ÑΓá-ß¿¼ó«½δ: ߬«í¬¿ - [ ¿ ], Σ¿úπα¡δÑ
- ߬«í¬¿ - { ¿ }, τÑαΓá - | ¿ ß¿¼ó«½ «»αÑñѽѡ¿∩ ::=.
- æ¬«í¬¿ ¿ß»«½∞ºπεΓß∩ ñ½∩ ºá¬½ετÑ¡¿∩ ó ¡¿σ ¡Ñ«í∩ºáΓѽ∞¡δσ τáßΓÑ⌐; ó Σ¿úπα¡δÑ ß¬«í¬¿ ºá¬-
- ½ετáεΓß∩ ΓÑ τáßΓ¿, ¬«Γ«αδÑ ¼«úπΓ »«óΓ«α∩Γ∞ß∩ 0 ¿ í«½ÑÑ αáº, á τÑαΓá ¿ß»«½∞ºπÑΓß∩ ñ½∩ αáºñÑ-
- ½Ñ¡¿∩ 󫺼«ª¡δσ óáα¿á¡Γ«ó. æ¿¼ó«½ «»αÑñѽѡ¿∩ ¿ß»«½∞ºπÑΓß∩ ñ½∩ «Γñѽѡ¿∩ «»αÑñѽ∩Ѽ«⌐ ß¿¡-
- Γá¬ß¿τÑ߬«⌐ ¬«¡ßΓαπ¬µ¿¿ «Γ ÑÑ αáßΦ¿αÑ¡¿∩. æ¼ÑΦá¡¡δ⌐ αÑú¿ßΓα ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¿¼Ñ¡
- ¬«¡ßΓαπ¬µ¿⌐, óÑασ¡¿⌐ - ñ½∩ ¬½ετÑóδσ ß½«ó, αáºñѽ¿Γѽ¿ »«¬áºá¡δ ó ừßΓα«Σáσ. ÄíΘ¿Ñ ½Ñ¬ßѼδ
- ¡áºδóáεΓß∩: êñÑ¡Γ, ûѽ«Ñù¿ß½«, äÑ⌐ßΓó¿Γù¿ß½« ¿ æΓ᫬á.
- Åα«ñπµ¿απεΘ¿Ñ »αáó¿½á «íαáºπεΓ «ß¡«óπ ∩ºδ¬á ¿ ñ«½ª¡δ "τ¿ΓáΓ∞ß∩" ¬á¬ «íδτ¡δÑ πΓóÑαªñÑ-
- ¡¿∩; ΓѬßΓ, ß½ÑñπεΘ¿⌐ ºá ¬áªñδ¼ »αá󿽫¼, íπñÑΓ «Γ¡«ß¿Γ∞ß∩ ¬ Ñú« ß«ßΓáó½∩εΘ¿¼. Æá¬
-
- 滿߫¬êñÑ¡Γ ::= êñÑ¡Γ{','êñÑ¡Γ}
-
- «»αÑñѽ∩ÑΓ ß»¿ß«¬ ¿º «ñ¡«ú« ¿½¿ í«½ÑÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó, αáºñѽѡ¡δσ ºá»∩Γ묨.
- Åα¿¼Ñαδ:
-
- HelloThere, _main , X
- Agent_007
-
- ÄíΩ∩ó½Ñ¡¿∩ ¿ «í½áßΓ∞ ñÑ⌐ßΓó¿∩
- -----------------------------
-
- èáªñδ⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¼«ªÑΓ íδΓ∞ ½¿í« «íΩ∩ó½Ñ¡, ½¿í« »αÑñ«»αÑñѽѡ. ÄíΩ∩ó½Ñ¡¿∩ «»¿ßδóá-
- εΓ »α«úαá¼¼¡«-«»αÑñѽѡ¡δÑ «íΩѬΓδ ¿ πßΓá¡áó½¿óáεΓ ¿σ ßó«⌐ßΓóá. Å«ß½Ñ Γ«ú«, ¬á¬ ¿ñÑ¡Γ¿Σ¿¬á-
- Γ«α «íΩ∩ó½Ñ¡, «¡ ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡ ñ½∩ ¡á¿¼Ñ¡«óá¡¿∩ «íΩ∩ó½Ñ¡¡«ú« «íΩѬΓá:
-
- ê¼∩ ::= êñÑ¡Γ
-
- ÄíΩ∩ó½Ñ¡¿∩ ¿ñπΓ »« ß»¿ß¬π:
-
- 滿߫¬ÄíΩ∩ó½Ñ¡¿⌐ ::={ÄíΩ∩ó½Ñ¡¿Ñ}
-
- êñÑ¡Γ¿Σ¿¬áΓ«αδ ñ«½ª¡δ íδΓ∞ «íΩ∩ó½Ñ¡δ »ÑαÑñ ¿σ ¿ß»«½∞º«ó᡿Ѽ. àñ¿¡ßΓóÑ¡¡δ¼ ¿ß¬½ετÑ¡¿Ñ¼
- ∩ó½∩εΓß∩ Γ¿»δ, «í«º¡áτáѼδÑ π¬áºáΓѽ∩¼¿, ¬«Γ«αδÑ ºáΓѼ ñ«½ª¡δ «íΩ∩ó½∩Γ∞ß∩ ó Γ«¼ ªÑ »ÑαÑτ¡Ñ
- (ß»¿ß¬Ñ) «íΩ∩ó½Ñ¡¿⌐; »ÑαÑñ φΓ¿¼ ºá»αÑΘáÑΓß∩ »α«¿ºó«ñ¿Γ∞ «»Ñαᵿ¿, ΓαÑíπεΘ¿Ñ º¡á¡¿∩ «í«º¡á-
- τáѼ«ú« Γ¿»á, Γ.Ñ. ½εíδÑ «»Ñαᵿ¿, ó¬½ετáεΘ¿Ñ αáºδ¼Ñ¡«óá¡¿Ñ. éßÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ, «íΩ∩ó½Ñ¡-
- ¡δÑ ó ß»¿ß¬Ñ «íΩ∩ó½Ñ¡¿∩, ñ«½ª¡δ íδΓ∞ αẽ¿τ¿¼δ.
- ÄíΩ∩ó½Ñ¡¿Ñ ñÑ⌐ßΓóπÑΓ ó ßΣÑαÑ Ñú« ó½¿∩¡¿∩. æΣÑαá ó½¿∩¡¿∩ «»αÑñѽ∩ÑΓß∩ ¡Ñ»«ßαÑñßΓóÑ¡¡«
- «Γ ¼ÑßΓá «íΩ∩ó½Ñ¡¿∩ ¡á óÑß∞ «ßΓáóΦ¿⌐ß∩ ß»¿ß«¬ «íΩ∩ó½Ñ¡¿⌐ ¿ ¡á óßÑ »«ß½ÑñπεΘ¿Ñ πΓóÑαªñÑ¡¿∩,
- ßó∩ºá¡¡δÑ ß« ß»¿ß¬«¼ «íΩ∩ó½Ñ¡¿⌐. 滿߬¿ «íΩ∩ó½Ñ¡¿⌐ ¼«úπΓ «íαẫóδóáΓ∞ß∩ ß »«¼«Θ∞ε »α«µÑñπα
- ¿ ¼«ñπ½Ñ⌐, ¿ 󫺼«ª¡« »ÑαÑ«íΩ∩ó½Ñ¡¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó ó Γᬿσ ó¡πΓαÑ¡¡¿σ «í½áßΓ∩σ. WITH
- -«íΩ∩ó½Ñ¡¿∩ »αÑñßΓáó½∩εΓ ß«í«⌐ ñαπú«⌐ ß»«ß«í «íαẫóá¡¿∩ Γᬿσ ú¡Ñºñ«óδσ «í½áßΓÑ⌐. é ¬áªñ«¼
- τáßΓ¡«¼ ß½πτáÑ ¿ß»«½∞º«óá¡¿∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá «¡ «í«º¡áτáÑΓ «íΩѬΓ, «íΩ∩ó½Ñ¡¡δ⌐ αá¡ÑÑ ó ¡á¿-
- í«½ÑÑ ú½πí«¬«⌐ 󽫪ѡ¡«⌐ «í½áßΓ¿; «¡á ß«ñÑαª¿Γ «íΩѬΓδ, «í«º¡áτÑ¡¡δÑ ΓѼ ªÑ ßá¼δ¼ ¿ñÑ¡Γ¿Σ¿-
- ¬áΓ«α«¼ ó¡ÑΦ¡¿σ «í½áßΓÑ⌐.
- Åα¿¼Ñα:
-
- MODULE M;
- VAR I,J: CARDINAL; (* äóÑ »ÑαѼѡ¡δÑ, »α¿¡áñ½. î *)
- PROCEDURE P;
- VAR I,K: INTEGER; (* äóÑ »ÑαѼѡ¡δÑ, »α¿¡áñ½. É *)
- BEGIN
- I := 7; (* I »α¿¡áñ½. É *)
- J := 8; (* J »α¿¡áñ½. î *)
- K := 9; (* è »α¿¡áñ½. É *)
- END P;
- BEGIN
- I := 10; (* I »α¿¡áñ½. î *)
- J := 11; (* J »α¿¡áñ½. î *)
- (* è ºñÑß∞ ¡Ñó¿ñ¿¼á *)
- END M;
-
- ǽ¿áß¡δÑ «íΩ∩ó½Ñ¡¿∩ ¡Ñ ß½πªáΓ ñ½∩ «íΩ∩ó½Ñ¡¿∩ ¡«óδσ «íΩÑ¬Γ«ó, ¡« óó«ñ∩Γ ¡«óδÑ ¿¼Ñ¡á ñ½∩
- πªÑ ßπΘÑßΓóπεΘ¿σ:
-
- ÄíΩ∩ó½Ñ¡¿Ñ ::= CONST {êñÑ¡Γ ':' ':=' ê¼∩ ';'}
-
- ê¼∩ ¼«ªÑΓ «í«º¡áτáΓ∞ ½εí«⌐ «íΩѬΓ.
-
- Åα¿¼Ñα: CONST VisibleVersion ::= AboutToBeHidden;
-
- ÅαÑñ«»αÑñѽѡ¡δÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ, »ÑαÑτ¿ß½Ñ¡¡δÑ ¡¿ªÑ, ñ«½ª¡δ «íΩ∩ó½∩Γ∞ß∩ ó ßἫ⌐ ¡áαπª-
- ¡«⌐ «í½áßΓ¿. ç¡áτÑ¡¿Ñ ¬áªñ«ú« ¿º ¡¿σ «íΩ∩ß¡∩ÑΓß∩ »«ºñ¡ÑÑ.
-
- ABS DEC LONGCARD ORD WORD
- ADDRESS DISPOSE LONGINT PROC VSIZE
- ADR EXCL LONGREAL REAL
- BITSET FALSE LONGWORD SHORTADDR
- BOOLEAN FLOAT MAX SHORTCARD
- BYTE HALT MIN SHORTINT
- CAP HIGH NEW SIZE
- CARDINAL INC NIL TRUE
- CHAR INCL NULLPROC TRUNC
- CHR INTEGER ODD VAL
-
-
- Æ¿»δ
- ----
-
- Æ¿» «»αÑñѽ∩ÑΓ ¼¡«ªÑßΓó« º¡áτÑ¡¿⌐. ƒºδ¬ Modula-2 ó¬½ετáÑΓ α∩ñ »αÑñ«»αÑñѽѡ¡δσ Γ¿»«ó ¿
- ¬«¡ßΓαπ¬µ¿⌐ ñ½∩ «»αÑñѽѡ¿∩ ¡«óδσ Γ¿»«ó. ê¼Ñ¡á ¡«óδ¼ Γ¿»á¼ ¼«ª¡« ¡áº¡áτ¿Γ∞ »α¿ «íΩ∩ó½Ñ¡¿¿
- Γ¿»á:
-
- ÄíΩ∩ó½Ñ¡¿Ñ ::= TYPE {êñÑ¡Γ '=' Ä»¿ßá¡¿ÑÆ¿»á ';'}
-
- ìѬ«Γ«αδÑ Γ¿»δ ¡áºδóáεΓß∩ »α«ßΓ묨:
-
- Ä»¿ßá¡¿ÑÆ¿»á::= Åα«ßΓ«⌐Æ¿»
-
- Æ¿» ¼«ªÑΓ íδΓ∞ Γ«½∞¬« ¿¼Ñ¡Ñ¼ Γ¿»á:
-
- Åα«ßΓ«⌐Æ¿» ::= ê¼∩
-
- ¥Γá ß¿¡Γá¬ß¿τÑ߬á∩ ¬«¡ßΓαπ¬µ¿∩ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¡á¿¼Ñ¡«óá¡¿∩ ½εí«ú« Γ¿»á, á ¡Ñ Γ«½∞¬«
- »α«ßΓ«ú«.
-
- àß½¿ «íΩ∩ó½Ñ¡¿Ñ Γ¿»á »αÑñßΓáó½∩ÑΓ ß«í«⌐ Γ«½∞¬« ¿¼∩ Γ¿»á, Γ« «íΩ∩ó½Ñ¡¡δ⌐ Γ¿» ¿ñÑ¡Γ¿τÑ¡
- ¡áºóá¡¡«¼π (¿¼Ñ¡«óá¡¡«¼π).
-
- Åα¿¼Ñα: TYPE JustCardinal = CARDINAL;
-
-
- ù¿ß½«óδÑ Γ¿»δ
- -------------
-
- ƒºδ¬ Modula-2 ß«ñÑαª¿Γ Γα¿ »αÑñ«»αÑñѽѡ¡δσ «ß¡«ó¡δσ Γ¿»á, óѽ¿τ¿¡δ ¬«Γ«αδσ »αÑñßΓáó-
- ½∩εΓ ß«í«⌐ íѺº¡á¬«óδÑ µÑ½δÑ τ¿ß½á ó ß½ÑñπεΘ¿σ »αÑñѽáσ:
- CARDINAL : «Γ 0 ñ« 65535 («Γ 0 ñ« 2**16 - 1)
- SHORTCARD : «Γ 0 ñ« 255 («Γ 0 ñ« 2**8 - 1)
- LONGCARD : «Γ 0 ñ« 4294967295 («Γ 0 ñ« 2**32 - 1)
-
- æπΘÑßΓóπÑΓ Γα¿ »αÑñ«»αÑñѽѡ¡δσ µÑ½δσ Γ¿»á, óѽ¿τ¿¡δ ¬«Γ«αδσ »αÑñßΓáó½∩εΓ ß«í«⌐ º¡á¬«-
- óδÑ µÑ½δÑ τ¿ß½á ó »αÑñѽáσ:
- INTEGER: -32768 ñ« + 32767 (-2**15 ñ« 2**15 - 1)
- SHORTINT: -128 ñ« + 127 (-2**7 ñ« 2**7 - 1)
- LONGINT: -2147483648 ñ« + 2147483647 (-2**31 ñ« 2**31-1)
-
- ûѽδÑ ¿ «ß¡«ó¡δÑ Γ¿»δ ó¼ÑßΓÑ ¡áºδóáεΓß∩ µÑ½δ¼¿ τ¿ß½«ó묨 Γ¿»á¼¿.
- ê¼ÑÑΓß∩ ñóá »αÑñ«»αÑñѽѡ¡δσ ñÑ⌐ßΓó¿Γѽ∞¡δσ Γ¿»á, óѽ¿τ¿¡δ ¬«Γ«αδσ »αÑñßΓáó½∩εΓ ß«í«⌐
- ñÑ⌐ßΓó¿Γѽ∞¡δÑ τ¿ß½á «»αÑñѽѡ¡«⌐ Γ«τ¡«ßΓ¿:
-
- REAL: +/- 1.2E-38 ñ« 3.4+38, ß Γ«τ¡«ßΓ∞ε ñ« 6 µ¿Σα;
- LONGREAL: +/- 2.e- ñ« 1.7 ñ« 308, ß Γ«τ¡«ßΓ∞ε ñ« 15 µ¿Σα.
- éßÑ Γα¿, «»¿ßá¡¡δÑ óδΦÑ Γ¿»á, ¡áºδóáεΓß∩ τ¿ß½«ó묨 Γ¿»á¼¿.
-
- ÅÑαÑτ¿ß½¿¼δÑ Γ¿»δ
- -----------------
-
- ÅαÑñ«»αÑñѽѡ¡δ⌐ Γ¿» CHAR ß«ñÑαª¿Γ 256 º¡áτÑ¡¿⌐: »ÑαóδÑ 128 - φΓ« ß¿¼ó«½δ ¬«ñá ASCII,
- »«ß½Ññ¡¿Ñ 128 - ߻ѵ¿á½∞¡δÑ úαáΣ¿τÑ߬¿Ñ ß¿¼ó«½δ.
- Modula-2 »αÑñßΓáó½∩ÑΓ ¼Ñσá¡¿º¼ ñ½∩ «»αÑñѽѡ¿∩ Γ¿»«ó »ÑαÑτ¿ß½Ñ¡¿∩ ß »«¼«Θ∞ε »«½¡«ú«
- ß»¿ß¬á óѽ¿τ¿¡ ó Γ¿»Ñ. éѽ¿τ¿¡δ, ½¿ΓÑαá½δ »ÑαÑτ¿ß½Ñ¡¿∩ »αÑñßΓáó½∩εΓß∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αἿ, ¬«-
- Γ«αδÑ «íΩ∩ó½∩εΓ »πΓѼ «»αÑñѽѡ¿∩ Γ¿»á:
-
- Åα«ßΓ«⌐Æ¿» ::= '('滿߫¬êñÑ¡Γ')'
-
- Åα¿¼Ñα:
- TYPE Color = (Red,Yellow,Green,Brown,Blue,Pink,Black);
- Gender = (Male,Female);
-
- Modula-2 ó¬½ετáÑΓ «ñ¿¡ »αÑñ«»αÑñѽѡ¡δ⌐ Γ¿» »ÑαÑτ¿ß½Ñ¡¿∩, ß«ñÑαªáΘ¿⌐ ¿ßΓ¿¡¡δÑ óѽ¿τ¿-
- ¡δ:
-
- TYPE BOOLEAN = (FALSE,TRUE);
-
- ûѽδÑ, «ß¡«ó¡δÑ, ß¿¼ó«½∞¡δÑ, »ÑαÑτ¿ß½¿¼δÑ Γ¿»δ ó¼ÑßΓÑ ¡áºδóáεΓß∩ »ÑαÑτ¿ß½¿¼δ¼¿ Γ¿»á¼¿;
- «¡¿ ¿¼ÑεΓ µÑ½«τ¿ß½Ñ¡¡δÑ »ÑαÑτ¿ß½¿¼δÑ º¡áτÑ¡¿∩. ÅÑαÑτ¿ß½¿¼δÑ ½¿ΓÑαá½δ ¿ßτ¿ß½∩εΓß∩ »«ß½Ññ«óá-
- Γѽ∞¡«, ¡áτ¿¡á∩ ß ¡π½∩. Æá¬ ªÑ ¬á¬ ¿ ñ½∩ ß¿¼ó«½∞¡«ú« Γ¿»á, ¬«α«Γ¬¿Ñ »ÑαÑτ¿ß½¿¼δÑ Γ¿»δ ¿ß¬-
- ½ετáεΓ LONGCARD ¿ LONGINT.
-
- Æ¿»δ-ñ¿á»áº«¡δ
- --------------
-
- Åα¿ ºáñá¡¿¿ »ÑαÑτ¿ß½¿¼«ú« Γ¿»á ¼«ª¡« «»αÑñѽ¿Γ∞ Γ¿»-ñ¿á»áº«¡ φΓ«ú« íẫó«ú« Γ¿»á.
-
- Åα«ßΓ«⌐Æ¿» ::= [ê¼∩] '['éδαáª'..' éδαáª']'
-
- äóá óδαáªÑ¡¿∩ ñ«½ª¡δ íδΓ∞ »«ßΓ«∩¡¡δ¼¿ ¿ «ñ¡«ú« ¿ Γ«ú« ªÑ Γ¿»á. Ä¡¿ «úαá¡¿τ¿óáεΓ óѽ¿-
- τ¿¡δ Γ¿»á »πΓѼ π¬áºá¡¿∩ ¡¿ª¡Ñ⌐ ¿ óÑασ¡Ñ⌐ úαá¡¿µδ (¡¿ª¡∩∩ <= óÑασ¡Ñ⌐). àß½¿ ¿¼∩ »α¿ßπΓßΓóπ-
- ÑΓ, Γ« «¡« ¿¼Ñ¡πÑΓ íẫóδ⌐ Γ¿»; ó »α«Γ¿ó¡«¼ ß½πτáÑ, Ñß½¿ óѽ¿τ¿¡δ óδαáªÑ¡¿∩ »α¿¡áñ½ÑªáΓ ¬
- ¡Ñπ¬áºá¡¡«¼π µÑ½«τ¿ß½Ñ¡¡«¼π Γ¿»π, íẫóδ⌐ Γ¿» »α¿¡¿¼áÑΓß∩ µÑ½δ¼, Ñß½¿ »Ñαó«Ñ óδαáªÑ¡¿Ñ «Γ-
- α¿µáΓѽ∞¡«, ó »α«Γ¿ó¡«¼ ß½πτáÑ - µÑ½δ¼ »«½«ª¿Γѽ∞¡δ¼ (CARDINAL).
- Åα¿¼Ñαδ:
-
- TYPE Year = [1900..2001]; (* üẫóδ⌐ Γ¿» CARDINAL *)
- MyInt = [-1000..+1000]; (* üẫóδ⌐ Γ¿» INTEGER *)
- Digits = ['0'..'9']; (* üẫóδ⌐ Γ¿» CHAR *)
- IntYear = INTEGER [1900..2001]; (* üẫóδ⌐ Γ¿» INTEGER *)
- LongYear = LONGCARD[101900..102001];
- HighColor = [Blue..Black]; (* üẫóδ⌐ Γ¿» COLOR *)
-
- Æ¿»δ-ñ¿á»áº«¡δ ßἿ ∩ó½∩εΓß∩ π»«α∩ñ«τÑ¡¡δ¼¿ Γ¿»á¼¿.
-
-
- Æ¿»δ ¼¡«ªÑßΓó
- -------------
-
- Åα¿ ºáñá¡¿¿ ¬«α«Γ¬«ú« »ÑαÑτ¿ß½¿¼«ú« Γ¿»á ¼«ª¡« «»αÑñѽ¿Γ∞ Γ¿» ¼¡«ªÑßΓó«, óѽ¿τ¿¡δ ¬«-
- Γ«α«ú« »αÑñßΓáó½∩εΓ ß«í«⌐ (¡Ñπ»«α∩ñ«τÑ¡¡δÑ) ¼¡«ªÑßΓó« óѽ¿τ¿¡ ¬«α«Γ¬«ú« »ÑαÑτ¿ß½¿¼«ú« Γ¿»á:
-
- Ä»¿ßá¡¿ÑÆ¿»á ::= SET OF Åα«ßΓ«⌐Æ¿»
-
- î¿¡¿¼á½∞¡á∩ óѽ¿τ¿¡á ¿¼Ñ¡«óá¡¡«ú« Γ¿»á φ½Ñ¼Ñ¡Γá ¡áí«αá ñ«½ª¡á ¿¼ÑΓ∞ ¡π½∞ π»«α∩ñ«τÑ¡¡«⌐
- óѽ¿τ¿¡δ. Æ¿» ¡áí«αá ß«ñÑαª¿Γ ½εí«Ñ »«ñ¼¡«ªÑßΓó« óѽ¿τ¿¡ Γ¿»á φ½Ñ¼Ñ¡Γá ¡áí«αá.
-
- Åα¿¼Ñα: TYPE Chars = SET OF CHAR;
-
- ê¼ÑÑΓß∩ «ñ¿¡ »αÑñ«»αÑñѽѡ¡δ⌐ Γ¿» ¡áí«αá:
-
- TYPE BITSET = SET OF [0..15];
-
-
- Æ¿»δ ¼áßß¿ó«ó
- -------------
-
- Æ¿»δ ¼áßß¿ó«ó «íÑß»Ñτ¿óáεΓ «Γ«íαáªÑ¡¿∩ ß ¬«α«Γ¬«ú« »ÑαÑτ¿ß½¿¼«ú« ¿¡ñѬߡ«ú« Γ¿»á ¡á
- ½εí«⌐ Γ¿» φ½Ñ¼Ñ¡Γá ¼áßß¿óá:
-
- Ä»¿ßá¡¿ÑÆ¿»á ::= ARRAY 滿߫¬ê¡ñѬ߫ó OF Ä»¿ßá¡¿ÑÆ¿»á
-
- 滿߫¬ê¡ñѬ߫ó ::= Åα«ßΓ«⌐Æ¿» {',' Åα«ßΓ«⌐Æ¿»}
-
- Ä»αÑñѽѡ¿Ñ Γ¿»á ¼¡«ªÑßΓóá ß í«½ÑÑ, τѼ «ñ¡¿¼ ¿¡ñÑ¬ß¡δ¼ Γ¿»«¼ φ¬ó¿óá½Ñ¡Γ¡« «»αÑñѽѡ¿ε
- αáßΦ¿αÑ¡¡«ú« Γ¿»á:
-
- ARRAY ê¡ñѬß1 OF ARRAY ê¡ñѬß2 ... OF Ä»¿ßá¡¿ÑÆ¿»á
-
- éßÑ αáºΩ∩ߡѡ¿∩ »«ñαáºπ¼ÑóáεΓ «ñ¿¡ ¿¡ñѬߡδ⌐ Γ¿». éѽ¿τ¿¡á Γ¿»á ¼áßß¿ó«ó ß«ñÑαª¿Γ π»«-
- α∩ñ«τÑ¡¡δ⌐ ¡áí«α óѽ¿τ¿¡ φ½Ñ¼Ñ¡Γ¡«ú« Γ¿»á - «ñ¡á ñ½∩ ¬áªñ«⌐ óѽ¿τ¿¡δ ó ¿¡ñѬߡ«¼ Γ¿»Ñ.
- Åα¿¼Ñαδ:
-
- TYPE NameString = ARRAY [0..24] OF CHAR;
- IntArray = ARRAY BOOLEAN OF INTEGER;
-
-
- Æ¿»δ ºá»¿ßÑ⌐
- ------------
-
- Æ¿»δ ºá»¿ßÑ⌐ »αÑñßΓáó½∩εΓ ß«í«⌐ ß«ó«¬π»¡«ßΓ∞ «Γñѽ∞¡δσ »«½Ñ⌐:
-
- Ä»¿ßá¡¿ÑÆ¿»á ::= RECORD { Ä»¿ßá¡¿ÑÅ«½∩ } END
-
- Ä»¿ßá¡¿ÑÅ«½∩ ::= 滿߫¬êñÑ¡Γ ':' Ä»¿ßá¡¿ÑÆ¿»á ';'
-
- éßÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ, ¡áºδóáѼδÑ ¿¼Ñ¡á¼¿ »«½Ñ⌐, ñ«½ª¡δ íδΓ∞ αẽ¿τ¡δ¼¿, ¡« «¡¿ ∩ó½∩εΓß∩
- ½«¬á½∞¡δ¼¿ »« «Γ¡«ΦÑ¡¿ε ¬ «»αÑñѽѡ¿ε Γ¿»á ºá»¿ß¿ ¿ ¼«úπΓ ¡Ñ «Γ½¿τáΓ∞ß∩ «Γ ñαπú¿σ ¿ñÑ¡Γ¿Σ¿-
- ¬áΓ«α«ó.
- éѽ¿τ¿¡á ºá»¿ß¿ ß«ñÑαª¿Γ «ñ¡π óѽ¿τ¿¡π ß««ΓóÑΓßΓóπεΘÑú« Γ¿»á ñ½∩ ¬áªñ«ú« »«½∩.
- Åα¿¼Ñαδ:
-
- TYPE Person = RECORD
- First,Last: NameString;
- Age: SHORTCARD [0..125];
- END;
- AdrPair = RECORD Ofz,Seg: CARDINAL; END;
-
- Æ¿»δ óáα¿á¡Γ¡«⌐ ºá»¿ß¿ »«ºó«½∩εΓ »αÑñßΓáó¿Γ∞ º¡áτÑ¡¿Ñ ºá»¿ß¿ αẽ¿τ¡δ¼¿ úαπ»»á¼¿ »«-
- ½Ñ⌐, óáα¿á¡ΓἿ. éáα¿á¡Γ¡δÑ τáßΓ¿ ¼«úπΓ »α«¿ºó«½∞¡« úαπ»»¿α«óáΓ∞ß∩.
-
- Ä»¿ßá¡¿ÑÅ«½∩ ::= ùáßΓ∞éáα¿á¡Γá ';'
-
- ùáßΓ∞éáα¿á¡Γá ::= CASE [êñÑ¡Γ] ':' ê¼∩ OF { '|' éáα¿á¡Γ}
- [ELSE {Ä»¿ßá¡¿ÑÅ«½∩} ] END
-
- éáα¿á¡Γ ::= 滿߫¬éδí«αá ':' {Ä»¿ßá¡¿ÑÅ«½∩}
-
- 滿߫¬éδí«αá ::= éδí«α { ',' éδí«α }
-
- éδí«α ::= éδα᪠['..' éδαáª]
-
- ç¡á¬ "|", ßΓ«∩Θ¿⌐ »ÑαÑñ »Ñαóδ¼ óáα¿á¡Γ«¼, ¼«ªÑΓ íδΓ∞ «»πΘÑ¡.
- êñÑ¡Γ¿Σ¿¬áΓ«α »α¿º¡á¬á, ¬«Γ«αδ⌐ ¼«ªÑΓ π¬áºδóáΓ∞ß∩ »«ß½Ñ CASE, ß«»α«ó«ªñáÑΓß∩ ¿¼Ñ¡Ñ¼
- »ÑαÑτ¿ß½¿¼«ú« Γ¿»á »α¿º¡á¬á. àß½¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«α »α¿º¡á¬á »α¿ßπΓßΓóπÑΓ, «¡ «»αÑñѽ∩ÑΓ ñÑ⌐ß-
- Γó¿Γѽ∞¡«Ñ »«½Ñ Γᬫú« Γ¿»á.
- éáα¿á¡Γδ ¿ ¡Ñ«í∩ºáΓѽ∞¡á∩ τáßΓ∞ ELSE, ¬áªñá∩, «»αÑñѽ∩εΓ ß»¿ß«¬ »«½Ñ⌐ «»αÑñѽѡ¿⌐, ¡«
- »«½Ñ Γ«½∞¬« «ñ¡«⌐ ¿º ¡¿σ »α¿ßπΓßΓóπÑΓ ó ¬áªñ«¼ º¡áτÑ¡¿¿ Γ¿»á óáα¿á¡Γ¡«⌐ ºá»¿ß¿.
- ǽ∞ΓÑα¡áΓ¿ó¡δÑ óδαáªÑ¡¿∩ ñ«½ª¡δ íδΓ∞ »«ßΓ«∩¡¡δ ¿ Γ¿»á »α¿º¡á¬á ¿ ¡Ñ ñ«½ª¡δ ß«ñÑαªáΓ∞
- »ÑαѬαδóáεΘ¿σß∩ óѽ¿τ¿¡. ǽ∞ΓÑα¡áΓ¿óá ß ñóπ¼∩ óδαáªÑ¡¿∩¼¿ «í«º¡áτáÑΓ óßÑ óѽ¿τ¿¡δ ñ¿á»áº«-
- ¡á. èáªñδ⌐ á½∞ΓÑα¡áΓ¿ó¡δ⌐ ß»¿ß«¬ ñ«½ªÑ¡ «»αÑñѽ∩Γ∞ óѽ¿τ¿¡δ »α¿º¡á¬á, ñ½∩ ¬«Γ«αδσ ¿¼ÑÑΓß∩
- ß««ΓóÑΓßΓóπεΘ¿⌐ óáα¿á¡Γ, τáßΓ∞ ELSE »«¬αδóáÑΓ «ßΓáóΦ¿Ñß∩ óѽ¿τ¿¡δ. Åα¿ßπΓßΓó¿Ñ ¿½¿ «ΓßπΓß-
- Γó¿Ñ »«½Ñ⌐ »α¿º¡á¬á ∩ó½∩ÑΓß∩ Γ«½∞¬« ½«ú¿τÑ߬¿¼; «¡¿ óßÑúñá ñ«ß∩úáѼδ, ¡« αáºñѽ∩εΓ »á¼∩Γ∞.
- Åα¿¼Ñα:
-
- TYPE Location =
- RECORD
- Value: BYTE;
- CASE Simple: BOOLEAN OF
- | TRUE: ByteOfz: LONGCARD;
- | FALSE: SegOfz: AdrPair;
- END:
- END;
-
- Æ¿»δ π¬áºáΓѽÑ⌐
- ---------------
-
- éѽ¿τ¿¡δ Γ¿»á π¬áºáΓѽÑ⌐ »αÑñßΓáó½∩εΓ ß«í«⌐ »πΓ¿ ñ«ßΓπ»á ¬ «íΩѬΓá¼ «í«º¡áτáѼ«ú« Γ¿-
- ȇ:
-
- Ä»¿ßá¡¿ÑÆ¿»á ::= POINTER [ éδα᪠] TO Ä»¿ßá¡¿ÑÆ¿»á
-
- àß½¿ óδαáªÑ¡¿Ñ «»πΘÑ¡«, «»αÑñѽ∩ÑΓß∩ áíß«½εΓ¡δ⌐ Γ¿» π¬áºáΓѽ∩; óѽ¿τ¿¡δ φΓ«ú« Γ¿»á
- »αÑñßΓáó½∩εΓ ß«í«⌐ »«½¡δÑ 32- σ í¿Γ«óδÑ Σ¿º¿τÑ߬¿Ñ áñαÑßá ó¿ñá ßÑú¼Ñ¡Γ/ß¼ÑΘÑ¡¿Ñ.
- üẫóδ⌐ Γ¿» π¬áºáΓѽ∩ «»αÑñѽ∩ÑΓß∩ »πΓѼ ó¬½ετÑ¡¿∩ (»«ß½Ñ POINTER) óδαáªÑ¡¿∩ Γ¿»á
- CARDINAL. Æá¬¿Ñ º¡áτÑ¡¿∩ ß«ñÑαªáΓ Γ«½∞¬« Γπ τáßΓ∞ Σ¿º¿τÑ߬«ú« áñαÑßá, ¬«Γ«αá∩ ¡áºδóáÑΓß∩
- ß¼ÑΘÑ¡¿Ñ¼. æÑú¼Ñ¡Γ¡á∩ τáßΓ∞ »«½πτáÑΓß∩ »αÑ«íαẫó᡿Ѽ óδαáªÑ¡¿∩ ¬áªñδ⌐ αáº, ¬«úñá «í«º¡á-
- τáѼδ⌐ «íΩÑ¬Γ ñ«ßΓπ»Ñ¡. Å«φΓ«¼π íẫóδÑ π¬áºáΓѽ¿ ¬«α«Γ¬¿ - 16 í¿Γ.
- üẫóδÑ π¬áºáΓѽ¿ «íÑß»Ñτ¿óáεΓ ßß佬π ¡á ¡áßΓαá¿óáѼδÑ «íΩѬΓδ Γ«½∞¬« »πΓѼ ¼«ñ¿Σ¿¬á-
- µ¿¿ íẫó«⌐ (ßÑú¼Ñ¡Γ¡«⌐) óѽ¿τ¿¡δ («ßΓáó½∩∩ ß¼ÑΘÑ¡¿Ñ ¡Ñ¿º¼Ñ¡¡δ¼).
- Åα¿¼Ñαδ:
-
- TYPE ListPtr = POINTER TO ListNode;
- ListNode = RECORD
- Value: CARDINAL; (* º¡áτÑ¡¿Ñ φ½Ñ¼Ñ¡Γá
- *)
- NextNode: ListPtr; (* ß½ÑñπεΘ¿⌐ φ½Ñ-
- ¼Ñ¡Γ *)
- END;
- ShortPtr = POINTER Base TO ListNode;
-
- ê¼ÑÑΓß∩ ñóá »αÑñ«»αÑñѽѡ¡δσ Γ¿»á π¬áºáΓѽÑ⌐:
-
- TYPE ADDRESS = POINTER TO WORD;
- SHORTADDR = Pointer O TO WORD;(* ¡π½Ñó«⌐ íẫóδ⌐ ßÑú-
- ¼Ñ¡Γ *)
-
- éѽ¿τ¿¡δ Γ¿»á π¬áºáΓѽ∩ »«½πτáεΓß∩ ½¿í« ¬á¬ áñαÑßá (áíß«½εΓ¡δÑ) ßπΘÑßΓóπεΘ¿σ «íΩÑ¬Γ«ó
- «í«º¡áτáѼ«ú« Γ¿»á ¿½¿ ªÑ «¡¿ ¼«úπΓ »αÑñßΓáó½∩Γ∞ ß«í«⌐ ¿ßσ«ñ¡δÑ áñαÑßá »á¼∩Γ¿, »«½πτÑ¡¡δÑ ß
- »«¼«Θ∞ε áñ¼¿¡¿ßΓαáΓ«αá »á¼∩Γ¿ (ß¼. âïÇéô 8).
- Æ¿»δ ¼áßß¿ó«ó, ºá»¿ßÑ⌐ ¿ π¬áºáΓѽÑ⌐ ó¼ÑßΓÑ ¡áºδóáεΓß∩ ß«ßΓáó¡δ¼¿ Γ¿»á¼¿; óßÑ «ßΓá½∞-
- ¡δÑ, ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ¿»«ó ¼¡«ªÑßΓóá, ∩ó½∩εΓß∩ »α«ßΓ묨 Γ¿»á¼¿.
-
-
- æ«ó¼ÑßΓ¿¼«ßΓ∞ Γ¿»«ó
- -------------------
-
- é ¡Ñ¬«Γ«αδσ ß¿Γπᵿ∩σ ΓαÑíπÑΓß∩ ß«ó¼ÑßΓ¿¼«ßΓ∞ Γ¿»«ó; ºñÑß∞ ÑßΓ∞ Γα¿ ñÑßΓáí¿½¿º¿απεΘ¿σ
- ¼«¼Ñ¡Γá.
- ìá¿í«½ÑÑ ªÑßΓ¬¿¼ ∩ó½∩ÑΓß∩ ΓαÑí«óá¡¿Ñ ¿ñÑ¡Γ¿τ¡«ßΓ¿ Γ¿»«ó; φΓ« «º¡áτáÑΓ, τΓ« «¡¿ ñ«½ª¡δ
- íδΓ∞ «»αÑñÑ½Ñ¡δ «ñ¡¿¼ Γ¿»«¼.
- æ½ÑñπεΘ¿¼ ¿ñÑΓ ß«ó¼ÑßΓ¿¼«ßΓ∞. Ä¡á ó¬½ετáÑΓ ΓαÑí«óá¡¿∩ ß«ó¼ÑßΓ¿¼«ßΓ¿ »«ñτ¿¡Ñ¡¡δσ Γ¿»«ó
- ß ¿σ íẫó묨 Γ¿»á¼¿ ¿ ñαπú¿¼¿ »«ñτ¿¡Ñ¡¡δ¼¿ Γ¿»á¼¿ Γ«ú« ªÑ íẫó«ú« Γ¿»á. ADDRESS ß«ó¼ÑßΓ¿¼
- ß ½εíδ¼ áíß«½εΓ¡δ¼ π¬áºáΓѽѼ, á SHORTADDR - ß ½εíδ¼ íẫóδ¼ π¬áºáΓѽѼ.
- ê, ¡á¬«¡Ñµ, ß«ó¼ÑßΓ¿¼«ßΓ∞ »α¿ßóá¿ó᡿Ѽ ¿¼ÑÑΓ ¼ÑßΓ« ¼Ñªñπ »áαἿ CARDINAL/INTEGER,
- SHORTCARD/SHORTINT, LONGCARD/ LONGINT.
- æπΘÑßΓóπÑΓ Γα¿ »αÑñ«»αÑñѽѡ¡δσ Γ¿»á, ¡áºδóáѼδσ BYTE, WORD ¿ LONGWORD. Ä¡¿ «Γ¡«ß∩Γß∩
- ¬ 1, 2, ¿ 4 í¿Γá¼ »á¼∩Γ¿, ß««ΓóÑΓßΓóÑ¡¡«, ¿ ∩ó½∩εΓß∩ ß«ó¼ÑßΓ¿¼δ¼¿ »« »α¿ßó«Ñ¡¿ε ß «íΘ¿¼¿ ¿
- µÑ½δ¼¿ Γ¿»á¼¿ «ñ¿¡á¬«ó«ú« αẼÑαá.
- æ»Ñµ¿á½∞¡δÑ »αáó¿½á ß«ó¼ÑßΓ¿¼«ßΓ¿ »α¿¼Ñ¡∩εΓß∩ ¬ Σ«α¼á½∞¡δ¼ »áαá¼ÑΓαá¼.
-
-
- ÄüÜàèÆ¢ ê çìÇùàìêƒ
- ==================
-
- ÄíΩѬΓδ ¿¼ÑεΓ Γ¿»δ ¿ σαá¡∩Γ óѽ¿τ¿¡δ ¿ß¬½ετ¿Γѽ∞¡« φΓ«ú« Γ¿»á. ê¼ÑÑΓß∩ ñóá Γ¿»á: »ÑαÑ-
- ¼Ñ¡¡δÑ ¿ Σ«α¼á½∞¡δÑ »áαá¼ÑΓαδ. ÄíΩѬΓδ Γ¿»á ¼áßß¿óá ¿ ºá»¿ß¿ ¼«úπΓ ß«ñÑαªáΓ∞ ¡Ñ߬«½∞¬« ¬«¼-
- »«¡Ñ¡Γ¡δσ «íΩÑ¬Γ«ó.
- ÅÑαѼѡ¡δÑ ñ«½ª¡δ íδΓ∞ «íΩ∩ó½Ñ¡δ:
-
- ÄíΩ∩ó½Ñ¡¿Ñ ::= VAR {ÅÑαѼêñÑ¡Γ { ',' ÅÑαѼêñÑ¡Γ } ':'
- Ä»¿ßá¡¿ÑÆ¿»á ';' }
-
- ÅÑαѼêñÑ¡Γ ::= êñÑ¡Γ
-
- èáªñ«Ñ «íΩ∩ó½Ñ¡¿Ñ »α«ó«ºú½áΦáÑΓ óßÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ ß»¿ß¬á »ÑαѼѡ¡δ¼¿ «»¿ßá¡¡«ú« Γ¿»á.
- êσ »Ñαó«¡áτá½∞¡δÑ óѽ¿τ¿¡δ ¿ñÑ¡Γ¿Σ¿µ¿α«óá¡δ.
- Åα¿¼Ñαδ:
-
- VAR I,J,N,M: CARDINAL;
- Base: CARDINAL;
- L: LONGCARD;
- X,Y: LONGREAL;
- P: POINTER TO INTEGER;
- S: ARRAY [1..100] OF CHAR;
- R: RECORD X,Y: INTEGER; END;
- C: CHAR;
- Z: Chars;
- Loc: Location;
- Persons: ARRAY BOOLEAN OF POINTER TO Person;
-
- ÅÑαѼѡ¡á∩ ¼«ªÑΓ íδΓ∞ αẼÑΘÑ¡á »« Σ¿¬ß¿α«óá¡¡«¼π Σ¿º¿τÑ߬«¼π áñαÑßπ »πΓѼ π¬áºá¡¿∩
- »«ßΓ«∩¡¡δσ óδαáªÑ¡¿⌐ CARDINAL ñ½∩ ßÑú¼Ñ¡Γá ¿ ß¼ÑΘÑ¡¿∩:
-
- ÅÑαѼêñÑ¡Γ ::= êñÑ¡Γ '[' éδα᪠':' éδα᪠']'
-
-
- Åα¿¼Ñα:
-
- VAR ColorScreen [0B800H:0] : ARRAY [1..25] OF
- ARRAY [1..80] OF
- RECORD
- Chr: CHAR;
- Atr: SHORTCARD;
- END;
-
- è«¡ßΓá¡Γδ
- ---------
-
- Å«ßΓ«∩¡¡δÑ ½¿ΓÑαá½δ «í«º¡áτáεΓ ¡á¿í«½ÑÑ íẫóδÑ óѽ¿τ¿¡δ:
- ç¡áτÑ¡¿Ñ ::= ûѽ«Ñù¿ß½«
- ç¡áτÑ¡¿Ñ ::= äÑ⌐ßΓó¿Γù¿ß½«
- ç¡áτÑ¡¿Ñ ::= æΓ᫬á
-
- ûѽδÑ τ¿ß½á ∩ó½∩εΓß∩ 󫺼«ª¡δ¼¿ óѽ¿τ¿¡á¼¿ ñ½∩ µÑ½δσ ¿ «íΘ¿σ Γ¿»«ó, ñÑ⌐ßΓó¿Γѽ∞¡δÑ
- τ¿ß½á - ñ½∩ ñÑ⌐ßΓó¿Γѽ∞¡δσ Γ¿»«ó, á ¼áßß¿ó ½¿ΓÑα - ñ½∩ ß¿¼ó«½∞¡δσ Γ¿»«ó (¼áßß¿ó ó φΓ«¼ ß½π-
- τáÑ ñ«½ªÑ¡ ¿¼ÑΓ∞ ñ½¿¡π 1) ¿ ñ½∩ Γ¿»«ó Σ«α¼δ: ARRAY...OF CHAR.
- éѽ¿τ¿¡δ »«ßΓ«∩¡¡δσ ºá»¿ßÑ⌐ ¿ óѽ¿τ¿¡δ ¼áßß¿ó«ó Σ«α¼¿απεΓß∩ ß áúαÑúáΓἿ:
-
- ç¡áτÑ¡¿Ñ ::= ê¼∩ '(' éδα᪠{ ',' éδα᪠} ')'
-
- éδαáªÑ¡¿∩, ¬«Γ«αδσ ñ«½ª¡« íδΓ∞ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ ñóá, ∩ó½∩εΓß∩ »«ßΓ«∩¡¡δ¼¿ ¿ ñáεΓ ¬«¼»«-
- ¡Ñ¡Γ¡δÑ óѽ¿τ¿¡δ ñ½∩ ¿¼Ñ¡«óá¡¡«ú« Γ¿»á.
- ä½∩ Γ¿»«ó ¼áßß¿ó«ó «ñ¡á óѽ¿τ¿¡á ñ«½ª¡á »α¿ó«ñ¿Γ∞ß∩ ñ½∩ ¬áªñ«⌐ ¿º óѽ¿τ¿¡ ¿¡ñѬߡ«ú«
- ñ¿á»áº«¡á.
- ä½∩ Γ¿»«ó ºá»¿ß¿ «ñ¡á óѽ¿τ¿¡á »α¿ó«ñ¿Γß∩ ñ½∩ ¬áªñ«ú« ñá¡¡«ú« Γ¿»á. éѽ¿τ¿¡δ ñ«½ª¡δ
- »α¿ó«ñ¿Γ∞ß∩ ñáªÑ ñ½∩ «ΓßπΓßΓóπεΘ¿σ »«½Ñ⌐ »α¿º¡á¬á, τΓ«íδ «»αÑñѽ¿Γ∞, ¬ ¬á¬«¼π »α¿º¡á¬π «Γ-
- ¡«ß∩Γß∩ ß½ÑñπεΘ¿Ñ óѽ¿τ¿¡δ.
- ê¼Ñ¡«óá¡¡δÑ ¬«¡ßΓá¡Γδ ¼«úπΓ íδΓ∞ «íΩ∩ó½Ñ¡δ »πΓѼ óó«ñá ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó, »αÑñßΓáó½∩εΘ¿σ
- »«ßΓ«∩¡¡δÑ óѽ¿τ¿¡δ:
-
- ÄíΩ∩ó½Ñ¡¿Ñ ::= CONST { êñÑ¡Γ '=' éδα᪠';' }
-
- ê¼ÑÑΓß∩ »αÑñ«»αÑñѽѡ¡á∩ ¬«¡ßΓá¡Γá, NIL, ß«ó¼ÑßΓ¿¼á∩ ß ½εíδ¼ áíß«½εΓ¡δ¼ Γ¿»«¼ π¬áºáΓÑ-
- ½∩.
- ì¿ ½¿ΓÑαá½δ, ¡¿ ¿¼Ñ¡«óá¡¡δÑ ¬«¡ßΓá¡Γδ ¡Ñ ∩ó½∩εΓß∩ «íΩѬΓἿ.
- Åα¿¼Ñαδ:
-
- CONST Pi = 3.14159;
- Ratio = 360.0 / (2.0 * Pi);
- K = 1024;
- P = Person("Donald","Duck",50);
- LastLoc = Location(0,FALSE,AdrPair(0FFFFH,0FH));
- X = IntArray(-12345,16*K)
-
-
- ç¡áτÑ¡¿∩ ¼¡«ªÑßΓó
- -----------------
-
- éѽ¿τ¿¡δ ¡áí«αá Σ«α¼¿απεΓß∩ ß »«¼«Θ∞ε »«ßΓα«¿Γѽ∩ ¡áí«αá.
-
- ç¡áτÑ¡¿Ñ ::= [ ê¼∩ ] '{' [ 滿߫¬éδí«αá] '}'
-
- éδαáªÑ¡¿∩ ñ½∩ óδí«α«ó »αÑñßΓáó½∩εΓ ß«í«⌐ óѽ¿τ¿¡δ Γ¿»á ¡áí«αá φ½Ñ¼Ñ¡Γ«ó; «¡¿ ¡Ñ ñ«½ª¡δ
- íδΓ∞ »«ßΓ«∩¡¡δ¼¿. ê¼∩ «í«º¡áτáÑΓ Γ¿» ¡áí«αá; Ñß½¿ ªÑ Ñú« »α«»πßΓ¿Γ∞, Γ« φΓ« íπñÑΓ «º¡áτáΓ∞
- BITSET.
-
- Åα¿¼Ñα: Chars { 'A'..'Z' , 'a'..'z' , '_' }
-
-
- ìạáτÑ¡¿∩
- ----------
-
- ìạáτÑ¡¿∩ ¿ß»«½∞ºπεΓß∩ ñ½∩ «í«º¡áτÑ¡¿∩ «íΩÑ¬Γ«ó. 諼»«¡Ñ¡Γ¡δÑ «íΩѬΓδ ß«ßΓáó¡«ú« «íΩ-
- ѬΓá ¡áº¡áτáεΓß∩ »πΓѼ ñ«íáó½Ñ¡¿∩ ßπΣΣ¿¬ß«ó ¬ ¡áº¡áτÑ¡¿ε ß«ßΓáó¡«ú« «íΩѬΓá. ä«íáó½Ñ¡¿Ñ
- ßπΣΣ¿¬ß«ó ¿ß»«½∞ºπÑΓß∩ Γá¬ªÑ ñ½∩ ¡áº¡áτÑ¡¿∩ ¬«¼»«¡Ñ¡Γ«ó ¿¼Ñ¡«óá¡¡δσ áúαÑúáΓ¡δσ ¬«¡ßΓá¡Γ.
- êß»«½∞º«óá¡¿Ñ ¡áº¡áτÑ¡¿∩ ó ¬áτÑßΓóÑ óѽ¿τ¿¡δ «í«º¡áτáÑΓ óѽ¿τ¿¡π ¡áº¡áτáѼ«ú« «íΩѬΓá:
-
- ç¡áτÑ¡¿Ñ ::= ìạáτÑ¡¿Ñ
-
- ìá¿»α«ßΓÑ⌐Φá∩ Σ«α¼á ¡áº¡áτÑ¡¿∩ - φΓ« »α«ßΓ« ¿¼∩ «íΩѬΓá:
-
- ìạáτÑ¡¿Ñ ::= ê¼∩
-
- ¥Γ« »αÑñßΓáó½∩ÑΓ ß«í«⌐ Γá¬ªÑ ß»«ß«í ¿ß»«½∞º«óá¡¿∩ »ÑαÑτ¿ß½¿¼δσ ½¿ΓÑαá½«ó ¿ ¿¼Ñ¡«óá¡¡δσ
- ¬«¡ßΓá¡Γ ¬á¬ óѽ¿τ¿¡ Γ«½∞¬« ½¿Φ∞ »πΓѼ ¿σ ¡á¿¼Ñ¡«óá¡¿∩.
- ê¡ñѬßᵿ∩ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¡áº¡áτÑ¡¿∩ ¬«¼»«¡Ñ¡Γ«ó «íΩÑ¬Γ«ó Γ¿»á ¼áßß¿óá:
-
- ìạáτÑ¡¿Ñ ::= ìạáτÑ¡¿Ñ '[' éδα᪠{ ',' éδα᪠} ']'
-
- ÅÑαÑτÑ¡∞ ¿¡ñѬߡδσ óδαáªÑ¡¿⌐ φ¬ó¿óá½Ñ¡ΓÑ¡ »ÑαÑτ¡ε «Γñѽ∞¡δσ ¿¡ñѬ߫ó: X[A,B,C] φ¬ó¿óá-
- ½Ñ¡Γ¡« X[A][B][C]. éßÑ »«∩ߡѡ¿∩ »«ñαáºπ¼ÑóáεΓ Ññ¿¡ßΓóÑ¡¡«Ñ ¿¡ñѬߡ«Ñ óδαáªÑ¡¿Ñ.
- éѽ¿τ¿¡á óδαáªÑ¡¿∩ ñ«½ª¡á ¿¼ÑΓ∞ Γ¿»«ó«Ñ »α¿ßóá¿óá¡¿Ñ, ßαáó¡¿¼«Ñ ß ¿¡ñÑ¬ß¡δ¼ Γ¿»«¼; »α¿
- φΓ«¼ »α«¿ßσ«ñ¿Γ óδí«α ß««ΓóÑΓßΓóπεΘÑú« ¬«¼»«¡Ñ¡Γ¡«ú« «íΩѬΓá.
-
- Åα¿¼Ñα: S[I+7]
-
- éδí«α »«½∩ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¡áº¡áτÑ¡¿∩ ¬«¼»«¡Ñ¡Γ«ó «íΩÑ¬Γ«ó Γ¿»«ó ºá»¿ß¿:
-
- ìạáτÑ¡¿Ñ ::= ìạáτÑ¡¿Ñ '.' êñÑ¡Γ
-
- êñÑ¡Γ¿Σ¿¬áΓ«α »αÑñßΓáó½∩ÑΓ ß«í«⌐ ½εí«⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α »«½∩ Γ¿»á ºá»¿ß¿; αѺπ½∞Γ¿απεΘÑÑ
- ¡áº¡áτÑ¡¿Ñ π¬áºδóáÑΓ ¡á »«½Ñ «íΩѬΓá ºá»¿ß¿.
-
- Åα¿¼Ñα: R.Y
-
- Éáºδ¼Ñ¡«óá¡¿Ñ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¡áº¡áτÑ¡¿∩ «íΩѬΓá, ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ, «íΩѬΓἿ Γ¿-
- »á π¬áºáΓѽ∞:
-
- ìạáτÑ¡¿Ñ ::= ìạáτÑ¡¿Ñ '^'
-
- àß½¿ Γ¿» π¬áºáΓѽ∩ ¿¼ÑÑΓ «ß¡«óá¡¿Ñ, φΓ« ó¬½ετáÑΓ óδτ¿ß½Ñ¡¿Ñ íẫó«ú« óδαáªÑ¡¿∩.
-
- Åα¿¼Ñα: P^
-
- ê¡ñѬ߿α«óá¡¿Ñ, óδí«α »«½∩ ¿ αáºδ¼Ñ¡«óá¡¿Ñ ¼«úπΓ ß¼ÑΦ¿óáΓ∞ß∩.
- Åα¿¼Ñα:
-
- Persons[TRUE]^.Last[0] (* »Ñαóá∩ íπ¬óá »«ß½Ññ¡«ú« ¿¼Ñ¡¿ *)
-
- è«¡ßΓαπ¬Γ«α π¬áºáΓѽ∩ ¿ß»«½∞ºπÑΓß∩ ñ½∩ «íΩÑñ¿¡Ñ¡¿∩ µÑ½δσ »«½«ª¿Γѽ∞¡δσ º¡áτÑ¡¿⌐
- (CARDINAL) ßÑú¼Ñ¡Γá ¿ ß¼ÑΘÑ¡¿∩ ó Σ¿º¿τÑ߬¿⌐ áñαÑß:
-
- ìạáτÑ¡¿Ñ ::= '[' éδα᪠':' éδα᪠[ ê¼∩ ] ']'
-
- ê¼∩ «í«º¡áτáÑΓ αѺπ½∞Γ¿απεΘ¿⌐ Γ¿» áíß«½εΓ¡«ú« π¬áºáΓѽ∩; Ñß½¿ «¡« «»πΘÑ¡«, Γ« ¿¼ÑÑΓß∩
- ó ó¿ñπ Γ¿» ADDRESS.
- Åα¿¼Ñα:
-
- [ListSeg:FirstNode+N ListPtr]^.Value
-
-
- é¢ÉÇåàìêƒ
- =========
-
- éδαáªÑ¡¿∩ «í«º¡áτáεΓ óδτ¿ß½Ñ¡¿Ñ óѽ¿τ¿¡. é¡πΓα¿ óδαáªÑ¡¿⌐ ¿ß»«½∞ºπεΓß∩ «»ÑαáΓ«αδ ß
- µÑ½∞ε «íΩÑñ¿¡Ñ¡¿∩ «»Ñαá¡ñ«ó, ¬«Γ«αδÑ ßἿ »« ßÑíÑ ∩ó½∩εΓß∩ óδαáªÑ¡¿∩¼¿.
- éδαáªÑ¡¿∩, Γá¬ªÑ ¬á¬ ¿ óѽ¿τ¿¡δ, ¿¼ÑεΓ Γ¿»δ, ºá ¿ß¬½ετÑ¡¿Ñ¼ ΓÑσ ß½πτáÑó, ¬«úñá óßÑ
- «»Ñαá¡ñδ ∩ó½∩εΓß∩ τ¿ß½Ñ¡¡δ¼¿ ½¿ΓÑαá½á¼¿; «»αÑñѽѡ¿Ñ Γ¿»«ó ñ½∩ Γᬿσ óδαáªÑ¡¿⌐ «Γ¬½áñδóáÑΓ-
- ß∩ ñ« ΓÑσ »«α, »«¬á ó ¬«¡ΓѬßΓÑ ¡Ñ 󫺡¿¬¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ∞ π¬áºá¡¿∩ ߻ѵ¿Σ¿τÑ߬«ú« Γ¿»á.
- ¥Γ« «º¡áτáÑΓ, τΓ« «ñ¿¡á¬«óδÑ τ¿ß½Ñ¡¡δÑ ½¿ΓÑαá½δ (¿½¿ ¿¼Ñ¡«óá¡¡δÑ ¬«¡ßΓá¡Γδ) ¼«úπΓ íδΓ∞ ¿ß-
- »«½∞º«óá¡δ ñ½∩ αẽ¿τ¡δσ τ¿ß½Ñ¡¡δσ Γ¿»«ó. ä« óó«ñá ¬«¡ΓѬßΓá Ññ¿¡ßΓóÑ¡¡δ¼ αẽ¿τ¿Ñ¼ ∩ó½∩ÑΓ-
- ß∩ αẽ¿τ¿Ñ ¼Ñªñπ µÑ½δ¼¿ ¿ ñÑ⌐ßΓó¿Γѽ∞¡δ¼¿ τ¿ß½á¼¿.
- è«úñá «»Ñαá¡ñδ «»ÑαáΓ«αá »αÑñßΓáó½∩εΓ ß«í«⌐ ¬«¡ßΓá¡Γδ, αѺπ½∞ΓáΓ óδτ¿ß½∩ÑΓß∩ ºá óαѼ∩
- ¬«¼»¿½∩µ¿¿; αѺπ½∞ΓáΓ Γá¬ªÑ ¬«¡ßΓá¡Γá.
- ÅÑαóÑ¡ßΓó« «»ÑαáΓ«α«ó «»¿ßá¡« ¡¿ªÑ »α¿ «»¿ßá¡¿¿ ß¿¡Γá¬ß¿ßá; ß«Ññ¿¡Ñ¡¿Ñ »α«¿ßσ«ñ¿Γ ß½Ñ-
- óá ¡á»αáó«. æ¬«í¬¿ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ «íÑß»ÑτÑ¡¿∩ ½εíδσ úαπ»»¿α«ó«¬:
-
- éδα᪠::= Åα«ßΓ«Ñéδα᪠[Ä»Ñαᵿ∩ÄΓ¡«ΦÑ¡¿∩ Åα«ßΓ«Ñéδαáª]
-
- Åα«ßΓ«Ñéδα᪠::= [Ä»Ñαᵿ∩ç¡á¬«óá∩] ÆÑα¼
- {Ä»Ñαᵿ∩潫ªÑ¡¿∩ ÆÑα¼}
-
- ÆÑα¼ ::= öá¬Γ«α {Ä»Ñαᵿ∩ô¼¡«ªÑ¡¿∩ öá¬Γ«α}
-
- öá¬Γ«α ::= '(' éδα᪠')'
-
- öá¬Γ«α ::= NOT öá¬Γ«α
-
- öá¬Γ«α ::= ç¡áτÑ¡¿Ñ
-
- Ä»Ñαᵿ∩ÄΓ¡«ΦÑ¡¿∩ ::= '=' | '#' | '<' | '<=' | '>' |
- '>=' | IN
-
- Ä»Ñαᵿ∩ç¡á¬«óá∩ ::= '+' | '-'
-
- Ä»Ñαᵿ∩潫ªÑ¡¿∩ ::= '+' | '-' | OR
-
- Ä»Ñαᵿ∩ô¼¡«ªÑ¡¿∩ ::= '*' | '/' | DIV | MOD | AND |
- '<<' | '>>'
-
- Ä»Ñαᵿ∩, «í«º¡áτÑ¡¡á∩ «»ÑαáΓ«α«¼, ºáó¿ß¿Γ ¬á¬ «Γ «»ÑαáΓ«αá, Γᬠ¿ «Γ Γ¿»«ó «»Ñαá¡ñ«ó.
- éßÑ «»ÑαáΓ«αδ, ¿ß¬½ετá∩ IN, ΓαÑíπεΓ «»Ñαá¡ñ«ó ß«ó¼ÑßΓ¿¼δσ Γ¿»«ó.
- Ä»Ñαᵿ¿ ßαáó¡Ñ¡¿∩ ¿ IN ó αѺπ½∞ΓáΓÑ «íÑß»Ñτ¿óáεΓ Γ¿» BOOLEAN. ÄßΓá½∞¡δÑ «íÑß»Ñτ¿óáεΓ
- Γᬫ⌐ ªÑ αѺπ½∞ΓáΓ, ¬á¬ ¿ «»Ñαá¡ñδ.
- Ä»ÑαáΓ«αδ '=' ¿ '#' «»αÑñѽѡδ ñ½∩ óßÑσ Γ¿»«ó ¿ ßαáó¡¿óáεΓ ¡á (¡Ñ)αáóÑ¡ßΓó«.
- Ä»ÑαáΓ«αδ '<','<=','>','>=' «»αÑñѽѡδ ñ½∩ »ÑαÑτ¿ß½¿¼δσ ¿ ñÑ⌐ßΓó¿Γѽ∞¡δσ Γ¿»«ó ¿ »αÑñ-
- ¡áº¡áτÑ¡δ ñ½∩ «Γ¡«ß¿Γѽ∞¡«ú« π»«α∩ñ«τÑ¡¿∩. '<=' ¿ '>=' «»αÑñѽѡδ ñ½∩ Γ¿»«ó ¼¡«ªÑßΓó ¿
- ßαáó¡¿óáεΓ »«ñ¼¡«ªÑßΓóá ¿ ¼¡«ªÑßΓóá óδßΦÑú« »«α∩ñ¬á.
- ç¡á¬«óδ⌐ «»ÑαáΓ«α '+' «»αÑñѽѡ ñ½∩ τ¿ß½«óδσ Γ¿»«ó; «¡ ¡Ñóδ»«½¡∩Ѽ.
- ç¡á¬«óδ⌐ «»ÑαáΓ«α '-' «»αÑñѽ∩ÑΓß∩ ñ½∩ µÑ½δσ ¿ ñÑ⌐ßΓó¿Γѽ∞¡δσ Γ¿»«ó, «Γα¿µá∩ «»Ñαá¡ñ.
- Ä»ÑαáΓ«αδ ß½«ªÑ¡¿∩ '+' ¿ '-' «»αÑñѽѡδ ñ½∩ τ¿ß½Ñ¡¡δσ Γ¿»«ó ¿ «º¡áτáεΓ ß½«ªÑ¡¿Ñ ¿ óδ-
- τ¿Γá¡¿Ñ. Ä¡¿ Γá¬ªÑ «»αÑñѽѡδ ñ½∩ Γ¿»«ó ¼¡«ªÑßΓó ¿ «í«º¡áτáεΓ «íΩÑñ¿¡Ñ¡¿Ñ ¼¡«ªÑßΓó ¿ αáº-
- ¡«ßΓ∞ ¼¡«ªÑßΓó. é ¬«¡Ñτ¡«¼ ßτÑΓÑ '+' Γá¬ªÑ «»αÑñѽѡ ñ½∩ ½εí«⌐ ¬«¼í¿¡áµ¿¿ »«ßΓ«∩¡¡δσ ß¿¼ó«-
- ½«ó ¿ ßΓα«τ¡δσ ½¿ΓÑαὫó, «íΩÑñ¿¡∩∩ ¿σ ó «ñ¡π ßΓα«τ¡πε ¬«¡ßΓá¡Γπ. Ä»ÑαáΓ«α OR íÑαÑΓ
- «»Ñαá¡ñδ BOOLEAN ¿ óδτ¿ß½∩ÑΓ ½«ú¿τÑ߬πε ßπ¼¼π; Ñß½¿ ½Ñóδ⌐ «»Ñαá¡ñ ∩ó½∩ÑΓß∩ ½«ª¡δ¼ (FALSE),
- Γ« óδτ¿ß½∩ÑΓß∩ Γ«½∞¬« »αáóδ⌐ «»Ñαá¡ñ.
- Ä»ÑαáΓ«αδ π¼¡«ªÑ¡¿∩ '*', DIV ¿ MOD «»αÑñѽѡδ ñ½∩ µÑ½δσ ¿ µÑ½δσ »«½«ª¿Γѽ∞¡δσ Γ¿»«ó,
- «íÑß»Ñτ¿óá∩ óδτ¿ß½Ñ¡¿Ñ τáßΓ¡«ú« («¬απú½Ñ¡¡«ú« ñ« ¡π½∩) ¿ «ßΓáΓ¬á («Γ ñѽѡ¿∩). '<<' ¿ '>>'
- «»αÑñѽѡδ ñ½∩ µÑ½δσ »«½«ª¿Γѽ∞¡δσ Γ¿»«ó, «íÑß»Ñτ¿óá∩ óδτ¿ß½Ñ¡¿Ñ ½«ú¿τÑ߬«ú« ½Ñó«ú« ¿ »αá-
- ó«ú« ßñó¿úá ½Ñó«ú« «»Ñαá¡ñá ¡á óѽ¿τ¿¡π »αáó«ú« «»Ñαá¡ñá. '*' ¿ '/' «»αÑñѽѡδ ñ½∩ ñÑ⌐ßΓó¿-
- Γѽ∞¡δσ Γ¿»«ó, «íÑß»Ñτ¿óá∩ (»α¿í½¿ªÑ¡¡«Ñ) óδτ¿ß½Ñ¡¿Ñ »α«¿ºóÑñÑ¡¿∩ ¿ τáßΓ¡«ú« . '*' ¿ '/'
- «»αÑñѽѡδ ñ½∩ Γ¿»«ó ¼áßß¿ó«ó, «íÑß»Ñτ¿óá∩ óδτ¿ß½Ñ¡¿Ñ »ÑαÑßÑτÑ¡¿∩ ¼¡«ªÑßΓó ¿ ß¿¼¼ÑΓα¿τ¡«⌐
- αạ«ßΓ¿ ¼¡«ªÑßΓó. AND «»αÑñѽ∩ÑΓß∩ ñ½∩ «»Ñαá¡ñ«ó Γ¿»á BOOLEAN, «íÑß»Ñτ¿óá∩ óδτ¿ß½Ñ¡¿Ñ ½«-
- ú¿τÑ߬«ú« αѺπ½∞ΓáΓá, »αáóδ⌐ «»Ñαá¡ñ óδτ¿ß½∩ÑΓß∩ ó Γ«¼ ß½πτáÑ, Ñß½¿ ½Ñóδ⌐ ∩ó½∩ÑΓß∩ ¿ßΓ¿¡¡δ¼
- (TRUE).
- Ä»Ñαá¡ñ NÄT íÑαÑΓ «»Ñαá¡ñ BOOLEAN ¿ ñ«»«½¡∩ÑΓ Ñú«. Ä»Ñαá¡ñ IN íÑαÑΓ óѽ¿τ¿¡δ Γ¿»á ¼¡«-
- ªÑßΓó«, ¬á¬ »αáóδÑ «»Ñαá¡ñδ ¿ óѽ¿τ¿¡δ Γ¿»á φ½Ñ¼Ñ¡Γδ ¼¡«ªÑßΓó, ¬á¬ ½ÑóδÑ «»Ñαá¡ñδ: φΓ«
- «íÑß»Ñτ¿óáÑΓ »α«óÑα¬π, ¡áσ«ñ¿Γß∩ ½¿ º¡áτÑ¡¿Ñ φ½Ñ¼Ñ¡Γá ó º¡áτÑ¡¿¿ ¼¡«ªÑßΓóá.
- î¡«ªÑßΓóá »αÑñßΓáó½∩εΓß∩ ¬á¬ í¿Γ«óδÑ ¬áαΓδ, ó ¬«Γ«αδσ «ñ¿¡ í¿Γ »αÑñ«ßΓáó½∩ÑΓß∩ ¬áªñ«⌐
- 󫺼«ª¡«⌐ óѽ¿τ¿¡Ñ φ½Ñ¼Ñ¡Γá (π¬áºδóá∩ ¡á Ñú« »α¿ßπΓßΓó¿Ñ), Γᬿ¼ «íαẫ¼, τΓ« «»ÑαáΓ«αδ
- ¼¡«ªÑßΓóá '+', '*', '/' ¿ '-' ß««ΓóÑΓßΓóπεΓ »«αáºα∩ñ¡δ¼ íπ½Ñóδ¼ «»Ñαᵿ∩¼ OR, AND, XOR ¿
- AND NOT ß««ΓóÑΓßΓóÑ¡¡«.
- Åα¿¼Ñαδ:
-
- (J = 0) OR (I MOD J = I - (I DIV J)*J) (* éßÑúñá TRUE*)
- X * Y / Ratio
- R.X + 1
- S[1] IN Z * (Chars{'A'..'F'} + Chars{'0'..'9'})
- 'Line terminated with cr/lf' + CHR(13) + CHR(10)
-
-
- ÄÅàÉÇÆÄÉ¢
- =========
-
- Åα«úαá¼¼δ αáí«ΓáεΓ »πΓѼ óδ»«½¡Ñ¡¿∩ (󫺼«ª¡á 󽫪ѡ¡«ßΓ∞) «»ÑαáΓ«α«ó. Ä»ÑαáΓ«αδ ß«-
- ñÑαªáΓß∩ ó ß»¿ß¬áσ ¿ óδ»«½¡∩εΓß∩ »« «ñ¡«¼π.
-
- 滿߫¬Ä»Ñα ::= {Ä»Ñα ';'}
-
- ç¡á¬ ';', ßΓ«∩Θ¿⌐ »«ß½Ñ »«ß½Ññ¡Ñú« «»ÑαáΓ«αá, ¼«ª¡« ßΓáó¿Γ∞, á ¼«ª¡« ¡Ñ ßΓáó¿Γ∞.
-
-
- Ä»ÑαáΓ«α »α¿ßóá¿óá¡¿∩
- ---------------------
-
- Ä»ÑαáΓ«α »α¿ßóá¿óá¡¿∩ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¿º¼Ñ¡Ñ¡¿∩ óѽ¿τ¿¡δ «íΩѬΓá:
-
- Ä»Ñα ::= ìạáτÑ¡¿Ñ ':=' éδαáª
-
- éδαáªÑ¡¿Ñ óδτ¿ß½∩ÑΓß∩ ¿ Ñú« óѽ¿τ¿¡á ºá¼ÑΘáÑΓ ßΓáαπε óѽ¿τ¿¡π «í«º¡áτáѼ«ú« «íΩѬΓá.
- éδαáªÑ¡¿Ñ ñ«½ª¡« »αÑñßΓáó½∩Γ∞ ß«í«⌐ »α¿ßóá¿óá¡¿Ñ, ß«ó¼ÑßΓ¿¼«Ñ ß Γ¿»«¼ «íΩѬΓá.
- æΓα«τ¡δÑ ½¿ΓÑαá½δ »αÑñßΓáó½∩εΓ ß«í«⌐ ߻ѵ¿á½∞¡δ⌐ ß½πτá⌐: «¡¿ ¼«úπΓ íδΓ∞ »α¿ßó«Ñ¡δ ½ε-
- í«¼π «íΩѬΓπ, ¬«Γ«αδ⌐ ¿¼ÑÑΓ Γ¿» ARRAY...OF CHAR ¿ ∩ó½∩ÑΓß∩ ñ«ßΓáΓ«τ¡« ñ½¿¡¡δ¼, τΓ«íδ ß«ñÑα-
- ªáΓ∞ ßΓ᫬π; Ñß½¿ «íΩÑ¬Γ í«½ÑÑ ñ½¿¡¡δ⌐, Γ« »«ß½Ñ óѽ¿τ¿¡δ ßΓ᫬¿ ó¬½ετáÑΓß∩ »πßΓ«⌐ ß¿¼ó«½
- (Äæ).
- Åα¿¼Ñαδ:
-
- X := 0.0;
- I := J + 1;
- Z := Z - Chars{'a'..'z'};
- Persons[I>7]^.First := "Kurt";
-
-
-
-
- Ä»ÑαáΓ«α IF
- -----------
-
- Ä»ÑαáΓ«α IF ¿ß»«½∞ºπÑΓß∩ ñ½∩ óδí«αá ß»¿ß¬á «»ÑαáΓ«α«ó, πß½«ó¡« ºáó¿ß∩ΘÑú« «Γ óδαáªÑ¡¿⌐
- Γ¿»á BOOLEAN, πß½«ó¿⌐:
-
- Ä»Ñα ::= IF éδα᪠THEN 滿߫¬Ä»Ñα {ELSIF éδα᪠THEN
- 滿߫¬Ä»Ñα}
-
- [ELSE 滿߫¬Ä»Ñα] END
-
- éδ»«½¡∩ÑΓß∩ ¼á¬ß¿¼π¼ «ñ¿¡ ¿º «»ÑαáΓ«α«ó ß»¿ß¬á, á ¿¼Ñ¡¡«, ß½ÑñπεΘ¿⌐ ºá »Ñαóδ¼ óδαáªÑ-
- ¡¿Ñ¼, πßΓá¡áó½¿óáεΘ¿¼ß∩ ó TRUE, úñÑ ELSE Γαá¬ΓπÑΓß∩ ¬á¬ ELSIF TRUE THEN.
- Åα¿¼Ñα:
-
- IF I > J THEN
- M := I;
- ELSIF I < J THEN
- M := J;
- ELSE (* I ñ«½ª¡« íδΓ∞ αáó¡« J *)
- B := TRUE;
- M := I;
- END;
-
-
- Ä»ÑαáΓ«α CASE
- -------------
-
- Ä»ÑαáΓ«α óδí«αá «ßπΘÑßΓó½∩ÑΓ óδí«α ¼Ñªñπ á½∞ΓÑα¡áΓ¿ó¡δ¼¿ ß»¿ß¬á¼¿ «»ÑαáΓ«α«ó ó ºáó¿ß¿-
- ¼«ßΓ¿ «Γ óѽ¿τ¿¡δ óδαáªÑ¡¿∩ óδí«αá ¬«α«Γ¬«ú« »ÑαÑτ¿ß½¿¼«ú« Γ¿»á:
-
- Ä»Ñα::= CASE éδα᪠OF {'|'éδí«α} [ELSE 滿߫¬Ä»Ñα] END
-
- éδí«α ::= C»¿ß«¬Ç½∞ΓÑα¡áΓ¿ó ':' 滿߫¬Ä»Ñα
-
- Äí«º¡áτÑ¡¿Ñ '|' »ÑαÑñ »Ñαóδ¼ óδí«α«¼ ∩ó½∩ÑΓß∩ ¡Ñ«í∩ºáΓѽ∞¡δ¼.
- Æ¿»δ á½∞ΓÑα¡áΓ¿ó¡δσ óδαáªÑ¡¿⌐ ñ«½ª¡δ íδΓ∞ ß«ó¼ÑßΓ¿¼δ ß Γ¿»«¼ óδαáªÑ¡¿∩ óδí«αá; «¡¿
- ñ«½ª¡δ íδΓ∞ »«ßΓ«∩¡¡δ ¿ ¿σ óѽ¿τ¿¡δ ¡Ñ ñ«½ª¡δ »ÑαѬαδóáΓ∞ß∩. éδ»«½¡Ñ¡¡δ⌐ ß»¿ß«¬ «»ÑαáΓ«α«ó
- Γᬫ⌐, ß»¿ß«¬ á½∞ΓÑα¡áΓ¿ó ¬«Γ«α«ú« ó¬½ετáÑΓ º¡áτÑ¡¿Ñ óδαáªÑ¡¿∩ óδí«αá; Ñß½¿ ¡¿ «ñ¿¡ ¡Ñ
- ó¬½ετáÑΓ, Γ« óδ»«½¡∩ÑΓß∩ ¡Ñ«í∩ºáΓѽ∞¡δ⌐ ß»¿ß«¬ «»ÑαáΓ«α«ó (»«ß½Ñ ELSE).
- Åα¿¼Ñα:
-
- CASE S[I] OF
- | '.': I := 999;
- | 'A'..'Z': L := L + 1;
- U := U + 1;
- | 'a'..'z': L := L + 1;
- | '[',']': X := X + 1;
- ELSE TheEnd := TRUE;
- END;
-
-
- Ä»ÑαáΓ«α WHILE
- --------------
-
- Ä»ÑαáΓ«α WHILE ¿ß»«½∞ºπÑΓß∩ ñ½∩ óδ»«½¡Ñ¡¿∩ ß»¿ß¬á «»ÑαáΓ«α«ó «Γ ¡π½∩ ñ« í«½ÑÑ αáº, ó
- ºáó¿ß¿¼«ßΓ¿ «Γ óѽ¿τ¿¡δ πß½«ó¿∩:
-
- Ä»Ñα ::= WHILE éδα᪠DO 滿߫¬Ä»Ñα END
-
- éδαáªÑ¡¿Ñ óδτ¿ß½∩ÑΓß∩ »ÑαÑñ ¬áªñδ¼ óδ»«½¡Ñ¡¿Ñ¼ ß»¿ß¬á «»ÑαáΓ«α«ó; »«óΓ«αÑ¡¿Ñ ºá¬á¡τ¿-
- óáÑΓß∩, ¬á¬ Γ«½∞¬« óѽ¿τ¿¡á ∩ó½∩ÑΓß∩ ½«ª¡«⌐ (FALSE).
- Åα¿¼Ñα:
-
- WHILE (I > 0) AND (I MOD 2 = 0) DO
- I := I DIV 2;
- END;
-
-
- Ä»ÑαáΓ«α REPEAT
- ---------------
-
- Ä»ÑαáΓ«α REPEAT ¿ß»«½∞ºπÑΓß∩ ñ½∩ óδ»«½¡Ñ¡¿∩ »ÑαÑτ¡∩ «»ÑαáΓ«α«ó «ñ¿¡ ¿½¿ í«½ÑÑ αẠó
- ºáó¿ß¿¼«ßΓ¿ «Γ óѽ¿τ¿¡δ πß½«ó¿∩:
-
- Ä»Ñα ::= REPEAT 滿߫¬Ä»Ñα UNTIL éδαáª
-
- éδαáªÑ¡¿Ñ óδτ¿ß½∩ÑΓß∩ »«ß½Ñ ¬áªñ«ú« óδ»«½¡Ñ¡¿∩ ß»¿ß¬á «»ÑαáΓ«α«ó; »«óΓ«αÑ¡¿Ñ «ßΓá¡áó½¿-
- óáÑΓß∩, ¬á¬ Γ«½∞¬« óѽ¿τ¿¡á ∩ó½∩ÑΓß∩ ¿ßΓ¿¡¡«⌐ (TRUE).
- Åα¿¼Ñα:
-
- REPEAT
- I := I MOD N + 1;
- UNTIL S[I] = ' ';
-
-
- Ä»ÑαáΓ«α LOOP
- -------------
-
- Ä»ÑαáΓ«α µ¿¬½á LOOP ¿ß»«½∞ºπÑΓß∩ ñ½∩ óδ»«½¡Ñ¡¿∩ ß»¿ß¬á «»ÑαáΓ«α«ó »«óΓ«α¡« ß ¡Ñ߬«½∞-
- ¬¿¼¿ 󫺼«ª¡δ¼¿ Γ«τ¬á¼¿ óσ«ñá:
-
- Ä»Ñα :: LOOP 滿߫¬Ä»Ñα END
-
- Ä»Ñα ::= EXIT
-
- Ä»ÑαáΓ«α EXIÆ ∩ó½∩ÑΓß∩ Γ«½∞¬« «ñ¡¿¼ «»ÑαáΓ«α«¼ ó¡πΓα¿ «»ÑαáΓ«αá µ¿¬½á, ¬«Γ«αδ⌐ ñ«»πß-
- ¬áÑΓß∩ ¿ß»«½∞º«óáΓ∞; «¡ ºáóÑαΦáÑΓ ßá¼δ⌐ ó¡πΓαÑ¡¡¿⌐ 󽫪ѡ¡δ⌐ µ¿¬½.
-
-
-
- Åα¿¼Ñα:
-
- LOOP
- IF I = J THEN EXIT; END;
- WHILE I < J DO
- I := (I * J) MOD N;
- IF I = 0 THEN
- I := J;
- EXIT; (* éδ⌐Γ¿ ¿º LOOP, á ¡Ñ ¿º WHILE. *)
- END;
- END;
- I := I DIV 2;
- END;
- (* ÄßπΘÑßΓó½Ñ¡ óδσ«ñ ¿º LOOP. *)
-
-
- Ä»ÑαáΓ«α FOR
- ------------
-
- Ä»ÑαáΓ«α FOR ¿ß»«½∞ºπÑΓß∩ ñ½∩ óδ»«½¡Ñ¡¿∩ ß»¿ß¬á «»ÑαáΓ«α«ó »αÑñóáα¿Γѽ∞¡« óδτ¿ß½Ñ¡¡«Ñ
- τ¿ß½« αáº, »α¿τѼ, »ÑαÑτ¿ß½¿¼á∩ π»αáó½∩εΘá∩ »ÑαѼѡ¡á∩ »α¿¡¿¼áÑΓ º¡áτÑ¡¿∩ ¿º »α«úαÑßß¿απε-
- ΘÑ⌐ τ¿ß½«ó«⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿:
-
- Ä»Ñα ::= FOR êñÑ¡Γ ':=' éδα᪠TO éδα᪠[BY éδαáª] DO
- 滿߫¬Ä»Ñα END
-
- ÅÑαóδÑ ñóá óδαáªÑ¡¿∩ óδτ¿ß½∩εΓß∩ ñ½∩ »«½πτÑ¡¿∩ º¡áτÑ¡¿⌐ ¡áτá½á ¿ ¬«¡µá; «¡¿ ñ«½ª¡δ
- ¿¼ÑΓ∞ Γ¿»δ, ß«ó¼ÑßΓ¿¼δÑ ß »ÑαÑτ¿ß½¿¼δ¼ Γ¿»«¼ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá. éδαáªÑ¡¿Ñ, ßΓ«∩ΘÑÑ »«ß½Ñ éô,
- º¡áτÑ¡¿Ñ Φáúá, ñ«½ª¡« íδΓ∞ »«ßΓ«∩¡¡δ¼ µÑ½δ¼ τ¿ß½«¼; Ñß½¿ ªÑ «¡« «»πΘÑ¡«, Γ« »α¿¡¿¼áÑΓß∩
- αáó¡δ¼ +1.
- ÅÑαѼѡ¡á∩ π»αáó½Ñ¡¿∩ »α¿¡¿¼áÑΓ »ÑαÑτ¿ß½¿¼δÑ óѽ¿τ¿¡δ, ¡áτ¿¡á∩ ß ¡áτá½∞¡«⌐ óѽ¿τ¿¡δ ¿
- πóѽ¿τ¿óáÑΓß∩ ¡á óѽ¿τ¿¡π Φáúá. Ä»ÑαáΓ«α FOR »αѬαáΘáÑΓ ßó«ε αáí«Γπ, ¬«úñá »«ß½ÑñπεΘá∩ óÑ-
- ½¿τ¿¡á »αÑóδß¿Γ óѽ¿τ¿¡π Φáúá; ß»¿ß«¬ «»ÑαáΓ«α«ó ¼«ªÑΓ ó««íΘÑ ¡Ñ óδ»«½¡∩Γ∞ß∩. ìá»αáó½Ñ¡¿Ñ
- ¡áαáΘ¿óá¡¿∩ «»αÑñѽ∩ÑΓß∩ º¡á¬«¼ óѽ¿τ¿¡δ Φáúá.
- éѽ¿τ¿¡á »ÑαѼѡ¡«⌐ π»αáó½Ñ¡¿∩ ¡Ñ ñ«½ª¡á ¿º¼Ñ¡∩Γ∞ß∩ ó¡πΓα¿ ß»¿ß¬á «»ÑαáΓ«α«ó, ¿ «¡á
- ¡Ñ «»αÑñÑ½Ñ¡á »«ß½Ñ «»ÑαáΓ«αá FOR.
- Åα¿¼Ñα:
-
- FOR Ball := Black TO Yellow BY -2 DO
- LastBall := Ball; (* éδí¿αáεΓß∩: Black(ùÑα¡δ⌐),Blue
- (⫽πí«⌐),Green(çѽѡδ⌐) *)
- END;
-
-
- Ä»ÑαáΓ«α WITH
- -------------
-
- Ä»ÑαáΓ«α WITH »α¿¼Ñ¡∩ÑΓß∩ ñ½∩ ß«ºñá¡¿∩ ½«¬á½∞¡«⌐ «í½áßΓ¿, ó ¬«Γ«α«⌐ ¿¼Ñ¡á »«½Ñ⌐ Γ¿»á
- ºá»¿ß¿ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ¡Ñ»«ßαÑñßΓóÑ¡¡« ñ½∩ «í«º¡áτÑ¡¿∩ »«½Ñ⌐ «»αÑñѽѡ¡«ú« «í«º¡áτÑ¡-
- ¡«ú« «íΩѬΓá φΓ«ú« Γ¿»á:
-
- Ä»Ñα ::= WITH ìạáτÑ¡¿Ñ DO 滿߫¬Ä»Ñα END
-
- Åα¿¼Ñα:
-
- WITH Persons [TRUE]^ DO
- IF Age < 4 THEN
- First := "baby";
- ELSIF Age < 15 THEN
- First := "junior";
- END;
- END;
-
-
- Ä»ÑαáΓ«α GOTO
- -------------
-
- Ä»ÑαáΓ«α GOTO ¿ß»«½∞ºπÑΓß∩ ñ½∩ »ÑαÑ¼Ñ¡δ »«Γ«¬á (¡á»αáó½Ñ¡¿∩) óδ»«½¡Ñ¡¿∩:
-
- Ä»Ñα ::= GOTO êñÑ¡Γ
-
- è«¡Ñτ¡á∩ Γ«τ¬á ߬áτ¬á πßΓá¡áó½¿óáÑΓß∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«¼ ¼ÑΓ¬¿, ¬«Γ«αá∩ ñ«½ª¡á ¡áσ«ñ¿Γ∞ß∩
- ó Γ«⌐ ªÑ ßἫ⌐ »α«úαá¼¼¡«⌐ Ññ¿¡¿µÑ :
-
- Ä»Ñα ::= êñÑ¡Γ ':' [Ä»Ñα]
-
- îÑΓ¬¿ ñ«½ª¡δ íδΓ∞ «íΩ∩ó½Ñ¡δ ó Γ«⌐ ªÑ ßἫ⌐ »α«úαá¼¼¡«⌐ Ññ¿¡¿µÑ, ó ¬«Γ«α«⌐ «¡¿ ¿ß»«½∞-
- ºπεΓß∩.
-
- ÄíΩ∩ó½Ñ¡¿Ñ ::= LABEL 滿߫¬êñÑ¡Γ ';'
-
-
- ÅÉÄûàäôÉ¢
- =========
-
- Åα«µÑñπαδ ¿ß»«½∞ºπεΓß∩ ñ½∩ úαπ»»¿α«óá¡¿∩ ß«ó¼ÑßΓ¡« óδ»«½¡∩Ѽδσ «»Ñαᵿ⌐ ó ¿º«½¿α«óá¡-
- ¡δÑ í½«¬¿. æ«íßΓóÑ¡¡« »α«µÑñπαδ ¿ß»«½∞ºπεΓß∩ ¬á¬ «»ÑαáΓ«αδ, ó Γ« óαѼ∩ ¬á¬ Σπ¡¬µ¿¿ óδτ¿ß½∩-
- εΓ º¡áτÑ¡¿∩ ¿ ¿ß»«½∞ºπεΓß∩ ó óδαáªÑ¡¿∩σ.
- Åα«µÑñπαδ «íΩ∩ó½∩εΓß∩ ¬á¬ ¿ ñαπú¿Ñ «íΩѬΓδ ¿, ó»«ß½ÑñßΓó¿¿, á¬Γ¿ó¿º¿απεΓß∩ ó맮óἿ.
- Ä¡¿ ¼«úπΓ ¿¼ÑΓ∞ »áαá¼ÑΓαδ, ¬«Γ«αδÑ »αÑñßΓáó½∩εΓ ß«í«⌐ «íΩѬΓδ ¿½¿ º¡áτÑ¡¿∩. Åα«µÑñπαδ ºá-
- óÑαΦáεΓ óδ»«½¡Ñ¡¿Ñ ó«ºóαáΓ«¼.
- Åα«µÑñπαδ ¼«úπΓ Γá¬ªÑ óδ»«½¡∩Γ∞ß∩ íѺ ó맮óá: «¡¿ ¼«úπΓ íδΓ∞ ñ«»πßΓ¿¼δ¼¿ óѽ¿τ¿¡á¼¿
- Γ¿»á »α«µÑñπα ¿ ß««ΓóÑΓßΓóÑ¡¡« «íαáíáΓδóáΓ∞ß∩.
- òáαá¬ΓÑα¿ßΓ¿¬¿ »α«µÑñπα πßΓá¡áó½¿óáεΓß∩ ó ºáú«½«ó¬Ñ »α«µÑñπαδ:
-
- çáú«½«ó«¬Åα«µÑñπαδ ::= PROCEDURE êñÑ¡Γ[ö«α¼á½∞¡δ⌐滿߫¬
- [':' ê¼∩]]';'
-
- ö«α¼á½∞¡δ⌐滿߫¬ ::='('[ö«α¼á½∞¡á∩æÑ¬µ¿∩
- {';'ö«α¼á½∞¡á∩æÑ¬µ¿∩}]')'
-
- ö«α¼á½∞¡á∩æÑ¬µ¿∩ ::= [VAR] 滿߫¬êñÑ¡Γ¿Σ¿¬áΓ«α«ó
- ':' ö«α¼á½∞¡δ⌐Æ¿»
-
- ö«α¼á½∞¡δ⌐Æ¿» ::= [ARRAY OF] ê¼∩
-
- çáú«½«ó«¬ »α«µÑñπαδ «íΩ∩ó½∩ÑΓ ¿ñÑ¡Γ¿Σ¿¬áΓ«α, «í«º¡áτáεΘ¿⌐ »α«µÑñπαπ. Ä¡ ß«ñÑαª¿Γ ß»¿-
- ß«¬ Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó («¡ ¼«ªÑΓ íδΓ∞ ¿ »πßΓδ¼), «íΩ∩ó½∩Ѽδσ ΓᬪÑ, ¬á¬ »ÑαѼѡ¡δÑ. ÄΓ-
- ßπΓßΓó¿Ñ ß¿¼ó«½á ':' ¿ ¿¼Ñ¡¿ «í«º¡áτáÑΓ πßΓá¡«ó½Ñ¡¡πε »α«µÑñπαπ; Ñú« »α¿ßπΓßΓó¿Ñ «í«º¡áτáÑΓ
- Σπ¡¬µ¿ε ¿ πßΓá¡áó½¿óáÑΓ Γ¿» ó«ºóαáΓá.
- èáªñδ⌐ Σ«α¼á½∞¡δ⌐ αáºñѽ «íΩ∩ó½∩ÑΓ »ÑαÑτÑ¡∞ Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó, πßΓá¡áó½¿óáÑΓ ¿σ
- Σ«α¼á½∞¡δ⌐ Γ¿» ¿ πßΓá¡áó½¿óáÑΓ, ∩ó½∩εΓß∩ ½¿ «¡¿ »áαá¼ÑΓαἿ VAR ¿½¿ »áαá¼ÑΓαἿ óѽ¿τ¿¡ »π-
- ΓѼ »α¿ßπΓßΓó¿∩/«ΓßπΓßΓó¿∩ VAR. éßÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ »áαá¼ÑΓαá Σ«α¼á½∞¡«ú« ñ¿ß¬á ñ«½ª¡δ íδΓ∞
- αẽ¿τ¿¼δ.
- Åα¿¼Ñαδ:
-
- PROCEDURE NewLine;
- PROCEDURE PrintNumber (N: INTEGER; Width: SHORTCARD );
- PROCEDURE Accumulate (VAR X: LONGREAL; Delta: LONGREAL);
- PROCEDURE HypSquare (A,B: LONGREAL): LONGREAL;
- PROCEDURE PrintMessage (M: ARRAY OF CHAR);
- PROCEDURE GetChar (): CHAR;
-
-
- ÆÑ½á
- ----
-
- çáú«½«ó«¬ »α«µÑñπαδ «íΩÑñ¿¡Ñ¡ ß Γѽ«¼, πßΓá¡áó½¿óá∩ ó¡πΓαÑ¡¡¿Ñ αáí«τ¿Ñ «í½áßΓ¿ »α«µÑ-
- ñπαδ; «íΩ∩ó½Ñ¡¿Ñ FORWARD ¿ß»«½∞ºπÑΓß∩ ñ½∩ «íÑß»ÑτÑ¡¿∩ ºáñÑ᪬¿ «»αÑñѽѡ¿∩ Γѽá.
-
- ÄíΩ∩ó½Ñ¡¿Ñ ::= çáú«½«ó«¬Åα«µÑñπαδ ÆÑ½« êñÑ¡Γ ';'
-
- ÄíΩ∩ó½Ñ¡¿Ñ ::= çáú«½«ó«¬Åα«µÑñπαδ FORWARD ';'
-
- ÆÑ½« ::= 滿߫¬ÄíΩ∩ó½Ñ¡¿⌐ [BEGIN 滿߫¬Ä»Ñα] END
-
- êñÑ¡Γ¿Σ¿¬áΓ«α »«óΓ«α∩ÑΓ ¿¼∩ »α«µÑñπαδ. Åα«µÑñπαá, «íΩ∩ó½Ñ¡¡á∩ ¬á¬ FORWARD, ñ«½ª¡á ºá-
- óÑαΦáΓ∞ß∩ »«ºñ¡ÑÑ ó Γ«¼ ªÑ «»¿ßáΓѽ∞¡«¼ ß»¿ß¬Ñ »πΓѼ »«½¡«ú« «íΩ∩ó½Ñ¡¿∩ »α«µÑñπαδ, »«óΓ«α∩∩
- ºáú«½«ó«¬ »α«µÑñπαδ ¿ »α¿½áúá∩ ÑÑ Γѽ«.
- 滿߫¬ «íΩ∩ó½Ñ¡¿∩ «íΩ∩ó½∩ÑΓ «íΩѬΓδ, ¬«Γ«αδÑ ∩ó½∩εΓß∩ ½«¬á½∞¡δ¼¿ »« «Γ¡«ΦÑ¡¿ε ¬ »α«µÑ-
- ñπαÑ; «¡¿ ñ«½ª¡δ ¿¼ÑΓ∞ ¿¼Ñ¡á, «Γ½¿τ¡δÑ «Γ Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó.
- ö«α¼á½∞¡δÑ »áαá¼ÑΓαδ Σ«α¼á½∞¡«ú« Γ¿»á "¼áßß¿ó Γ¿»á" (ARRAY OF Type), Γ.Ñ. »áαá¼ÑΓαδ
- «Γ¬αδΓ«ú« ¼áßß¿óá, ßτ¿ΓáεΓß∩ ½«¬á½∞¡δ¼¿ ¼áßß¿óἿ, ¿¡ñѬ߿α«óá¡¡δ¼¿ ß »«¼«Θ∞ε µÑ½δσ »«½«ª¿-
- Γѽ∞¡δσ τ¿ßѽ, ¡áτ¿¡á∩ ß 0; óÑασ¡∩∩ úαá¡¿µá ¿¡ñѬßá »«½πτáÑΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ HIGH.
- 﫬á½∞¡δÑ »ÑαѼѡ¡δÑ »«∩ó½∩εΓß∩, ¬«úñá »α«µÑñπαδ óδºδóáεΓß∩ ¿ ¿ßτѺáεΓ »α¿ ó«ºóαáΓÑ.
- Åα«µÑñπαδ ¼«úπΓ »α∩¼« ¿½¿ ¬«ßóÑ¡¡« óδºδóáΓ∞ ßἿ ßÑí∩, óδºδóá∩ «ñ¡«óαѼѡ¡«Ñ »«∩ó½Ñ¡¿Ñ ¡Ñß-
- ¬«½∞¬¿σ ¡áí«α«ó ½«¬á½∞¡δσ »ÑαѼѡ¡δσ.
- ìạáτÑ¡¿Ñ ½εí«⌐ ½«¬á½∞¡«⌐ »ÑαѼѡ¡«⌐ «Γ¡«ß¿Γß∩ ¬ φ¬ºÑ¼»½∩απ ¿º ¡á¿í«½ÑÑ »«ß½Ññ¡Ñú«
- á¬Γ¿ó¡«ú« ó맮óá φΓ«⌐ »α«µÑñπαδ.
- Åáαá¼ÑΓα Σ«α¼á½∞¡«ú« º¡áτÑ¡¿∩ ßτ¿ΓáÑΓß∩ «íδτ¡«⌐ ½«¬á½∞¡«⌐ »ÑαѼѡ¡«⌐, óѽ¿τ¿¡á ¬«Γ«α«⌐
- ¿¡¿µ¿á½¿º¿απÑΓß∩ »α¿ ó맮óÑ »α«µÑñπαδ. ö«α¼á½∞¡δÑ »áαá¼ÑΓαδ VAR «í«º¡áτáεΓ ñÑ⌐ßΓó¿Γѽ∞¡δÑ
- «íΩѬΓδ, ¬«Γ«αδÑ ¿ñÑ¡Γ¿Σ¿µ¿απεΓß∩ óδºδóáεΘÑ⌐ »α«µÑñπα«⌐ »α¿ ó맮óÑ »α«µÑñπαδ.
- ÄΓ¬αδΓδÑ ¼áßß¿óδ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ¬á¬ ñÑ⌐ßΓó¿Γѽ∞¡δÑ »áαá¼ÑΓαδ ñ½∩ ñαπú¿σ Σ«α¼á½∞¡δσ
- »áαá¼ÑΓα«ó «Γ¬αδΓ«ú« ¼áßß¿óá; ó »α«Γ¿ó¡«¼ ß½πτáÑ ß ¡¿¼¿ ¼«ª¡« αáí«ΓáΓ∞ Γ«½∞¬« »«φ½Ñ¼Ñ¡Γ¡«.
- 滿߫¬ «»ÑαáΓ«α«ó πßΓá¡áó½¿óáÑΓ ñÑ⌐ßΓó¿∩ »α«µÑñπαδ. Æ«½∞¬« «ñ¡¿¼ ñ«»πßΓ¿¼δ¼ ß»«ß«í«¼
- óδσ«ñá ¿º »α«µÑñπαδ ∩ó½∩ÑΓß∩ óδ»«½¡Ñ¡¿Ñ «»ÑαáΓ«αá RETURN. æ«íßΓóÑ¡¡« »α«µÑñπαá ¼«ªÑΓ «ßπ-
- ΘÑßΓó¿Γ∞ ó«ºóαáΓ Γá¬ªÑ »πΓѼ ñ«ßΓ¿ªÑ¡¿∩ ¬«¡µá ß»¿ß¬á «»ÑαáΓ«α«ó.
-
- Ä»Ñα ::= RETURN [éδαáª]
-
- éδαáªÑ¡¿Ñ ñ«½ª¡« ¿ß»«½∞º«óáΓ∞ß∩ ¿ß¬½ετ¿Γѽ∞¡« ñ½∩ Σπ¡¬µ¿⌐, ¿ Ñú« Γ¿» ñ«½ªÑ¡ íδΓ∞ ß«ó-
- ¼ÑßΓ¿¼ »« »α¿ßóá¿óá¡¿ε ß Γ¿»«¼ return; φΓ« óѽ¿τ¿¡á, ó«ºóαáΘáѼá∩ óδºδóáεΘÑ⌐ »α«µÑñπαÑ.
- Åα¿¼Ñαδ:
-
- PROCEDURE Max (X,Y: LONGREAL): LONGREAL;
- BEGIN
- IF X > Y THEN
- RETURN X;
- ELSE
- RETURN Y;
- END;
- END Max;
- PROCEDURE HypSquare( A,B: LONGREAL): LONGREAL; FORWARD;
-
- PROCEDURE Accumulate(VAR X: LONGREAL; Y: LONGREAL);
- VAR Z: LONGREAL;
- BEGIN
- Z := HypSquare ( Y, 10.0-Y);
- X := X +Max ( Z*Z, -999.99);
- END Accumulate;
-
- PROCEDURE HypSquare ( A,B: LONGREAL ): LONGREAL;
- BEGIN
- RETURN A*A + B*B;
- END HypSquare;
-
-
- é맮ó »α«µÑñπα
- --------------
-
- æ«íßΓóÑ¡¡« »α«µÑñπαδ óδºδóáóáεΓß∩ ó «»ÑαáΓ«αáσ call:
-
- Ä»Ñα ::= ìạáτÑ¡¿Ñ [ öá¬Γ¿τÑ߬¿⌐滿߫¬]
-
- öá¬Γ¿τÑ߬¿⌐滿߫¬ ::= '('[éδαáª{',' éδαáª}]')'
-
- 滿߫¬ Σá¬Γ¿τÑ߬¿σ »áαá¼ÑΓα«ó ñ«½ªÑ¡ «íÑß»Ñτ¿óáΓ∞ «ñ¡π óѽ¿τ¿¡π ¿½¿ ¡áº¡áτÑ¡¿Ñ ñ½∩
- ¬áªñ«ú« ß««ΓóÑΓßΓóπεΘÑú« Σ«α¼á½∞¡«ú« »áαá¼ÑΓαá. éδαáªÑ¡¿Ñ ñ½∩ »áαá¼ÑΓαá Γ¿»á VAR ñ«½ª¡«
- »αÑñßΓáó½∩Γ∞ ß«í«⌐ ¡áº¡áτÑ¡¿Ñ «íΩѬΓá ß Γ¿»«¼ ¿ñÑ¡Γ¿τ¡δ¼ Σ«α¼á½∞¡«¼π Γ¿»π; ñ½∩ »áαá¼ÑΓα«ó
- óѽ¿τ¿¡ ½εí«Ñ óδαáªÑ¡¿Ñ Γ¿»á ß«ó¼ÑßΓ¿¼«ú« »« »α¿ßóá¿óá¡¿ε ∩ó½∩ÑΓß∩ ñ«»πßΓ¿¼δ¼. æΓ᫬«óδÑ
- ½¿ΓÑαá½δ ∩ó½∩εΓß∩ ñ«»πßΓ¿¼δ¼¿ ñ½∩ ½εí«ú« º¡áτÑ¡¿∩ »áαá¼ÑΓαá Γ¿»á ARRAY ... OF CHAR.
- ö«α¼á½∞¡δ⌐ Γ¿» ARRAY OF Type ßτ¿ΓáÑΓß∩ ¿ñÑ¡Γ¿τ¡δ¼ ½εí«¼π Γ¿»π ¼áßß¿óá ß Γᬿ¼ Γ¿»«¼
- φ½Ñ¼Ñ¡Γ«ó; ¿¡ñѬߡδ⌐ ñ¿á»áº«¡ Σá¬Γ¿τÑ߬«ú« »áαá¼ÑΓαá «Γ«íαáªáÑΓß∩ ¡á µÑ½δÑ »«½«ª¿Γѽ∞¡δÑ,
- ¡áτ¿¡á∩ ß 0. éδαáªÑ¡¿Ñ φ½Ñ¼Ñ¡Γ¡«ú« Γ¿»á Γá¬ªÑ ñ«»πßΓ¿¼« (¿ «íαáíáΓδóáÑΓß∩ ¬á¬ ¼áßß¿ó ß «ñ-
- ¡¿¼ φ½Ñ¼Ñ¡Γ«¼).
- ö«α¼á½∞¡δÑ Γ¿»δ BYTE, WORD ¿ LONGWORD ß«ó¼ÑßΓ¿¼δ ß ½εíδ¼ Γ¿»«¼ ¿ñÑ¡Γ¿τ¡«ú« αẼÑαá.
- ö«α¼á½∞¡δÑ Γ¿»δ ARRAY OF BYTE, ARRAY OF WORD ¿ ARRAY OF LONGWORD ß«ó¼ÑßΓ¿¼δ ß ½εí묨, »«º-
- ó«½∩∩ »α«µÑñπαÑ «íαáíáΓδóáΓ∞ Σá¬Γ¿τÑ߬¿⌐ »áαá¼ÑΓα, ¬á¬ ¡ÑßΓαπ¬Γπα¿α«óá¡¡πε »á¼∩Γ∞.
-
- Åα¿¼Ñαδ:
-
- NewLine;
- PrintMessage("Don't panic");
- Accumulate( X, 7.0 * Y );
-
- öπ¡¬µ¿¿ óδºδóáεΓ∩ ó óδαáªÑ¡¿∩σ:
-
- ç¡áτÑ¡¿Ñ ::= ìạáτÑ¡¿Ñ öá¬Γ¿τÑ߬¿⌐滿߫¬
-
- Åαáó¿½á ñ½∩ »áαá¼ÑΓαá Γá¬¿Ñ ªÑ ¬á¬, ß«íßΓóÑ¡¡«, ñ½∩ »α«µÑñπα.
-
- Åα¿¼Ñαδ:
-
- X := HypSquare( 10.0, Y );
- C := GetChar();
-
- ìѬ«Γ«αδÑ »α«µÑñπαδ ¼«úπΓ íδΓ∞ Γá¬ªÑ óδºóá¡δ ß ¿ß»«½∞º«ó᡿Ѽ ¿¡Σ¿¬ß¡«⌐ ¡«Γᵿ¿.
-
- ê¡Σ¿¬ß ::= '\' ìạáτÑ¡¿Ñ '\'
-
-
- ìạáτáѼá∩ »α«µÑñπαá ñ«½ª¡á »«½πτ¿Γ∞ ñóá »áαá¼ÑΓαá. öπ¡¬µ¿¿ »α¿¼Ñ¡∩εΓß∩ ¬á¬ «»ÑαáΓ«αδ
- ßἫú« ¡¿º¬«ú« ó«º ¼«ª¡«ú« »α¿«α¿ΓÑΓá óδαáªÑ¡¿⌐:
-
- éδαáª' ::= éδα᪠{ ê¡Σ¿¬ß éδα᪠}
-
- æ«íßΓóÑ¡¡« »α«µÑñπαδ óδºδóáεΓß∩ á¡á½«ú¿τ¡« «»ÑαáΓ«αá¼ »α¿ßóá¿óá¡¿∩:
-
- Ä»Ñα ::= éδα᪠ê¡Σ¿¬ß éδαáª'
-
-
- Åα¿¼Ñαδ:
-
- X \Accumulate\ 1.0+(5.0\HypSquare\ Y-1.0);
- Accumulate (X, 1.0+HypSquare(5.0, Y-1.0));
-
-
- Æ¿»δ »α«µÑñπα
- -------------
-
- Æ¿» »α«µÑñπαδ «í«º¡áτáÑΓ ßѼÑ⌐ßΓó« »α«µÑñπα ß ¿ñÑ¡Γ¿τ¡δ¼¿ σáαá¬ΓÑα¿ßΓ¿¬á¼¿ ó맮óá:
-
- Ä»¿ßá¡¿ÑÆ¿»á ::=PROCEDURE['('[滿߫¬ö«α¼á½∞¡«ú«Æ¿»á]')'
- [':'ê¼∩]]
-
- 滿߫¬ö«α¼á½∞¡«ú«Æ¿»á ::=[VAR]ö«α¼á½∞¡δ⌐Æ¿»{','
- [VAR]ö«α¼á½∞¡δ⌐Æ¿»}
-
- Åα«µÑñπαδ, «Γ¡«ß∩Θ¿Ñß∩ ¬ «»αÑñѽѡ¡«¼π Γ¿»π, »αÑñßΓáó½∩εΓ ß«í«⌐ »α«µÑñπαδ ß ß«ó»áñáε-
- Θ¿¼¿ ºáú«½«ó¬á¼¿: ¬áªñδ⌐ »áαá¼ÑΓα ñ«½ªÑ¡ «Γ¡«ß¿Γ∞ß∩ ¬ ¿ñÑ¡Γ¿τ¡«¼π ¿½¿ ¬ Γ¿»π ß«»«ßΓá󿼫¼π
- »« »α¿ßó«Ñ¡¿ε ñ½∩ »áαá¼ÑΓα«ó VAR ¿ »áαá¼ÑΓα«ó-º¡áτÑ¡¿⌐, ß««ΓóÑΓßΓóÑ¡¡«; Γ¿»δ ó«ºóαáΓá ñ«½ª-
- ¡δ íδΓ∞ ¿ñÑ¡Γ¿τ¡δ Σπ¡¬µ¿∩¼. ÅαÑñ«»αÑñѽѡ¡δÑ »α«µÑñπαδ ¿ »α«µÑñπαδ, αáß»«½«ªÑ¡¡δÑ ó¡πΓα¿
- ñαπú¿σ »α«µÑñπα, ¿ß¬½ετáεΓß∩.
-
- Åα¿¼Ñα:
-
- TYPE PutProc = PROCEDURE ( ARRAY OF CHAR );
- VAR G: ARRAY BOOLEAN OF PROCEDURE (): CHAR;
- P: PutProc;
-
- ê¼ÑÑΓß∩ «ñ¿¡ »αÑñ«»αÑñѽѡ¡δ⌐ Γ¿» »α«µÑñπα:
-
- TYPE PROC = PROCEDURE; (* Åα«µÑñπαδ íѺ »áαá¼ÑΓα«ó *)
-
- Äñ¡« »αÑñ«»αÑñѽѡ¡«Ñ º¡áτÑ¡¿Ñ »α«µÑñπαδ, NULLPROC, ∩ó½∩ÑΓß∩ ß«ó¼ÑßΓ¿¼δ¼ ß ½εíδ¼ Γ¿»«¼
- »α«µÑñπα. Åα¿ ÑÑ ó맮óÑ »α«¿ßσ«ñ¿Γ «Φ¿í¬á ó« óαѼ∩ óδ»«½¡Ñ¡¿∩.
- ç¡áτÑ¡¿∩ »α«µÑñπα «í«º¡áτáεΓß∩ ¡áº¡áτÑ¡¿∩¼¿ íѺ ß»¿ß¬«ó »áαá¼ÑΓα«ó.
-
- Åα¿¼Ñαδ:
-
- P := PrintMessage; (* P ΓÑ»Ñα∞ «í«º¡áτáÑΓ PrintMessage*)
- P ("Hi, there"); (* éδºóáΓ∞ ÑÑ *)
- G [TRUE] := GetChar; (* G[TRUE] ΓÑ»Ñα∞ «í«º¡áτáÑΓ
- GetChar *)
- C := G[TRUE] (); (* éδºóáΓ∞ ÑÑ *)
-
-
- ÅαÑñ«»αÑñѽѡ¡δÑ »α«µÑñπαδ
- --------------------------
-
- Modula-2 ß«ñÑαª¿Γ α∩ñ »αÑñ«»αÑñѽѡ¡δσ »α«µÑñπα. ìѬ«Γ«αδÑ ∩ó½∩εΓß∩ α«ñ«ó묨 ó Γ«¼
- ß¼δß½Ñ, τΓ« «¡¿ ñ«»πßΓ¿¼δ ñ½∩ ¡Ñ߬«½∞¬¿σ Γ¿»«ó »áαá¼ÑΓα«ó ¿ ¼«úπΓ íαáΓ∞ «ñ¿¡ ¿½¿ ñóá »áαá-
- ¼ÑΓαá.
-
- ÅαÑñ«»αÑñѽѡ¡δÑ Σπ¡¬µ¿«¡á½∞¡δÑ »α«µÑñπαδ:
-
- ABS(X) - áíß«½εΓ¡á∩ óѽ¿τ¿¡á τ¿ß½«óδσ «»Ñαá¡ñ«ó.
-
- ADR(X) - Σ¿º¿τÑ߬¿⌐ áñαÑß «íΩѬΓá X.
-
- CAP(C) - ß¿¼ó«½ C, ¿º¼Ñ¡∩εΘ¿⌐ 'a'..'z' to 'A'..'Z'.
-
- CHR(X) - CHAR ß »«α∩ñ¬«ó«⌐ óѽ¿τ¿¡«⌐ X.
-
- FLOAT(C) - ñÑ⌐ßΓó¿Γѽ∞¡«Ñ º¡áτÑ¡¿Ñ CARDINAL C.
-
- HIGH(A) - óÑασ¡∩∩ ¿¡ñѬߡá∩ úαá¡¿µá «Γ¬αδΓ«ú« ¼áßß¿óá A.
-
- MAX(T) - ¼á¬ß¿¼á½∞¡á∩ óѽ¿τ¿¡á »«α∩ñ¬«ó«ú«/ñÑ⌐ßΓó¿Γѽ∞¡«ú« Γ¿»á T.
-
- MIN(T) - ¼¿¡¿¼á½∞¡á∩ óѽ¿τ¿¡á »«α∩ñ¬«ó«ú«/ñÑ⌐ßΓó¿Γѽ∞¡«ú« Γ¿»á T.
-
- ODD(X) - TRUE, Ñß½¿ »ÑαÑτ¿ß½¿¼á∩ óѽ¿τ¿¡á X ¡ÑτÑΓ¡á.
-
- ORD(X) - CARDINAL, ¬«α«Γ¬á∩ »ÑαÑτ¿ß½¿¼á∩ óѽ¿τ¿¡á X.
-
- SIZE(T) - αẼÑα ó íá⌐Γáσ Γ¿»á ¿½¿ «íΩѬΓá T.
-
- TRUNC(R) - CARDINAL, πßÑτÑ¡¡á∩ óѽ¿τ¿¡á ñÑ⌐ßΓó¿Γѽ∞¡«ú« T.
-
- VAL(T,X) - óѽ¿τ¿¡á X, »αÑ«íαẫóá¡¡á∩ ¬ Γ¿»π T.
-
- VSIZE(R.F) - αẼÑα Γ¿»á ºá»¿ß¿ R, ó¬½ετáεΘ¿⌐ »«½Ñ F.
-
- ÅαÑñ«»αÑñѽѡ¡δÑ »αáó¿½∞¡δÑ »α«µÑñπαδ:
-
- DEC(X) - πíδóáεΘ¿⌐ »ÑαÑτ¿ß½¿¼δ⌐ «íΩÑ¬Γ X.
-
- DEC(X,N) - πíδóáεΘ¿⌐ »ÑαÑτ¿ß½¿¼δ⌐ «íΩÑ¬Γ X ß ¬«½¿τÑßΓó«¼ N.
-
- EXCL(S,E) - ¿ß¬½ετÑ¡¿Ñ φ½Ñ¼Ñ¡Γá E ¿º «íΩѬΓá ¼¡«ªÑßΓóá S.
-
- HALT - »αÑαδóá¡¿Ñ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ.
-
- INC(X) - ó«ºαáßΓáεΘ¿⌐ »ÑαÑτ¿ß½¿¼δ⌐ «íΩÑ¬Γ X.
-
- INC(X,N) - ó«ºαáßΓáεΘ¿⌐ »ÑαÑτ¿ß½¿¼δ⌐ «íΩÑ¬Γ X ß ¬«½¿τÑßΓó«¼ N.
-
- INCL(S,E) - ó¬½ετÑ¡¿Ñ φ½Ñ¼Ñ¡Γá E ó «íΩÑ¬Γ ¼¡«ªÑßΓóá S.
-
- VAL ¼«ªÑΓ »αÑóαáΘáΓ∞ óѽ¿τ¿¡δ ¼Ñªñπ ñóπ¼∩ τ¿ß½Ñ¡¡δ¼¿ ¿ »ÑαÑτ¿ß½¿¼δ¼¿ Γ¿»á¼¿.
-
- ïεí«Ñ ¿¼∩ Γ¿»á ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ¬á¬ Σπ¡¬µ¿∩ ¿º¼Ñ¡Ñ¡¿∩ Γ¿»á, »«½πτá∩ »α¿ φΓ«¼ »áαá-
- ¼ÑΓα-º¡áτÑ¡¿Ñ ½εí«ú« Γ¿»á. ÉѺπ½∞ΓáΓ ß«ßΓ«¿Γ ó Γ«¼, τΓ« óѽ¿τ¿¡á ¿¡ΓÑα»αÑΓ¿απÑΓß∩ ¬á¬ óѽ¿-
- τ¿¡á ¿¼Ñ¡«óá¡¡«ú« Γ¿»á. öá¬Γ¿τÑ߬¿⌐ í¿Γ«óδ⌐ Φáí½«¡ óѽ¿τ¿¡δ «ßΓáÑΓß∩ ¡Ñ¿º¼Ñ¡¡δ¼, ºá ¿ß¬½ε-
- τÑ¡¿Ñ¼ ΓÑσ ß½πτáÑó, ¬«úñá Γ¿» óѽ¿τ¿¡δ ¿ »ÑαÑñáóáѼδ⌐ Γ¿» ∩ó½∩εΓß∩ τ¿ß½Ñ¡¡δ¼¿ ¿½¿
- »ÑαÑτ¿ß½¿¼δ¼¿, ¬«úñá «ßπΘÑßΓó½∩ÑΓß∩, ß«íßΓóÑ¡¡«, »αÑ«íαẫóá¡¿Ñ º¡áτÑ¡¿∩.
- ÅαÑ«íαẫóá¡¿Ñ Γ¿»á ßτ¿ΓáÑΓß∩ σ«α«Φ« »α«óÑñÑ¡¡δ¼, ¬«úñá αẼÑαδ Γ¿»á óѽ¿τ¿¡δ ¿ Γ¿»á
- »ÑαÑñáτ¿ αáó¡δ ¿½¿ ªÑ «ßπΘÑßΓó½∩ÑΓß∩ ß«íßΓóÑ¡¡« »αÑ«íαẫóá¡¿Ñ º¡áτÑ¡¿∩. Æá¬¿Ñ »ÑαÑñáτ¿ Γ¿-
- »á ¼«úπΓ ßó«í«ñ¡« »α«¿ºó«ñ¿Γ∞ß∩ ó óδαáªÑ¡¿∩σ.
- é Γ«¼ ß½πτáÑ, ¬«úñá αẼÑα Γ¿»á óѽ¿τ¿¡δ »αÑóδΦáÑΓ αẼÑα Γ¿»á »ÑαÑñáτ¿, «ßΓáóΦ¿Ñß∩
- »«ß½Ññ¡¿Ñ íá⌐Γδ ¿ú¡«α¿απεΓß∩. àß½¿ ªÑ «¡ ¬«α«τÑ, »«ß½Ññ¡¿Ñ íá⌐Γδ αѺπ½∞Γ¿απεΘÑ⌐ óѽ¿τ¿¡δ
- ¡Ñ«»αÑñѽѡδ. Æá¬¿Ñ »ÑαÑñáτ¿ Γ¿»á ¿ß»«½∞ºπεΓß∩ Γ«½∞¬« ñ½∩ «íσ«ñá ΓαÑí«óá¡¿⌐ »« Γ¿»π »α¿
- »α¿ßóá¿óá¡¿¿ ¿ »α«»πß¬á »áαá¼ÑΓαá.
-
- Åα¿¼Ñαδ:
-
- I := CARDINAL(BITSET(I) * BITSET(J)); (* »«αáºα∩ñ¡«Ñ
- π¼¡«ªÑ¡¿Ñ *)
- L := LONGCARD(SegOfz); (* ºá»¿ß∞ -> µÑ½«Ñ »«½«ª¿Γѽ∞¡«Ñ *)
- SegOfz := ArdPair(L); (* µÑ½«Ñ »«½«ª¿Γѽ∞¡«Ñ -> ºá»¿ß∞ *)
- P := ADDRESS(L); (* ìÑ áñαÑß L! *)
-
-
- îÄäôïê
- ------
-
- î«ñ㫨 ó¬½ετáεΓ ß«»πΓßΓóπεΘ¿Ñ «íΩ∩ó½Ñ¡¿∩. êß»«½¡∩εΘá∩ »α«úαá¼¼á ß«ßΓ«¿Γ ¿º ú½áó¡«ú«
- ¼«ñπ½∩ ¿ α∩ñá «íß½πª¿óáεΘ¿σ ¼«ñπ½Ñ⌐. Äíß½πª¿óáεΘ¿Ñ ¼«ñ㫨 ñѽ∩Γß∩ ¡á «»αÑñѽ∩εΘπε τáßΓ∞,
- ó¿ñ¿¼πε ñ½∩ »«½∞º«óáΓѽÑ⌐, ¿ τáßΓ∞ óδ»«½¡Ñ¡¿∩, ¬«Γ«αá∩ »α∩τÑΓ ó¡πΓαÑ¡¡¿Ñ ñÑΓ὿ «Γ ¬½¿Ñ¡-
- Γ«ó.
- î«ñ㫨 »αÑñßΓáó½∩εΓ «íΘÑÑ ßαÑñßΓó« ñ½∩ ¿ß»«½∞º«óá¡¿∩ (óóÑñÑ¡¿∩) ßó«⌐ßΓó, ¬«Γ«αδÑ ∩ó¡«
- ¡Ñ »αÑñßΓáó½∩εΓß∩ ∩ºδ¬«¼: óó«ñ ¿ óδó«ñ, «»Ñαᵿ¿ ß« ßΓ᫬«⌐, «αúá¡¿ºáµ¿∩ »á¼∩Γ¿, »áαá½½Ñ-
- ½¿º¼, ñ«ßΓπ» ¬ «»Ñαᵿ«¡¡«⌐ ß¿ßΓÑ¼Ñ ¿ Γ.ñ. (ß¼. âïÇéô 8).
- î«ñ㫨 »αÑñßΓáó½∩εΓ ß«í«⌐ íẫóδÑ Ññ¿¡¿µδ ¬«¼»¿½∩µ¿¿:
-
- 諼»¿½∩µ¿∩ ::= Ä»αÑñѽѡ¿Ñî«ñπ½∩ '.'
-
- 諼»¿½∩µ¿∩ ::= [IMPLEMENTATION] Moñπ½∞ '.'
-
- î«ñπ½∞ ::= MODULE êñÑ¡Γ [Åα¿«α¿ΓÑΓ] ';' {ê¼»«αΓ}
- [¥¬ß»«αΓ] ÆÑ½« êñÑ¡Γ
-
-
- Ä»αÑñѽѡ¿Ñî«ñπ½∩ ::= DEFINITION MODULE êñÑ¡Γ ';'
- {ê¼»«αΓ} 滿߫¬ÄíΩ∩ó½Ñ¡¿⌐ END êñÑ¡Γ
-
- Åα¿«α¿ΓÑΓ ::= '['éδα']'
-
- èáªñδ⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¿¼Ñ¡πÑΓ «»αÑñѽ∩Ѽδ⌐ ¼«ñπ½∞.
- î«ñ㫨 ¼«úπΓ ¿¼ÑΓ∞ »α¿«α¿ΓÑΓ Γ¿»á CARDINAL, ¿ß»«½∞ºπѼδ⌐ ß ¼«ñπ½Ñ¼ SYSTEM (ß¼. âïÇéô
- 8).
- î«ñπ½∞ ¬«¼»¿½∩µ¿¿ íѺ »α¿¼Ñ¡Ñ¡¿∩ IMPLEMENTATION »αÑñßΓáó½∩ÑΓ ß«í«⌐ ú½áó¡δ⌐ ¼«ñπ½∞.
-
-
- éß»«¼«úáΓѽ∞¡δÑ ¼«ñπ½¿
- ----------------------
-
- Ä»αÑñѽ¿Γѽ∞¡á∩ τáßΓ∞ «íß½πª¿óáεΘÑú« ¼«ñπ½∩ «íΩ∩ó½∩ÑΓ «íΩѬΓδ ñ«ßΓπ»¡δÑ »«½∞º«óáΓѽε.
- ïÑúá½∞¡δ¼¿ ∩ó½∩εΓß∩ Γ«½∞¬« «íΩ∩ó½Ñ¡¿∩ CONST, TYPE ¿ VAR ó ñ«»«½¡Ñ¡¿Ñ ¬ ñóπ¼ ß½ÑñπεΘ¿¼, ¬«-
- Γ«αδÑ ∩ó½∩εΓß∩ ½Ñúá½∞¡δ¼¿ Γ«½∞¬« ó «»αÑñѽ¿Γѽ∞¡δσ τáßΓ∩σ:
-
- ÄíΩ∩ó½Ñ¡¿Ñ ::= çáú«½«ó«¬Åα«µÑñπαδ
-
- ÄíΩ∩ó½Ñ¡¿Ñ ::= TYPE {êñÑ¡Γ ['=' Ä»αÑñѽѡ¿ÑÆ¿»á} ';'}
-
- ÅÑαó«Ñ óδαáªÑ¡¿Ñ «íΩ∩ó½∩ÑΓ »α«µÑñπαπ. éΓ«α«Ñ óδαáªÑ¡¿Ñ ó ß½πτáÑ, ¬«úñá «»αÑñѽѡ¿Ñ Γ¿-
- »á »α«»πΘÑ¡«, «íΩ∩ó½∩ÑΓ ¡Ñ∩ó¡δ⌐ Γ¿» π¬áºáΓѽ∩ ß ¡Ñ¿ºóÑßΓ¡δ¼ ¡áº¡áτÑ¡¡δ¼ Γ¿»«¼; Ññ¿¡ßΓóÑ¡¡δ-
- ¼¿ ñ«ßΓπ»¡δ¼¿ «»Ñαᵿ∩¼¿ ß «íΩѬΓἿ ¡Ñ∩ó¡«ú« Γ¿»á ∩ó½∩εΓß∩ ¡áº¡áτÑ¡¿Ñ ¿ »α«óÑα¬á ¡á αá-
- óÑ¡ßΓó«. æ««ΓóÑΓßΓóπεΘ¿Ñ »«½¡δÑ «íΩ∩ó½Ñ¡¿∩ ñ«½ª¡δ »«∩ó¿Γ∞ß∩ ó óδ»«½¡∩Ѽ«⌐ τáßΓ¿ ¼«ñπ½∩.
- ÄíΩѬΓδ, «íΩ∩ó½Ñ¡¡δÑ ó ¬«¼»¿½∩µ¿«¡¡δσ ¼«ñπ½∩σ, ¡áºδóáεΓß∩ ú½«íá½∞¡δ¼¿ ¿ »α¿ßπΓßΓóπεΓ ó«
- óαѼ∩ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ ( ó «Γ½¿τ¿Ñ «Γ »ÑαѼѡ¡δσ, ½«¬á½∞¡δσ »« «Γ¡«ΦÑ¡¿ε ¬ »α«µÑñπαá¼).
-
- Åα¿¼Ñα:
-
- DEFINITION MODULE Str; (* ü¿Γ π»αáó½∩εΘÑ⌐ ßΓ᫬¿ *)
- CONST MaxWidth = 20;
- TYPE Buffer = ARRAY [1..MaxWidth] OF CHAR;
- VAR Width: [1..MaxWidth];
- PROCEDURE Put ( C: CARDINAL ): Buffer;
- PROCEDURE SetFill ( C: CHAR );
- END Str.
-
- ÉÑ὿ºπεΘá∩ τáßΓ∞ ß«ñÑαª¿Γ «íΩ∩ó½Ñ¡¿∩, ½«¬á½∞¡δÑ »« «Γ¡«ΦÑ¡¿ε ¬ ¼«ñπ½ε. ìÑ«í∩ºáΓѽ∞¡δ⌐
- »ÑαÑτÑ¡∞ «»ÑαáΓ«α«ó, ¬«ñ ¿¡¿µ¿á½¿ºáµ¿¿, óδ»«½¡∩ÑΓß∩ »ÑαÑñ ΓѼ, ¬á¬ óδ»«½¡∩εΓß∩ ½εíδÑ «»Ñαá-
- Γ«αδ »«½∞º«óáΓѽ∩. àß½¿ ¿º-ºá µ¿¬½¿τ¡«ßΓ¿ φΓ« ¡Ñ󫺼«ª¡« πñ«ó½ÑΓó«α¿Γ∞, »«α∩ñ«¬ ¿¡¿µ¿á½¿ºá-
- µ¿¿ ¡Ñ«»αÑñѽѡ ó¡πΓα¿ µ¿¬½á.
- é¼ÑßΓÑ ß «íΩ∩ó½Ñ¡¿∩¼¿ «»αÑñѽ∩εΘÑ⌐ τáßΓ¿ «íΩ∩ó½Ñ¡¿∩ óδ»«½¡¿¼«⌐ τáßΓ¿ «íαáºπεΓ Ññ¿¡πε
- «í½áßΓ∞. æ½Ññ«óáΓѽ∞¡«, ½εí«Ñ ¿¼∩ «»αÑñѽ∩εΘÑ⌐ τáßΓ¿ ∩ó½∩ÑΓß∩ ó¿ñ¿¼δ¼, ¿ «íΩ∩ó½Ñ¡¡δÑ ñ«»«½-
- ¡¿Γѽ∞¡δÑ ¿¼Ñ¡á ñ«½ª¡δ «Γ½¿τáΓ∞ß∩ «Γ ¡¿σ.
-
- Åα¿¼Ñα:
-
- IMPLEMENTATION MODULE Str;
- VAR FillChar: CHAR;
-
- PROCEDURE Put ( C: CARDINAL ): Buffer;
- VAR P: [0..MaxWidth];
- S: Buffer;
- BEGIN
- P := Width;
- REPEAT
- S[P] := CHR( ORD('0') + C MOD 10 );
- C := C DIV 10;
- DEC( P );
- UNTIL (C = 0) OR (P = 0);
- WHILE P > 0 DO
- S[P] := FillChar;
- DEC( P );
- END;
- RETURN S;
- END Put;
-
- PROCEDURE SetFill ( C: CHAR );
- BEGIN
- FillChar := C;
- END SetFill;
- BEGIN
- FillChar := ' ';
- END Str.
-
-
- ê¼»«αΓ¿α«óá¡¿Ñ
- --------------
-
- Å«½∞º«óáΓѽ¿ »«½πτáεΓ ñ«ßΓπ» ¬ «íß½πª¿óáεΘÑ¼π ¼«ñπ½ε »πΓѼ ¿¼»«αΓá ¿º ¡Ñú«:
-
- ê¼»«αΓ ::= [ FROM êñÑ¡Γ ] IMPORT 滿߫¬êñÑ¡Γ ';'
-
- ö«α¼á FROM »«½πτáÑΓ «ñ¿¡ ¼«ñπ½∞ ¿ »ÑαÑτÑ¡∞ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó, ¿¼Ñ¡πεΘ¿σ «íΩѬΓδ ó ¡Ñ¼.
- ¥Γ¿ ¿¼Ñ¡á ßτ¿ΓáεΓß∩ «íΩ∩ó½Ñ¡¿∩¼¿ ΓÑσ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó ¿ Γᬿ¼ «íαẫ¼ «íÑß»Ñτ¿óáεΓ »α∩¼πε
- ó¿ñ¿¼«ßΓ∞ ¿¼Ñ¡«óá¡¡δσ «íΩÑ¬Γ«ó. ê¼»«αΓ¿α«óá¡¿Ñ »ÑαÑτ¿ß½¿¼«ú« Γ¿»á Γá¬ªÑ ¿¼»«αΓ¿απÑΓ »ÑαÑ-
- τ¿ß½¿¼δÑ ½¿ΓÑαá½δ.
- ö«α¼á íѺ óδαáªÑ¡¿∩ FROM ¿¼»«αΓ¿απÑΓ ¬áªñδ⌐ ¿º ¿¼Ñ¡«óá¡¡δσ ¼«ñπ½Ñ⌐. ôßΓá¡«ó½Ñ¡¡δÑ ¿¼Ñ-
- ¡á ¿ß»«½∞ºπεΓß∩ ñ½∩ «»αÑñѽѡ¿∩ «íΩÑ¬Γ«ó ó φΓ¿σ ¼«ñπ½∩σ:
-
- ê¼∩ ::= êñÑ¡Γ '.' êñÑ¡Γ
-
- ÅÑαóδ⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α «º¡áτáÑΓ ¿¼∩ ¼«ñπ½∩, óΓ«α«⌐ - ó¡πΓαÑ¡¡¿⌐ «íΩÑ¬Γ ó ¡Ñ¼. Æá¬«Ñ ªÑ
- πßΓá¡«ó½Ñ¡¡«Ñ «í«º¡áτÑ¡¿Ñ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ ¡á¿¼Ñ¡«óá¡¿∩ ß«íßΓóÑ¡¡δσ «íΩÑ¬Γ«ó ¼«ñπ-
- ½∩.
-
-
- Åα¿¼Ñα:
-
- FROM Str IMPORT Put, Width;
- IMPORT Str;
- VAR S: Str.Buffer;
- ...
- Str.SetFill(' ');
- Width := Str.MaxWidth DIV 2;
- S := Put( I+7 );
-
-
- 﫬á½∞¡δÑ ¼«ñπ½¿
- ----------------
-
- é ñ«»«½¡Ñ¡¿Ñ ¬ ¿σ ¿ß»«½∞º«óá¡¿ε ó ¬áτÑßΓóÑ Ññ¿¡¿µ ¬«¼»¿½∩µ¿¿ ½«¬á½∞¡δÑ ¼«ñ㫨 ¼«úπΓ
- íδΓ∞ «íΩ∩ó½Ñ¡δ:
-
- ÄíΩ∩ó½Ñ¡¿Ñ ::= î«ñπ½∞ ';'
-
- 﫬á½∞¡δÑ ¼«ñ㫨 »«ñτ¿¡∩εΓß∩ »αáó¿½á¼ ߻ѵ¿á½∞¡«⌐ «í½áßΓ¿. ïεí«⌐ ΓαÑíπѼδ⌐ «íΩѬΓ
- (¬α«¼Ñ »αÑñ«»αÑñѽѡ¡δσ «íΩÑ¬Γ«ó), αáß»«½«ªÑ¡¡δ⌐ ó¡Ñ ½«¬á½∞¡«ú« ¼«ñπ½∩, ñ«½ªÑ¡ íδΓ∞ ¿¼»«α-
- Γ¿α«óá¡ ¿ ñ«½ªÑ¡ ßαáºπ íδΓ∞ ó¿ñ¿¼δ¼ ó¡Ñ ½«¬á½∞¡«ú« ¼«ñπ½∩. Æá¬¿¼ «íαẫ¼ ¿¼»«αΓ íѺ "FROM"
- ¼«ªÑΓ ¿¼Ñ¡«óáΓ∞ ½εí«⌐ «íΩÑ¬Γ (¡Ñ Γ«½∞¬« óß»«¼«úáΓѽ∞¡δÑ ¼«ñπ½¿). êß»«½∞º«óá¡¿Ñ Σ«α¼δ FROM
- ΓαÑíπÑΓ ó¿ñ¿¼«ßΓ¿ ¿¼Ñ¡«óá¡¡«ú« óß»«¼«úáΓѽ∞¡«ú« ¼«ñπ½∩ (¿ Γᬿ¼ «íαẫ¼ πªÑ ¿¼»«αΓ¿α«óá¡¡«-
- ú«) ßαáºπ ªÑ ó¡Ñ ½«¬á½∞¡«ú« ¼«ñπ½∩.
- ¥¬ß»«αΓ¿α«óá¡¿Ñ αáºαÑΦáÑΓß∩ Γ«½∞¬« ó ½«¬á½∞¡δσ ¼«ñπ½∩σ:
-
- ¥¬ß»«αΓ ::= EXPORT 滿߫¬êñÑ¡Γ ';'
-
- ÅÑαÑτ¿ß½Ñ¡¡δÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ «íΩ∩ó½∩εΓß∩ ó «¬απªáεΘÑ⌐ (ó¡ÑΦ¡Ñ⌐) «í½áßΓ¿ ñ½∩ Γ«ú«, τΓ«íδ
- ßñѽáΓ∞ φΓ¿ «í½áßΓ¿ ¡Ñ»«ßαÑñßΓóÑ¡¡« ñ«ßΓπ»¡δ¼¿. ôΓ«τ¡Ñ¡¿Ñ ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡« ñ½∩ «íÑß-
- »ÑτÑ¡¿∩ ñ«ßΓπ»á ¬ ½εí«¼π «íΩѬΓπ.
- 髺¼«ª¡δÑ ß»¿ß¬¿ «»ÑαáΓ«α«ó ½«¬á½∞¡δσ ¼«ñπ½Ñ⌐ óδ»«½¡∩εΓß∩ (ó Γ«⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿, ó
- ¬«Γ«α«⌐ »«∩ó½∩εΓß∩) »ÑαÑñ ß»¿ß¬«¼ «»ÑαáΓ«α«ó ó¡ÑΦ¡Ñ⌐ «í½áßΓ¿.
- ôΓ«τ¡Ñ¡¡δ⌐ φ¬ß»«αΓ íδ½ «ßΓáó½Ñ¡ ó ßἫ¼ »«ºñ¡Ñ¼ óáα¿á¡ΓÑ ("«Σ¿µ¿á½∞¡«¼") Modula-2, ¡«
- «¡ ¡Ñ óσ«ñ¿Γ ó JPI Modula-2; φΓ« ¿º½¿Φ¡Ñ, »«ß¬«½∞¬π óßÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ ½«¬á½∞¡δσ ¼«ñπ½Ñ⌐
- ñ«ßΓπ»¡δ ß »«¼«Θ∞ε πßΓá¡«ó½Ñ¡¡δσ ¿¼Ñ¡ ¬á¬ πú«ñ¡«.
- ìá φΓ«¼ «»¿ßá¡¿Ñ ∩ºδ¬á JPI Modula-2 ºá¬á¡τ¿óáÑΓß∩.
-