Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
ѓ…Ќ…ђЂ’Ћђ џ‡›ЉЋ‚›• ЏђЋ–…‘‘ЋђЋ‚
(GLP)
ЋЇЁб ЁҐ п§лЄ
‹Ёбв®ў 41
Њ®бЄў 1994
.
- 2 -
Љ®¬ЁвҐв Ї® ўлб襩 иЄ®«Ґ ¬ЁЁбвҐабвў гЄЁ ђ”
ЊЋ‘ЉЋ‚‘Љ€‰ ѓЋ‘“„Ђђ‘’‚…ЌЌ›‰ €Ќ‘’€’“’ ќ‹…Љ’ђЋЌЌЋ‰ ’…•Ќ€Љ€
’…•Ќ€—…‘Љ€‰ “Ќ€‚…ђ‘€’…’
" “⢥ত о "
Џа®аҐЄв®а Њ€ќ’
____________ — Ї«лЈЁ ћ.Ђ.
"___"________ 1994Ј.
ѓ…Ќ…ђЂ’Ћђ џ‡›ЉЋ‚›• ЏђЋ–…‘‘ЋђЋ‚
(GLP)
ЋЇЁб ЁҐ п§лЄ
‹Ёбв®ў 41
Ђўв®ал:
1. __________ мЈЁ ‚.”.
"___"________1994 Ј.
2. __________ ’Ё¬®дҐҐў Џ.Ђ.
"___"________1994 Ј.
Њ®бЄў 1994
.
- 3 -
ЂЌЌЋ’Ђ–€џ
ЏаҐ¤« Ј Ґ¬л© п§лЄ ЇаҐ¤ § зҐ ¤«п ®ЇЁб Ёп п§лЄ®ўле Їа®жҐбб®а®ў
(ва б«пв®а®ў, Є®¬ЇЁ«пв®а®ў, ЁвҐаЇаҐв в®а®ў Ё ¤а.). ‘ ҐЈ® Ї®¬®ймо
¬®¦® ®ЇЁб вм Є Є бЁв ЄбЁб, в Є Ё ᥬ вЁЄг п§лЄ®ў®Ј® Їа®жҐбб®а . „«п
®ЇЁб Ёп бЁв ЄбЁб ўўҐ¤Ґ ¤®Ї®«Ґ п § ЇЁбм д®а¬л ЃнЄгб -Ќ га . ‘Ґ-
¬ вЁЄ п§лЄ ®ЇЁблў Ґвбп ЇаҐ¤«®¦ҐЁп¬Ё п§лЄ Їа®Ја ¬¬Ёа®ў Ёп ‘€++.
‚ Їа®жҐбᥠЁ§«®¦ҐЁп Є®бвагЄжЁ© ¬Ґв п§лЄ ЁбЇ®«м§говбп ¬®Ј®зЁб-
«ҐлҐ ЇаЁ¬Ґал. ЏаЁўҐ¤Ґл бЇ®б®Ўл ЇаЁўҐ¤ҐЁп Ја ¬¬ вЁЄЁ Є ®¤®§ 箬г
ўЁ¤г. ‚ 楫®¬ а бᬮвॠўҐбм Їа®жҐбб ᮧ¤ Ёп п§лЄ®ў®Ј® Їа®жҐбб®а ®в
д®а¬ «м®© Ја ¬¬ вЁЄЁ ¤® Їа®Ја ¬¬л ¬Ґв п§лЄҐ.
.
- 4 -
‘Ћ„…ђ†ЂЌ€…
1. ЋЃ™€… ‘‚…„…Ќ€џ 5
2. ќ‹…Њ…Ќ’› Њ…’Ђџ‡›ЉЂ 6
2.1. Ѓ §®ўл© Ў®а ЁбвагЄжЁ© ¬Ґв п§лЄ 6
2.2. “Їа ў«пойЁҐ Ї®б«Ґ¤®ў ⥫м®бвЁ 9
2.3. ЌҐвҐа¬Ё «млҐ бЁ¬ў®«л 10
я12.3.1 ‘®Єа йҐ п § ЇЁбм «мвҐа вЁў.я0 10
я12.3.2. Џ®ўв®аҐЁҐ н«Ґ¬Ґв®ў Є®бвагЄжЁ©.я0 11
я12.3.3. ЋвбгвбвўЁҐ н«Ґ¬Ґв®ў Є®бвагЄжЁ©.я0 12
2.4. ’Ґа¬Ё «млҐ бЁ¬ў®«л 12
я12.4.1. ‘Ё¬ў®« Ё§ ¬®¦Ґбвў .я0 14
я12.4.2. ‘Ё¬ў®«, Ґ ЇаЁ ¤«Ґ¦ йЁ© ¬®¦Ґбвўгя0 15
я12.4.3. ‘ва®Є бЁ¬ў®«®ў Ё§ ¬®¦Ґбвў .я0 15
я12.4.4. ‘ва®Є Ё§ ®¤Ё Є®ўле бЁ¬ў®«®ў.я0 16
я12.4.5. ЋЇҐа жЁп Є®Є ⥠樨 бва®Єя0 18
2.5. ЉагЈ«лҐ бЄ®ЎЄЁ 19
2.6. ‘Ґ¬ вЁЄ п§лЄ 20
3. Џђ€Њ…ђ ЏђЋѓђЂЊЊ› ђЂ‡ЃЋђЂ 25
4. Ћ„ЌЋ‡ЌЂ—ЌЋ‘’њ ѓђЂЊЊЂ’€Љ€ 29
я14.1. ‚лў®¤ Ёб室®Ј® ЇаҐ¤«®¦ҐЁпя0 29
я14.2. ЏаҐ®Ўа §®ў ЁҐ Ја ¬¬ вЁЄЁя0 30
я14.3. ЏаЁ¬Ґал ЇаҐ®Ўа §®ў Ёп Ја ¬¬ вЁЄ ¬Ґв п§лЄҐя0 32
Џђ€‹Ћ†…Ќ€… 1. ‘Ёв ЄбЁб ¬Ґв п§лЄ , § ЇЁб л© ¬Ґв п§лЄҐ 37
.
- 5 -
1. ЋЃ™€… ‘‚…„…Ќ€џ
ЊҐв п§лЄ®¬ §лў ов п§лЄ, ЇаҐ¤ § зҐл© ¤«п ®ЇЁб Ёп ¤агЈЁе
п§лЄ®ў. Ќ ЇаЁ¬Ґа, ¬Ґв п§лЄҐ ¬®¦® ®ЇЁб вм п§лЄЁ Їа®Ја ¬¬Ёа®ў Ёп
(‘, PASCAL, ADA, ...) п§лЄЁ ‘ЂЏђ (EDIF, VERILOG, VHDL,...) Ё ¬®ЈЁҐ
¤агЈЁҐ.
‚ Є зҐб⢥ Ёб室®© д®а¬л § ЇЁбЁ п§лЄ®ў®Ј® Їа®жҐбб®а Ўг¤Ґ¬ Ёб-
Ї®«м§®ў вм Є®вҐЄбв®-бў®Ў®¤лҐ д®а¬ «млҐ Ја ¬¬ вЁЄЁ. ‘ Ёе Ї®¬®ймо
¬®¦® ®ЇЁб вм в®«мЄ® бЁв ЄбЁб п§лЄ . ‚ ЇаЁжЁЇҐ нв д®а¬ ўЇ®«Ґ Ї®¤-
室Ёв ў Є зҐб⢥ Ёб室®© ¤«п ЈҐҐа в®а п§лЄ®ўле Їа®жҐбб®а®ў, Ј¤Ґ
Ї®б«Ґ¤ЁҐ ўлЇ®«пов «Ёим бЁв ЄЁбзҐбЄЁ© «Ё§. Ћ¤ Є® бЁв ЄбЁзҐбЄЁ©
«Ё§ ЁвҐаҐбҐ Ї®бв®«мЄг, Ї®бЄ®«мЄг Ї а ««Ґ«м® б Ё¬ ¬®¦® Їа®Ё§ў®-
¤Ёвм ®Ўа Ў®вЄг ЇаҐ¤«®¦ҐЁ© п§лЄ ў б®®в®ўҐвбвўЁЁ б § «®¦Ґл¬ ў Ёе
б¬лб«®¬. Џ®н⮬㠥®Ўе®¤Ё¬ Ёб室 п д®а¬ , Є®в®а п Ї®§ў®«п« Ўл б ®¤-
®© бв®а®л § ¤ ў вм бЁв ЄбЁб п§лЄ в Є¦Ґ Єа вЄ® Є Є д®а¬ «млҐ Ја ¬-
¬ вЁЄЁ, б ¤агЈ®© Ё¬Ґ« Ўл б।бвў ®в®Ўа ¦ҐЁп б¬лб« ЇаҐ¤«®¦ҐЁ©
Ё«Ё ўлЇ®«пҐ¬ле ¤Ґ©бвўЁ©.
„ л© Ў®а ЁбвагЄжЁ© ЇаҐ¤ § зҐ ¤«п ®ЇЁб Ёп бЁв ЄбЁб п§л-
Є Ї®«м§®ў вҐ«п Ё ЇаҐ¤бв ў«пҐв б®Ў®© ¬®¤ЁдЁжЁа®ў л© ў аЁ в д®а¬л
ЃнЄгб . Џ®¤ б«®ў ¬Ё п§лЄ, п§лЄ Ї®«м§®ў вҐ«п Ўг¤Ґ¬ Ї®Ё¬ вм п§лЄ, ¤«п
Є®в®а®Ј® а §а Ў влў Ґвбп ва б«пв®а. Ђ«д ўЁв п§лЄ ўЄ«оз Ґв вҐа¬Ё «м-
лҐ Ё ҐвҐа¬Ё «млҐ бЁ¬ў®«л. €§ вҐа¬Ё «мле бЁ¬ў®«®ў бва®Ёвбп Ёб室-
л© вҐЄбв Їа®Ја ¬¬л. Љ Ё¬ ®в®бпвбп Є«озҐўлҐ б«®ў , § ЄЁ ®ЇҐа жЁ©,
а §¤Ґ«ЁвҐ«Ё Ё ¤агЈЁҐ бЁ¬ў®«л Ё§ Є®в®але бва®Ёвбп Ёбе®¤л© вҐЄбв Їа®Ј-
а ¬¬л. ЌҐвҐа¬Ё «млҐ бЁ¬ў®«л ЇаҐ¤бв ў«пов б®Ў®© §ў Ёп бЁв ЄбЁзҐб-
ЄЁе Є®бвагЄжЁ© Ё пў® ў Ёбе®¤л© вҐЄбв Ґ ўе®¤пв. ЌҐвҐа¬Ё «млҐ бЁ¬-
ў®«л ў ⥪б⥠Ўг¤Ґ¬ ўл¤Ґ«пвм гЈ«®ўл¬Ё бЄ®ЎЄ ¬Ё < Ё > . Ќ ЇаЁ¬Ґа,
<®ЇҐа в®а>, <ўла ¦ҐЁҐ>, <¤ҐбпвЁз®Ґ зЁб«®> Ё в Є ¤ «ҐҐ. ’Ґа¬Ё «млҐ
¦Ґ бЁ¬ў®«л ў ⥪б⥠ЇаҐ¤бв ў«пов б ¬Ё ᥡп. Џгбв®© бЁ¬ў®« Ўг¤Ґ¬ ®Ў®§-
з вм *. Џгбв®© бЁ¬ў®« ®Ў®§ з Ґв ®вбгвбвўЁҐ бЁ¬ў®« .
.
- 6 -
2. ќ‹…Њ…Ќ’› Њ…’Ђџ‡›ЉЂ
2.1. Ѓ §®ўл© Ў®а ЁбвагЄжЁ© ¬Ґв п§лЄ
‹оЎ п бЁв ЄбЁзҐбЄ п Є®бвагЄжЁп, §ў ЁҐ Є®в®а®© ®Ў®§ 祮 Ґ-
вҐа¬Ё «мл¬ бЁ¬ў®«®¬, ¬®¦Ґв Ўлвм ЇаҐ¤бв ў«Ґ ў ўЁ¤Ґ а §«Ёзле бва®Є,
б®бв®пйЁе Ё§ вҐа¬Ё «мле Ё ҐвҐа¬Ё «мле бЁ¬ў®«®ў. ЋЇЁб ЁҐ бЁв Є-
бЁзҐбЄ®© Є®бвагЄжЁЁ зЁ Ґвбп б Ґс §ў Ёп § Є®в®ал¬ б«Ґ¤гҐв ЇҐа-
ў п бва®Є Ґс ЇаҐ¤бв ў«ҐЁп, ®в¤Ґ«Ґ п ®в §ў Ёп бЁ¬ў®« ¬Ё ::= .
‘«Ґ¤гойЁҐ бва®ЄЁ ¤«п ЇаҐ¤бв ў«ҐЁп бЁв ЄбЁзҐбЄ®© Є®бвагЄжЁЁ зЁ -
овбп б ®ў®© бва®ЄЁ б бЁ¬ў®«®ў ||= . Ќ ЇаЁ¬Ґа,
<®ЇҐа в®а ЇаЁбў Ёў Ёп> ::= <Ё¤ҐвЁдЁЄ в®а ЇҐаҐ¬Ґ®©>
= <ўла ¦ҐЁҐ>
/* ЌҐвҐа¬Ё «мл© бЁ¬ў®« <楫®Ґ> ®ЇЁблў Ґв жҐ«лҐ зЁб« , б®бв®пйЁҐ
Ё§ «оЎ®Ј® зЁб« жЁда ®в 0 ¤® 9 */
<楫®Ґ> ::= <жЁда >
||= <楫®Ґ><жЁда >
<жЁда > ::= 0
||= 1
||= 2
||= 3
||= 4
||= 5
||= 6
||= 7
||= 8
||= 9
- 7 -
‚ ЇаЁ¬ҐаҐ ЁбЇ®«м§®ў л ҐвҐа¬Ё «млҐ бЁ¬ў®«л: <®ЇҐа в®а ЇаЁбў Ё-
ў Ёп>, <Ё¤ҐвЁдЁЄ в®а ЇҐаҐ¬Ґ®©>, <ўла ¦ҐЁҐ>, <楫®Ґ>, <жЁда > Ё
вҐа¬Ё «млҐ бЁ¬ў®«л: =, 0,1,2,3,4,5,6,7,8,9.
‚ ⥮ਨ д®а¬ «мле Ја ¬¬ вЁЄ Є ¦¤®Ґ ЇаҐ¤бв ў«ҐЁҐ ҐвҐа¬Ё «м®-
Ј® бЁ¬ў®« §лў о⠯தгЄжЁҐ© Ё«Ё Їа ўЁ«®¬. ‚ ЇаҐ¤бв ў«Ґ®¬ ўлиҐ
ЇаЁ¬ҐаҐ ¤«п ҐвҐа¬Ё «м®Ј® бЁ¬ў®« <®ЇҐа в®а ЇаЁбў Ёў Ёп> Ґбвм в®«м-
Є® ®¤ Їа®¤гЄжЁп
<®ЇҐа в®а ЇаЁбў Ёў Ёп> ::= <Ё¤ҐвЁдЁЄ в®а ЇҐаҐ¬Ґ®©>
= <ўла ¦ҐЁҐ>
¤«п ҐвҐа¬Ё « <楫®Ґ> ¤ўҐ Їа®¤гЄжЁЁ
<楫®Ґ> ::= <жЁда > /* ЇҐаў п Їа®¤гЄжЁп */
||= <楫®Ґ><жЁда > /* ўв®а п Їа®¤гЄжЁп */
¤«п ҐвҐа¬Ё « <жЁда > - ¤Ґбпвм Їа®¤гЄжЁ©.
Љ ЄЁ¬ ¦Ґ ®Ўа §®¬ бва®Ёвбп ЇаҐ¤«®¦ҐЁҐ п§лЄ Ї® ЇаЁўҐ¤Ґл¬ ўлиҐ
бЁв ЄбЁзҐбЄЁ¬ Є®бвагЄжЁп¬. Џ®бв஥ЁҐ зЁ Ґвбп б в®Ј® ҐвҐа¬Ё «м-
®Ј® бЁ¬ў®« , Є®в®ал© ®ЇЁблў Ґв Ґ®Ўе®¤Ё¬го ў ¬ Є®бвагЄжЁо. Ќ ЇаЁ¬Ґа,
¤® Ї®бва®Ёвм 楫®Ґ зЁб«®. Ћ® ®ЇЁблў Ґвбп ҐвҐа¬Ё «мл¬ бЁ¬ў®«®¬
<楫®Ґ>. „ «ҐҐ ЇаЁ¬ҐпҐвбп в®«мЄ® ®¤® Їа ўЁ«®, ¬Ґбв® ҐвҐа¬Ё «м-
®Ј® бЁ¬ў®« Ї®¤бв ў«пҐвбп ®¤ Ё§ бва®Є ҐЈ® ЇаҐ¤бв ў«ҐЁп (®¤ Ё§
Їа®¤гЄжЁ©). „«п ҐвҐа¬Ё « <楫®Ґ> нв® Ё«Ё <жЁда >, Ё«Ё <楫®Ґ><жЁд-
а >. Џ®бва®Ё¬ зЁб«® 2374.
‘ва®Є Џ®¤бв ®ўЄ
<楫®Ґ> <楫®Ґ> ::= <楫®Ґ><жЁда >
<楫®Ґ><жЁда > <楫®Ґ> ::= <楫®Ґ><жЁда >
<楫®Ґ><жЁда ><жЁда > <楫®Ґ> ::= <楫®Ґ><жЁда >
<楫®Ґ><жЁда ><жЁда ><жЁда > <楫®Ґ> ||= <жЁда >
- 8 -
<жЁда ><жЁда ><жЁда ><жЁда > <жЁда > ::= 2
2<жЁда ><жЁда ><жЁда > <жЁда > ::= 3
23<жЁда ><жЁда > <жЁда > ::= 7
237<жЁда > <жЁда > ::= 4
2374
Ћв¬ҐвЁ¬, зв® Ї®Є ЁЄ ЄЁе ®Ја ЁзҐЁ© Ї®а冷Є Ї®¤бв ®ў®Є Ґ Є« -
¤лў «®бм. ’® Ґбвм ў бва®ЄҐ ¬®¦® § ¬Ґпвм «оЎ®© ҐвҐа¬Ё «мл© бЁ¬ў®«
®¤® Ё§ ҐЈ® ЇаҐ¤бв ў«ҐЁ©. ѓ« ў®Ґ, зв®Ўл ў १г«мв ⥠Ї®¤бв ®ў®Є
Ї®«гзЁ«®бм в® зЁб«®, Є®в®а®Ґ ¬л бва®Ё¬.
Љ®бвагЄжЁо 楫®Ј® зЁб« ¬®¦® ®ЇЁб вм в Є¦Ґ Ё б ЁбЇ®«м§®ў ЁҐ¬
Їгбв®Ј® бЁ¬ў®« ў ўЁ¤Ґ б«Ґ¤го饩 Є®бвагЄжЁЁ.
<楫®Ґ> ::= <楫®Ґ><жЁда >
||= *
’®Ј¤ Ї®бв஥ЁҐ (ўлў®¤) бва®ЄЁ 2374 Ўг¤Ґв ўлЈ«п¤Ґвм б«Ґ¤гойЁ¬
®Ўа §®¬.
‘ва®Є Џ®¤бв ®ўЄ
<楫®Ґ> <楫®Ґ> ::= <楫®Ґ><жЁда >
<楫®Ґ><жЁда > <楫®Ґ> ::= <楫®Ґ><жЁда >
<楫®Ґ><жЁда ><жЁда > <楫®Ґ> ::= <楫®Ґ><жЁда >
<楫®Ґ><жЁда ><жЁда ><жЁда > <楫®Ґ> ::= <楫®Ґ><жЁда >
<楫®Ґ><жЁда ><жЁда ><жЁда ><жЁда > <楫®Ґ> ::= *
<жЁда ><жЁда ><жЁда ><жЁда > <жЁда > ::= 2
2<жЁда ><жЁда ><жЁда > <жЁда > ::= 3
23<жЁда ><жЁда > <жЁда > ::= 7
237<жЁда > <жЁда > ::= 4
2374
- 9 -
Ћ¤ Є® ЇаЁ ЁбЇ®«м§®ў ЁЁ ¤ ®© Є®бвагЄжЁЁ, 楫®Ґ зЁб«® ¬®¦Ґв Ґ б®-
¤Ґа¦ вм Ё ®¤®© жЁдал. Ћ¤ Є® ў ЇҐаў® з «м®© ўҐабЁЁ ЎҐ§ Їгбв®Ј®
бЁ¬ў®« 楫®Ґ ¤®«¦® б®бв®пвм е®вп Ўл Ё§ ®¤®© жЁдал. Џ®н⮬㠥®Ўе®-
¤Ё¬® Ўлвм ®бв®а®¦л¬ ЇаЁ ЁбЇ®«м§®ў ЁЁ Їгбв®Ј® бЁ¬ў®« Ё ЎҐ§ Ґ®Ўе®¤Ё-
¬®бвЁ бв а вмбп Ё¬ Ґ Ї®«м§®ў вмбп.
„«п Ї®пᥨп б¬лб« бЁв ЄбЁзҐбЄЁе Є®бвагЄжЁ© ¬®¦® ЁбЇ®«м§®-
ў вм Є®¬¬Ґв аЁ©, Є®в®ал© ЇаҐ¤бв ў«пҐв б®Ў®© ⥪бв, § Є«озҐл© ¬Ґ¦¤г
бЁ¬ў®« ¬Ё /* Ё */. ’® Ґбвм
<Є®¬¬Ґв аЁ©> ::= '/*' <⥪бв> '*/'
Ј¤Ґ ⥪бв ¬®¦Ґв ᮤҐа¦ вм «оЎлҐ бЁ¬ў®«л, Єа®¬Ґ ЈагЇЇл бЁ¬ў®«®ў */.
’ҐЄбв Є®¬¬Ґв аЁп ў ¬Ґв п§лЄҐ, Є Є Ё ў п§лЄ е Їа®Ја ¬¬Ёа®ў Ёп
ЁбЇ®«м§гҐвбп Є Є а §¤Ґ«ЁвҐ«м Ё«Ё ®¤Ё Їа®ЎҐ«мл© бЁ¬ў®«. Џ®н⮬㠪®¬-
¬Ґв аЁ© Ґ ¬®¦Ґв Ўлвм Ї®¬ҐйҐ ўгвам Є«о祢®Ј® б«®ў . ‘ ¬ ⥪бв Є®¬-
¬Ґв аЁп Ґ ЁбЇ®«м§гҐвбп. ’®зл© бЁв ЄбЁб Є®¬¬Ґв аЁп ЇаЁўҐ¤Ґ ў ЇаЁ-
«®¦ҐЁЁ.
2.2. “Їа ў«пойЁҐ Ї®б«Ґ¤®ў ⥫м®бвЁ
„«п в®Ј®, зв®Ўл Ґ бЇгв вм вҐа¬Ё «млҐ бЁ¬ў®«л б в®з® в ЄЁ¬Ё ¦Ґ
¬Ґв бЁ¬ў®« ¬Ё (<,>,',\,_,...), ¤«п Ё§®Ўа ¦ҐЁп вҐа¬Ё «мле бЁ¬ў®«®ў
ЁбЇ®«м§гов гЇа ў«пойЁҐ Ї®б«Ґ¤®ў ⥫м®бвЁ. ‚ ¬Ґв п§лЄҐ гЇа ў«пойЁҐ
Ї®б«Ґ¤®ў ⥫м®бвЁ § ЇЁблў овбп в Є¦Ґ, Є Є ў п§лЄҐ ‘€++.
“Їа ў«пойЁҐ Ї®б«Ґ¤®ў ⥫м®бвЁ, в Є¦Ґ Ї®§ў®«пов Ї®«гзЁвм ўЁ§г «м-
®Ґ ЇаҐ¤бв ў«ҐЁҐ ҐЄ®в®але Ґ Ё¬ҐойЁе Ја дЁзҐбЄ®Ј® «®Ј бЁ¬ў®«®ў.
ЋЁ ЁбЇ®«м§гов бЁ¬ў®« ®Ўа в®© Є«®®© зҐавл (\). Ќ ЇаЁ¬Ґа, ў Є -
.
- 10 -
“Їа ў«пойЁҐ Ї®б«Ґ¤®ў ⥫м®бвЁ
-----------------------------------------------------------------
Џ®б«Ґ¤®ў ⥫м®бвм ‡ 票Ґ ‘Ё¬ў®«л ‚лЇ®«пҐ¬ п дгЄжЁп
-----------------------------------------------------------------
\a 0x07 BEL ‡ўгЄ®ў®© бЁЈ «
\b 0x08 BS ‡ Ў®©
\f 0x0C FF ЏҐаҐў®¤ Ў« Є
\n 0x0A LF Ќ®ў п бва®Є (ЇҐаҐў®¤ бва®ЄЁ)
\r 0x0D CR ‚®§ўа в Є аҐвЄЁ
\t 0x09 HT ’ Ўг«пжЁп (Ј®аЁ§®в «м п)
\v 0x0B VT ‚ҐавЁЄ «м п в Ўг«пжЁп
\\ 0x5c \ ЋЎа в п Є«® п зҐав
\' 0x27 ' Ћ¤Ё а п Є ўлзЄ ( Ї®бва®д)
\" 0x22 " „ў®© п Є ўлзЄ
\? 0x3F ? ‚®Їа®бЁвҐ«мл© § Є
\string{07} «оЎлҐ бЁ¬ў®«, ®ЇаҐ¤Ґ«Ґл© ў®б쬥-
аЁзл¬ Є®¤®¬ - бва®Є®© ¤®
ваҐе ў®б쬥аЁзле жЁда
\char{x,X}string{09,AF} «оЎлҐ бЁ¬ў®«, ®ЇаҐ¤Ґ«Ґл© иҐбв ¤-
ж вЁаЁзл¬ Є®¤®¬ - бва®Є®©
¤® ¤ўге иҐбв ¤ж вЁаЁзле
жЁда
-----------------------------------------------------------------
зҐб⢥ ®¤®Ј® бЁ¬ў®« ®ў®© бва®ЄЁ ¬®¦® § ЇЁб вм Є®бв вг \n.
2.3. ЌҐвҐа¬Ё «млҐ бЁ¬ў®«л
я12.3.1 ‘®Єа йҐ п § ЇЁбм «мвҐа вЁў.
„«п б®Єа йҐЁп § ЇЁбЁ ЇҐаҐзЁб«ҐЁп ЇаҐ¤бв ў«ҐЁ© (Їа®¤гЄжЁ©) ҐвҐа¬Ё-
« , ў¬Ґбв® бЁ¬ў®«®ў ||= ¤®ЇгбЄ Ґвбп ЁбЇ®«м§®ў вм ®¤Ё бЁ¬ў®« | . …Ј®
४®¬Ґ¤гҐвбп ЇаЁ¬Ґпвм, Є®Ј¤ а §«ЁзлҐ ЇаҐ¤бв ў«ҐЁп § ЇЁблў овбп ў
- 11 -
®¤г бва®Єг. Ќ ЇаЁ¬Ґа, Є®бвагЄжЁо
<жЁда > ::= 0
||= 1
||= 2
||= 3
||= 4
||= 5
||= 6
||= 7
||= 8
||= 9
¬®¦® § ЇЁб вм Є®а®зҐ б«Ґ¤гойЁ¬ ®Ўа §®¬:
<жЁда > ::= 0|1|2|3|4|5|6|7|8|9
я12.3.2. Џ®ўв®аҐЁҐ н«Ґ¬Ґв®ў Є®бвагЄжЁ©.
‹оЎ п бва®Є , ᮤҐа¦ й п вҐа¬Ё «млҐ Ё ҐвҐа¬Ё «млҐ бЁ¬ў®«л, ¬®¦Ґв
Ї®ўв®апвмбп ў Є®бвагЄжЁЁ ЎҐбЄ®Ґз®Ґ зЁб«® а §. ’ Єго бва®Єг ( §®ўҐ¬
Ґс бҐвҐжЁҐ©) § Є«оз ов ў бЄ®ЎЄЁ <* Ё *> :
<*бҐвҐжЁп*>
ЏаЁ¬Ґа 1. ќЄўЁў «Ґв п § ЇЁбм Є®бвагЄжЁЁ
<楫®Ґ> ::= <жЁда >
||= <楫®Ґ><жЁда >
ўлЈ«п¤Ёв б«Ґ¤гойЁ¬ ®Ўа §®¬
<楫®Ґ> ::= <* <жЁда > *>
€«Ё бЇЁб®Є 楫ле зЁбҐ«, ЇҐаҐзЁб«Ґле зҐаҐ§ § Їпвго Ўг¤Ґв ўлЈ«п-
- 12 -
¤Ґвм б«Ґ¤гойЁ¬ ®Ўа §®¬.
<бЇЁб®Є 楫ле зЁбҐ«> ::= <楫®Ґ> <* ',' <楫®Ґ> *>_
‘Ё¬ў®« _ ®§ з Ґв ў®§¬®¦®бвм ®вбгвбвўЁп бЁв ЄбЁзҐбЄ®© Є®бвагЄ-
жЁЁ <* ',' <楫®Ґ> *>.
Љ®Ґз®Ґ зЁб«® Ї®ўв®аҐЁ© Є®бвагЄжЁЁ § ¤ Ґвбп жҐ«л¬ зЁб«®¬, § -
ЇЁб л¬ Ї®б«Ґ бЁ¬ў®«®ў *> . Ќ ЇаЁ¬Ґа, <*<жЁда >*>10 ®§ з Ґв ¤ҐбпвЁ§-
箥 楫®Ґ зЁб«®.
‡ ЇаҐй Ґвбп гЄ §лў вм зЁб«® Ї®ўв®аҐЁ© 0.
я12.3.3. ЋвбгвбвўЁҐ н«Ґ¬Ґв®ў Є®бвагЄжЁ©.
‹оЎ®© ҐвҐа¬Ё «мл©, вҐа¬Ё «мл© бЁ¬ў®«л, в Є¦Ґ бҐвҐжЁп (Є®¬ЎЁ-
жЁп вҐа¬Ё «мле Ё ҐвҐа¬Ё «мле бЁ¬ў®«®ў) ¬®¦Ґв ®вбгвбвў®ў вм.
‡ Є Ї®¤зҐаЄЁў Ёп _ ў® ўбҐе Є®бвагЄжЁпе ®Ў®§ з Ґв ў®§¬®¦®бвм Ёе
®вбгвбвўЁп. ’® Ґбвм <* <жЁда > *> Ї®а®¦¤ Ґв ®в ®¤®© ¤® ЎҐбЄ®Ґз®Ј®
зЁб« жЁда, <* <жЁда > *>_ ¬®¦Ґв Ґ Ї®а®¦¤ вм Ё ®¤®© жЁдал, ¬®¦Ґв
Ї®а®¦¤ вм ®¤г Ё Ў®«ҐҐ жЁда.
ЏаЁ¬Ґа 2. Љ®бвагЄжЁп
<楫®Ґ> ::= <жЁда >
||= <楫®Ґ>,<жЁда >
нЄўЁў «Ґв
<楫®Ґ> ::= <жЁда ><* , <жЁда > *>_
€бЇ®«м§®ў ЁҐ нв®Ј® § Є б вҐа¬Ё «мл¬ Ё«Ё ҐвҐа¬Ё «мл¬ бЁ¬-
ў®«®¬ ®§ з Ґв ў®§¬®¦®бвм ҐЈ® ®вбгвбвўЁп. ’® Ґбвм <жЁда >_ Ї®а®¦¤ Ґв,
«ЁЎ® ®¤г жЁдаг, «ЁЎ® Ё ®¤®©. ‡ ЇЁбм 7_ ®§ з Ґв, зв® жЁда 7 ¬®¦Ґв
Ўлвм, ¬®¦Ґв Ё ®вбгвбвў®ў вм.
2.4. ’Ґа¬Ё «млҐ бЁ¬ў®«л
Љ Є 㦥 ®в¬Ґз «®бм а ҐҐ вҐа¬Ё «млҐ бЁ¬ў®«л ў ¬Ґв п§лЄҐ ЇаҐ¤б-
- 13 -
в ў«пов б ¬Ё ᥡп. ЏаЁ¬Ґал вҐа¬Ё «мле бЁ¬ў®«®ў while for do [ 0
fg a Ё в.¤. ’ ЄЁҐ вҐа¬Ё «млҐ бЁ¬ў®«л Ґ«м§п а §¤Ґ«Ёвм з бвЁ. Ќ Ї-
аЁ¬Ґа while Ё whi le Ґ ®¤® Ё ⮦Ґ.
Ќ ап¤г б ЇаЁўҐ¤Ґл¬ ўлиҐ Ґпўл¬ ®Ў®§ 票Ґ¬ вҐа¬Ё «мле бЁ¬-
ў®«®ў ў ¬Ґв п§лЄҐ Ё¬Ґовбп б।бвў ¤«п Ёе пў®Ј® § ¤ Ёп. Џ®б«Ґ¤®ў -
⥫м®бвм вҐа¬Ё «мле бЁ¬ў®«®ў, в Є¦Ґ ®в¤Ґ«мл© вҐа¬Ё «мл© бЁ¬ў®«
¬®¦® ўл¤Ґ«Ёвм ў Ї®бва®д е. Ќ ЇаЁ¬Ґа, ЇаҐ¤л¤гйЁҐ ЇаЁ¬Ґал ¬®¦® § ЇЁ-
б вм.
'while' нЄўЁў «Ґв® while
'for' нЄўЁў «Ґв® for
'whi''le' нЄўЁў «Ґв® whi le
'whi''le' Ґ нЄўЁў «Ґв® while
'1' нЄўЁў «Ґв® 1
‡ ЇЁбЁ 'whi''le' Ё whi le ¤®ЇгбЄ ов «ЁзЁҐ «оЎ®Ј® зЁб« Їа®ЎҐ«м-
ле бЁ¬ў®«®ў ¬Ґ¦¤г whi Ё le. Џа®ЎҐ«млҐ бЁ¬ў®«л ®ЇаҐ¤Ґ«Ґл ў ЇаЁ«®¦Ґ-
ЁЁ. ‚ з бв®бвЁ Є Ё¬ ®в®бпвбп бЁ¬ў®«л Їа®ЎҐ« Ё бЁ¬ў®« ®ў®© бва®ЄЁ,
в Є¦Ґ Є®¬¬Ґв аЁ©.
‚ б«гз Ґ ®вбгвбвўЁп Ї®бва®д®ў бЁ¬ў®« а бб¬ ваЁў Ґвбп ў ЇҐаўго
®зҐаҐ¤м Є Є ¬Ґв бЁ¬ў®«. € в®«мЄ® Ґб«Ё ® Ґ б®ўЇ ¤ Ґв Ё б ®¤Ё¬ ¬Ґв -
бЁ¬ў®«®¬, ҐЈ® б«Ґ¤гҐв а бб¬ ваЁў вм, Є Є вҐа¬Ё «мл© бЁ¬ў®«. Ќ ЇаЁ¬Ґа,
ў Їа®¤гЄжЁпе
<жЁда > ::= 0|1|2|3|4|5|6|7|8|9
бЁ¬ў®« | нв® ¬Ґв бЁ¬ў®«. Ћ а §¤Ґ«пҐв Їа®¤гЄжЁЁ. Ћ¤ Є® Їа®¤гЄжЁп
<жЁда > ::= '0|1|2|3|4|5|6|7|8|9'
®ЇаҐ¤Ґ«пҐв Ґ ¬®¦Ґбвў® жЁда, в®«мЄ® ®¤г бва®Єг, ᮤҐа¦ йго 19 бЁ¬-
ў®«®ў - 10 жЁда, а §¤Ґ«Ґле ўҐавЁЄ «м®© зҐав®©.
”®а¬г ўл¤Ґ«ҐЁп вҐа¬Ё «мле бЁ¬ў®«®ў Ї®бва®д ¬Ё Ї®«Ґ§® ЇаЁ¬Ґ-
пвм ¤«п § ЇЁбЁ вҐа¬Ё «мле бЁ¬ў®«®ў, б®ўЇ ¤ ойЁе б ¬Ґв бЁ¬ў®« ¬Ё,
ў¬Ґбв® гЇа ў«пойЁе Ї®б«Ґ¤®ў ⥫м®б⥩. Ќ ЇаЁ¬Ґа, '\' '<' '<*' '{' Ё
в Є ¤ «ҐҐ.
- 14 -
я12.4.1. ‘Ё¬ў®« Ё§ ¬®¦Ґбвў .
„«п Ґйс Ў®«м襣® гЇа®йҐЁп § ЇЁбЁ вҐа¬Ё «мле бЁ¬ў®«®ў ўўҐ¤Ґ¬ нЄўЁў -
«ҐвлҐ Є®бвагЄжЁЁ:
char{x,ad,...} Ё [x,ad,...]
ЋЎҐ Є®бвагЄжЁЁ ®Ў®§ з ов ®¤Ё бЁ¬ў®« Ё§ ¬®¦Ґбвў бЁ¬ў®«®ў, ЇҐ-
аҐзЁб«Ґле ў дЁЈгале бЄ®ЎЄ е. …б«Ё н«Ґ¬Ґв®¬ ¬®¦Ґбвў пў«повбп ¤ўҐ
ЎгЄўл, Є Є ў 襬 ЇаЁ¬ҐаҐ ad, в® ®Ё § ¤ ов Ја ЁзлҐ н«Ґ¬Ґвл ¬®-
¦Ґбвў. ’.Ґ. char{ad} = char{a,b,c,d}. Ћ¤ Є®, Ґб«Ё н«Ґ¬Ґв®¬ ¬®¦Ґбвў
пў«пҐвбп 楯®зЄ бЁ¬ў®«®ў, в® Ґс Ґ®Ўе®¤Ё¬® ўл¤Ґ«пвм ў Ї®бва®дл. Ќ Ї-
аЁ¬Ґа, char{a,bc,'bc','/*','*/'} ®§ з Ґв б«Ґ¤го饥 ¬®¦Ґбвў® бЁ¬ў®«®ў.
char{a,b,c,'bc','/*','*/'}
’® Ґбвм ЇаЁ Ї®а®¦¤ҐЁЁ бва®ЄЁ ў¬Ґбв® char{a,b,c,'bc','/*','*/'} ¬®¦®
Ї®¤бв ўЁвм «оЎ®© вҐа¬Ё «мл© бЁ¬ў®« Ё§ a, b, c, bc , /*, */ .
ЏаЁ ЁбЇ®«м§®ў ЁЁ ¤ ®© д®а¬л § ЇЁбЁ Є®бвагЄжЁо <жЁда > ¬®¦®
ЇаҐ¤бв ўЁвм ў ўЁ¤Ґ:
<жЁда > ::= char{09} Ё«Ё <жЁда > ::= [09]
зв® нЄўЁў «Ґв®
<жЁда > ::= char{0,1,2,3,4,5,6,7,8,9}
Ё«Ё
<жЁда > ::= 0|1|2|3|4|5|6|7|8|9
„ лҐ Є®бвагЄжЁЁ в Є¦Ґ ¬®¦® ЁбЇ®«м§®ў вм б®ў¬Ґбв® б бЁ¬ў®«®¬
_, Є®в®ал© гЄ §лў Ґв в®, зв® Є®бвагЄжЁп ¬®¦Ґв ®вбгвбвў®ў вм. ‘Ё¬-
ў®« '_' ®в®бЁвбп Є® ўбҐ© Є®бвагЄжЁЁ char, Ґ Є бЁ¬ў®« ¬ ¬®¦Ґбвў .
’® Ґбвм ¬®¦® § ЇЁб вм char{09}_ Ё«Ё [09]_ , ® § ЇаҐйҐ § ЇЁбм
[09_].
Ћв¤Ґ«млҐ бЁ¬ў®«л ў ¬®¦Ґб⢥ ¬®¦® гЄ §лў вм в Є¦Ґ б Ї®¬®ймо гЇ-
а ў«пойЁе Ї®б«Ґ¤®ў ⥫м®б⥩.
- 15 -
я12.4.2. ‘Ё¬ў®«, Ґ ЇаЁ ¤«Ґ¦ йЁ© ¬®¦Ґбвўг
Њ®¦Ґбвў® бЁ¬ў®«®ў § ЁбЄ«о票Ґ¬ гЄ § ле ®Ў®§ з ов б Ї®¬®ймо ЇаҐ-
¤л¤гйЁе Є®бвагЄжЁ© б гЄ § ЁҐ¬ ўЇҐаҐ¤Ё Є ¦¤®© ў®бЄ«Ёж ⥫쮣® § Є ,
Є®в®ал© ®§ з Ґв ®ваЁж ЁҐ.
‡ ЇЁбЁ !char {a,bc}, ![a,bc] ®§ з ов «оЎ®© бЁ¬ў®«, Ґ ЇаЁ ¤«Ґ-
¦ йЁ© гЄ § ®¬г ¬®¦Ґбвўг. Ќ ЇаЁ¬Ґа, «оЎ®© бЁ¬ў®«, Є®в®ал© ¬®¦Ґв -
室Ёвбп ў ⥪б⥠Є®¬¬Ґв аЁп, ¬®¦® ®ЇЁб вм ў ўЁ¤Ґ:
<бЁ¬ў®« Є®¬¬Ґв аЁп> ::= !char{'/*','*/'}
„ лҐ Є®бвагЄжЁЁ в Є¦Ґ ¬®¦® ЁбЇ®«м§®ў вм б®ў¬Ґбв® б бЁ¬ў®«®¬
_, Є®в®ал© гЄ §лў Ґв в®, зв® Є®бвагЄжЁп ¬®¦Ґв ®вбгвбвў®ў вм.
ЋЇҐа жЁп ! Ё¬ҐҐв ўлиҐ ЇаЁ®аЁвҐв, 祬 _. Џ®н⮬㠧 ЇЁбм
!char{'/*','*/'}_
®§ з Ґв, зв® ўбп Є®бвагЄжЁп !char{'/*','*/'} ¬®¦Ґв ®вбгвбвў®ў вм.
Ћв¤Ґ«млҐ бЁ¬ў®«л ў ¬®¦Ґб⢥ ¬®¦® гЄ §лў вм в Є¦Ґ б Ї®¬®ймо гЇ-
а ў«пойЁе Ї®б«Ґ¤®ў ⥫м®б⥩.
я12.4.3. ‘ва®Є бЁ¬ў®«®ў Ё§ ¬®¦Ґбвў .
Љ®бвагЄжЁп string § ¤ Ґв Ґ ®¤Ё бЁ¬ў®«, бва®Єг бЁ¬ў®«®ў Ё§ н«Ґ¬Ґ-
в®ў ¬®¦Ґбвў ў дЁЈгале бЄ®ЎЄ е. Ќ ЇаЁ¬Ґа, бва®ЄЁ a, aa, b, ab,bba,
... ¬®¦® Є®а®вЄ® § ЇЁб вм ў ўЁ¤Ґ:
string{ab} Ё«Ё {ab} Ё«Ё {a,b} Ё«Ё string{a,b}
Њ®¦Ґбвў® бЁ¬ў®«®ў Ё§ Є®в®але б®бв®Ёв бва®Є § ¤ Ґвбп ў дЁЈгале бЄ®Ў-
Є е «®ЈЁз® ¬®¦Ґбвўг ў char. ‘ва®Є , ®ЇаҐ¤Ґ«Ґ п в ЄЁ¬ ®Ўа §®¬
¤®«¦ ᮤҐа¦ вм, Є Є ¬ЁЁ¬г¬ ®¤Ё бЁ¬ў®«.
‘ Ї®¬®ймо нв®© Є®бвагЄжЁЁ ¬®¦® § ЇЁб вм <楫®Ґ зЁб«®> Ў®«ҐҐ
Їа®бвл¬ бЇ®б®Ў®¬.
<楫®Ґ> ::= string{09}
зв® нЄўЁў «Ґв® Є®бвагЄжЁЁ
<楫®Ґ> ::= <жЁда >
||= <楫®Ґ><жЁда >
- 16 -
‚ ¤ ®© Є®бвагЄжЁЁ ¬®¦® ЁбЇ®«м§®ў вм ®ЇҐа жЁЁ _ Ё !. Ќ ЇаЁ¬Ґа,
бЁв ЄбЁб Є®¬¬Ґв аЁп ¬®¦® § ЇЁб вм ў ўЁ¤Ґ:
<Є®¬¬Ґв аЁ©> ::= '/*' <⥪бв Є®¬¬Ґв аЁп> '*/'
||= '//' <бва®зл© Є®¬¬Ґв аЁ©>_
<⥪бв Є®¬¬Ґв аЁп>
::= !string{'/*','*/'}_
/* бва®Є Ё§ «оЎле бЁ¬ў®«®ў, Ґ ЇаЁ ¤«Ґ¦ йЁе
гЄ § ®¬г ¬®¦Ґбвўг */
<бва®зл© Є®¬¬Ґв аЁ©>
::= !string{\12,\15}
Ћв¬ҐвЁ¬, зв® ®ЇҐа жЁп ! Ё¬ҐҐв ЇаЁ®аЁвҐв ўлиҐ, 祬 _. ’ ЄЁ¬ ®Ўа -
§®¬, !string{'/*','*/'}_ ®§ з Ґв, зв® ¬®¦Ґв ®вбгвбвў®ў вм ўбп Є®б-
вагЄжЁп !string{'/*','*/'}.
я12.4.4. ‘ва®Є Ё§ ®¤Ё Є®ўле бЁ¬ў®«®ў.
‘ва®Єг Ё§ ®¤Ё Є®ўле бЁ¬ў®«®ў ¬®¦® § ЇЁб вм, ЁбЇ®«м§гп string. Ќ ЇаЁ-
¬Ґа, бва®Є Ё§ n бЁ¬ў®«®ў a ¬®¦Ґв Ўлвм ЇаҐ¤бв ў«Ґ ў ўЁ¤Ґ {a}. —Ёб«®
бЁ¬ў®«®ў ў в Є®© бва®ЄҐ ®в ®¤®Ј® ¤® ЎҐбЄ®Ґз®бвЁ. ’® Ґбвм нв® ¬®¦Ґв
Ўлвм a , aa , aaa, aaa... .
ђ бᬮваЁ¬ б«Ґ¤гойго Ја ¬¬ вЁЄг.
<A> ::= a<A>b
||= y
ЌҐва㤮 гЎҐ¤Ёвбп, зв® ¤ п Ја ¬¬ вЁЄ Ї®а®¦¤ Ґв ¬®¦Ґбвў®
ЇаҐ¤«®¦ҐЁ© вЁЇ aa...ybb..., ЇаЁзҐ¬ зЁб«® бЁ¬ў®«®ў a ў Є ¦¤®¬ ЇаҐ¤«®-
¦ҐЁЁ а ў зЁб«г бЁ¬ў®«®ў b. Eб«Ё ¬л § ЇЁиҐ¬ в Є®Ґ ЇаҐ¤«®¦ҐЁҐ ў ўЁ¤Ґ
{a}y{b}, в® нв® Ўг¤Ґв ҐЇа ўЁ«м®, Ї®бЄ®«мЄг ¤ п § ЇЁбм ¤®ЇгбЄ Ґв
Ґа ў®Ґ зЁб«® бЁ¬ў®«®ў a Ё b ў Ї®а®¦¤ Ґ¬®© бва®ЄҐ.
„«п ®ЎҐбЇҐзҐЁп ў®§¬®¦®бвЁ ЇаҐ¤бв ў«ҐЁп ЇаҐ¤«®¦ҐЁ© б ®¤Ё Є®-
- 17 -
ўл¬ зЁб«®¬ бЁ¬ў®«®ў Ё ЇаҐ¤ § зҐ Є®бвагЄжЁп a^. ќв бва®Є ᮤҐа-
¦Ёв ®в ®¤®Ј® ¤® ЎҐбЄ®Ґз®Ј® зЁб« бЁ¬ў®«®ў. ЏаЁзҐ¬, Ґб«Ё ў бва®ЄҐ
室Ёвбп ҐйҐ ®¤Ё бЁ¬ў®« б® § Є®¬ ^ , в® зЁб«® бЁ¬ў®«®ў, бв®пйЁе
б«Ґў ®в нвЁе § Є®ў ў Ї®а®¦¤ Ґ¬ле бва®Є е ¤®«¦л Ўлвм а ўл¬Ё. ЏаҐ¤-
«®¦Ґ п ўлиҐ Є®бвагЄжЁп ¬®¦Ґв Ўлвм § ЇЁб ў ўЁ¤Ґ.
<A> ::= a^yb^
‡ Є ^ ¬®¦Ґв ЇаЁ¬Ґпвмбп б ЈагЇЇ®© вҐа¬Ё «мле бЁ¬ў®«®ў ('ac'^),
в Є¦Ґ б ®¤Ё¬ ҐвҐа¬Ё «мл¬ бЁ¬ў®«®¬ ( <A>^ ).
…б«Ё зЁб«® Ї®ўв®аҐЁ© бЁ¬ў®«®ў в®з® ®ЇаҐ¤Ґ«Ґ®, в® ®® § ЇЁблў -
Ґвбп Ї®б«Ґ § Є ^. Ќ ЇаЁ¬Ґа, aaaa ¬®¦® § ЇЁб вм Є Є a^4. „ го ®ЇҐ-
а жЁо ^ ¬®¦® ЇаЁ¬ҐЁвм Ё Є ҐвҐа¬Ё «м®¬г бЁ¬ў®«г. Ќ ЇаЁ¬Ґа,
<жЁда >^5 ®§ з Ґв бва®Єг Ё§ ЇпвЁ жЁда
<жЁда ><жЁда ><жЁда ><жЁда ><жЁда >
‹оЎго ४габЁўго Є®бвагЄжЁо ¬®¦® ЇаҐ¤бв ўЁвм ў ®¤®¬ Ё§ ваҐе
ўЁ¤®ў:
<A> ::= <A><Z>
<A> ::= <Z><A>
<A> ::= <C><A><Z>
Їг⥬ Їа®бв®Ј® ЇҐаҐ®Ў®§ зҐЁп Їа ўле Ё «Ґўле бҐвҐжЁ© ў Їа®¤гЄжЁпе
ҐвҐа¬Ё «мл¬Ё бЁ¬ў®« ¬Ё. Ќ ЇаЁ¬Ґа,
<A> ::= cfg<B><A>f<A>
¬®¦® § ЇЁб вм ў ўЁ¤Ґ
<A> ::= <‘><A><Z>
<C> ::= cfg<B>
<Z> ::= f<A>
Ё«Ё
<A> ::= <Z><A>
<Z> ::= cfg<B><A>f
‚ бў®о ®зҐаҐ¤м Є ¦¤л© Ё§ ваҐе ў аЁ в®ў ¬®¦Ґв Ўлвм ЇаҐ¤бв ў«Ґ б
Ї®¬®ймо ®ЇҐа жЁ© ^ Ё <* *>.
<A> ::= <A><* <Z> *> // <A> ::= <A><Z>
- 18 -
<A> ::= <* <Z> *><A> // <A> ::= <Z><A>
<A> ::= <C>^<A><Z>^ // <A> ::= <C><A><Z>
ЋЇҐа жЁп ^ Ґ®Ўе®¤Ё¬ в®«мЄ® ¤«п бЁв ЄбЁзҐбЄЁе Є®бвагЄжЁ©
ваҐв쥣® ўЁ¤ , Є®Ј¤ 㦮 § ¤ вм а ў®Ґ зЁб«® Ї®ўв®аҐЁ©. ЏаЁзҐ¬ нв®
вॡгҐвбп в®«мЄ® ў ⮬ б«гз Ґ, Ґб«Ё Ґбвм Ґ®¤®§ з®бвм ЇаЁ ўлЎ®аҐ
Їа®¤гЄжЁ©. ‚ ®бв «мле б«гз пе нв®© ®ЇҐа жЁҐ© Ї®«м§®ў вмбп Ґ ४®¬Ґ-
¤гҐвбп.
‚ Є зҐб⢥ ¤®Ї®«ЁвҐ«м®© Ё««обва жЁЁ ЁбЇ®«м§®ў Ёп ¬Ґв п§лЄ ў
ЇаЁ«®¦ҐЁЁ ЇаЁўҐ¤Ґ® Ї®«®Ґ Ё в®з®Ґ ®ЇЁб ЁҐ ¬Ґв п§лЄ ¬Ґв п§лЄҐ.
я12.4.5. ЋЇҐа жЁп Є®Є ⥠樨 бва®Є
‚ ¬Ґв п§лЄҐ ¬Ґ¦¤г ¤ўг¬п бЁв ЄбЁзҐбЄЁ¬Ё Є®бвагЄжЁп¬Ё ¤®ЇгбЄ Ґвбп
®¤Ё Ё Ў®«ҐҐ Їа®ЎҐ«мле бЁ¬ў®«®ў. ’ ЄЁ¬ ®Ўа §®¬,
'while''(' нЄўЁў «Ґв 'while' '('
while(
while (
'while' '('
'while'
'('
<tt><h> нЄўЁў «Ґв <tt> <h>
<tt> <h>
d <yy> нЄўЁў «Ґв d <yy>
d<yy>
d <yy>
d <yy>
Ё в Є ¤ «ҐҐ.
Ћ¤ Є® ў ҐЄ®в®але Є®бвагЄжЁпе Ґ®Ўе®¤Ё¬®, зв®Ўл ¬Ґ¦¤г Є®бвагЄ-
жЁп¬Ё Їа®ЎҐ«млҐ бЁ¬ў®«л Ўл«Ё Ґ¤®ЇгбвЁ¬л. Ќ ЇаЁ¬Ґа, Ё¤ҐвЁдЁЄ в®а
п§лЄ ‘€++ ¬®¦® § ЇЁб вм б«Ґ¤гойЁ¬ ®Ўа §®¬.
<Ё¤ҐвЁдЁЄ в®а> ::= char{az,AZ,_}string{az,AZ,09,_}
‚ н⮬ б«гз Ґ ¬Ґ¦¤г ЇҐаўл¬ бЁ¬ў®«®¬ Ё¤ҐвЁдЁЄ в®а Ё Ї®б«Ґ¤гойЁ¬Ё
- 19 -
Ґ ¬®¦Ґв Ўлвм Їа®ЎҐ«мле бЁ¬ў®«®ў. Џ®н⮬㠯ਢҐ¤Ґ п ўлиҐ § ЇЁбм Ўг-
¤Ґв ҐўҐа . „«п в®Ј®, зв®Ўл § ЇаҐвЁвм нвЁ Їа®ЎҐ«млҐ бЁ¬ў®«л ў ¬Ґв п-
§лЄ ўўҐ¤Ґ ®ЇҐа жЁп Є®Є ⥠樨, ®Ў®§ з Ґ¬ п ¬Ґв бЁ¬ў®«®¬ +. Џа -
ўЁ«м п § ЇЁбм бЁв ЄбЁб Ё¤ҐвЁдЁЄ в®а Ўг¤Ґв б«Ґ¤го饩
<Ё¤ҐвЁдЁЄ в®а> ::= char{az,AZ,_} + string{az,AZ,09,_}
‡ ЇЁбм 'whi'+ le Ўг¤Ґв нЄўЁў «Ґв while Ё«Ё 'while'.
ЋЇҐа жЁп Є®Є ⥠樨 в Є¦Ґ ¤®ЇгбвЁ¬ Ё ¤«п § ЇаҐв Їа®ЎҐ«мле бЁ¬ў®-
«®ў ¬Ґ¦¤г ҐвҐа¬Ё «мл¬Ё Є®бвагЄжЁп¬Ё, в Є¦Ґ вҐа¬Ё «мл¬Ё Ё Ґ-
вҐа¬Ё «мл¬Ё Є®бвагЄжЁп¬Ё. ЋвбгвбвўЁҐ § Є + Ґ ®§ з Ґв, зв® Їа®Ј-
а ¬¬ а §Ў®а ўв®¬ вЁзҐбЄЁ Ўг¤Ґв Їа®ЇгбЄ вм Їа®ЎҐ«л. ќв® ®§ з Ґв
«Ёим в®, зв® ®Ё ¤®ЇгбвЁ¬л.
2.5. ЉагЈ«лҐ бЄ®ЎЄЁ
ЉагЈ«лҐ бЄ®ЎЄЁ ў ¬Ґв п§лЄҐ ЁбЇ®«м§говбп в Є¦Ґ Є Є Ё ў ¬ ⥬ вЁ-
зҐбЄЁе ўла ¦ҐЁпе. ‡ ЄагЈ«лҐ бЄ®ЎЄЁ ¬®¦® ўл®бЁвм ®Ўйго з бвм а §-
«Ёзле ЇаҐ¤бв ў«ҐЁ© ( «мвҐа вЁў) ®¤®Ј® Ё в®Ј® ¦Ґ ҐвҐа¬Ё «м®Ј®
бЁ¬ў®« . Ќ ЇаЁ¬Ґа, ў Є®бвагЄжЁЁ
<E> ::= <E> + <T>
||= <E> - <T>
||= <T>
¬®¦® ўлҐбвЁ § бЄ®ЎЄЁ <E> ў ЇҐаўле ¤ўге «мвҐа вЁў е
<E> ::= <E> ( + <T> | - <T>)
||= <T>
Њ®¦® ўл®бЁвм § бЄ®ЎЄЁ Ґ в®«мЄ® ў«Ґў® ® Ё ўЇа ў®. Џа®¤®«¦ п ЇаҐ®Ў-
а §®ў ЁҐ ЇаЁўҐ¤Ґ®Ј® ўлиҐ ЇаЁ¬Ґа Ї®«гзЁ¬
<E> ::= <E> ( + | - ) <T>
||= <T>
- 20 -
2.6. ‘Ґ¬ вЁЄ п§лЄ
„«п ®ЇаҐ¤Ґ«ҐЁп б¬лб« в®© Ё«Ё Ё®© бЁв ЄбЁзҐбЄ®© Є®бвагЄжЁЁ ў
¬Ґв п§лЄҐ ЁбЇ®«м§говбп Є®бвагЄжЁЁ п§лЄ ‘€. ќв® ¬®Јгв Ўлвм ҐЇ®б।б-
⢥® ®ЇҐа в®ал п§лЄ Ё«Ё ўл§®ўл дгЄжЁ©. ‘Ґ¬ вЁЄ ¬®¦Ґв Ўлвм а §¬Ґ-
йҐ ҐЇ®б।б⢥® § «оЎл¬ вҐа¬Ё «мл¬ бЁ¬ў®«®¬, ҐвҐа¬Ё «мл¬
бЁ¬ў®«®¬ Ё «оЎ®© бҐвҐжЁҐ©, в Є¦Ґ § ЄагЈ«л¬Ё бЄ®ЎЄ ¬Ё.
‡ ЇЁбм ᥬ вЁЄЁ ў ¬Ґв п§лЄҐ ¬®¦Ґв ®бгйҐбвў«пвбп б«Ґ¤гойЁ¬Ё бЇ®-
б®Ў®¬.
<ᥬ вЁЄ > ::= '#{' < ⥪бв_ _п§лЄҐ_‘€ > '}#'
Џа ўЁ«м®бвм § ЇЁбЁ ⥪бв ᥬ вЁЄЁ Ё Ї а ¬Ґва®ў дгЄжЁ© Їа®ўҐ-
апҐвбп нв ЇҐ ва б«пжЁЁ бЈҐҐаЁа®ў ®Ј® ⥪бв «Ё§ в®а Є®¬ЇЁ-
«пв®а®¬ п§лЄ ‘€.
”а Ј¬Ґв Їа®Ја ¬¬л ЁбЇ®«пҐвбп ЇаЁ гб«®ўЁЁ, зв® ЇаЁ а §Ў®аҐ ⥪г-
饣® бЁ¬ў®« Ёб室®Ј® ЇаҐ¤«®¦ҐЁп ЁбЇ®«м§®ў «бп н«Ґ¬Ґв бЁв ЄбЁзҐб-
Є®© Є®бвагЄжЁЁ, ўб«Ґ¤ § Є®в®а®© а бЇ®« Ј Ґвбп ¤ л© да Ј¬Ґв ᥬ -
вЁЄЁ.
ђ бᬮваЁ¬ Їа®Ја ¬¬г ¬Ґв п§лЄҐ, ўлЇ®«пойго бЁв ЄбЁзҐбЄЁ©
«Ё§ Ё д®а¬Ёа®ў ЁҐ ¤ҐбпвЁз®Ј® зЁб« .
/* -------------------------------------------------------- */
<¤ҐбпвЁз®Ґ зЁб«®> /*Їа®Ја ¬¬ а §Ў®а ¤ҐбпвЁз®Ј® зЁб« */
::= <зЁб«®>
semantics { Decimal = Float;}
( .<зЁб«®> ';'
#{ for (i=1; i <= number; i++;)
Float /= 10;
Decimal += Float;
}#
- 21 -
| ';'
#{ Decimal = Float; }# )
/* -------------------------------------------------------- */
<зЁб«®> /* а §Ў®а 楫®Ј® зЁб« */
::= <жЁда >
#{ Float = Digit;
number = 1;
}#
||= <зЁб«®> <жЁда >
#{ Float = Float * 10 + Digit;
number++; }#
/* -------------------------------------------------------- */
<жЁда > /* а §Ў®а жЁда */
::= '0'
#{ Digit = 0; }#
||= '1'
#{ Digit = 1; }#
||= '2'
#{ Digit = 2; }#
||= '3'
#{ Digit = 3; }#
||= '4'
#{ Digit = 4; }#
||= '5'
#{ Digit = 5; }#
||= '6'
#{ Digit = 6; }#
||= '7'
- 22 -
#{ Digit = 7; }#
||= '8'
#{ Digit = 8; }#
||= '9'
#{ Digit = 9; }#
ЋЇЁб Ёп ЇҐаҐ¬Ґле ®Ўлз® Ї®¬Ґй овбп ў ®в¤Ґ«м®¬ да Ј¬ҐвҐ Їа®Ј-
а ¬¬л, ® ¬®Јгв Ўлвм а §¬ҐйҐл ў ЇҐаў®¬ Ё§ да Ј¬Ґв®ў Їа®Ја ¬¬л а §Ў®-
а ¬Ґв п§лЄҐ. „«п ¤ ®© Їа®Ја ¬¬л ®Ё Ўг¤гв б«Ґ¤гойЁ¬Ё
int i, number;
float Digit, Float, Decimal;
Љ Є ўЁ¤® Ё§ Їа®Ја ¬¬л १г«мв в ўлзЁб«ҐЁ© (¤Ґ©б⢨⥫쮥 зЁб-
«®) § ЇЁблў Ґвбп ў ЇҐаҐ¬Ґго Decimal. ‚ ЇҐаҐ¬Ґ®© Digit Ї®б«Ґ «Ё-
§ Є ¦¤®© жЁдал § ЇЁблў Ґвбп ҐҐ § 票Ґ. ЏаЁ д®а¬Ёа®ў ЁҐ зЁб« § -
票Ґ ЇҐаў®© ҐЈ® жЁдал ЇаЁбў Ёў Ґвбп зЁб«г, Ё бзҐвзЁЄ жЁда ў зЁб«Ґ
number гбв ў«Ёў Ґвбп а ўл¬ Ґ¤ЁЁжҐ. ЏаЁ ¤ «мҐ©иҐ¬ а §Ў®аҐ жЁда Ёе
§ 票Ґ ЇаЁЎ ў«пҐвбп Є ЇаҐ¤л¤г饬㠧 票о зЁб« , 㬮¦ Ґ¬®¬г 10,
Ё бзҐвзЁЄ жЁда 㢥«ЁзЁў Ґвбп 1. Џ®б«Ґ¤Ё© ЁбЇ®«м§гҐвбп ¤«п д®а¬Ёа®-
ў Ёп Ё§ Ї®«г祮Ј® зЁб« Float ¤а®Ў®© з бвЁ, Ґб«Ё а §ЎЁа Ґ¬®Ґ зЁб«®
ᮤҐа¦Ёв ¤ҐбпвЁзго в®зЄг.
‚ ЇаЁўҐ¤Ґ®¬ ўлиҐ ЇаЁ¬ҐаҐ ў ᥬ вЁЄҐ ЁбЇ®«м§®ў «Ёбм в®«мЄ® Ё-
д®а¬ жЁп ® вҐа¬Ё «мле бЁ¬ў®« е Ја ¬¬ вЁЄЁ. ‚ н⮬ б«гз Ґ Ґў®§¬®¦®
ЁбЇ®«м§®ў вм Ў®«ҐҐ Є®¬Ї ЄвлҐ ў аЁ вл ¬Ґв п§лЄ ¤«п § ЇЁбЁ вҐа¬Ё «м-
ле бЁ¬ў®«®ў. Ѓ®«ҐҐ Є®¬Ї Єв п § ЇЁбм ЇаЁўҐ¤Ґ®Ј® ўлиҐ ЇаЁ¬Ґа ¤®бвЁ-
Ј Ґвбп «ЁзЁҐ¬ ў®§¬®¦®бвЁ ЁбЇ®«м§®ў Ёп Ї®б«Ґ¤Ґ© «Ё§Ёа㥬®© «ҐЄ-
бҐ¬л Ёб室®Ј® ⥪бв . „«п нв®Ј® ЁбЇ®«м§гҐвбп гЄ § ⥫м char (Ї®
㬮«з Ёо нв® token), Є®в®ал© гЄ §лў Ґв з «® Ї®б«Ґ¤Ґ© «Ё§Ёаг-
Ґ¬®© «ҐЄбҐ¬л. ЏаЁ § ЇЁбЁ ᥬ вЁЄЁ ¬®¦® ЁбЇ®«м§®ў вм б«Ґ¤гойЁҐ Ј«®-
Ў «млҐ ®ЎкҐЄвл.
int number_string - ®¬Ґа Ї®б«Ґ¤Ґ© ®Ўа Ў влў Ґ¬®© бва®ЄЁ,
char * current_symbol - ¤аҐб Ї®б«Ґ¤ҐЈ® «Ё§Ёа㥬®Ј® бЁ¬ў®« ,
char * token - Ї®б«Ґ¤пп ®Ўа Ў влў Ґ¬ п «ҐЄбҐ¬ .
- 23 -
€¬Ґ нвЁе ®ЎкҐЄв®ў ¬®¦® Ё§¬ҐЁвм ЇаЁ ЈҐҐа жЁЁ, Їг⥬ Ё§¬ҐҐЁп д ©-
« Є®дЁЈга жЁЁ. ’ҐЄбв ЇаЁ¬Ґа ¬Ґв п§лЄҐ б®Єа вЁвбп, Ґб«Ё ЁбЇ®«м§®-
ў вм Ј«®Ў «мл© ®ЎкҐЄв token.
/* --------------------------------------------------------*/
<¤ҐбпвЁз®Ґ зЁб«®> /*Їа®Ја ¬¬ а §Ў®а ¤ҐбпвЁз®Ј® зЁб« */
::= {09}
#{ Decimal = 0;
for ( i = 0; token[i] != '\0'; i++;)
{ Decimal *= 10;
Decimal += (*(token+i)) - 48;
};
}#
( .{09}
#{ for( i = 0; token[i] != '\0';i++;)
{ Decimal *= 10;
Decimal += (*(token+i)) - 48;
};
}#
';'
#{ for (j=1; j <= i; j++;)
Decimal /= 10;
}#
| ';'
)
/* -------------------------------------------------------- */
…б«Ё ЁбЇ®«м§®ў вм бв ¤ авлҐ дгЄжЁЁ а Ў®вл б® бва®Є ¬Ё Їа®Ја ¬-
¬ ¬Ґв п§лЄҐ Ґйс Ў®«ҐҐ б®Єа вЁвбп. Џ® ¤®ЎЁвбп ҐйҐ ®¤ ЇҐаҐ¬Ґ п
char str[80];
/* --------------------------------------------------------*/
- 24 -
<¤ҐбпвЁз®Ґ зЁб«®> /*Їа®Ја ¬¬ а §Ў®а ¤ҐбпвЁз®Ј® зЁб« */
::= {09}
#{ strcpy(str,token); }#
( .{09}
#{strcat(str,token);}#
';'
| ';'
)
#{ Decimal = atof(str);}#
/* -------------------------------------------------------- */
‚ б«Ґ¤гойЁе ўҐабЁпе ЇаҐ¤гᬮвॠҐйс Ў®«ҐҐ Є®¬Ї Єв п § ЇЁбм бҐ-
¬ вЁЄЁ. ЏаЁўҐ¤Ґ¬ Їа®Ја ¬¬г ¬Ґв п§лЄҐ ЎҐ§ Ґс ®Ўб㦤ҐЁп.
/* --------------------------------------------------------*/
<¤ҐбпвЁз®Ґ зЁб«®> /*Їа®Ја ¬¬ а §Ў®а ¤ҐбпвЁз®Ј® зЁб« */
::= <String_decimal>;
#{ Decimal = atof(String_decimal);}#
char * <String_decimal>
::= {09} (.{09} | * )
/* -------------------------------------------------------- */
Ё«Ё
/* -------------------------------------------------------- */
char * <String_decimal>
::= {09} (.{09} | * )
#{ Decimal = atof(String_decimal);}#
/* -------------------------------------------------------- */
Ё«Ё
/* --------------------------------------------------------*/
/*Їа®Ја ¬¬ а §Ў®а ¤ҐбпвЁз®Ј® зЁб« */
float <Decimal> ::= {09} (.{09} | * )
/* -------------------------------------------------------- */
.
- 25 -
3. Џђ€Њ…ђ ЏђЋѓђЂЊЊ› ђЂ‡ЃЋђЂ
ЏаЁ¬ҐҐЁҐ ¬Ґв п§лЄ Ё ЈҐҐа в®а п§лЄ®ўле Їа®жҐбб®а®ў Їа®Ё««обв-
аЁа㥬 ЇаЁ¬ҐаҐ а §а Ў®вЄЁ Їа®Ја ¬¬л, ¬®¤Ґ«Ёаго饩 а Ў®вг Є «мЄг«п-
в®а б Ї ¬пвмо. ќв Їа®Ја ¬¬ ЇаҐ¤бв ў«пҐв б®Ў®© Їа®бв®© п§лЄ®ўл© Їа®-
жҐбб®а, ®бгйҐбвў«пойЁ© бЁв ЄбЁзҐбЄЁ© «Ё§ Ё а бзҐв ®Ўлзле аЁд¬Ґ-
вЁзҐбЄЁе ўла ¦ҐЁ©.
Џа®Ја ¬¬г Ўг¤Ґ¬ ®ЇЁблў вм ¬Ґв п§лЄҐ Ї® ЈагЇЇ ¬ Їа®¤гЄжЁ© б Ї®-
пᥨҐ¬ Є ¦¤®© ЈагЇЇл.
<FULL_EXPR> /* з «мл© бЁ¬ў®« Ја ¬¬ вЁЄЁ*/
::= *
#{ i = 1;}#
<EXPR>
#{ MEMORY = Expression[i];
cout << Expression[i];
}#
||= <FULL_EXPR> ','
#{i = 1;}#
<EXPR>
#{ MEMORY = Expression[i];
cout << Expression[i];
}#
€б室®Ґ ЇаҐ¤«®¦ҐЁҐ ЇаҐ¤бв ў«пҐв б®Ў®© ўла ¦ҐЁп, ЇҐаҐзЁб«ҐлҐ
зҐаҐ§ § Їпвго. „«п Їа®¬Ґ¦гв®зле ўлзЁб«ҐЁ© ЁбЇ®«м§гҐвбп ¬ ббЁў Exp-
ression б Ё¤ҐЄб®¬ i. Ќ з «м®Ґ § 票Ґ Ё¤ҐЄб - 1. „«п ўў®¤ -
з «м®Ј® § зҐЁп ў б ¬®¬ з «Ґ ўлзЁб«ҐЁ© ¬ Ёзв® Ґ ¬Ґи Ґв ўўҐбвЁ
ў Ја ¬¬ вЁЄг Їгбв®© бЁ¬ў®« *. ђҐ§г«мв в ўлзЁб«ҐЁ© ў Є®Ґз®¬ Ёв®ЈҐ
室Ёвбп ў ЇҐаў®¬ н«Ґ¬ҐвҐ ¬ ббЁў Expression[1]. Џ® ®Є®з ЁЁ ўлзЁб-
«ҐЁп ®¤®Ј® ўла ¦ҐЁп १г«мв в § ®бЁвбп ў Ї ¬пвм MEMORY.
<EXPR> /* ђ бзҐв ўла ¦ҐЁп */
- 26 -
::= <SU>
#{ Expression[i] = Summand[i];}#
||= <EXPR> ( '+' <SU>
#{ Expression[i] += Summand[i];}#
| '-' <SU>
#{ Expression[i] -= Summand[i];}#
)
‚ла ¦ҐЁҐ ¬®¦® ЇаҐ¤бв ўЁвм ў ўЁ¤Ґ ®¤®Ј® б« Ј Ґ¬®Ј® Ё«Ё Ў®а
б« Ј Ґ¬ле, ᮥ¤ЁҐле § Є®¬ Ї«об Ё«Ё ¬Ёгб. Џ® ®Є®з ЁЁ ўлзЁб«ҐЁ©
ўла ¦ҐЁп १г«мв в 室Ёвбп ў н«Ґ¬ҐвҐ б⥪ Expression[i], аҐ-
§г«мв в ўлзЁб«ҐЁ© ЇаЁ а §Ў®аҐ б« Ј Ґ¬®Ј® ў Summand[i].
<SU> /* ђ бзҐв § 票п б« Ј Ґ¬®Ј® */
::= <MU>
#{ Summand[i] = Multiplier;}#
||= <SU> ( '*' <MU>
#{ Summand[i] *= Multiplier;}#
| '/' <MU>
#{ Summand[i] /= Multiplier;}#
)
Љ Є ўЁ¤® Ё§ Ја ¬¬ вЁЄЁ, б« Ј Ґ¬®Ґ ЇаҐ¤бв ў«пҐвбп ®¤Ё¬ ¬®¦ЁвҐ-
«Ґ¬ Ё«Ё ҐбЄ®«мЄЁ¬Ё, ᮥ¤ЁҐл¬Ё § Є ¬Ё 㬮¦ҐЁп Ё ¤Ґ«ҐЁп. ђҐ§г«м-
в в ўлзЁб«ҐЁп б« Ј Ґ¬®Ј®, Є Є Ўл«® ®в¬ҐзҐ® Ё а миҐ, § ®бЁвбп ў
Summand[i]. ‡ 票Ґ ¬®¦ЁвҐ«п 室Ёвбп ў ЇҐаҐ¬Ґ®© Multiplier.
.
- 27 -
<MU> /* ђ §Ў®а Ё ўлзЁб«ҐЁҐ ¬®¦ЁвҐ«п */
::= <DEC>
#{ Multiplier = Decimal; }#
||= 'M'
#{ Multiplier = MEMORY;}#
||= '('
#{ i++;}#
<EXPR>
')'
#{ Multiplier = Expression[i];
i--;
}#
‚ Є зҐб⢥ ¬®¦ЁвҐ«п ¬®¦Ґв ўлбвгЇ вм ¤ҐбпвЁз®Ґ зЁб«®, § 票Ґ
ЇаҐ¤л¤г饣® ўла ¦ҐЁп, 室п饥бп ў Ї ¬пвЁ MEMORY, Ё ўла ¦ҐЁҐ ў
бЄ®ЎЄ е. ђҐ§г«мв ⮬ а §Ў®а ¬®¦ЁвҐ«п пў«пҐвбп § 票Ґ, § ЇЁблў Ґ¬®Ґ
ў ЇҐаҐ¬Ґго Multiplier.
„ҐбпвЁз®Ґ зЁб«® ўлзЁб«пҐвбп ЎҐ§ гзҐв ¤ҐбпвЁз®© в®зЄЁ ЇаЁ а §-
Ў®аҐ ЈагЇЇл Їа®¤гЄжЁ© Ї®¤ Ё¬ҐҐ¬ DEC Ё § ЇЁблў Ґвбп ў ЇҐаҐ¬Ґго Deci-
mal. ‚ ¤ ®¬ да Ј¬ҐвҐ зЁб«® ЇаЁў®¤Ёвбп ў ᮮ⢥вбвўЁҐ б «ЁзЁҐ¬
¤а®Ў®© з бвЁ.
ЏаЁ ўлзЁб«ҐЁЁ ўла ¦ҐЁп ў бЄ®ЎЄ е 㢥«ЁзЁў Ґвбп Ё¤ҐЄб ¬ ббЁў
Ї®б«Ґ Ї®пў«ҐЁп ®вЄалў о饩 бЄ®ЎЄЁ, Ї®бЄ®«мЄг зЁ Ґвбп ўлзЁб«ҐЁҐ
®ў®Ј® ўла ¦ҐЁп (Є®в®а®Ґ ў бЄ®ЎЄ е), ® ў ¤ «мҐ©иҐ¬ ¬®¦Ґв Ї® ¤®-
ЎЁвмбп Ё १г«мв ⠯।л¤гйЁе ўлзЁб«ҐЁ©. ‡ 票Ґ ўла ¦ҐЁп ў бЄ®ЎЄ е
Ї® ®Є®з ЁЁ ҐЈ® а бзҐв пў«пҐвбп ¬®¦ЁвҐ«Ґ¬ Ё Ї®н⮬㠧 ®бЁвбп ў ЇҐ-
६Ґго Multiplier. „ «ҐҐ 㬥ми Ґвбп Ё¤ҐЄб ¬ ббЁў Ё ®вЄалў Ґвбп
¤®бвгЇ Є ўлзЁб«Ґ®¬г а ҐҐ ⥪г饬㠧 зҐЁо ўла ¦ҐЁп.
<DEC> /*Їа®Ја ¬¬ а §Ў®а ¤ҐбпвЁз®Ј® зЁб« */
::= {09}
#{ strcpy(str,token);}#
- 28 -
( .{09}
#{ strcat(str,token);}#
| *
)
#{ Decimal = atof(str);}#
ЋЇЁб Ёп ЇҐаҐ¬Ґле Ї®¬Ґй овбп ў ®в¤Ґ«м®¬ ¬®¤г«Ґ. ЏаЁўҐ¤Ґ п
Їа®Ја ¬¬ б Ї®¬®ймо ЈҐҐа в®а п§лЄ®ўле Їа®жҐбб®а®ў ЇҐаҐў®¤Ёвбп
п§лЄ ‘€ Ё б®еа пҐвбп ў ўЁ¤Ґ ®в¤Ґ«м®Ј® ¬®¤г«п. ‘ЈҐҐаЁа®ў лҐ ¬®¤г«Ё
Ё ¬®¤г«м ®ЇЁб Ё© ®Ўа Ў влў овбп ва б«пв®а®¬. Ќ нв ЇҐ Є®¬Ї®®ўЄЁ
Ї®¤Є«оз Ґвбп бв ¤ авл© ®ЎкҐЄвл© ¬®¤г«м Ё ўл室Ґ Ї®«гз Ґвбп Ј®в®-
ў п Їа®Ја ¬¬ а бзҐв ўла ¦ҐЁ©. ‚бп Ї®б«Ґ¤®ў ⥫м®бвм ¤Ґ©бвўЁ© Ї®
ЈҐҐа жЁЁ Їа®Ё§ў®¤Ёвбп ўв®¬ вЁзҐбЄЁ ¤® Ї®«гзҐЁп § Ја㧮箣® ¬®¤г«п
ва б«пв®а . ѓҐҐа в®а § Їа иЁў Ґв «Ёим Ё¬п з «м®Ј® бЁ¬ў®« Ја ¬¬ -
вЁЄЁ Ё Ё¬п ¬®¤г«п ®ЇЁб Ё© ЇҐаҐ¬Ґле. ЏаЁ¬Ґа®¬ ўла ¦ҐЁп ¬®¦Ґв б«г-
¦Ёвм б«Ґ¤гой п бва®Є
3.23*5.62*(23.5+56.59-156.456)-1568.2+2.2458*(26.54+0.0015)+
12.5*0.25-1
.
- 29 -
4. Ћ„ЌЋ‡ЌЂ—ЌЋ‘’њ ѓђЂЊЊЂ’€Љ€
я14.1. ‚лў®¤ Ёб室®Ј® ЇаҐ¤«®¦ҐЁп
ЋЇаҐ¤Ґ«Ґ п ¬Ґв п§лЄ®¬ Ја ¬¬ вЁЄ ४габЁўл¬ ®Ўа §®¬ ®ЇаҐ¤Ґ«пҐв
Ї®а®¦¤ Ґ¬л© п§лЄ, Є®в®ал© б®¤Ґа¦Ёв ¬®¦Ґбвў® ўлў®¤Ё¬ле Ё§ з «м®Ј®
ҐвҐа¬Ё «м®Ј® бЁ¬ў®« бва®Є. ЋЇаҐ¤Ґ«Ё¬ д®а¬ «м® ўлў®¤Ё¬го бва®Єг.
‘ва®Є <x><w><y> §лў Ґвбп ўлў®¤Ё¬®© бва®Є®© Ја ¬¬ вЁЄЁ , Ґб«Ё
<v> ::= <w> ( Ё«Ё <v> ||= <W>) Їа®¤гЄжЁп ®ЇЁб Ёп ¬Ґв п§лЄҐ Ё
<x><v><y> бва®Є вҐа¬Ё «мле Ё ҐвҐа¬Ё «мле бЁ¬ў®«®ў ¤«Ё®© > 1,
ЇаЁ ¤«Ґ¦ й п п§лЄг, Ї®а®¦¤ Ґ¬®¬г Ја ¬¬ вЁЄ®©. ‚лў®¤Ё¬ п бва®Є Ї®«г-
з Ґвбп Їг⥬ § ¬Ґл бва®ЄЁ <v> бва®Єг <w> ў бва®ЄҐ <x><v><y>. ’ Є®Ґ
ЇаҐ®Ўа §®ў ЁҐ бва®ЄЁ § ЇЁблў ов ў ўЁ¤Ґ
<x><v><y> => <x><w><y>
Ћв®иҐЁҐ =*> § ¤ Ґвбп Є Є <x1> =*> <xN>, Ґб«Ё бгйҐбвўгҐв Ї®б«Ґ-
¤®ў ⥫м®бвм <x1>,<x2>,..., <xN>, в Є п зв® <x1> => <x2> => <x3>
=>...=> <xN>. ‚ н⮬ б«гз Ґ Ј®ў®апв, зв® бва®Є <xN> ўлў®¤Ёвбп Ё§
бва®ЄЁ <x1> § ®¤Ё Ё Ў®«ҐҐ и Ј®ў.
…б«Ё бва®Є <x> пў«пҐвбп ўлў®¤Ё¬®© Ё§ з «м®Ј® бЁ¬ў®« бва®Є®©
(<S> => <x>), в® ҐҐ §лў ов бҐвҐжЁ «м®© д®а¬®©. ЌҐ ᮤҐа¦ й п Ґ-
вҐа¬Ё «мле бЁ¬ў®«®ў бҐвҐжЁ «м п д®а¬ §лў Ґвбп ЇаҐ¤«®¦ҐЁҐ¬
(Ё«Ё бҐвҐжЁҐ©). Њ®¦Ґбвў® ўбҐе ЇаҐ¤«®¦ҐЁ© Ја ¬¬ вЁЄЁ §лў ов п§л-
Є®¬, Ї®а®¦¤ Ґ¬л¬ нв®© Ја ¬¬ вЁЄ®©.
ђ бᬮваЁ¬ ЇаЁ¬Ґал ЇаҐ¤«®¦ҐЁ© ҐбЄ®«мЄЁе п§лЄ®ў. „«п ЇаЁўҐ¤Ґ®©
ўлиҐ Ја ¬¬ вЁЄЁ (а §¤Ґ« 1.), б з «мл¬ бЁ¬ў®«®¬ <楫®Ґ> ў п§лЄ ўЄ«о-
зҐл б«Ґ¤гойЁҐ ЇаҐ¤«®¦ҐЁп, ЇаҐ¤бв ў«пойЁҐ б®Ў®© ¤ҐбпвЁзлҐ зЁб« .
2 ўлў®¤ <楫®Ґ> => <жЁда > => 2
23 ўлў®¤ <楫®Ґ> => <楫®Ґ><жЁда > ( Їа ўЁ«®
<楫®Ґ> ||= <楫®Ґ><жЁда >)
=> <жЁда ><жЁда > (Їа ўЁ«® <楫®Ґ> ::= <жЁда >)
- 30 -
=> 2<жЁда > (Їа ўЁ«® <жЁда > ||= 2 )
=> 23 (Їа ўЁ«® <жЁда > ||= 3 )
…б«Ё Ја ¬¬ вЁЄг § ¤ вм ў ўЁ¤Ґ
<楫®Ґ> ::= string{09}
в® бва®ЄЁ - жҐ«лҐ зЁб« ўлў®¤пвбп § ®¤Ё и Ј.
3454 ўлў®¤ <楫®Ґ> => 3454
‘ Ї®¬®ймо ¬Ґв п§лЄ ¬л ®ЇаҐ¤Ґ«Ё«Ё п§лЄ. Ћ¤ Є® ¬ Ґ®Ўе®¤Ё¬® ®в-
ўҐвЁвм ў®Їа®б ЇаЁ ¤«Ґ¦Ёв Ёб室®Ґ ЇаҐ¤«®¦ҐЁҐ н⮬г п§лЄг Ё«Ё Ґв.
€бЇ®«м§гҐ¬л© ЈҐҐа в®а®¬ ¬Ґв®¤ а §Ў®а Ўг¤Ґв Їа ўЁ«м® а Ў®в вм, Ґб«Ё
¤«п Є ¦¤®Ј® Ёб室®Ј® ЇаҐ¤«®¦ҐЁп бгйҐбвўгҐв в®«мЄ® ®¤Ё ўлў®¤. ЌҐ -
аги п ®Ўй®бвЁ гЇ®а冷稬 Їа®жҐбб ўлў®¤ ЇаҐ¤«®¦ҐЁп.
ЏаЁ а §Ў®аҐ Ўг¤Ґ¬ ЁбЇ®«м§®ў вм в®«мЄ® «Ґў®бв®а®Ё© ўлў®¤. ќв®
в Є®© ўлў®¤, Є®Ј¤ Є ¦¤®¬ и ЈҐ ўлў®¤ § ¬ҐпҐвбп б ¬л© «Ґўл© Ё§ Ґ-
вҐа¬Ё «мле бЁ¬ў®«®ў. ЏаЁзҐ¬ ў аЁ вл ¤«п § ¬Ґл Ўг¤Ґ¬ ўлЎЁа вм ў Ї®-
ап¤ЄҐ Ёе ®ЇЁб Ёп ¬Ґв п§лЄҐ б«Ґў - Їа ў® ᢥаег-ўЁ§. ЏаЁ¤Ґа¦Ёў -
пбм гЄ § ®Ј® Ї®ап¤Є ўлЇ®«пҐвбп ЇҐаў п Ї®¤е®¤пй п § ¬Ґ «Ґў®Ј® Ґ-
вҐа¬Ё «м®Ј® бЁ¬ў®« , Є®в®а п ўҐ¤Ґв Є ўлў®¤г ¤ ®Ј® Ёб室®Ј® ЇаҐ¤-
«®¦ҐЁп.
я14.2. ЏаҐ®Ўа §®ў ЁҐ Ја ¬¬ вЁЄЁ
„«п ®ЎҐбЇҐзҐЁп ®¤®§ з®Ј® ўлў®¤ Ґ®Ўе®¤Ё¬® ¤«п Є ¦¤®Ј® ҐвҐа-
¬Ё «м®Ј® бЁ¬ў®« ЇаҐ®Ўа §®ў вм ўбҐ ҐЈ® Їа®¤гЄжЁЁ в ЄЁ¬ ®Ўа §®¬, зв®-
Ўл ЇҐаўлҐ бЁ¬ў®«л Є ¦¤®© «мвҐа вЁўл Ўл«Ё гЁЄ «мл¬Ё. ‚ 室Ґ ЇаҐ®Ў-
а §®ў Ёп ¤®ЇгбЄ Ґвбп ў¬Ґбв® ҐвҐа¬Ё «мле бЁ¬ў®«®ў Ї®¤бв ў«пвм Ёе
ЇаҐ¤бв ў«ҐЁп, ўл®бЁвм ®Ўйго з бвм § ЄагЈ«лҐ бЄ®ЎЄЁ Ё«Ё ўў®¤Ёвм ®-
ўлҐ ҐвҐа¬Ё «млҐ бЁ¬ў®«л. ђ бᬮваЁ¬ Ја ¬¬ вЁЄг ®¤®Ј® Ё§ ЇаЁўҐ¤Ґ-
ле ўлиҐ ЇаЁ¬Ґа®ў.
<E> ::= <E> + <T>
||= <E> - <T>
||= <T>
- 31 -
<T> ::= string{09}
ЏҐаўлҐ ¤ўҐ «мвҐа вЁўл ¤«п ҐвҐа¬Ё « <E> зЁ овбп б ®¤®Ј® Ё
в®Ј® ¦Ґ ҐвҐа¬Ё «м®Ј® бЁ¬ў®« <E>. Џ®н⮬㠯ਠўлў®¤Ґ ҐЇ®пв®, Є -
Єго Ё§ «мвҐа вЁў Ґ®Ўе®¤Ё¬® ўлЎа вм, Ґб«Ё агЄ®ў®¤бвў®ў вмбп в®«мЄ®
з «мл¬Ё бЁ¬ў®« ¬Ё. ’® Ґбвм ЇаЁ ўлў®¤Ґ ЇаҐ¤«®¦ҐЁп 45 - 56 Ї® ЇҐаўл¬
жЁда ¬ 45 Ґў®§¬®¦® ®ЇаҐ¤Ґ«Ёвм Є Єго «мвҐа вЁўг ўлЎа вм. Џ®н⮬г
Ја ¬¬ вЁЄг 㦮 ЇаҐ®Ўа §®ў вм. ‚ўҐ¤Ґ¬ ®ўл© ҐвҐа¬Ё « <D> ¤«п ®Ў®§-
票п а §«Ёз ойЁебп з б⥩ ЇҐаўле ¤ўге «мвҐа вЁў.
<D> ::= + <T>
||= - <T>
’®Ј¤ Їа ўЁ« ¤«п ҐвҐа¬Ё « <E> ЇаЁ¬гв б«Ґ¤гойЁ© ўЁ¤
<E> ::= <E><D>
||= <T>
Ћв¬ҐвЁ¬, зв® ЁбЇ®«м§гҐ¬л© ¬Ґв®¤ а §Ў®а ¤®ЇгбЄ Ґв Їап¬го «Ґўго
४габЁо. ЏаЁ а §Ў®аҐ нв нвЁ ¤ў Їа ўЁ« ўв®¬ вЁзҐбЄЁ Ўг¤гв а бб¬ в-
аЁў вмбп Є Є <E> ::= <T> <* <D> *>_. Џ®нв®¬г Ёе ¤ «мҐ©иҐҐ ЇаҐ®Ўа §®-
ў ЁҐ ¬®¦® ®ЇгбвЁвм.
‚лў®¤ бва®ЄЁ 44 - 56 Ўг¤Ґв б«Ґ¤гойЁ¬
<E> => <T><*<D>*>_ => string{09}<*<D>*>_ => 45<*<D>*>_
=> 45<D><*<D>*>_ => 45-<T><*<D>*>_ => 45-string{09}<*<D>*>
=> 45-56<*<D>*>_ => 45-56
‚¬Ґбв® ўўҐ¤ҐЁп ®ў®Ј® ҐвҐа¬Ё « ¬®¦® ЁбЇ®«м§®ў вм ЄагЈ«лҐ
бЄ®ЎЄЁ.
<E> ::= <E> ( + <T> | - <T>)
||= <T>
зв® нЄўЁў «Ґв® <E> ::= <T> <* (+<T> | -<T>) *>_.
‚лў®¤ в®© ¦Ґ бва®ЄЁ Ўг¤Ґв ў н⮬ б«гз Ґ в ЄЁ¬
<E> => <T><*(+<T>|-<T>)*>_ => string{09}<*(+<T>|-<T>)*>_
=> 45<*(+<T>|-<T>)*>_ => 45(+<T>|-<T>)<*(+<T>|-<T>)*>_
=> 45-<T><*(+<T>|-<T>)*>_ => 45-string{09}<*(+<T>|-<T>)*>_
- 32 -
=> 45-56<*(+<T>|-<T>)*>_ => 45-56
ЉагЈ«лҐ бЄ®ЎЄЁ ЇаЁ ўлў®¤Ґ § ¬Ґповбп ®¤г Ё§ «мвҐа вЁў, § -
ЇЁб ле ў Ёе. ‚ § Є«о票Ё ¤ ®Ј® Ї а Ја д ®в¬ҐвЁ¬, зв® Їа ўЁ«
зЁ ойЁҐбп б ®¤Ё Є®ў®Ј® бЁ¬ў®« «Ґў®© ४габЁЁ, Ґ ®Ўп§ ⥫м®
ЈагЇЇЁа®ў вм.
<E> ::= <E> + <T>
||= <E> - <T>
||= <T>
ўв®¬ вЁзҐбЄЁ § ¬Ґпвбп
<E> ::= <T> <* (+<T> | -<T>) *>_
Ћ¤ Є®, Ґб«Ё б®ўЇ ¤ ойЁҐ з «млҐ бЁ¬ў®«л Ґ ®Ўа §гов Їап¬го «Ґўго
४габЁо, Ґ®Ўе®¤Ё¬® ўлЇ®«пвм ®ЇЁб лҐ ўлиҐ ЇаҐ®Ўа §®ў Ёп.
‹Ґўл© ४габЁўл© жЁЄ« Ґ®Ўе®¤Ё¬® ўбҐЈ¤ бў®¤Ёвм Є Їаאַ© «Ґў®©
४габЁЁ. Ќ ЇаЁ¬Ґа, Ґб«Ё
<E> ::= <B>x
<B> ::= <E>y
в® Ґ®Ўе®¤Ё¬® ЇаҐ®Ўа §®ў вм ў
<E> ::= <E>yx
я14.3. ЏаЁ¬Ґал ЇаҐ®Ўа §®ў Ёп Ја ¬¬ вЁЄ ¬Ґв п§лЄҐ
ЏаЁ¬Ґа 4.3.1. ђ бᬮваЁ¬ Ја ¬¬ вЁЄг
<A> ::= a<A>y
||= a'b'<A>x
‚лҐбҐ¬ § бЄ®ЎЄЁ вҐа¬Ё «мл© бЁ¬ў®« a. Џ®«гзЁ¬
<A> ::= a (<A>y | 'b'<A>x)
„ўҐ «мвҐа вЁўл ў бЄ®ЎЄ зЁ овбп б а §«Ёзле вҐа¬Ё «мле
бЁ¬ў®«®ў a Ё b.
ЏаЁ¬Ґа 4.3.2. ђ бᬮваЁ¬ Ја ¬¬ вЁЄг
<A> ::= a<A>y
- 33 -
||= a'b'<A>x
||= a
Џ®бвгЇ Ґ¬ «®ЈЁз® ЇаҐ¤л¤г饬㠯ਬҐаг.
<A> ::= a (<A>y | 'b'<A>x | *)
Ќ Ї®¬Ё¬, зв® * ®Ў®§ з Ґв Їгбв®© бЁ¬ў®« (®вбгвбвўЁҐ бЁ¬ў®« ).
ЏаЁ¬Ґа 4.3.3. ђ бᬮваЁ¬ Ја ¬¬ вЁЄг
<A> ::= a<A>y
||= a'b'z<A>x
||= <A>b<A>y
||= a
‚ᥠ«мвҐа вЁўл ¬®Јгв зЁ овбп б бЁ¬ў®« a. Џ®¤бв ўЁ¬ ў ваҐвмо
«мвҐа вЁўг ў¬Ґбв® <A> зҐвўҐавго Їа®¤гЄжЁо Ё ўўҐ¤Ґ¬ Ґс ў Є зҐб⢥ ¤®-
Ї®«ЁвҐ«м®© «мвҐа вЁўл ¬Ґбв® ваҐв쥩. Џ®¤бв ў«пҐ¬ Ё¬Ґ® зҐвўҐа-
вго Їа®¤гЄжЁо, Ї®бЄ®«мЄг § бЁ¬ў®«®¬ <A> ў ваҐв쥩 Їа®¤гЄжЁЁ б«Ґ¤гҐв
b. ’ Є п Ї®¤бв ®ўЄ ўлпў«пҐв Ґ®¤®§ з®бвм ¬Ґ¦¤г ўв®а®© Ё ваҐв쥩
Ёб室®© Їа®¤гЄжЁп¬Ё (®Ё зЁ овбп б бЁ¬ў®«®ў 'a''b').
<A> ::= a<A>y // 1 - «мвҐа вЁў
||= a'b'z<A>x // 2
||= 'a'b<A>y // 3
||= <A>b<A>y // 4
||= a // 5
„ ®© Ї®¤бв ®ўЄ®© ¬л Ґ Ё§¬ҐЁ«Ё п§лЄ. ’аҐвмп «мвҐа вЁў ¤гЎ-
«ЁагҐвбп ў зҐвўҐав®©. Ћ¤ Є® ЇаЁ ўлў®¤Ґ Ё§ зҐвўҐав®© «мвҐа вЁўл Ё-
Є®Ј¤ Ґ Ўг¤Ґв Ї®«гзҐ ваҐвмп, Ї®бЄ®«мЄг ўлЎ®а «мвҐа вЁў Їа®Ё§ў®-
¤Ёвбп ᢥаег ўЁ§. „ «ҐҐ ўлЇ®«Ё¬ 㦥 Ё§ўҐб⮥ ЇаҐ®Ўа §®ў ЁҐ.
<A> ::= a (<A>y | 'b'z<A>x | b<A>y | * ) | <A>b<A>y
‚ бЄ®ЎЄ е Ї®«гзЁ«Ё «мвҐа вЁўл, зЁ ойЁҐбп б ®¤®Ј® Ё в®Ј® ¦Ґ
бЁ¬ў®« . Џа®¤®«¦Ё¬ ЇаҐ®Ўа §®ў Ёп Ё Ї®«гзЁ¬.
<A> ::= a (<A>y | 'b'(z<A>x | <A>y) | * ) | <A>b<A>y
ЌҐ®Ўе®¤Ё¬® бва®Ј® б®Ў«о¤ вм, зв®Ўл зҐвўҐав п «мвҐа вЁў Ўл«
- 34 -
Ї®б«Ґ ваҐв쥩. ЋЄ®з вҐ«м® Ї®«гзЁ¬ Ја ¬¬ вЁЄг.
ђ бᬮваЁ¬ ҐйҐ ®¤Ё ў ਠ⠯८Ўа §®ў Ёп ¤ ®© Ја ¬¬ вЁЄЁ.
<A> ::= a<A>y
||= a'b'z<A>x
||= <A>b<A>y
||= a
‹Ґў®аҐЄгабЁўл© жЁЄ« ўв®¬ вЁзҐбЄЁ ЇаЁў®¤Ёвбп Є ўЁ¤г
<A> ::= (a<A>y | a'b'z<A>x | ) <* b<A>y *>_
Ё«Ё
<A> ::= a(<A>y | 'b'z<A>x | *) <* b<A>y *>_
‚Ё¤®, зв® ЇаЁ Є®Є ⥠樨 Їгбв®Ј® бЁ¬ў®« * Ё б® бва®Є®© §
ЄагЈ«л¬Ё бЄ®ЎЄ ¬Ё, ¬®¦® Ї®«гзЁвм бва®Єг, зЁ ойгобп б бЁ¬ў®« b. ‚
бЄ®ЎЄ е г б 㦥 Ґбвм «мвҐа вЁў зЁ ой пбп в Є¦Ґ б бЁ¬ў®« b.
Џ®н⮬㠢믮«Ё¬ б«Ґ¤гойЁҐ ЇаҐ®Ўа §®ў Ёп.
<A> ::= a(<A>y | 'b'z<A>x | * | b<A>y) <* b<A>y *>_
<A> ::= a(<A>y | b (z<A>x | <A>y) | *) <* b<A>y *>_
ЋЎа ⮥ ЇаҐ®Ўа §®ў ЁҐ Є «Ґў®© ४габЁЁ.
<A> ::= a(<A>y | b (z<A>x | <A>y) | *)
||= <A>b<A>y
<A> ::= a(<A>y | b (z<A>x | <A>y) | * ) | <A>b<A>y
ЏаЁ¬Ґа 4.3.4. ђ бᬮваЁ¬ Ја ¬¬ вЁЄг
<A> ::= x<A>y
||= <P>
||= <Q>
||= x'x'<Z>
<P> ::= x<P>m
||= p
<Q> ::= x<Q>n
||= q
‘в ¤ а⮥ ЇаҐ®Ўа §®ў ЁҐ ЇаЁў®¤Ёв Є ⮬г, зв® ў бЄ®ЎЄ е «мвҐа-
- 35 -
вЁўл зЁ овбп б®ў б бЁ¬ў®«®ў <P> Ё <Q> Ё в Є ¤® ЎҐбЄ®Ґз®бвЁ.
<A> ::= x<A>y ДДї
||= x<P>m і
||= x<Q>n і => <A> ::= x(A>y | <P>m | <Q>n | 'x'<Z>)
||= x'x'<Z> і ||= p
||= p і ||= q
||= q ДДЩ
‚ н⮬ б«гз Ґ Є 楫Ё ЇаЁў®¤Ёв б«Ґ¤гойЁ© Їгвм.
<A> ::= x<A>y ДДї <A> ::= x'x'^_<A>'y'^_y
||= <P> і => ||= x^_<P>m^_
||= <Q> і ||= x^_<Q>n^_
||= x'x'<Z> ДДЩ ||= x'x'<Z>
<A> ::= x'x'^_<A>'y'^_y
||= x'x'^_<P>m^_m
||= x'x'^_<Q>n^_n
||= x'x'<Z>
||= <P>
||= <Q>
<A> ::= x('x'^_<A>'y'^_y | 'x'^_<P>m^_m | 'x'^_<Q>n^_n | 'x'<Z>)
<A> ::= x('x'^_<A>'y'^_y|'x'^_<P>m^_m|'x'^_<Q>n^_n|'x'^1<Z>*^1)
<A> ::= x('x'^_(<A>'y'^_y | <P>m^_m | <Q>n^_n | <Z>*^1))
Џ®бЄ®«мЄг x^ ¬®¦Ґв ЇаҐ¤бв ў«пвм Ё x^1 ў з б⮬ б«гз Ґ, Ґс ¬®¦®
ўлҐбвЁ § бЄ®ЎЄЁ. ‡ ¬ҐЁ¬ ў ЇҐаў®© «мвҐа вЁўҐ <A>, Ї®бЄ®«мЄг ®
ᮤҐа¦Ёв ®¤Ё Є®ўлҐ бЁ¬ў®«л б <P> Ё <Q>.
<A> ::= x('x'^_('x'^_(<P>m^_'y'^_y |<Q>n^_'y'^_y |<A>'y'^_y |
<P>m^_m^_m | <Q>n^_n^_n) | <Z>*^1))
•®вп ў бЄ®ЎЄ е б®ў ®бв «Ёбм <Q> Ё <P> ®Ё 㦥 Ґ ¬®Јгв з вмбп
б бЁ¬ў®« x, Ї®бЄ®«мЄг ўбҐ бЁ¬ў®«л x ўлҐбҐл § бЄ®ЎЄг.
.
- 36 -
<A> ::= x( 'x'^_( 'x'^_( <P>m^_('y'^_y |m^_m) |
<Q>n^_('y'^_y |n^_n) |
<A>'y'^_y
) | <Z>*^1
)
)
ЋЄ®з вҐ«м® Ї®«гзЁ¬
<A> ::= x( 'x'^_( ( <P>m^_('y'^_y |m^_m) |
<Q>n^_('y'^_y |n^_n) |
<A>'y'^_y
) | <Z>*^1
)
)
||= <P>
||= <Q>
ЌҐ®Ўе®¤Ё¬® § ¬ҐвЁвм, зв® ЇаЁ ЁбЇ®«м§®ў ЁҐ б⥯ҐҐ© 㦮 Ёб-
Ї®«м§®ў вм в®«мЄ® ўл®б § бЄ®ЎЄЁ. ‚ў®¤Ёвм ®ўлҐ ҐвҐа¬Ё «л § ЇаҐйҐ®
( нв® ®Ја ЁзҐЁҐ Ґ ¬Ґв п§лЄ , ॠ«Ё§ жЁЁ )
ЏҐаҐзЁб«Ё¬ Їа ўЁ« , Є®в®алҐ ЁбЇ®«м§®ў «Ёбм ЇаЁ ЇаҐ®Ўа §®ў ЁЁ
Ја ¬¬ вЁЄ.
- Џ®¤бв ®ўЄ ў¬Ґбв® ҐвҐа¬Ё « ҐЈ® Їа®¤гЄжЁ©.
- ‚л®б ®ЎйҐ© з бвЁ Їа®¤гЄжЁ© § ЄагЈ«лҐ бЄ®ЎЄЁ.
- „®Ў ў«ҐЁҐ ®ў®© Їа®¤гЄжЁЁ, Є®в®а п ¬®¦Ґв Ўлвм Ї®а®¦¤Ґ ®¤®©
Ё§ Ёб室ле Їа®¤гЄжЁ©, ¤«п ўлпў«ҐЁп Їа®¤гЄжЁ© б ®¤Ё Є®ўл¬Ё з «мл-
¬Ё з бвп¬Ё. Ќ®ў п Їа®¤гЄжЁп Ї®¬Ґй Ґвбп ЇҐаҐ¤ Ї®а®¦¤ о饩 Ґс Їа®¤гЄжЁҐ©.
- ‡ ¬Ґ ЈагЇЇл Їа®¤гЄжЁ© ®ўл¬ ҐвҐа¬Ё «мл¬ бЁ¬ў®«®¬.
.
- 37 -
Џђ€‹Ћ†…Ќ€… 1. ‘Ёв ЄбЁб ¬Ґв п§лЄ , § ЇЁб л© ¬Ґв п§лЄҐ
‚ᥠ⥪бвл ¬Ґв п§лЄҐ ¬®Јгв ᮤҐа¦ вм «оЎ®Ґ зЁб«® Їа®ЎҐ«мле
бЁ¬ў®«®ў, Є Є®в®ал¬ ®в®бЁвбп Ё Є®¬¬Ґв аЁ©. Љ нв®© ЈагЇЇҐ бЁ¬ў®«®ў
®в®бпвбп, б®Ўб⢥® бЁ¬ў®«л Їа®ЎҐ«®ў, бЁ¬ў®«л ўҐавЁЄ «м®© Ё Ј®аЁ-
§®в «м®© в Ўг«пжЁЁ, бЁ¬ў®«л ®ў®© бва®ЄЁ (ЇҐаҐў®¤ бва®ЄЁ Ё ў®§ўа в
Є аҐвЄЁ) Ё Є®¬¬Ґв аЁЁ.
<Їа®ЎҐ«млҐ бЁ¬ў®«л> ::= string{\11, /* HT */
\12, /* LF */
\13, /* VT */
\15, /* CR */
\40 /* whitespace */
}
||= <Є®¬¬Ґв аЁ©>
Љ®¬¬Ґв аЁЁ ЁбЇ®«м§говбп ¤«п Ї®пᥨп ⥪бв Їа®Ја ¬¬л. ‘г-
йҐбвўгҐв ¤ў бЇ®б®Ў § ¤ Ёп Є®¬¬Ґв аЁҐў:
<Є®¬¬Ґв аЁ©> ::= '/*' <⥪бв Є®¬¬Ґв аЁп>_ '*/'
||= '//' <бва®зл© Є®¬¬Ґв аЁ©>_
<⥪бв Є®¬¬Ґв аЁп> ::= !string{'/*','*/'}
<бва®зл© Є®¬¬Ґв аЁ©> ::= !string{\12,\15}
„ «мҐ©иҐҐ ®ЇЁб ЁҐ бва®Ёвбп ў ЇаҐ¤Ї®«®¦ҐЁЁ, зв® Ёбе®¤л© вҐЄбв Ґ
Ё¬ҐҐв Їа®ЎҐ«мле бЁ¬ў®«®ў. ‚ᥠЇа®ЎҐ«млҐ бЁ¬ў®«л Їа®ЇгбЄ овбп ў Ёб-
室®¬ ⥪б⥠Ё ЁбЇ®«м§говбп ў ўЁ¤Ґ а §¤Ґ«ЁвҐ«Ґ© Ґпў®. џў® ў Ја ¬-
¬ вЁЄҐ ¬Ґв п§лЄ ®Ё Ґ ЇаҐ¤бв ў«Ґл.
/*------------------------------------------------------------------*/
/* з «мл© бЁ¬ў®« Ја ¬¬ вЁЄЁ */
- 38 -
<¬Ґв п§лЄ> ::= <ҐвҐа¬Ё «> <* <Їа ўЁ«®> *>
/*------------------------------------------------------------------*/
<ҐвҐа¬Ё «> ::= '<' <ҐвҐа¬Ё «мл©_бЁ¬ў®«> '>'
/*------------------------------------------------------------------*/
<Їа ўЁ«® > ::= <ҐвҐа¬Ё «>_
'::=' < «мвҐа вЁў ><*<б«Ґ¤гой п_ «мвҐа вЁў >*>_
/*------------------------------------------------------------------*/
<ҐвҐа¬Ё «мл©_бЁ¬ў®«>
::= string {az,AZ, п,Ђџ,'_',09}
/*------------------------------------------------------------------*/
<б«Ґ¤гой п_ «мвҐа вЁў >
::= '||=' < «мвҐа вЁў >
||= '|' < «мвҐа вЁў >
/*------------------------------------------------------------------*/
< «мвҐа вЁў >
::= <бҐвҐжЁп> < «мвҐа вЁў _5>_
||= < «мвҐа вЁў _5>
||= '*'
< «мвҐа вЁў _5>
::= '(' < «мвҐа вЁў > <* <б«Ґ¤гой п_ «мвҐа вЁў > *>_ ')'
<ᥬ вЁЄ >_ <бҐвҐжЁп>_
/*------------------------------------------------------------------*/
- 39 -
<бҐвҐжЁп>
::= <бҐвҐжЁп> (<®Ў®§ 票Ґ_бҐвҐжЁЁ> |
<вҐа¬Ё «>) <ᥬ вЁЄ >_ '+'_
||= <®Ў®§ 票Ґ_бҐвҐжЁЁ> <ᥬ вЁЄ >_ '+'_
||= <вҐа¬Ё «> <ᥬ вЁЄ >_ '+'_
/*------------------------------------------------------------------*/
<ᥬ вЁЄ > ::= '#{' < ⥪бв_ _п§лЄҐ_‘€ > '}#'
< ⥪бв_ _п§лЄҐ_‘€ >
::= !string{'}#'}
/*------------------------------------------------------------------*/
<®Ў®§ 票Ґ_бҐвҐжЁЁ>
::= ('<*' <бҐвҐжЁп> '*>' string{09}_ |
'<' <ҐвҐа¬Ё «мл©_бЁ¬ў®«> '>' <б⥯Ґм>_
) '_'_
/*------------------------------------------------------------------*/
<вҐа¬Ё «> ::= (<*<бЁ¬ў®«_5>*><Їа®ЎҐ«млҐ_бЁ¬ў®«л><б⥯Ґм>_
| '\'' + <*<бЁ¬ў®«_6>*> '\'' <б⥯Ґм>_
| '!' <бЇҐж_вҐа¬Ё «>
| '[' <н«Ґ¬Ґвл>_']'
| '{' <н«Ґ¬Ґвл> '}'
| 'char' '{' <н«Ґ¬Ґвл>_ '}'
| 'string' '{' <н«Ґ¬Ґвл> '}'
) '_'_
<бЇҐж_вҐа¬Ё «>
- 40 -
::= '[' <н«Ґ¬Ґвл>_']'
||= '{' <н«Ґ¬Ґвл> '}'
||= 'char' '{' <н«Ґ¬Ґвл>_ '}'
||= 'string' '{' <н«Ґ¬Ґвл> '}'
<Їа®ЎҐ«млҐ_бЁ¬ў®«л>
::= char{\11,\12,\15,\40}
||= *
/*------------------------------------------------------------------*/
<б⥯Ґм> ::= '^'string{09}_
/*------------------------------------------------------------------*/
<н«Ґ¬Ґв> ::= <бЁ¬ў®«> <бЁ¬ў®«>_ <Їа®ЎҐ«млҐ_бЁ¬ў®«л>
||= '\''+ <*<бЁ¬ў®«_6>*> '\''
/*------------------------------------------------------------------*/
<н«Ґ¬Ґвл> ::= <н«Ґ¬Ґв> <* ',' <н«Ґ¬Ґв> *>_
/*------------------------------------------------------------------*/
<бЁ¬ў®«> ::= \\ + <гЇа ў«пой п_Ї®б«Ґ¤®ў ⥫м®бвм>
||= ! char{'\11','\12','\15','\40',',','\'',']','}'}+
/* «оЎ®© бЁ¬ў®« ASCII Єа®¬Ґ ' , ] } */
<бЁ¬ў®«_5> ::= \\ + <гЇа ў«пой п_Ї®б«Ґ¤®ў ⥫м®бвм>
||= ! char{'\11','\12','\15','\40',#,:,^,'\'',(,),*,
{,|,<}+
/* «оЎ®© бЁ¬ў®« ASCII Єа®¬Ґ
# : ^ ( ) * { | < */
<бЁ¬ў®«_6> ::= \\ + <гЇа ў«пой п_Ї®б«Ґ¤®ў ⥫м®бвм>
- 41 -
||= ! char{'\''} + /* «оЎ®© бЁ¬ў®« ASCII Єа®¬Ґ
' */
/*------------------------------------------------------------------*/
<гЇа ў«пой п_Ї®б«Ґ¤®ў ⥫м®бвм>
::= char{a,b,f,n,r,t,v,'\\','\'','\"','\?'}+
||= string{07}+
||= char{x,X} + string{09,AF} +
/*------------------------------------------------------------------*/