ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ транслятора с ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ тСкстового языка высокого уровня

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° языка Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΠ΅Ρ‚ иСрархичСскиС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΅Π³ΠΎ понятиями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ синтаксичСскими ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ. Π―Π·Ρ‹ΠΊΠΈ программирования ΠΌΠΎΠ³ΡƒΡ‚ сильно ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΏΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… понятий ΠΈ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. Π―Π·Ρ‹ΠΊ программирования PL/1 допускаСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² C Π²ΡΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° Π²Π½Π΅ΡˆΠ½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ влоТСнности… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ транслятора с ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ тСкстового языка высокого уровня (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

1. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ грамматичСского Ρ€Π°Π·Π±ΠΎΡ€Π°

1.1 Π Π°Π·Π±ΠΎΡ€ свСрху-Π²Π½ΠΈΠ·

1.1.1 LL (k) — языки ΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

1.1.2 ΠœΠ΅Ρ‚ΠΎΠ΄ рСкурсивного спуска

1.2 Π Π°Π·Π±ΠΎΡ€ снизу-Π²Π²Π΅Ρ€Ρ…

1.2.1 LR (k) — Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

1.2.1.1 LR (0) — Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

1.2.2 LALR (1) — Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° транслятора

2.1 Анализ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ

2.2 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

2.2.1 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°

2.2.2 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π°

2.2.4 ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ рСализация синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°

2.2.4 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° модуля ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ

2.3 ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

2.4 ВСстированиС

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ А. Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ тСкста транслятора

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π‘. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π’. Π‘Ρ…Π΅ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ транслятора

Π”Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΡˆΠ»ΠΈ Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π°Π΄ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π½Π΅ ΠΎΠ΄ΠΈΠ½ дСсяток ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… инструкций. Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ программист Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ свои Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° ΡΠ·Ρ‹ΠΊΠ°Ρ… программирования высокого уровня ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ язык ассСмблСра лишь Π² ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… случаях. Как извСстно, алгоритмичСскиС языки становятся доступными программисту лишь послС создания трансляторов с ΡΡ‚ΠΈΡ… языков. [2−6]

Π―Π·Ρ‹ΠΊΠΈ программирования достаточно сильно ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΏΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, структурС, сСмантичСской слоТности, ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ свои спСцифичСскиС особСнности Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… трансляторов.

Π―Π·Ρ‹ΠΊΠΈ программирования ΡΠ²Π»ΡΡŽΡ‚ΡΡ инструмСнтами для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… областях, Ρ‡Ρ‚ΠΎ опрСдСляСт спСцифику ΠΈΡ… ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ ΠΏΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ привСсти Ρ‚Π°ΠΊΠΈΠ΅ языки ΠΊΠ°ΠΊ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° Π½Π°ΡƒΡ‡Π½Ρ‹Π΅ расчСты, C, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для систСмного программирования, ΠŸΡ€ΠΎΠ»ΠΎΠ³, эффСктивно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ логичСского Π²Ρ‹Π²ΠΎΠ΄Π°, Лисп, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для рСкурсивной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ списков. Π­Ρ‚ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ. КаТдая ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… областСй ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅Ρ‚ свои трСбования ΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ самого языка. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌ прСдставлСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π² Π½Π°Π±ΠΎΡ€Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, сниТСниС эффСктивности программирования ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡, Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½Ρ‹Ρ… с ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ. Π―Π·Ρ‹ΠΊΠΎΠ²Ρ‹Π΅ различия ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΈ Π² ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π΅ трансляторов. Лисп ΠΈ ΠŸΡ€ΠΎΠ»ΠΎΠ³ Ρ‡Π°Ρ‰Π΅ всСго Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ динамичСскоС Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ…ΠΎΠ΄Π΅ вычислСний. Для трансляторов с ΡΠ·Ρ‹ΠΊΠ° Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Π° агрСссивная оптимизация Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ машинного ΠΊΠΎΠ΄Π°, которая становится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ благодаря ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простой сСмантикС конструкций языка — Π² Ρ‡Π°ΡΡ‚ности, благодаря ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ имСнования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈΠ»ΠΈ ссылки. НаличиС ΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π² ΡΠ·Ρ‹ΠΊΠ΅ C ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅Ρ‚ спСцифичСскиС трСбования ΠΊ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΌΡƒ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ памяти.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° языка Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΠ΅Ρ‚ иСрархичСскиС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΅Π³ΠΎ понятиями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ синтаксичСскими ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ. Π―Π·Ρ‹ΠΊΠΈ программирования ΠΌΠΎΠ³ΡƒΡ‚ сильно ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΏΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… понятий ΠΈ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. Π―Π·Ρ‹ΠΊ программирования PL/1 допускаСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² C Π²ΡΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° Π²Π½Π΅ΡˆΠ½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ влоТСнности. Π―Π·Ρ‹ΠΊ C++ допускаСт описаниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Π»ΡŽΠ±ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π° Π² ΠŸΠ°ΡΠΊΠ°Π»Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ области описания. Π•Ρ‰Π΅ дальшС Π² ΡΡ‚ΠΎΠΌ вопросС ΠΈΠ΄Π΅Ρ‚ PL/1, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ допускаСт описаниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ послС Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ. Или описаниС ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ, принятыми ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΏΡ€ΠΈΠ½ΡΡ‚ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, транслятор ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠ², Ρ‡Ρ‚ΠΎ влияСт Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ трансляции.

Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ° языков программирования измСняСтся Π² ΠΎΡ‡Π΅Π½ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΡ… ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ…. Они ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ям Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π½ΠΎ ΠΈ ΠΏΠΎ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°ΠΌ программирования, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ различия Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ°ΡΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ структуры ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊΠΈΠ΅ языки, ΠΊΠ°ΠΊ PL/1 ΠΈ APL ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Ρ… ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΆΠ΅ языков Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ со ΡΠΊΠ°Π»ΡΡ€Π°ΠΌΠΈ, прСдоставляя для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ массивов ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, написанныС программистами. Но Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ слоТСния Π΄Π²ΡƒΡ… Ρ†Π΅Π»Ρ‹Ρ… чисСл Ρ‚Π°ΠΊΠΈΠ΅ языки, ΠΊΠ°ΠΊ C ΠΈ ΠŸΠ°ΡΠΊΠ°Π»ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ вСсти сСбя ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ.

Наряду с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, логичСскоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° понятий ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² языков сильно зависит ΠΎΡ‚ ΠΈΠ·Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ влияСт Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ транслятора.

Π”Π°ΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ язык ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ нСскольким способами. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ тСория Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ допускаСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ ΡΠΎΠΎΡ‚вСтствии с ΡΡ‚ΠΈΠΌ трансляторы Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ) ΠΏΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ исходному тСксту.

ВмСстС с Ρ‚Π΅ΠΌ, всС языки программирования ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ рядом ΠΎΠ±Ρ‰ΠΈΡ… характСристик ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π­Ρ‚Π° ΠΎΠ±Ρ‰Π½ΠΎΡΡ‚ΡŒ опрСдСляСт ΠΈ ΡΡ…ΠΎΠΆΠΈΠ΅ для всСх языков ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ трансляторов.

Π―Π·Ρ‹ΠΊΠΈ программирования ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для облСгчСния программирования. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹Π΅, Ρ‡Π΅ΠΌ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… языках.

Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ наглядности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ вмСсто числовых ΠΊΠΎΠ΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ символичСскиС ΠΈΠ»ΠΈ графичСскиС прСдставлСния конструкций языка, Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ для ΠΈΡ… Π²ΠΎΡΠΏΡ€ΠΈΡΡ‚ия Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ.

Для любого языка опрСдСляСтся:

— ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для записи ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (Π°Π»Ρ„Π°Π²ΠΈΡ‚), основныС элСмСнты,

— ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (синтаксис),

— «ΡΠΌΡ‹ΡΠ»» ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (сСмантика).

НСзависимо ΠΎΡ‚ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠΈ языка любой транслятор ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ F, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ X Π² Y, Π³Π΄Π΅ X — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΌ языкС, Y — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΌ языкС. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сам процСсс трансляции Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ достаточно просто ΠΈ ΠΏΠΎΠ½ΡΡ‚Π½ΠΎ: Y = F (X).

Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ каТдая ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° X — это Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° символов ΠΈΠ· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° A, прСобразуСмая Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π΅ΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Y, ΡΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° B.

Π―Π·Ρ‹ΠΊ программирования, ΠΊΠ°ΠΊ ΠΈ Π»ΡŽΠ±Π°Ρ слоТная систСма, опрСдСляСтся Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ понятий, Π·Π°Π΄Π°ΡŽΡ‰ΡƒΡŽ взаимосвязи ΠΌΠ΅ΠΆΠ΄Ρƒ Π΅Π³ΠΎ элСмСнтами. Π­Ρ‚ΠΈ понятия связаны ΠΌΠ΅ΠΆΠ΄Ρƒ собой Π² ΡΠΎΠΎΡ‚вСтствии с ΡΠΈΠ½Ρ‚аксичСскими ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ. КаТдая ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, построСнная ΠΏΠΎ ΡΡ‚ΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру.

Π’ ΡΠ²ΡΠ·ΠΈ с ΡΡ‚ΠΈΠΌ для всСх языков ΠΈ ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ‡Π΅Ρ€Ρ‚Ρ‹: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ язык Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ этому языку ΠΈΠ»ΠΈ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ соотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ написанными ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΈ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ языком.

Π”Ρ€ΡƒΠ³ΠΎΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ всСх языков являСтся ΠΈΡ… ΡΠ΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ°. Она опрСдСляСт смысл ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ языка, ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ². Π¦Π΅ΠΏΠΎΡ‡ΠΊΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языках программирования, ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΡΠ΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ΅ (Ρ‡Ρ‚ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ Π² C++, Pascal, Basic). Π—Π½Π°Π½ΠΈΠ΅ сСмантики языка позволяСт ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π΅ ΠΎΡ‚ Π΅Π³ΠΎ синтаксиса ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для прСобразования Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ язык (ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ΄Π°).

ЦСлью Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ транслятора с Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ тСкстового языка высокого уровня.

1. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ грамматичСского Ρ€Π°Π·Π±ΠΎΡ€Π°

Рассмотрим основныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ грамматичСского Ρ€Π°Π·Π±ΠΎΡ€Π°. [7−11]

1.1 Π Π°Π·Π±ΠΎΡ€ свСрху-Π²Π½ΠΈΠ·

ΠŸΡ€ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π΅ свСрху-Π²Π½ΠΈΠ· ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ ΠΏΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΎΡ‚ ΠΊΠΎΡ€Π½Ρ ΠΊ Π»ΠΈΡΡ‚ΡŒΡΠΌ. Π’ ΡΡ‚ΠΎΠΌ случаС ΠΏΡ€ΠΈ просмотрС Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ СстСствСнно Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒΡΡ Π»Π΅Π²Ρ‹Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹. ΠŸΡ€ΠΈ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π±ΠΎΡ€Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ для раскрытия самого Π»Π΅Π²ΠΎΠ³ΠΎ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°.

1.1.1 LL (k) — языки ΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

Рассмотрим Π΄Π΅Ρ€Π΅Π²ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ получСния Π»Π΅Π²ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ. ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Π°Ρ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° состоит ΠΈΠ· Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² w, самого Π»Π΅Π²ΠΎΠ³ΠΎ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° A, Π½Π΅Π΄ΠΎΠ²Ρ‹Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ части x:

— S—

/ -А-x;

/ |

— w—-u——

Pисунок 1

Для продолТСния Ρ€Π°Π·Π±ΠΎΡ€Π° трСбуСтся Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» A ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ» Π²ΠΈΠ΄Π° A: y. Если трСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π±ΠΎΡ€ Π±Ρ‹Π» Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ (Π±Π΅Π· Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠ²), это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ трСбуСтся Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ способом. Говорят, Ρ‡Ρ‚ΠΎ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ‚ свойство LL (k), Ссли для Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ»Π° оказываСтся достаточно Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ wAx ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ k ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² нСпросмотрСнной Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ u. ΠŸΠ΅Ρ€Π²Π°Ρ Π±ΡƒΠΊΠ²Π° L (Left, Π»Π΅Π²Ρ‹ΠΉ) относится ΠΊ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Ρƒ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ, вторая — ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌΡƒ Π»Π΅Π²ΠΎΠΌΡƒ Π²Ρ‹Π²ΠΎΠ΄Ρƒ.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π΄Π²Π° мноТСства Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ:

Π°) FIRST (x) — мноТСство Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΈΠ· x, ΡƒΠΊΠΎΡ€ΠΎΡ‡Π΅Π½Π½Ρ‹Ρ… Π΄ΠΎ k ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².

Π±) FOLLOW (A) — мноТСство ΡƒΠΊΠΎΡ€ΠΎΡ‡Π΅Π½Π½Ρ‹Ρ… Π΄ΠΎ k ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ нСпосрСдствСнно Π·Π° A Π² Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°Ρ….

Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ‚ свойство LL (k), Ссли ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚вования Π΄Π²ΡƒΡ… Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Π»Π΅Π²Ρ‹Ρ… Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ²:

S: wAx: wzx: wu

S: wAx: wtx: wv

ΠΈΠ· ΡƒΡΠ»ΠΎΠ²ΠΈΡ FIRST (u)=FIRST (v) слСдуСт z=t.

Π’ ΡΠ»ΡƒΡ‡Π°Π΅ k=1 для Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ»Π° для А, достаточно Π·Π½Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» A ΠΈ, Π° — ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ u:

— ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ A: x, Ссли, Π° Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² FIRST (x),

— ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ A: Π΅, Ссли, Π° Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² FOLLOW (A).

LL (ΠΊ)-свойство Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ довольно ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ ограничСния Π½Π° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ. НапримСр, LL (2) Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° S: aS | a Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ свойством LL (1), Ρ‚.ΠΊ. FIRST (aS)=FIRST (a)=a. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ k Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ «Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ» (вынСсСния мноТитСля Π·Π° ΡΠΊΠΎΠ±ΠΊΡƒ):

S: aA

A: S | e

Π›ΡŽΠ±Π°Ρ LL (k)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Π°. ЛСворСкурсивная Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° Π½Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ классу LL (k) Π½ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ k. Иногда удаСтся ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ LL (1)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ Π² ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΡƒΡŽ Π΅ΠΉ LL (1)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ устранСния Π»Π΅Π²ΠΎΠΉ рСкурсии ΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. Однако ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° сущСствования эквивалСнтной LL (k)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π½Π΅ LL (k)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌΠ°.

1.1.2 ΠœΠ΅Ρ‚ΠΎΠ΄ рСкурсивного спуска

ΠœΠ΅Ρ‚ΠΎΠ΄ рСкурсивного спуска ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° Ρ‚Π΅ ΡΠ»ΡƒΡ‡Π°ΠΈ, ΠΊΠΎΠ³Π΄Π° компилятор программируСтся Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ·Ρ‹ΠΊΠΎΠ² высокого уровня, ΠΊΠΎΠ³Π΄Π° допускаСтся использованиС рСкурсивных ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€.

Основная идСя рСкурсивного спуска состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρƒ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ соотвСствуСт ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, которая распознаСт Π»ΡŽΠ±ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ, ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡƒΡŽ этим Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ. Π­Ρ‚ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°, ΠΊΠΎΠ³Π΄Π° это трСбуСтся.

РСкурсивный спуск ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для любой LL (1)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρƒ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ соотвСствуСт ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, которая начинаСтся с ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΠ΅ΠΌΡƒΡŽ ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΊΠΎΠ΄, ΡΠΎΠΎΡ‚Π²ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. Для Ρ‚Π΅Ρ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ мноТСству Π²Ρ‹Π±ΠΎΡ€Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°, вычисляСмый ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Ρƒ, ΡΠΎΠΎΡ‚Π²Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ этому ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ. Для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… символов ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок.

Код любого ΠΏΡ€Π°Π²ΠΈΠ»Π° содСрТит ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ символа, входящСго Π² ΠΏΡ€Π°Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ располоТСны Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠ°ΠΊΠΎΠΌ символы располоТСны Π² ΠΏΡ€Π°Π²ΠΈΠ»Π΅. Π—Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΊΠΎΠ΄ содСрТит Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΈΠ· ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ рСкурсивного спуска Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого уровня ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ.

1.2 Π Π°Π·Π±ΠΎΡ€ снизу-Π²Π²Π΅Ρ€Ρ…

Рассмотрим Ρ€Π°Π·Π±ΠΎΡ€ снизу-Π²Π²Π΅Ρ€Ρ…, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ ΠΏΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΊ ΠΊΠΎΡ€Π½ΡŽ. Если ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ символы Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ, Ρ‚ΠΎ Π΄Π΅Ρ€Π΅Π²ΠΎ Ρ€Π°Π·Π±ΠΎΡ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

— S—

/-x;

/ |

—w—b—u;

Рисунок 2

ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄ xbu, Π³Π΄Π΅ x — Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² ΠΈ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ², ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выводится просмотрСнная Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ w, bu — нСпросмотрСнная Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ, b — ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ символ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π·Π±ΠΎΡ€, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ символ b ΠΊ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½ΠΎΠΉ части Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ (Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ «ΡΠ΄Π²ΠΈΠ³»), Π»ΠΈΠ±ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ½Ρ†Π΅ x Ρ‚Π°ΠΊΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ z (x=yz), Ρ‡Ρ‚ΠΎ ΠΊ z ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ» Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ B: z ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ x Π½Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ yB (Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ «ΡΠ²Π΅Ρ€Ρ‚ΠΊΡƒ»):

— S— -S—

/ /

/-x-b- /yB;

/ | / |

—w—b—u- —w—b—u;

Рисунок 3 — ПослС сдвига Рисунок 4 — ПослС свСртки

Если свСртку ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ символам x, Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²Ρ‹Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ. Π’Π°ΠΊΠΎΠΉ Ρ€Π°Π·Π±ΠΎΡ€ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½Π°Π·Π²Π°Π½ΠΈΠ΅ LR, Π³Π΄Π΅ символ L (Left, Π»Π΅Π²Ρ‹ΠΉ) относится ΠΊ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Ρƒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ, Π° R (Right, ΠΏΡ€Π°Π²Ρ‹ΠΉ) относится ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΌ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌ.

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сдвига ΠΈ ΡΠ²Π΅Ρ€Ρ‚ΠΊΠΈ сущСствСнна. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π±ΠΎΡ€Π° трСбуСтся Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ сдвигом ΠΈ ΡΠ²Π΅Ρ€Ρ‚ΠΊΠΎΠΉ (ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ свСртки).

1.2.1 LR (k) — Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

Если Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ LR-Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠ΄Π²ΠΈΠ³Π΅/свСрткС удаСтся, рассматривая Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ x ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ k ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² нСпросмотрСнной части Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ u (эти k ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π°Π²Π°Π½Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ), говорят, Ρ‡Ρ‚ΠΎ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ LR (k)-свойством.

— S—

/-x;

—w——u—

Рисунок 5

Π Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ LL (k) — ΠΈ LR (k)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°ΠΌΠΈ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… Π΄Π΅Ρ€Π΅Π²Π° Π²Ρ‹Π²ΠΎΠ΄Π°:

— S;

/ |

/ A

/ /

— w—-v—-u;

Рисунок 6

Π’ ΡΠ»ΡƒΡ‡Π°Π΅ LL (k)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ ΠΊ A, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ w ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ k ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ vu, Π° Π² ΡΠ»ΡƒΡ‡Π°Π΅ LR (k)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ — ΠΏΠΎ w, v ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ k ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ u. Π­Ρ‚ΠΎ нСстрогоС рассуТдСниС ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ LL (k)-языки < LR (k)-языки (ΠΏΡ€ΠΈ k > 0).

1.2.1.1 LR (0) — Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

Рассмотрим Π²Π½Π°Ρ‡Π°Π»Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ простыС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ этого класса — LR (0). ΠŸΡ€ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π΅ строки LR (0)-языка ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π²Π°Π½Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ — Π²Ρ‹Π±ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄Ρƒ сдвигом ΠΈ ΡΠ²Π΅Ρ€Ρ‚ΠΊΠΎΠΉ дСлаСтся Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ x. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΎΠ½Π° измСняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ†Π°, Π΅Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ стСком. Π‘ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ Π½Π΅Ρ‚ бСсполСзных символов ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ символ Π½Π΅ Π²ΡΡ‚рСчаСтся Π² ΠΏΡ€Π°Π²Ρ‹Ρ… частях ΠΏΡ€Π°Π²ΠΈΠ» — Ρ‚ΠΎΠ³Π΄Π° свСртка ΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ символу сигнализируСт ΠΎΠ± ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π°. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ мноТСство Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² ΠΈ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ², ΠΏΠΎΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ Π² ΡΡ‚Π΅ΠΊΠ΅ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ всСх LR-Ρ€Π°Π·Π±ΠΎΡ€ΠΎΠ² (Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами — всСх ΠΏΡ€Π°Π²Ρ‹Ρ… Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² ΠΈΠ· Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ).

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ мноТСства:

L (A:v) — Π»Π΅Π²Ρ‹ΠΉ контСкст ΠΏΡ€Π°Π²ΠΈΠ»Π° A: v — мноТСство состояний стСка, нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ свСрткой v Π² A Π² Ρ…ΠΎΠ΄Π΅ всСх ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… LR-Ρ€Π°Π·Π±ΠΎΡ€ΠΎΠ². ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, каТдая Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΈΠ· L (A:v) кончаСтся Π½Π° v. Если Ρƒ Π²ΡΠ΅Ρ… Ρ‚Π°ΠΊΠΈΡ… Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ ΠΎΡ‚Ρ€Π΅Π·Π°Ρ‚ΡŒ хвост v, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ся мноТСство Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ, Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ слСва ΠΎΡ‚ A Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ всСх ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… ΠΏΡ€Π°Π²Ρ‹Ρ… Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ². ΠžΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ это мноТСство L (A) — Π»Π΅Π²Ρ‹ΠΉ контСкст Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° A.

ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΠΌ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ для мноТСства L (A). Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°ΠΌΠΈ Π½ΠΎΠ²ΠΎΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρ‹ ΠΈ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρ‹ исходной Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρ‹ Π½ΠΎΠ²ΠΎΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ ,… — ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π»Π΅Π²Ρ‹Π΅ контСксты Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² исходной Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. Если S — Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ символ исходной Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Ρ‚ΠΎ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° Π»Π΅Π²Ρ‹Ρ… контСкстов Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: e — Π»Π΅Π²Ρ‹ΠΉ контСкст S ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π° исходной Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, A: B C d E

ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½ΠΎΠ²ΡƒΡŽ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ ΠΏΡ€Π°Π²ΠΈΠ»Π°:

: — L (B) Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ L (A)

: B — L© Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ L (A) B

: B C d — L (E) Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ L (A) B C d

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Π°Ρ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ (Ρ‚Π°ΠΊΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π»Π΅Π²ΠΎΠ»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌΠΈ), ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, мноТСства Π»Π΅Π²Ρ‹Ρ… контСкстов

— Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½Ρ‹. Из ΡΡ‚ΠΎΠ³ΠΎ слСдуСт, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π»Π΅Π²ΠΎΠΌΡƒ контСксту ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ ΠΈΠ½Π΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π°, просматривая Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. ОпишСм этот процСсс конструктивно.

НазовСм LR (0)-ситуациСй ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ с ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ символами ΠΏΡ€Π°Π²ΠΎΠΉ части ΠΏΡ€Π°Π²ΠΈΠ»Π°. НапримСр, для Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ S: A; A: aAA; A: b ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ LR (0)-ситуации: S:_A; S: A_; A:_aAA; A: a_AA; A: aA_A; A: aAA_; A:_b; A: b_. (позиция ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π° символом подчСркивания).

Π‘ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° x ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π° с ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠ΅ΠΉ А: b_c, Ссли x=ab ΠΈ a ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ L (A). (Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, LR-Π²Ρ‹Π²ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ x_… = ab_…: abc_…: aA_…: S_.) Π’ ΡΡ‚ΠΈΡ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… L (A:b) — мноТСство Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ, согласованных с ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠ΅ΠΉ A: b_, L (A)

— Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ, согласованныС с ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠ΅ΠΉ A:_b, для любого ΠΏΡ€Π°Π²ΠΈΠ»Π° A: b.

ΠŸΡƒΡΡ‚ΡŒ V (u) — мноТСство ситуаций, согласованных с u. ПокаТСм, Ρ‡Ρ‚ΠΎ функция V — ΠΈΠ½Π΄ΡƒΠΊΡ‚ΠΈΠ²Π½Π°.

Если Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ V (u) Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ситуация A: b_cd, Ρ‚ΠΎ ΡΠΈΡ‚уация A: bc_d ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ V (uc). (c — Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈΠ»ΠΈ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»; b, d — ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустыС) Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² ΠΈ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ²). Π”Ρ€ΡƒΠ³ΠΈΡ… ситуаций Π²ΠΈΠ΄Π° A: b_d, с Π½Π΅ΠΏΡƒΡΡ‚Ρ‹ΠΌ b Π² V (uc) Π½Π΅Ρ‚. ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² V (uc) ситуации Π²ΠΈΠ΄Π° C:_…, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° C, Π»Π΅Π²Ρ‹ΠΉ контСкст ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ содСрТит uc. Если ситуация A:…_C… (C-Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π») ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ мноТСству V (uc), Ρ‚ΠΎ uc ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ L© ΠΈ V (uc) Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ ситуации Π²ΠΈΠ΄Π° C:_… для всСх C-ΠΏΡ€Π°Π²ΠΈΠ» Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

V (e) содСрТит ситуации S:_… (S-Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ символ), Π° Ρ‚Π°ΠΊΠΆΠ΅ ситуации A:_…, Ссли Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» A Π²ΡΡ‚рСчаСтся нСпосрСдствСнно послС _ Π² ΡΠΈΡ‚уациях, ΡƒΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² V (e).

НаконСц, ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π΄Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ LR (0)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. ΠŸΡƒΡΡ‚ΡŒ u — содСрТимоС стСка Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ LR-Ρ€Π°Π·Π±ΠΎΡ€Π°, V (u)-мноТСство LR (0) ситуаций, согласованных с u. Если V (u) содСрТит ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ Π²ΠΈΠ΄Π° А: x_ (x-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² ΠΈ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ²), Ρ‚ΠΎ u ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ L (A:x) ΠΈ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΠ° свСртка x Π² A. Если V (u) содСрТит ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ A:…_a… (Π°-Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»), Ρ‚ΠΎ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌ сдвиг. Говорят ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π΅ сдвиг-свСртка, Ссли для ΠΎΠ΄Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ u Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΡ‹ ΠΈ ΡΠ΄Π²ΠΈΠ³, ΠΈ ΡΠ²Π΅Ρ€Ρ‚ΠΊΠ°. Говорят ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π΅ свСртка-свСртка, Ссли допустимы свСртки ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ.

Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° называСтся LR (0), Ссли для всСх состояний стСка Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ LR-Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² сдвиг-свСртка ΠΈΠ»ΠΈ свСртка-свСртка.

1.2.1.2 LR (k) — Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

Для Π²Ρ‹Π±ΠΎΡ€Π° ΠΌΠ΅ΠΆΠ΄Ρƒ сдвигом ΠΈΠ»ΠΈ свСрткой Π² LR (0) Ρ€Π°Π·Π±ΠΎΡ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ состояниС стСка. Π’ LR (k) Ρ€Π°Π·Π±ΠΎΡ€Π΅ учитываСтся Ρ‚Π°ΠΊΠΆΠ΅ k-ΠΏΠ΅Ρ€Π²Ρ‹Ρ… символов нСпросмотрСнной части Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ (Ρ‚Π°ΠΊ называСмая Π°Π²Π°Π½Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°). Для обоснования ΠΌΠ΅Ρ‚ΠΎΠ΄Π° слСдуСт Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ рассуТдСния ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π°, внСся измСнСния Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ.

Π‘ΡƒΠ΄Π΅ΠΌ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² Π»Π΅Π²Ρ‹ΠΉ контСкст ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ‚Π°ΠΊΠΆΠ΅ Π°Π²Π°Π½Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ. Если Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄Π΅ примСняСтся Π²Ρ‹Π²ΠΎΠ΄ wAu: wvu, Ρ‚ΠΎ ΠΏΠ°Ρ€Π° wv, FIRSTk (u) ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Lk (A:v), Π° ΠΏΠ°Ρ€Π° w, FIRSTk (u) — Lk (A). ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π»Π΅Π²Ρ‹Ρ… контСкстов, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠ»ΡƒΡ‡Π°Π΅ LR (0), ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Π΄ΡƒΠΊΡ†ΠΈΠΈ ΠΏΠΎ Π»Π΅Π²ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅. НазовСм LR (k)-ситуациСй ΠΏΠ°Ρ€Ρƒ: ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ с ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ ΠΈ Π°Π²Π°Π½Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Π΄Π»ΠΈΠ½Ρ‹ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ k. ΠžΡ‚Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΡ‚ Π°Π²Π°Π½Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π±ΡƒΠ΄Π΅ΠΌ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ.

Π‘ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° x ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π° с ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠ΅ΠΉ А: b_c|t Ссли сущСствуСт LR-Π²Ρ‹Π²ΠΎΠ΄: x_yz = ab_yz: abc_z: aA_z: S_, ΠΈ FIRSTk (z)=t. ΠŸΡ€Π°Π²ΠΈΠ»Π° ΠΈΠ½Π΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ вычислСния мноТСства состояний Vk ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

Vk (e) содСрТит ситуации S:_a|e для всСх ΠΏΡ€Π°Π²ΠΈΠ» S: a, Π³Π΄Π΅ S-Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ символ. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ситуации А:_Ba|u ΠΈΠ· Vk (e), ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π° B: b ΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ x, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΉ FIRSTk (au), Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Vk (e) ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ B:_b|x.

Если Π² VΠΊ (w) Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ситуация A: b_cd|u, Ρ‚ΠΎ ΡΠΈΡ‚уация A: bc_d|u Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ΡŒ Vk (wc). Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ситуации А: b_Cd|u ΠΈΠ· Vk (wc), ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π° C: f ΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ x, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΉ FIRSTk (du) Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Vk (wc) ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ C:_f|x.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ построСнныС мноТСства LR (k)-состояний для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ вопроса сдвиг-свСртка. ΠŸΡƒΡΡ‚ΡŒ u — содСрТимоС стСка, Π° x — Π°Π²Π°Π½Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ свСртка ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ A: b ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π°, Ссли Vk (u) содСрТит ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ A: b_|x. РСшСниС вопроса ΠΎ Π΄ΠΎΠΏΡƒΡΡ‚имости сдвига Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ аккуратности, Ссли Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ e-ΠΏΡ€Π°Π²ΠΈΠ»Π°. Π’ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠΈ A: b_c|t (c Π½Π΅ ΠΏΡƒΡΡ‚ΠΎ) сдвиг Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½, Ссли c Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ся с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈ x ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ FIRSTk (ct). ΠΠ΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ говоря, ΠΌΠΎΠΆΠ½ΠΎ занСсти Π² ΡΡ‚Π΅ΠΊ самый Π»Π΅Π²Ρ‹ΠΉ символ ΠΏΡ€Π°Π²ΠΎΠΉ части ΠΏΡ€Π°Π²ΠΈΠ»Π°, подготавливая ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ свСртку. Если c Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ся с Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° (ситуация ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄ A: b_Cd|t), Ρ‚ΠΎ Π·Π°Π½Π΅ΡΡ‚ΠΈ Π² ΡΡ‚Π΅ΠΊ символ, подготавливая свСртку Π² C, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΡΠ»ΡƒΡ‡Π°Π΅, Ссли C Π½Π΅ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ. НапримСр, Π² ΡΠΎΡΡ‚оянии V (e)= S:_A|e; A:_AaAb|e, a, A:_|e, a Π½Π΅Ρ‚ допустимых сдвигов, Ρ‚.ΠΊ. ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΈΠ· A Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ шагС трСбуСтся ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ A: e ΠΊ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρƒ A, находящСмуся Π½Π° Π»Π΅Π²ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ мноТСство EFFk (x), состоящСС ΠΈΠ· Π²ΡΠ΅Ρ… элСмСнтов мноТСства FIRSTk (x), ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» Π½Π° Π»Π΅Π²ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π΅ x (Ссли ΠΎΠ½ Π΅ΡΡ‚ΡŒ) Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ‚ся Π½Π° ΠΏΡƒΡΡ‚ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ. Π’ ΡΡ‚ΠΈΡ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… сдвиг допустим, Ссли Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅ Vk (u) Π΅ΡΡ‚ΡŒ ситуация А: b_c|t, c Π½Π΅ ΠΏΡƒΡΡ‚ΠΎ ΠΈ x ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ EFFk (ct).

Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° называСтся LR (k)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ, Ссли Π½ΠΈ ΠΎΠ΄Π½ΠΎ LR (k) состояниС Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π΄Π²ΡƒΡ… ситуаций A: b_|u ΠΈ B: c_d|v, Ρ‚Π°ΠΊΠΈΡ… Ρ‡Ρ‚ΠΎ u ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ EFFk (dv). Вакая ΠΏΠ°Ρ€Π° соотвСтствуСт ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρƒ свСртка-свСртка, Ссли d ΠΏΡƒΡΡ‚ΠΎ, ΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρƒ сдвиг-свСртка, Ссли d Π½Π΅ ΠΏΡƒΡΡ‚ΠΎ.

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ LR (k)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΏΡ€ΠΈ k>1 Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ся. На ΡΡ‚ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π΄Π²Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹. ΠŸΠ΅Ρ€Π²Π°Ρ: ΠΎΡ‡Π΅Π½ΡŒ большоС число LR (k) состояний. Вторая: для любого языка, опрСдСляСмого LR (k)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ, сущСствуСт LR (1)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°; Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, для любого Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ КБ-языка сущСствуСт LR (1)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°.

Число LR (1)-состояний для практичСски интСрСсных Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ Ρ‚Π°ΠΊΠΆΠ΅ вСсьма Π²Π΅Π»ΠΈΠΊΠΎ. LR (0) свойством Ρ‚Π°ΠΊΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ Ρ€Π΅Π΄ΠΊΠΎ. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ‡Π°Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ LR (0) ΠΈ LR (1) ΠΌΠ΅Ρ‚ΠΎΠ΄, извСстный ΠΏΠΎΠ΄ названиями ΠΈ LALR (1).

1.2.2 LALR (1) — Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

Π’ ΠΎΡΠ½ΠΎΠ²Π΅ этих Π΄Π²ΡƒΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π»Π΅ΠΆΠΈΡ‚ ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ идСя. ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΠΌ мноТСство каноничСских LR (0)-состояний Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. Если это мноТСство Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ², Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ LR (0)-парсСр. Π˜Π½Π°Ρ‡Π΅ попытаСмся Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ возникшиС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹, рассматривая ΠΎΠ΄Π½ΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ Π°Π²Π°Π½Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ LR (1) парсСр с ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎΠΌ LR (0)-состояний.

LALR (1)-ΠΌΠ΅Ρ‚ΠΎΠ΄ (Look Ahead — заглядываниС Π²ΠΏΠ΅Ρ€Π΅Π΄) Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ. Π’Π²Π΅Π΄Π΅ΠΌ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅ LR (1)-ситуаций ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ эквивалСнтности: Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π²Π΅ ситуации эквивалСнтными, Ссли ΠΎΠ½ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Π²Π°Π½Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°ΠΌΠΈ. НапримСр, ситуации A: Aa_Ab|e ΠΈ A: Aa_Ab|a эквивалСнтны. ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΠΌ каноничСскоС мноТСство LR (1)-состояний ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΠΌ состояния, состоящиС ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° эквивалСнтных ситуаций.

Если ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ мноТСство состояний Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ LR (1) ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ², ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, позволяСт ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ LR (1)-парсСр, Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΡΡ‚, Ρ‡Ρ‚ΠΎ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ свойством LALR (1).

2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° транслятора

2.1 Анализ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ

Π’ Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ транслятор Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° с ΡΠ·Ρ‹ΠΊΠ°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ. МоТно Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ основных этапа Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°:

— ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°;

— ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π°;

— ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ рСализация синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°;

— Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° модуля ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Windows XP Π½Π° ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ IBM PC с ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ΠΎΠΌ Intel Pentium IV.

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΉ развития ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ транслятора Π²Ρ‹Π±Ρ€Π°Π½ язык программирования Π‘# Π² ΡΡ€Π΅Π΄Π΅ Visual Studio 2010.

2.2 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

2.1.1 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°

ЛСксичСский Π°Π½Π°Π»ΠΈΠ· Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ сканированиС транслируСмой (исходной) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ лСксСм, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… прСдлоТСния исходного тСкста. К Π»Π΅ΠΊΡΠ΅ΠΌΠ°ΠΌ относят, Π² Ρ‡Π°ΡΡ‚ности, ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, Π·Π½Π°ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, константы, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы ΠΈ Ρ‚. Π΄.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° (сканСра) являСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ лСксСм, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ каТдая лСксСма ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдставляСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ фиксированной Π΄Π»ΠΈΠ½Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ†Π΅Π»Ρ‹ΠΌ числом), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π΄Π°Ρ‡Π° сообщСний ΠΎ ΡΠΈΠ½Ρ‚аксичСских (лСксичСских) ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΏΡ€ΠΈ ΠΈΡ… Π½Π°Π»ΠΈΡ‡ΠΈΠΈ. Если лСксСма являСтся, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом, Ρ‚ΠΎ Π΅Π΅ ΠΊΠΎΠ΄ Π΄Π°Π΅Ρ‚ всю Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ ΠΆΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ имя распознанного ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ записываСтся Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ списков. Аналогичная Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½ΡƒΠΆΠ½Π° ΠΈ Π΄Π»Ρ констант.

ЛСксСма ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ двумя основными ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ°ΠΌΠΈ. Одним ΠΈΠ· Π½ΠΈΡ… являСтся ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ лСксСмы ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ классу (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, константы, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Ρ‚. Π΄.) Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ опрСдСляСт ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ элСмСнт Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса.

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π²ΠΈΠ΄ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ символов (структура Π΄Π°Π½Π½Ρ‹Ρ…) Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния для лСксичСского ΠΈΠ»ΠΈ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°. Как Ρ‚ΠΎΠΌΡƒ, Ρ‚Π°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ лишь ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ индСкс, ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π°Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса для пополнСния свСдСний ΠΎ Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ символов.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² выполняСт Π΄Π²Π΅ основныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

Π°) запись Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ описания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…;

Π±) поиск ΠΈΠΌΠ΅Π½ΠΈ, Ρ€Π°Π½Π΅Π΅ записанного Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ.

Π­Ρ‚ΠΎ позволяСт Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Π΅ ситуации, ΠΊΠ°ΠΊ мноТСствСнноС описаниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ нСописанной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ частично Π² ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΎΠ² для распознавания ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², констант, Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… слов ΠΈ Ρ‚. Π΄. Если лСксСмы Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ сисмвола ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ объСдинСниС ΠΈΡ… Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ.

Запуская лСксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€, ΠΌΡ‹ Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅ΠΌ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Π»Π΅ΠΊΡΠ΅ΠΌΡ‹, послС Ρ‡Π΅Π³ΠΎ каТдая лСксСмы ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π΄Π»ΠΈΠ½Ρ‹ (лСксСма Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ большС 11 символов). ΠŸΡ€ΠΎΠΉΠ΄Ρ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ этот этап, ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ располоТСния лСксСм (ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов var, begin, end, for, to, do, end_for). Π—Π°Ρ‚Π΅ΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ лСксСмы ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ — ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ†ΠΈΡ„Ρ€ Π² ΡΠ²ΠΎΠ΅ΠΌ описании ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ. На ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ этапС провСряСм ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ написания лСксСм (ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, нСизвСстныС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹). Если хотя Π±Ρ‹ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, лСксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Π‘Ρ…Π΅ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ B Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ Π’.1.

2.2.2 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° Π—Π°Π΄Π°Π΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ:

Π“: {Vt, Va, I, R},

Π³Π΄Π΅ Vt — это мноТСсто Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов, Va — мноТСство Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов, I — Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, R — мноТСство ΠΏΡ€Π°Π²ΠΈΠ» Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

Для Π΄Π°Π½Π½ΠΎΠΉ Π³Ρ€Π°ΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π·Π°Π΄Π°Π΄ΠΈΠΌ мноТСства Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов:

Боставим ΠΏΡ€Π°Π²ΠΈΠ»Π° для нашСй Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π“ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΈΡ… Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 1.

Π’Π°Π±Π»ΠΈΡ†Π° 1 — ΠŸΡ€Π°Π²ΠΈΠ»Π° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

β„– ΠΏΡ€Π°Π²ΠΈΠ»Π°

ЛСвая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°

ΠŸΡ€Π°Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°

PG'

PG?

PG

DE AL

AL

b LE e

DE

LV

LV

LE

w (DE);

LE

r (DE);

LE

f ID = EX t EX d LE n;

LE

EQ

EQ

ID = EX;

EX

UO SB

EX

SB

SB

(EX)

SB

OP

SB

SB BO SB

UO

;

BO

BO

*

BO

;

OP

ID

OP

CO

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ 1.

β„– ΠΏΡ€Π°Π²ΠΈΠ»Π°

ЛСвая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°

ΠŸΡ€Π°Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°

ID

u ID

ID

U

CO

k

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΡ лСксСм, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ лСксСм Π² ΠΊΠΎΠ΄Ρ‹ ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… 2, 3, 4 соотвСтствСнно.

Π’Π°Π±Π»ΠΈΡ†Π° 2 — ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΡ лСксСм

ЛСксСма

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ лСксСмы

begin

ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово «begin» (Π½Π°Ρ‡Π°Π»ΠΎ описания дСйствий)

end

ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово «end» (ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ описания дСйствий)

var

ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово «var» (описаниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…)

read

ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово «read» (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…)

write

ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово «write» (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…)

for

ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово «for» (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π°)

to

ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово «to»

do

ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово «do»

end_for

ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово «end_case» (ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ†ΠΈΠΊΠ»Π°)

integer

Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… «Ρ†Π΅Π»Ρ‹ΠΉ»

опСрция слоТСниС

;

опСрация вычитания

*

опСрация умноТСния

:

Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ символ «:»

;

Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ символ «;»

(

Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ символ «(»

)

Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ символ «)»

Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ символ «,»

ЛСксСма

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ лСксСмы

=

Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ символ «=»

Π’Π°Π±Π»ΠΈΡ†Π° 3 — ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ лСксСм Π² ΠΊΠΎΠ΄Ρ‹

ЛСксСма

Код

begin

b

end

l

var

v

write

w

read

r

integer

i

for

f

to

t

do

d

end_for

n

<οΏ½Ρ†ΠΈΡ„Ρ€Π°>

k

<οΏ½Π±ΡƒΠΊΠ²Π°>

u

;

;

*

*

;

;

:

:

=

=

(

(

)

)

Π’Π°Π±Π»ΠΈΡ†Π° 4 — Бписок ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

ПояснСниС

PG

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

AL

ОписаниС вычислСний

DE

ОписаниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

LV

Бписок ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

OP

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

EQ

ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅

EX

Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

SB

ΠŸΠΎΠ΄Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

BO

Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

UO

Π£Π½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

LE

Бписок присваиваний

ID

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€

БО

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π°

ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΠΌ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠ΅Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ восходящий Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒ.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ восходящий Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒ:

Π°)Если имССтся символ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π’ Ρ‚Π°ΠΊΠΎΠΉ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΠ’ ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ символ Ρ…ΠŸΠ•Π Π’'(Π’), Ρ‚ΠΎ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ символами Ρ… ΠΈ, А ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ся ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Ρ… ΠŸΠžΠ‘Π›Π•, А Π±) Если Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ имССтя ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π’->бАб А, Π’Va, Π± Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ, А ΠΈ Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ся ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅, А Π‘Π’Π•Π Π’ Ρ….

Вся наша Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° остаСтся ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΉ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ:

Π“: {Vt, Va, I, R},

Π° ΠΏΡ€Π°Π²ΠΈΠ»Π° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π“ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 5.

Π’Π°Π±Π»ΠΈΡ†Π° 5 — ΠŸΡ€Π°Π²ΠΈΠ»Π° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

β„– ΠΏΡ€Π°Π²ΠΈΠ»Π°

ЛСвая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°

ΠŸΡ€Π°Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°

PG'

PG?

PG

DE AL?

AL

b LE e?

DE

LV

LV

LE

w (DE); ?

LE

r (DE); ?

LE

f ID = EX t EX d LE n;?

LE

EQ?

EQ

ID = EX; ?

EX

UO SB?

EX

SB?

SB

(EX) ?

SB

OP ?

SB

SB BO SB?

UO

-?

BO

+?

BO

*?

BO

-?

OP

ID?

OP

CO?

ID1

u ID?

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ 5.

β„– ΠΏΡ€Π°Π²ΠΈΠ»Π°

ЛСвая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°

ΠŸΡ€Π°Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°

ID

u?

CO

k ?

ID1

ID

Π“Π΄Π΅? — ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ†Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ случаи:

Π°)Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ID состоит ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Π±ΡƒΠΊΠ² латинского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ u = { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z}

Π±) ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° БО состоит ΠΈΠ· Ρ†ΠΈΡ„Ρ€, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ k = {0,1,2,3,4,5,6,7,8,9}

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ наша Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° являСтся смСшанной стратСгиСй ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ условия:

Π°) ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π΅ — ΠΏΡ€Π°Π²ΠΈΠ» Π±) Π˜ΠΌΠ΅ΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, Ρ… ΠŸΠžΠ‘Π›Π•, А? А Π‘Π’Π•Π Π’ Ρ… = ?

в) А -> бYг

B->Π³

ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π’ ΠŸΠžΠ‘Π›Π• Ρ…? Π’ Π‘Π’Π•Π Π’ Ρ… = ?

г) А ->б

B -> Π±

Ρ‚.Π΅ Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π’ ΠŸΠžΠ‘Π›Π• Ρ… Π»ΠΈΠ±ΠΎ, А ΠŸΠžΠ‘Π›Π• Ρ…, Π³Π΄Π΅ Ρ… — символпрСдикат Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π±.

Π°) ΠŸΠ•Π Π’'(PG)={PG?}

ΠŸΠ•Π Π’'(RG) = ΠŸΠ•Π Π’ (DE) = {RG, v, i,;}

ΠŸΠ•Π Π’' (AL) = ΠŸΠ•Π Π’ (b LE e)= {AL, b, e}

ΠŸΠ•Π Π’' (DE) = ΠŸΠ•Π Π’ (v LV: i;) = {DE, v, i,;}

ΠŸΠ•Π Π’' (LV) = ΠŸΠ•Π Π’ (ID, LV) = { LV, ID }

ΠŸΠ•Π Π’' (OP) ={OP, ID, CO}

ΠŸΠ•Π Π’' (EQ) = ΠŸΠ•Π Π’ (ID = EX;) = {EQ, =,;}

ΠŸΠ•Π Π’' (EX) = {EX, SB, -}

ΠŸΠ•Π Π’' (BO) ={B0, +,*,-}

ΠŸΠ•Π Π’' (SB) =ΠŸΠ•Π Π’ ((EX)SB)? ΠŸΠ•Π Π’ (OP)? ΠŸΠ•Π Π’ (Π’Πž)={SB, (,), OP, BO};

ΠŸΠ•Π Π’' (LE) = ΠŸΠ•Π Π’ (EQ) = {LE, (,), =,;, f, t, d, n, w, r}

ΠŸΠ•Π Π’' (UO) = {UO,-}

ΠŸΠ•Π Π’' (ID)= ΠŸΠ•Π Π’' (u) = {u}

ΠŸΠ•Π Π’' (CO) = ΠŸΠ•Π Π’' (k) = {k}ΠŸΠ•Π Π’' (e) ={ e}

ΠŸΠ•Π Π’' (b) ={ b}

ΠŸΠ•Π Π’' (e) ={ e}

ΠŸΠ•Π Π’' (v) ={ v}

ΠŸΠ•Π Π’' (w) ={ w}

ΠŸΠ•Π Π’' ® ={ r}

ΠŸΠ•Π Π’' (i) ={ i}

ΠŸΠ•Π Π’' (f) ={ f}

ΠŸΠ•Π Π’' (d) ={d}

ΠŸΠ•Π Π’' (n) ={ n}

ΠŸΠ•Π Π’' © ={ c}

ΠŸΠ•Π Π’' (+) ={ +}

ΠŸΠ•Π Π’' (*) ={ *}

ΠŸΠ•Π Π’' (-) ={ -}

ΠŸΠ•Π Π’' (,) ={,}

ΠŸΠ•Π Π’' (;) ={;}

ΠŸΠ•Π Π’' (:) ={:}

ΠŸΠ•Π Π’' (=) = { = }

ΠŸΠ•Π Π’' (() ={ (}

ΠŸΠ•Π Π’' ()) ={) }

ΠŸΠ•Π Π’' (u) ={u}

ΠŸΠ•Π Π’' (k) ={k}

Π±) Π‘Π›Π•Π” `(AL) = {?}?Π‘Π›Π•Π”'(PG)={?, b, e}

Π‘Π›Π•Π” ` (DE) = {?}?ΠŸΠ•Π Π’'(AL)= {?, b, e }

Π‘Π›Π•Π” ` (LV) = {?}?ΠŸΠ•Π Π’'(:)= {?:}

Π‘Π›Π•Π” ` (OP) = {?}?ΠŸΠ•Π Π’'(SB)= {?,;,), d, t, +, -, *}

Π‘Π›Π•Π” ` (EQ) = {?}?ΠŸΠ•Π Π’'(LE)={?, (,),;, f, =, t, d, n, w, r }

Π‘Π›Π•Π” ` (EX) = {?}?ΠŸΠ•Π Π’'(t)?ΠŸΠ•Π Π’'(d)?ΠŸΠ•Π Π’'(;)?ΠŸΠ•Π Π’'())={?, t, d,;,)}

Π‘Π›Π•Π” ` (BO) = {?}?ΠŸΠ•Π Π’'(SB)= {?, (,), OP, BO}

Π‘Π›Π•Π” ` (UO) = {?}?ΠŸΠ•Π Π’'(SB)= {?, (,), OP, BO}

Π‘Π›Π•Π” ` (SB) = {?}?Π‘Π›Π•Π”'(EX)= {?, t, d,;,), +, *, -}

Π‘Π›Π•Π” ` (LE) = {?} ?ΠŸΠ•Π Π’'(e) ?ΠŸΠ•Π Π’'(n) = {?, e, n}

Π‘Π›Π•Π” `(ID)= {?}? Π‘Π›Π•Π”' (OP)? ΠŸΠ•Π Π’' (=) ={?,;,), d, t, +, -, *, =}

Π‘Π›Π•Π” `(CO) = {?}? Π‘Π›Π•Π”' (OP)= {?,;,), d, t, +, -, *, =}

Π‘Π›Π•Π” ` (b) ={?}?ΠŸΠ•Π Π’'(LE)= {?, u, =,;}

Π‘Π›Π•Π” ` (e) ={?}?Π‘Π›Π•Π”'(AL)= {?, b}

Π‘Π›Π•Π” ` (v) ={?}?ΠŸΠ•Π Π’'(LV)= {?, u }

Π‘Π›Π•Π” ` (w) ={?}?ΠŸΠ•Π Π’'(()= {?, (}

Π‘Π›Π•Π” ` ® ={?}?ΠŸΠ•Π Π’'(() = {?, (}

Π‘Π›Π•Π” ` (i) ={?}?ΠŸΠ•Π Π’'(;)= {?,; }

Π‘Π›Π•Π” ` (f) ={?}?ΠŸΠ•Π Π’'(ID) = {?, u}

Π‘Π›Π•Π” ` (d) ={?}?ΠŸΠ•Π Π’'(LE)= {?, u, =,;}

Π‘Π›Π•Π” ` (n) ={?}?ΠŸΠ•Π Π’'(i) = {?, i }

Π‘Π›Π•Π” ` (+) ={?}?Π‘Π›Π•Π”'(Π’Πž) = {?, +,*,-}

Π‘Π›Π•Π” ` (-) ={?}?Π‘Π›Π•Π”'(Π’Πž) = {?, +,*,-}

Π‘Π›Π•Π” ` (*) ={?}?Π‘Π›Π•Π”'(Π’Πž) = {?, +,*,-}

Π‘Π›Π•Π” ` (;) ={?}?Π‘Π›Π•Π”' (DE)?Π‘Π›Π•Π” `(LE1)?Π‘Π›Π•Π”' (EQ) = {?, b, e, l, u }

Π‘Π›Π•Π” ` (:) ={?}?ΠŸΠ•Π Π’'(i)= {?, i }

Π‘Π›Π•Π” ` (=) = {?}?ΠŸΠ•Π Π’'(EX) = {? (,), u, k, +, -, *}

Π‘Π›Π•Π” ` (() ={?}?ΠŸΠ•Π Π’'(DE)= {?, v, i,;}

Π‘Π›Π•Π” ` ()) ={?}? ΠŸΠ•Π Π’'(;) = {?,; }

Π‘Π›Π•Π” ` (,) ={?}? ΠŸΠ•Π Π’'(LV) = {?, u }

Π‘Π›Π•Π” `(u) ={?}? ΠŸΠ•Π Π’' (ID)= { u, ?}

Π‘Π›Π•Π” `(k) ={?}? ΠŸΠ•Π Π’ (CO)= {?, k}

Π²) PG ->DE AL

AL ΠŸΠžΠ‘Π›Π• DE = {b, e} ΠŸΠžΠ‘Π›Π• DE = {(b DE), (e DE) }

AL -> b LE e

e ΠŸΠžΠ‘Π›Π• LE = {(e LE)}

LE ΠŸΠžΠ‘Π›Π• b = {(,), =,;, f, t, d, n, w, r} ΠŸΠžΠ‘Π›Π• b = {((b), ()b), (=b), (;b), (f b), (t b), (d b), (n b), (w b), (r b)}

;ΠŸΠžΠ‘Π›Π• i = {(; i)}

i ΠŸΠžΠ‘Π›Π•: = { (i:) }

: ΠŸΠžΠ‘Π›Π• LV = { (: LV) }

LV ΠŸΠžΠ‘Π›Π• v = { (ID, v) }

LV ΠŸΠžΠ‘Π›Π•, = {(ID,)}

ΠŸΠžΠ‘Π›Π• ID = {(, u)}

LE-> EQ LE

LE ΠŸΠžΠ‘Π›Π• EQ = {(,), =,;, f, t, d, n, w, r } ΠŸΠžΠ‘Π›Π• EQ = {((EQ), () EQ), (= EQ), (; EQ), (f EQ), (t EQ), (d EQ), (n EQ), (w EQ), (r EQ)}

LE -> r (DE);

; ΠŸΠžΠ‘Π›Π•) = {(;))}

) ΠŸΠžΠ‘Π›Π• DE = {((DE)}

DE ΠŸΠžΠ‘Π›Π• (= (= {(v)), (:)), (i)), (;)), (e))}

(ΠŸΠžΠ‘Π›Π• r = {(®}

LE -> w (DE);

; ΠŸΠžΠ‘Π›Π•) = {(;))}

) ΠŸΠžΠ‘Π› DE = {((DE)}

DE ΠŸΠžΠ‘Π›Π• (= {(v)), (:)), (i)), (;)), (e))}

(ΠŸΠžΠ‘Π›Π• w = {((w)}

LE -> f ID = EX t EX d LE n;

; ΠŸΠžΠ‘Π›Π• n = {(;n)}

n ΠŸΠžΠ‘Π›Π• LE = { (n, LE)}

LE ΠŸΠžΠ‘Π›Π• d = { ((,), =,;, f, t, d, n, w, r)}? ΠŸΠžΠ‘Π›Π• d = {((d), ()d), (;d), (f d), (t d), (d d), (n d), (w d), (r d)}

d ΠŸΠžΠ‘Π›Π• EX = {(d, EX)}

EX ΠŸΠžΠ‘Π›Π• t = (BO, -)? ΠŸΠžΠ‘Π›Π• t = {(BO t), (- t)}

t ΠŸΠžΠ‘Π›Π• EX = { t EX}

EX ΠŸΠžΠ‘Π›Π• = = {(BO, -)? ΠŸΠžΠ‘Π›Π• = = {(BO =), (- =)}

= ΠŸΠžΠ‘Π›Π• ID = {(= ID)}

ID ΠŸΠžΠ‘Π›Π• f = {(ID f)}

EQ -> ID = EX;

; ΠŸΠžΠ‘Π›Π• EX = {(; EX }

EX ΠŸΠžΠ‘Π›Π• = = (BO, -)? ΠŸΠžΠ‘Π›Π• = = {(BO =), (- =)}

= ΠŸΠžΠ‘Π›Π• u = { (=u)}

EX -> UO SB

SB ΠŸΠžΠ‘Π›Π• UO = { (,), OP, BO } ΠŸΠžΠ‘Π›Π• UO = {((UO), (OP UO), (BO UO) }

SB->(EX)

) ΠŸΠžΠ‘Π›Π• EX = { ()EX) }

EX ΠŸΠžΠ‘Π›Π• (= (BO, -)? ΠŸΠžΠ‘Π›Π• (= {(BO (), (- ()}

SB-> SB BO SB

SB ΠŸΠžΠ‘Π›Π• BO = ((,), OP, BO) ΠŸΠžΠ‘Π›Π• BO = {((BO), ()BO), (OP BO), (BO BO)}

BO ΠŸΠžΠ‘Π›Π• SB = {+,*,-} ΠŸΠžΠ‘Π›Π• SB = {(+SB), (*SB), (-SB)}

ID -> u ID

ID ΠŸΠžΠ‘Π›Π• u = {(u, u)}

Π³) PG ->DE AL

AL Π‘Π’Π•Π Π’ PG = AL Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (PG) = {(AL ?)}

AL -> b LE e

e Π‘Π’Π•Π Π’ AL = e Π‘Π’Π•Π Π’ Π‘Π›Π•Π”'(AL)= {(eb), (e?)}

=; Π‘Π’Π•Π Π’ Π‘Π›Π•Π”'(DE) = {(;b), (;?)}

LV Π‘Π’Π•Π Π’ LV = LV Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (LV) = {(LV:), (LV?)}

ID Π‘Π’Π•Π Π’ LV = ID Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (LV) = {(ID:), (ID ?)}

LE-> w (DE);

; Π‘Π’Π•Π Π’ LE =; Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (LE) = {(; e), (;?), (;n)}

LE-> r (DE);

; Π‘Π’Π•Π Π’ LE =; Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (LE) = {(; e), (;?), (;n)}

LE -> f ID = EX t EX d LE n;

; Π‘Π’Π•Π Π’ LE =; Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (LE) = {(; e), (;?), (;n)}

LE -> EQ

EQ Π‘Π’Π•Π Π’ LE = EQ Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (LE) = {(EQ e), (EQ?), (EQ n)}

EQ -> ID = EX;

; Π‘Π’Π•Π Π’ EQ =; Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (EQ) = {(; (), (;)), (;;), (;f), (;?), (;=), (;t), (;d), (;n), (;w), (;r)}

EX ->SB

SB Π‘Π’Π•Π Π’ EX = SB Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (EX) = {(SB t), (SB?), (SB d), (SB)), (SB;), (SB (), (SB=), (SBf), (SBn), (SBw), (SBr) }

EX — >

SB Π‘Π’Π•Π Π’ EX = SB Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (EX) = {(SB t), (SB?), (SB d), (SB)), (SB;), (SB (), (SB=), (SBf), (SBn), (SBw), (SBr) }

SB ->(EX)

) Π‘Π’Π•Π Π’ SB = SB Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (SB) = {() t), ()?), () d), ())), ();)}

SB -> OP

OP Π‘Π’Π•Π Π’ SB = OP Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (SB) = {(OP t), (OP ?), (OP d), (OP)), (OP;)}

SB-> SB BO SB

SB Π‘Π’Π•Π Π’ SB = SB Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (SB) = {(SB, t), (SBd), (SB;). (SB)), (SB+), (SB-), (SB*), (SB?) }

UO -> ;

— Π‘Π’Π•Π Π’ UO = - Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (UO) = { (-?), (—)}

BO -> +

+ Π‘Π’Π•Π Π’ BO = + Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (BO) = {(++), (+?), (+*), (±)}

BO-> *

* Π‘Π’Π•Π Π’ BO = * Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (BO) = {(*+), (*?), (**), (*-)}

BO -> ;

— Π‘Π’Π•Π Π’ BO = - Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (BO) = {(-+), (-?), (-*), (—)}

OP ->ID

ID Π‘Π’Π•Π Π’ OP = ID Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (OP) = {(ID+), (ID?), (ID*), (ID-)}

OP->CO

CO Π‘Π’Π•Π Π’ OP = CO Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (OP) = {(CO+), (CO?), (CO*), (CO-), (CO;), (COd), (COt), (CO))}

ID -> u ID

ID Π‘Π’Π•Π Π’ ID = ID Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (ID) = {(ID)), (ID ?), (ID k), (ID+), (ID-), (ID*), (ID=), (IDt), (IDd))}

ID->u

u Π‘Π’Π•Π Π’ ID = l Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (ID) = {(u)), (u?), (uk), (u+), (u-), (u*), (u=), (ut), (ud))}

CO -> k CO

CO Π‘Π’Π•Π Π’ CO = CO Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (CO) = (CO+), (CO?), (CO*), (CO-), (CO;), (COd), (COt), (CO))}

CO -> k

k Π‘Π’Π•Π Π’ CO = k Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (CO) = (k+), (k?), (k*), (k-), (k;), (kd), (kt), (k))}

ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° ΠΎΠ΄Π½Π° конфликтная ситуация ΠΏΡ€ΠΈ сворачивании ΠΏΡ€Π°Π²ΠΈΠ»

OP ->ID ΠΈ ID -> u ID

Π’Π²ΠΎΠ΄ΠΈΠΌ ID1 -> ID, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ пСрСписываСм ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ID1 -> u ID

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ свСртка.

ID1 -> u ID

ID1 Π‘Π’Π•Π Π’ ID = ID1 Π‘Π’Π•Π Π’ Π‘Π›Π•Π”' (ID) = {(ID1)), (ID1 ?), (ID1 k), (ID1+), (ID1-), (ID1*), (ID1=), (ID1t), (ID1d))}

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Ρ€Ρ‹ (Ρ…, А)? Ρ… ΠŸΠžΠ‘Π›Π•, А ΡΡ‚Ρ€ΠΎΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ дСйствиС пСрСнос ??(S0, x, A) = (S0, A)

? (S0, b, DE) = (S0, DEb)

? (S0, e, DE) = (S0, DEe)

? (S0, e, LE) = (S0, LEe)

? (S0,), b) = (S0, b))

? (S0,;, b) = (S0, b;)

? (S0, (, b) = (S0, b ()

? (S0, =, b) = (S0, b=)

? (S0, f, b) = (S0, bf)

? (S0, t, b) = (S0, bt)

? (S0, d, b) = (S0, bd)

? (S0, n, b) = (S0, bn)

? (S0, w, b) = (S0, bw)

? (S0, r, b) = (S0, br)

? (S0,;, i) = (S0, i;)

? (S0, i:) = (S0, i:)

? (S0: LV) = (S0, LV:)

? (S0, ID, v) = (S0, vID)

? (S0, ID,) = (S0,ID)

? (S0, u) = (S0, u,)

? (S0, (, EQ)= (S0, EQ ()

? (S0,), EQ)= (S0, EQ))

? (S0, =, EQ)= (S0, EQ=)

? (S0,;, EQ)= (S0, EQ;)

? (S0, f, EQ)= (S0, EQf)

? (S0, t, EQ)= (S0, EQt)

? (S0, d, EQ)= (S0, EQd)

? (S0, n, EQ)= (S0, EQn)

? (S0, w, EQ)= (S0, EQw)

? (S0, r, EQ)= (S0, EQr)

? (S0,;,)) = (S0,);)

? (S0, (, DE) = (S0, DE ()

? (S0, v,)) = (S0,)v)

? (S0,;,)) = (S0,);)

? (S0, i,)) = (S0,)i)

? (S0,)) = (S0,):)

? (S0, e,)) = (S0,)e)

? (S0, (, r) = (S0, r ()

? (S0, (, w) = (S0, w ()

? (S0,;, n) = (S0, n;)

? (S0, n, LE) = (S0, LEn)

? (S0, (, d) = (S0, d ()

? (S0,), d) = (S0, d))

? (S0,;, d) = (S0, d;)

? (S0, f, d) = (S0, df)

? (S0, t, d) = (S0, dt)

? (S0, d, d) = (S0, dd)

? (S0, n, d) = (S0, dn)

? (S0, w, d) = (S0, dw)

? (S0, r, d) = (S0, dr)

? (S0, d, EX) = (S0, EXd)

? (S0, BO, t) = (S0, tBO)

? (S0, -, t) = (S0, t-)

? (S0, t, EX) = (S0, EXt)

? (S0, BO, =) = (S0, =BO)

? (S0, -, =) = (S0, =-)

? (S0, =, ID) = (S0, ID=)

? (S0, ID, f) = (S0, fID)

? (S0,;, EX) = (S0, EX;)

? (S0, =, u) = (S0, u=)

? (S0, (, UO) = (S0, UO ()

? (S0, OP, UO) = (S0, UO OP)

? (S0, BO, UO) = (S0, UO BO)

? (S0,), EX) = (S0, EX))

? (S0, BO, () = (S0, (BO)

? (S0, BO, -) = (S0, -BO)

? (S0, (, BO) = (S0, BO ()

? (S0,), BO) = (S0,)BO)

? (S0, OP, BO) = (S0, BOOP)

? (S0, +, SB) = (S0, SB+)

? (S0, *, SB) = (S0, SB*)

? (S0, -, SB) = (S0, SB-)

? (S0, u, u) = (S0, uu)

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Ρ€Ρ‹ (Ρ…, А)? А Π‘Π’Π•Π Π’ Ρ… ΡΡ‚Ρ€ΠΎΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ дСйствиС свСртка ??*(S0, x, Π±A) = (S0, Π’), Π³Π΄Π΅ Π’->Π±A

?*(S0, AL, ?) = (S0, PG)

?*(S0, e, b) = (S0, AL)

?*(S0, n, ?) = (S0, AL)

?*(S0,;, b) = (S0, DE)

?*(S0,;, ?) = (S0, DE)

?*(S0,;, e) = (S0, DE)

?*(S0, LV:) = (S0, LV)

?*(S0, LV, ?) = (S0, LV)

?*(S0, ID, ?) = (S0, LV)

?*(S0, ID, e) = (S0, LV)

?*(S0,;, e) = (S0, LE)

?*(S0,;, ?) = (S0, LE)

?*(S0,;, n) = (S0, LE)

?*(S0, EQ, n) = (S0, LE)

?*(S0, EQ, e) = (S0, LE)

?*(S0, EQ, ?) = (S0, LE)

?*(S0,;, e) = (S0, LE)

?*(S0,;, ?) = (S0, LE)

?*(S0,;, () = (S0, EQ)

?*(S0,;,)) = (S0, EQ)

?*(S0,;, f) = (S0, EQ)

?*(S0,;, =) = (S0, EQ)

?*(S0,;, t) = (S0, EQ)

?*(S0,;, d) = (S0, EQ)

?*(S0,;, n) = (S0, EQ)

?*(S0,;, w) = (S0, EQ)

?*(S0,;, r) = (S0, EQ)

?*(S0, SB, t) = (S0, EX)

?*(S0, SB, ?) = (S0, EX)

?*(S0, SB, d) = (S0, EX)

?*(S0, SB,)) = (S0, EX)

?*(S0, SB,;) = (S0, EX)

?*(S0, SB, w) = (S0, EX)

?*(S0, SB, r) = (S0, EX)

?*(S0, SB, f) = (S0, EX)

?*(S0, SB, =) = (S0, EX)

?*(S0, SB, t) = (S0, EX)

?*(S0, SB, ?) = (S0, SB)

?*(S0, SB, () = (S0, SB)

?*(S0, SB,)) = (S0, SB)

?*(S0, SB, u) = (S0, SB)

?*(S0, SB, k) = (S0, SB)

?*(S0, SB, +) = (S0, SB)

?*(S0, SB, -) = (S0, SB)

?*(S0, SB, *) = (S0, SB)

?*(S0, SB, e) = (S0, SB)

?*(S0,), t) = (S0, SB)

?*(S0,), ?) = (S0, SB)

?*(S0,), t) = (S0, SB)

(S0,),)) = (S0, SB)

?*(S0,),;) = (S0, SB)

?*(S0, -, ?) = (S0, UO)

?*(S0, -, -) = (S0, UO)

?*(S0, +, +) = (S0, BO)

?*(S0, +, ?) = (S0, BO)

?*(S0, +, *) = (S0, BO)

?*(S0, -, -)) = (S0, BO)

?*(S0, -, +) = (S0, BO)

?*(S0, -, ?) = (S0, BO)

?*(S0, -, *) = (S0, BO)

?*(S0, -, -)) = (S0, BO)

?*(S0, *, +) = (S0, BO)

?*(S0, *, ?) = (S0, BO)

?*(S0, *, *) = (S0, BO)

?*(S0, *, -)) = (S0, BO)

?*(S0, u, +) = (S0, BO)

?*(S0, u, ?)= (S0, BO)

?*(S0, u, *) = (S0, BO)

?*(S0, u, -)) = (S0, BO)

?*(S0, k, +) = (S0, BO)

?*(S0, k, ?) = (S0, BO)

?*(S0, k, *) = (S0, BO)

?*(S0, k, -)) = (S0, BO)

?*(S0, ID, ?) = (S0, OP)

?*(S0, ID, +) = (S0, OP)

?*(S0, ID, *) = (S0, OP)

?*(S0, ID, -) = (S0, OP)

?*(S0, CO, ?) = (S0, OP)

?*(S0, CO, +) = (S0, OP)

?*(S0, CO, *) = (S0, OP)

?*(S0, CO, -) = (S0, OP)

?*(S0, CO,;) = (S0, OP)

?*(S0, CO, d) = (S0, OP)

?*(S0, CO, t) = (S0, OP)

?*(S0, ID, -) = (S0, OP)

?*(S0, ID, *) = (S0, OP)

?*(S0, ID, ?) = (S0, OP)

?*(S0, ID, () = (S0, OP)

?*(S0, ID,)) = (S0, OP)

?*(S0, ID, u) = (S0, OP)

?*(S0, ID, k) = (S0, OP)

?*(S0, ID, -) = (S0, OP)

?*(S0, ID, +) = (S0, OP)

?*(S0, u,)) = (S0, I OP)

?*(S0, ID1, *) = (S0, ID)

?*(S0, ID1, ?) = (S0, ID)

?*(S0, ID1, () = (S0, ID)

?*(S0, ID1,)) = (S0, ID)

?*(S0, ID1, u) = (S0, ID)

?*(S0, ID1, k) = (S0, ID)

?*(S0, ID1, -) = (S0, ID)

?*(S0, ID1, +) = (S0, ID)

?*(S0, u,)) = (S0, ID)

?*(S0, u, ?) = (S0, BO)

?*(S0, u, k) = (S0, ID)

?*(S0, u, *)) = (S0, ID)

?*(S0, u, -)) = (S0, ID)

?*(S0, u, +)) = (S0, ID)

?*(S0, u, d)) = (S0, ID)

?*(S0, u, t)) = (S0, ID)

?*(S0, u, =)) = (S0, ID)

?*(S0, CO, ?) = (S0, CO)

?*(S0, CO, +) = (S0, CO)

?*(S0, CO, -) = (S0, CO)

?*(S0, CO, *) = (S0, CO)

?*(S0, CO,;) = (S0, CO)

?*(S0, CO, d) = (S0, CO)

?*(S0, CO, t) = (S0, CO)

?*(S0, CO,)) = (S0, CO)

?*(S0, k, +) = (S0, CO)

?*(S0, k, -) = (S0, CO)

?*(S0, k, *) = (S0, CO)

?*(S0, k,;) = (S0, CO)

??*(S0, k, d) = (S0, CO)

?*(S0, k, t) = (S0, CO)

?*(S0, k,)) = (S0, CO)

?*(S0, k, () = (S0, CO)

2.2.3 ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ рСализация синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° БинтаксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ (парсСр) считываСт Ρ„Π°ΠΉΠ» лСксСм, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ лСксичСским Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ, осущСствляСт грамматичСский Ρ€Π°Π·Π±ΠΎΡ€, Π²Ρ‹Π΄Π°Π΅Ρ‚ сообщСния ΠΎ ΡΠΈΠ½Ρ‚аксичСских ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΏΡ€ΠΈ ΠΈΡ… Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ записи исходной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Основой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° являСтся ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π°.

Для восходящСго грамматичСского Ρ€Π°Π·Π±ΠΎΡ€Π° для Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ восходящСго распознаватСля послС привСдСния Π΅Π΅ ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ трСбуСтся с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠŸΠžΠ‘Π›Π• ΠΈ Π‘Π’Π•Π Π’ ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ описаниСм всСх ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ².

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° ΠΌΡ‹ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΠ»ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ являтся основой синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°. ВсС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π° Π²ΠΈΠ΄Π°:

— Ρ‚Π°ΠΊΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° Π±Π΅Π· чтСния Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа (пустой Ρ‚Π°ΠΊΡ‚);

— Ρ‚Π°ΠΊΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° с Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа.

ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΌΡ‹ Ρ€Π°Π·Π±ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Π»Π΅ΠΊΡΠ΅ΠΌΡ‹ ΠΈ Π·Π°ΠΏΠΈΡΠ°Π»ΠΈ ΠΈΡ… Π² ΡΠΏΠΈΡΠΎΠΊ. Π­Ρ‚ΠΎΡ‚ список ΠΌΡ‹ ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π² ΡΠΈΠ½Ρ‚аксичСском Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅. На Π²Ρ…ΠΎΠ΄ ΠΌΡ‹ ΠΏΠΎΡΡ‹Π»Π°Π΅ΠΌ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ (список), Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… символ (PG) ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ Π΄Π½Π° ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° (h0), послС Ρ‡Π΅Π³ΠΎ выбираСтся нуТная функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚вляСтся рСкурсивный Π²Ρ‹Π·ΠΎΠ².

Π‘Ρ…Π΅ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ B Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ Π’.2.

2.2.4 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° модуля ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ модуля ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ исходной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ постфиксная Ρ„ΠΎΡ€ΠΌΠ° записи, которая позволяСт достаточно Π»Π΅Π³ΠΊΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ процСсс выполнСния (ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ) транслируСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Рассмотрим основныС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ формирования ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ постфиксной Ρ„ΠΎΡ€ΠΌΡ‹ записи Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° прСобразования инфиксной записи выраТСния Π² ΠΏΠΎΡΡ‚Ρ„ΠΈΠΊΡΠ½ΡƒΡŽ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ.

Π‘Ρ‡ΠΈΡ‚Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊ ΠΏΠΎΡΡ‚фиксной записи, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΡΡ‚Π΅ΠΊ.

Если опСрация Π² Π²Π΅Ρ€ΡˆΠΈΠ½Π΅ стСка ΠΈΠΌΠ΅Π΅Ρ‚ больший (ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Ρ‹ΠΉ) ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚, Ρ‡Π΅ΠΌ тСкущая считанная опСрация, Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ ΠΈΠ· ΡΡ‚Π΅ΠΊΠ° добавляСтся ΠΊ ΠΏΠΎΡΡ‚фиксной записи, Π° Ρ‚Скущая опСрация заносится Π² ΡΡ‚Π΅ΠΊ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС (ΠΏΡ€ΠΈ низшСм ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π΅) происходит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ занСсСниС Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² ΡΡ‚Π΅ΠΊ.

Бчитанная ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ скобка заносится Π² ΡΡ‚Π΅ΠΊ.

ПослС считывания Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ скобки всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π΄ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ скобки ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΈΠ· ΡΡ‚Π΅ΠΊΠ° ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ся ΠΊ ΠΏΠΎΡΡ‚фиксной записи, послС Ρ‡Π΅Π³ΠΎ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ, ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ скобки ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ, Ρ‚. Π΅. Π½Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ся Π½ΠΈ Π² ΠΏΠΎΡΡ‚Ρ„ΠΈΠΊΡΠ½ΡƒΡŽ запись, Π½ΠΈ Π² ΡΡ‚Π΅ΠΊ.

ПослС считывания всСго выраТСния, ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ Π² ΡΡ‚Π΅ΠΊΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊ ΠΏΠΎΡΡ‚фиксной записи.

ΠŸΠΎΡΡ‚Ρ„ΠΈΠΊΡΠ½Π°Ρ запись выраТСния позволяСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΅Π³ΠΎ вычислСниС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Если лСксСма являСтся ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠΌ, Ρ‚ΠΎ ΠΎΠ½Π° записываСтся Π² ΡΡ‚Π΅ΠΊ. Если лСксСма являСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ, Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Π°Ρ опСрация выполняСтся Π½Π°Π΄ послСдними элСмСнтами (послСдним элСмСнтом), записанными Π² ΡΡ‚Π΅ΠΊ, ΠΈ ΡΡ‚ΠΈ элСмСнты (элСмСнт) Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² ΡΡ‚Π΅ΠΊΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Если ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡˆΠ»ΠΈ лСксичСский ΠΈ ΡΠΈΠ½Ρ‚аксичСский Π°Π½Π°Π»ΠΈΠ·Ρ‹, Ρ‚ΠΎ ΠΌΡ‹ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Π΅ΠΌ ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ. Π‘Π½Π°Ρ‡Π°Π»Π° Π΄Π΅Π»Π°Π΅ΠΌ ΠΈΠ· ΡΠ»ΠΎΠ² прСдлоТСния, Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ выраТСния Π² ΠΏΠΎΡΡ‚Ρ„ΠΈΠΊΡΠ½ΡƒΡŽ запись ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΠ΅ΠΌ.

Π‘Ρ…Π΅ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ B Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ Π’.3.

2.3 ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ C# Π² ΡΡ€Π΅Π΄Π΅ программирования Visual Studio 2010. ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСдставлСн Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ А.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΡΡ‚ΡŒ классов. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса MainForn Ρ€Π΅Π°Π»ΡŒΠ·ΠΎΠ²Π°Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс. C ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса LexAnalysis Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°, SynAnalysis — ΠΌΠΎΠ΄ΡƒΠ»ΡŒ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°, Intepreter — ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ, ProgramisciJakPolska — Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ класс ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΏΠΎΠ»ΡŒΡΠΊΡƒΡŽ запись (ΠΏΠΎΡΡ‚Ρ„ΠΈΠΊΡΠ½ΡƒΡŽ).

НазначСниС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, описано Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… 6,7,8.

Π’Π°Π±Π»ΠΈΡ†Π° 6 — НазначСниС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ