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

ОписаниС Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ мноТСства конструкций языка программирования с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

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

Когда Π½Π° Π²Ρ…ΠΎΠ΄ подаСтся Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° лСксСм, ΠΌΡ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² (ВИ), смотрим Π±Ρ‹Π»Π° Π»ΠΈ описана эта пСрСмСнная Ρ€Π°Π½Π΅Π΅. Если Π±Ρ‹Π»Π°, Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ с ΠΊΠΎΠ΄ΠΎΠΌ ошибки. Если Π½Π΅Ρ‚, Ρ‚ΠΎ ΡΠΎΠ·Π΄Π°Π΅ΠΌ элСмСнт Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌ Π² ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΅Π΅ Ρ‚ΠΈΠΏ; выдСляСм ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π΅Π΅ Ρ‚ΠΈΠΏΡƒ, Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ОписаниС Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ мноТСства конструкций языка программирования с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

1. Π—Π°Π΄Π°Π½ΠΈΠ΅

2. ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ символьного прСобразоватСля

2.1 Входная Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° Π² ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅

2.2 Π‘Π£-схСма ΠΈ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°

2.3 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² прСобразоватСля

3. ЛСксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€

3.1 Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° лСксичСских Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° лСксСм

3.2 Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояний лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°

3.3 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ‹ дСйствия

3.4 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°

4. Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°

4.1 ΠΠ΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ описаниС сСмантики

4.2 Атрибутная Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°

4.3 ОписаниС символов дСйствия

5. Атрибутный ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ

5.1 ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½ΠΎΠ³ΠΎ прСобразоватСля

5.2 ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ инструкций Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½ΠΎΠ³ΠΎ прСобразоватСля

5.3 Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½ΠΎΠ³ΠΎ прСобразоватСля

6. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ рСализация Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½ΠΎΠ³ΠΎ прСобразоватСля

6.1 ОписаниС структур Π΄Π°Π½Π½Ρ‹Ρ…

6.2 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

6.3 БпСцификация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

1. Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠžΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ мноТСство конструкций языка программирования с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒ, ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… конструкций Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π°Ρ‚ΠΎΠΌΠΎΠ², ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ № 48

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ языка программирования состоят ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ описаний ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (char, boolean), описаний массивов ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² присваивания с Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΈΠΌΠΈ выраТСниями (ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: &(and), v (or), /(not)).

Π€ΠΎΡ€ΠΌΠ° языка — тэговая.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΏΠΎΡΡΠ½ΡΡŽΡ‰ΠΈΠ΅ смысл задания:

На Π²Ρ…ΠΎΠ΄ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½ΠΎΠ³ΠΎ прСобразоватСля Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄Π°Π²Π°Ρ‚ΡŒΡΡ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π²ΠΈΠ΄Π°:

c0, ca2, 2

ba5, 5, b

ba5, 1, `true', b, `false'

ПослС символьного прСобразования Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π²ΠΈΠ΄:

C0 «CHAR» CA2 «CHAR» 2 «RM»

Ba5 «BOOL» 5 «RM» B «BOOL»

Ba5 1 «EM» 'TRUE' B! 'FALSE'V&=

На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½Ρ‹ΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π°Ρ‚ΠΎΠΌΠΎΠ² Π²ΠΈΠ΄Π°:

(Π·Π½Π°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, А1, А2, А3)

Π³Π΄Π΅:

Π·Π½Π°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ — символ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ;

А1 — ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ А2 — Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ А3 — ячСйка Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для сохранСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° вычислСния.

2. ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ символьного прСобразоватСля

2.1 Входная Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° Π² ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅

:= — Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π°Π·Π΄Π΅Π»Π° описаний ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

— Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ символы -;

:= a|b|c|d|e — Π±ΡƒΠΊΠ²Ρ‹

:=0|1|2|3|4|5|6|7|8|9 — Ρ†ΠΈΡ„Ρ€Ρ‹

:="'true'" |" 'false'" — константы

:="'a'" |" 'b'" |" 'c'" |" 'd'" |" 'e'" — символы

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

:= — Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°

:= — Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π±ΡƒΠΊΠ²Ρ‹ ΠΈΠ΄-Ρ€Π°

:= — Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈΠ΄-Ρ€Π°

:=$ — ΠΊΠΎΠ½Π΅Ρ† Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ΄-Ρ€Π°

— Π¦Π΅Π»ΠΎΠ΅ число -;

:= — Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ†ΠΈΡ„Ρ€Ρ‹ числа

:= — Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ†ΠΈΡ„Ρ€Ρ‹ числа

:=$ — ΠΊΠΎΠ½Π΅Ρ† Π²Ρ‹Π²ΠΎΠ΄Π° числа

— ΠœΠ°ΡΡΠΈΠ² -;

:=''',''' — Π²Ρ‹Π²ΠΎΠ΄ массивов

:=''','''

— Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ массива -;

:=''',''' — Π²Ρ‹Π²ΠΎΠ΄ элСмСнта массива

— Π Π°Π·Π΄Π΅Π» описаний -;

— ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

:='''' — Ρ‚ΠΈΠΏΠ° boolean

:='''' — Ρ‚ΠΈΠΏΠ° char

:= — ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ описаний

:=$ — ΠΊΠΎΠ½Π΅Ρ† описаний

:= — Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠ΄-Ρ€Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° boolean

:= — Π²Ρ‹Π²ΠΎΠ΄ массива Ρ‚ΠΈΠΏΠ° boolean

:=',' — ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° описаний boolean

:=$ — ΠΊΠΎΠ½Π΅Ρ† Π²Ρ‹Π²ΠΎΠ΄Π° описаний boolean

:= — Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠ΄-Ρ€Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° char

:= — Π²Ρ‹Π²ΠΎΠ΄ массива Ρ‚ΠΈΠΏΠ° char

:=',' — ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° описаний char

:=$ — ΠΊΠΎΠ½Π΅Ρ† Π²Ρ‹Π²ΠΎΠ΄Π° описаний char

— Π Π°Π·Π΄Π΅Π» ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ -;

:='' ',' '' — Π²Ρ‹Π²ΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

— ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ

:=| — Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ

— Π±ΡƒΠ΄Π΅Ρ‚ присвоСно Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

:=|||— Π²Ρ‹Π²ΠΎΠ΄ выраТСния, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ— Π±ΡƒΠ΄Π΅Ρ‚ присвоСно ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

:='' ',' '' — Π²Ρ‹Π²ΠΎΠ΄ Π»ΠΎΠ³. ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ &

:='' ',' '' — Π²Ρ‹Π²ΠΎΠ΄ Π»ΠΎΠ³. ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ v

:='' '' — Π²Ρ‹Π²ΠΎΠ΄ Π»ΠΎΠ³. ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ !

:= — Π²Ρ‹Π²ΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Π»ΠΎΠ³. ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

:=|

:=

:= — ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

:=$ — ΠΊΠΎΠ½Π΅Ρ† Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Для дальнСйшСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ входная Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Π»Π° ΠΊ ΠΊΠ»Π°ΡΡΡƒ LL (1)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ. Для Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ.

КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° называСтся LL (1) Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ Ρ‚ΠΎΠ³Π΄Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° мноТСства Π’Π«Π‘ΠžΠ , построСнныС для ΠΏΡ€Π°Π²ΠΈΠ» с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ Π»Π΅Π²ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ, Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… элСмСнтов. Входная Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ»Π°ΡΡŒ Π½Π° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊ ΠΊΠ»Π°ΡΡΡƒ LL (1)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ OSA. Данная Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° являСтся LL (1)-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ, Ρ‚.ΠΊ. мноТСства Π’Π«Π‘ΠžΠ , построСнныС для ΠΏΡ€Π°Π²ΠΈΠ» с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ Π»Π΅Π²ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… элСмСнтов.

2.2.Π‘Π£-схСма ΠΈ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° БинтаксичСски управляСмой схСмой (Π‘Π£-схСмой) называСтся мноТСство, состоящСС ΠΈΠ· ΠΏΡΡ‚ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²:

T ={Va, VΡ‚Π²Ρ…, VΡ‚Π²Ρ‹Ρ…, R, },

Π³Π΄Π΅:

Va— ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов;

VΡ‚Π²Ρ…— ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для построСния Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ…

Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ;

VΡ‚Π²Ρ‹Ρ…— ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для построСния Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ;

— Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ символ; Va;

RмноТСство ΠΏΡ€Π°Π²ΠΈΠ» Π²ΠΈΠ΄Π°

,;

Π³Π΄Π΅:

Va, (Va U VΡ‚Π²Ρ…)*, (Va U VΡ‚Π²Ρ‹Ρ…)* ΠΈ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρ‹, входящиС Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ пСрСстановку Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ .

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

Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Π‘Π£-схСма Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ простой.

Π‘Π£-схСма Π’ ={Va, VΡ‚Π²Ρ…, VΡ‚Π²Ρ‹Ρ…, R, } называСтся простой, Ссли для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π° , ΠΈΠ· R ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ вхоТдСния Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π²? ΠΈ? Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ порядкС.

Π‘Π£-схСма:

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ: Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ:

:=== ' '

:=a|b|c|d|e == a|b|c|d|e

:=0|1|2|3|4|5|6|7|8|9 == 0|1|2|3|4|5|6|7|8|9

:="'true'" |" 'false'" == «'true'» |" 'false'"

:="'a'" |" 'b'" |" 'c'" |" 'd'" |" 'e'" == «'a'» |" 'b'" |" 'c'" |" 'd'" |" 'e'"

:= ==

:= ==

:= ==

:=$ == $

:= ==

:= ==

:=$ == $

:=''',''' == ' ''bool'' '' ''RM'

:=''',''' == ' ''char'' '' ''RM'

:=''',''' == ' '' ''EM'

:=''''==

:='''' ==

:= == ' '

:=$ == $

:= == ' ''bool'

:= ==

:=',' == ' '

:=$ == $

:= == ' ''char'

:= ==

:=',' == ' '

:=$ == $

:=''',''' == ' ''='

:=| == |

:=||| == ||

|

:=''','''== ' ''&'

:='' ',''' == ' ''V'

:='''' == '!'

:= ==

:= ==

:= ==

:= == ' '

:=$ == $

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π° Π² Π΄Π°Π½Π½ΠΎΠΉ Π‘Π£-схСмС.

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ: b1 b1 'false'

(,) (, < Vars >' `)

(, ' `)

(, ` ``bool'' `)

(b1 , b1` ``bool'' `)

(b1 , b1' ''bool'' `)

(b1 , b1' ''bool'' `)

(b1',` ,

b1` ``bool'` `` `'=')

(b1',` ,

b1` ``bool'` `` `'=')

(b1b1',` ,

b1` ``bool'` `b1` `'=')

(b1b1',` ,

b1` ``bool'` `b1` `'=')

(b1b1',` ,

b1` ``bool'` `b1` `'!''=')

(b1b1',` ,

b1` ``bool'` `b1` `'!''=')

(b1b1' `'false' ,

b1` ``bool'` `b1` `'false''!''=')

(b1b1' `'false' ,

b1` ``bool'` `b1` `'false''!''=')

Основой построСния Π‘Π£-схСм ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° являСтся использованиС Π΄Π²ΡƒΡ… Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… осущСствляСтся синхронный Π²Ρ‹Π²ΠΎΠ΄ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ. ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдусматриваСт использованиС ΠΎΠ΄Π½ΠΎΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… символов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

Π’Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ (Π’-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ) называСтся КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°, мноТСство Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Π±ΠΈΡ‚ΠΎ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… символов ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… символов.

Π’Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°:

:=# #

:=a#a#|b#b#|c#c#|d#d#|e#e#

:=0#0#|1#1#|2#2#|3#3#|4#4#|5#5#|6#6#|7#7#|8#8#|9#9#

:="'true'" #'true'#|" 'false'" #'false'#

:="'a'" #'a'#|" 'b'" #'b'#|" 'c'" #'c'#|" 'd'" #'d'#|" 'e'" #'e'#

:=

:=

:=

:=$

:=

:=

:=$

:=''','# ##bool## #''# ##RM#

:=''','# ##char## #''# ##RM#

:=''','# #''# ##EM#

:=''''

:=''''

:=# #

:=$

:=# ##bool#

:=

:=','# #

:=$

:=# ##char#

:=

:=','# #

:=$

:=''','# #''#=#

:=|

:=|||

:=''','# #''#&#

:='' ','# #'' #V#

:=''''#!#

:=

:=

:=

:=# #

:=$

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ символы Π² Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² # #.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π° Π² Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅.

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ: b1 b1 'false'

# #

# #

# ##bool## #

b#b#1#1## ##bool## #

b#b#1#1## ##bool## #

b#b#1#1## ##bool## #

b#b#1#1## ##bool## #

','# ##=#

b#b#1#1## ##bool## #

','# ##=#

b#b#1#1## ##bool## #

b#b#1#1#','# ##=#

b#b#1#1## ##bool## #

b#b#1#1#','# ##=#

b#b#1#1## ##bool## #

b#b#1#1#','# ##!##=#

b#b#1#1## ##bool## #

b#b#1#1#','# ##!##=#

b#b#1#1## ##bool## #

b#b#1#1#','# #'false'#'false'##!##=#

b#b#1#1## ##bool## #

b#b#1#1#','# #'false'#'false'##!##=#

Π£Π΄Π°Π»ΠΈΠ² ΠΈΠ· Π²Ρ‹Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ всС Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ символы, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π²Ρ…ΠΎΠ΄Π½ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ — b1b1',''false'

Π£Π΄Π°Π»ΠΈΠ² ΠΈΠ· Π²Ρ‹Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ всС Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ символы, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ — b1 bool b1 'false' ! =

2.3 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² прСобразоватСля

1. Для всСх ΠΏΡ€Π°Π²ΠΈΠ» Π²ΠΈΠ΄Π°

b, Π³Π΄Π΅ bОVΡ‚Π²Ρ… ΠΈ aО (VΡ‚Π²Ρ…UVΡ‚Π²Ρ‹Ρ…UVa)*, строим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΈΠ΄Π°:

f (S, b, A)=(S, ', $),

Π³Π΄Π΅ '-Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ .

(S, a,) = (S, #a#, $)

(S, b,) = (S, #b#, $)

(S, c,) = (S, #c#, $)

(S, d,) = (S, #d#, $)

(S, e,) = (S, #e#, $)

(S, 0,) = (S, #0#, $)

(S, 1,) = (S, #1#, $)

(S, 2,) = (S, #2#, $)

(S, 3,) = (S, #3#, $)

(S, 4,) = (S, #4#, $)

(S, 5,) = (S, #5#, $)

(S, 6,) = (S, #6#, $)

(S, 7,) = (S, #7#, $)

(S, 8,) = (S, #8#, $)

(S, 9,) = (S, #9#, $)

(S, «'true'» ,) = (S, #'true'#, $)

(S, «'false'» ,) = (S, #'false'#, $)

(S, «'a'» ,) = (S, #'a'#, $)

(S, «'b'» ,) = (S, #'b'#, $)

(S, «'c'» ,) = (S, #'c'#, $)

(S, «'d'» ,) = (S, #'d'#, $)

(S, «'e'» ,) = (S, #'e'#, $)

(S, «» ,) = (S, #RM## #" «# ##bool## #» ,", $)

(S, «» ,) = (S, #RM## #" «# ##char## #» ,", $)

(S, «» ,) = (S, #EM## #" «# #» ,", $)

(S, «» ,) = (S, «», $)

(S, «» ,) = (S, «», $)

(S, «,» ,) = (S, # #, $)

(S, «,» ,) = (S, # #, $)

(S, «», ) = (S,#=#" «# #» ,", $)

(S, «» ,) = (S, #&# «» # # «,», $)

(S, «» ,) = (S, #V# «» # # «,», $)

(S, «» ,) = (S, #!# «», $)

2. Для всСх ΠΏΡ€Π°Π²ΠΈΠ» Π²ΠΈΠ΄Π° , Π³Π΄Π΅ BОVa ΠΈ aО (VΡ‚Π²Ρ…UVΡ‚Π²Ρ‹Ρ…UVa)*, строим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΈΠ΄Π°:

f *(S, x,

)=(S, , $) для всСх xΠ’Π«Π‘ΠžΠ  (Π²Ρ…)

Π³Π΄Π΅ Π²Ρ… — Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°, получСнная ΠΈΠ· ΠΏΡƒΡ‚Π΅ΠΌ удалСния ΠΈΠ· Π½Π΅Π΅ всСх Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… символов.

*(S, «», ) = (S, # #, $)

*(S, «», ) = (S, # #, $)

*(S, a,) = (S,, $)

*(S, b,) = (S,, $)

*(S, c,) = (S,, $)

*(S, d,) = (S,, $)

*(S, e,) = (S,, $)

*(S, a,) = (S,, $)

*(S, b,) = (S,, $)

*(S, c,) = (S,, $)

*(S, d,) = (S,, $)

*(S, e,) = (S,, $)

*(S, 0,) = (S,, $)

*(S, 1,) = (S,, $)

*(S, 2,) = (S,, $)

*(S, 3,) = (S,, $)

*(S, 4,) = (S,, $)

*(S, 5,) = (S,, $)

*(S, 6,) = (S,, $)

*(S, 7,) = (S,, $)

*(S, 8,) = (S,, $)

*(S, 9,) = (S,, $)

*(S, 0,) = (S,, $)

*(S, 1,) = (S,, $)

*(S, 2,) = (S,, $)

*(S, 3,) = (S,, $)

*(S, 4,) = (S,, $)

*(S, 5,) = (S,, $)

*(S, 6,) = (S,, $)

*(S, 7,) = (S,, $)

*(S, 8,) = (S,, $)

*(S, 9,) = (S,, $)

*(S, 0,) = (S,, $)

*(S, 1,) = (S,, $)

*(S, 2,) = (S,, $)

*(S, 3,) = (S,, $)

*(S, 4,) = (S,, $)

*(S, 5,) = (S,, $)

*(S, 6,) = (S,, $)

*(S, 7,) = (S,, $)

*(S, 8,) = (S,, $)

*(S, 9,) = (S,, $)

*(S, «» ,) = (S, # #, $)

*(S, «» ,) = (S, # #, $)

*(S, a,) = (S, #bool# # #, $)

*(S, b,) = (S, #bool# # #, $)

*(S, c,) = (S, #bool# # #, $)

*(S, d,) = (S, #bool# # #, $)

*(S, e,) = (S, #bool# # #, $)

*(S, «» ,) = (S,, $)

*(S, a,) = (S, #char# # #, $)

*(S, b,) = (S, #char# # #, $)

*(S, c,) = (S, #char# # #, $)

*(S, d,) = (S, #char# # #, $)

*(S, e,) = (S, #char# # #, $)

*(S, «» ,) = (S,, $)

*(S, a,) = (S,, $)

*(S, b,) = (S,, $)

*(S, c,) = (S,, $)

*(S, d,) = (S,, $)

*(S, e,) = (S,, $)

*(S, «» ,) = (S,, $)

*(S, «'true'» ,) = (S,, $)

*(S, «'false'» ,) = (S,, $)

*(S, «'a'» ,) = (S,, $)

*(S, «'b'» ,) = (S,, $)

*(S, «'c'» ,) = (S,, $)

*(S, «'d'» ,) = (S,, $)

*(S, «'e'» ,) = (S,, $)

*(S, a,) = (S,, $)

*(S, b,) = (S,, $)

*(S, c,) = (S,, $)

*(S, d,) = (S,, $)

*(S, e,) = (S,, $)

*(S, «» ,) = (S,, $)

*(S, «» ,) = (S,, $)

*(S, «» ,) = (S,, $)

*(S, «» ,) = (S,, $)

*(S, «» ,) = (S,, $)

*(S, «» ,) = (S,, $)

*(S, «» ,) = (S,, $)

*(S, a,) = (S,, $)

*(S, b,) = (S,, $)

*(S, c,) = (S,, $)

*(S, d,) = (S,, $)

*(S, e,) = (S,, $)

*(S, «» ,) = (S,, $)

*(S, «'true'» ,) = (S,, $)

*(S, «'false'» ,) = (S,, $)

*(S, «» ,) = (S, # #, $)

3. Для всСх ΠΏΡ€Π°Π²ΠΈΠ» Π²ΠΈΠ΄Π°

$ строим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΈΠ΄Π°:

f *(S, x, ) = (s0, $, $),

для всСх xΠžΠ’Π«Π‘ΠžΠ  (

$), ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ $ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π“Π²Ρ….

*(S, «,» ,) = (S, $, $)

*(S, «» ,) = (S, $, $)

*(S, «» ,) = (S, $, $)

*(S, «» ,) = (S, $, $)

*(S, «» ,) = (S, $, $)

*(S, «» ,) = (S, $, $)

*(S, «» ,) = (S, $, $)

*(S, «» ,) = (S, $, $)

*(S, «» ,) = (S, $, $)

*(S, «» ,) = (S, $, $)

*(S, «» ,) = (S, $, $)

*(S, «» ,) = (S, $, $)

*(S, -|,) = (S, $, $)

4. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ bОVΡ‚Π²Ρ…, Π½Π΅ ΡΡ‚оящСго Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ мСстС Π² ΠΏΡ€Π°Π²ΠΎΠΉ части ΠΏΡ€Π°Π²ΠΈΠ» Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, строим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΈΠ΄Π°: f (S, b, b) = (S, $, $).

(S, «,», «,») = (S, $, $)

(S, «», «») = (S, $, $)

(S, «», «») = (S, $, $)

(S, «», «») = (S, $, $)

(S, «», «») = (S, $, $)

(S, «», «») = (S, $, $)

(S, «», «») = (S, $, $)

(S, «», «») = (S, $, $)

(S, «», «») = (S, $, $)

5. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ wОVΡ‚Π²Ρ‹Ρ…, записываСмого Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½, строим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΈΠ΄Π°: f *(S, $, w) = (S, $, w).

*(S, $, #bool#) = (S, $, #bool#)

*(S, $, #char#) = (S, $, #char#)

*(S, $, #a#) = (S, $, #a#)

*(S, $, #b#) = (S, $, #b#)

*(S, $, #c#) = (S, $, #c#)

*(S, $, #d#) = (S, $, #d#)

*(S, $, #e#) = (S, $, #e#)

*(S, $, #0#) = (S, $, #0#)

*(S, $, #1#) = (S, $, #1#)

*(S, $, #2#) = (S, $, #2#)

*(S, $, #3#) = (S, $, #3#)

*(S, $, #4#) = (S, $, #4#)

*(S, $, #5#) = (S, $, #5#)

*(S, $, #6#) = (S, $, #6#)

*(S, $, #7#) = (S, $, #7#)

*(S, $, #8#) = (S, $, #8#)

*(S, $, #9#) = (S, $, #9#)

*(S, $, # #) = (S, $, # #)

*(S, $, #RM#) = (S, $, #RM#)

*(S, $, #EM#) = (S, $, #EM#)

*(S, $, #=#) = (S, $, #=#)

*(S, $, #&#) = (S, $, #&#)

*(S, $, #V#) = (S, $, #V#)

*(S, $, #!#) = (S, $, #!#)

*(S, $, #'true'#) = (S, $, #'true'#)

*(S, $, #'false'#) = (S, $, #'false'#)

*(S, $, #'a'#) = (S, $, #'a'#)

*(S, $, #'b'#) = (S, $, #'b'#)

*(S, $, #'c'#) = (S, $, #'c'#)

*(S, $, #'d'#) = (S, $, #'d'#)

*(S, $, #'e'#) = (S, $, #'e'#)

6. Π‘Ρ‚Ρ€ΠΎΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ состояниС:

(S, -|, []) = (S, $, $)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠ³ΠΎ прСобразоватСля:

Подадим Π½Π° Π²Ρ…ΠΎΠ΄ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ:

b1b1',''false'

На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠ³ΠΎ прСобразоватСля ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ:

b1 bool b1 'false' ! =

ВАКВ 0

состояниСS

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" «b1 «» «» b1, «» «'false'» «» «»

ΠΌΠ°Π³Π°Π·ΠΈΠ½[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S," «,)=(S,# #,$)

ВАКВ 1

состояниСS

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" «b1 «» «» b1, «» «'false'» «» «»

ΠΌΠ°Π³Π°Π·ΠΈΠ½# #[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (S," «,)=(S,» «,$)

ВАКВ 2

состояниСS

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°b1 «» «» b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½" «# #[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S, B,)=(S,#BOOL## #,$)

ВАКВ 3

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°b1 «» «» b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½# ##BOOL#" «# #[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S, B,)=(S,$)

ВАКВ 4

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°b1 «» «» b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½# ##BOOL#" «# #[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (S, B,)=(S,#B#,$)

ВАКВ 5

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°1 «» «» b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½#B## ##BOOL#" «# #[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S,$,#B#)=(S,$,#B#)

ВАКВ 6

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°1 «» «» b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½# ##BOOL#" «# #[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S, 1,)=(S,$)

ВАКВ 7

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°1 «» «» b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½# ##BOOL#" «# #[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (S, 1,)=(S,#1#,$)

ВАКВ 8

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" «» «b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½#1## ##BOOL#" «# #[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S,$,#1#)=(S,$,#1#)

ВАКВ 9

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" «» «b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½# ##BOOL#" «# #[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S," «,)=(S,$,$)

ВАКВ 10

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" «» «b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½# ##BOOL#" «# #[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S,$,# #)=(S,$,# #)

ВАКВ 11

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" «» «b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½#BOOL#" «# #[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ ««»

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S,$,#BOOL#)=(S,$,#BOOL#)

ВАКВ 12

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" «» «b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½" «# #[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ ««» «BOOL»

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S," «,)=(S,$,$)

ВАКВ 13

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" «» «b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½" «# #[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ ««» «BOOL»

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (S," «,» «)=(S,$,$)

ВАКВ 14

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" «b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½# #[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ ««» «BOOL»

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S," «,)=(S,$,$)

ВАКВ 15

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" «b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½# #[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ ««» «BOOL»

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S,$,# #)=(S,$,# #)

ВАКВ 16

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" «b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ ««» «BOOL» «» «»

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (S," «,)=(S,#=#» «# #» ," ,$)

ВАКВ 17

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½" ," # #" «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ ««» «BOOL» «» «»

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S, B,)=(S,$)

ВАКВ 18

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½" ," # #" «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ ««» «BOOL» «» «»

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S, B,)=(S,$)

ВАКВ 19

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°b1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½" ," # #" «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ ««» «BOOL» «» «»

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (S, B,)=(S,#B#,$)

ВАКВ 20

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½#B#" ," # #" «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ ««» «BOOL» «» «»

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S,$,#B#)=(S,$,#B#)

ВАКВ 21

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½" ," # #" «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ ««» «BOOL» «» «» B

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S, 1,)=(S,$)

ВАКВ 22

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°1, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½" ," # #" «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ ««» «BOOL» «» «» B

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (S, 1,)=(S,#1#,$)

ВАКВ 23

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½#1#" ," # #" «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ ««» «BOOL» «» «» B

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S,$,#1#)=(S,$,#1#)

ВАКВ 24

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½" ," # #" «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ ««» «BOOL» «» «» B1

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S," ," ,)=(S,$,$)

ВАКВ 25

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°, «» «'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½" ," # #" «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ ««» «BOOL» «» «» B1

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (S," ," ," ,")=(S,$,$)

ВАКВ 26

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" ««'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½# #" «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ ««» «BOOL» «» «» B1

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S,$,# #)=(S,$,# #)

ВАКВ 27

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" ««'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½" «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ «„“ „BOOL“ „“ „“ B1» ««»

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S," «,)=(S,$)

ВАКВ 28

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" ««'false'» «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½" «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ «„“ „BOOL“ „“ „“ B1» ««»

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (S," «,)=(S,#!#» «,$)

ВАКВ 29

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" 'false'" «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½" «#!#» «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ «„“ „BOOL“ „“ „“ B1» ««»

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S," 'FALSE'" ,)=(S,$)

ВАКВ 30

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" 'false'" «» «» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½" «#!#» «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ «„“ „BOOL“ „“ „“ B1» ««»

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (S," 'FALSE'" ,)=(S,#'FALSE'#,$)

ВАКВ 31

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" ««» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½#'FALSE'#" «#!#» «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ «„“ „BOOL“ „“ „“ B1» ««»

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S,$,#'FALSE'#)=(S,$,#'FALSE'#)

ВАКВ 32

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" ««» -|

ΠΌΠ°Π³Π°Π·ΠΈΠ½" «#!#» «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ «„“ „BOOL“ „“ „“ B1» ««» «'FALSE'»

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (S," «,» «)=(S,$,$)

ВАКВ 33

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" «-|

ΠΌΠ°Π³Π°Π·ΠΈΠ½#!#" «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ «„“ „BOOL“ „“ „“ B1» ««» «'FALSE'»

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S,$,#!#)=(S,$,#!#)

ВАКВ 34

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°" «-|

ΠΌΠ°Π³Π°Π·ΠΈΠ½" «#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ «„“ „BOOL“ „“ „“ B1» ««» «'FALSE'» !

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (S," «,» «)=(S,$,$)

ВАКВ 35

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°-|

ΠΌΠ°Π³Π°Π·ΠΈΠ½#=#[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ «„“ „BOOL“ „“ „“ B1» ««» «'FALSE'» !

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S,$,#=#)=(S,$,#=#)

ВАКВ 36

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°-|

ΠΌΠ°Π³Π°Π·ΠΈΠ½[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ «„“ „BOOL“ „“ „“ B1» ««» «'FALSE'» ≠

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°*(S,-|,)=(S,$,$)

ВАКВ 37

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°-|

ΠΌΠ°Π³Π°Π·ΠΈΠ½[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ «„“ „BOOL“ „“ „“ B1» ««» «'FALSE'» ≠

функция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (S,-|,[])=(S,$,$)

ВАКВ 38

состояниС S

входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°-|

ΠΌΠ°Π³Π°Π·ΠΈΠ½[]

выходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°B1″ «„“ „BOOL“ „“ „“ B1» ««» «'FALSE'» ≠

ΠœΠ°Π³Π°Π·ΠΈΠ½Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ» Ρ€Π°Π±ΠΎΡ‚Ρƒ

3. ЛСксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€

3.1 Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° лСксичСских Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° лСксСм

1. Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°

I cA

A cA

A dA

A rI

c — Π±ΡƒΠΊΠ²Π°

d — Ρ†ΠΈΡ„Ρ€Π°

r — Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ (`,', ' `, '<')

2. Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° числа

I dB

B dB

B rB

d — Ρ†ΠΈΡ„Ρ€Π°

r — Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ (`,', ' `, '<')

3. Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° слуТСбного слова

I

C /E

E cD

C cD

D cD

D >I

c — Π±ΡƒΠΊΠ²Π°

4. Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° констант

I 'F

F cG

G cG

G 'I

c — Π±ΡƒΠΊΠ²Π°

3.2 Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояний лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°

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

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…:

{ Π’Π°Π±Π»ΠΈΡ†Π° слуТСбных слов }

TSSl: array[1.16] of StrType = ('char','/char','boolean','/boolean',

'arr','/arr','earr','/earr','ass','/ass',

'and','/and','or','/or','not','/not');

{ Π’Π°Π±Π»ΠΈΡ†Π° логичСских констант }

TLog: array[1.2] of StrType = ('true','false');

{ Π’Π°Π±Π»ΠΈΡ†Π° ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… констант }

TChr: array[1.36] of Char =('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','0','1','2','3','4','5','6','7','8','9');

{ Π’Π°Π±Π»ΠΈΡ†Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ }

TRzd = ',';

type

TPerem=(TChar, TBool); { - Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ }

TIdent=string[16]; { - Макс. Π΄Π»ΠΈΠ½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° }

TypeLx=(Idt, Num, SSl, Log, Chr, Rzd);

{ - Π’ΠΈΠΏΡ‹ лСксСм:

Idt — ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ — a, b[2] Num — Ρ†Π΅Π»ΠΎΠ΅ число (Π±/Π·Π½) — 12, 2341

Rzd — Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ — «,» SSl — слуТСбноС слово — ,

Log — логичСская константа — true, false Chr — символьная константа — 'a', 'c' }

{ Π’ΠΈΠΏΡ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅: }

TAdrTP =^TElTP; { - Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… — ВП }

TAdrTSP =^TElTSP; { - Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ симв. прСдставлСния — ВБП }

TAdrTZ =^TElTZ; { - Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ — Π’Π— (ячСйки памяти)}

TAdrTN =^TElTN; { - Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ чисСл — Π’Π§ }

TAdrTL =^TElTL; { - Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ лСксСм — Π’Π› }

TElTP= record { Π’ΠΈΠΏ эл-Ρ‚Π° Π’П: }

TypeP :TPerem; { - Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (TBool, TChar) }

PointTSP:TAdrTSP; { - ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠ»-Ρ‚ ВБП }

PointTZ :TAdrTZ; { - ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠ»-Ρ‚ Π’Π— }

Dim :Word; { - ΠΊΠΎΠ»-Π²ΠΎ эл-Ρ‚ΠΎΠ² (+1) Π² Π’Π— Ссли Dim > 0, Ρ‚ΠΎ ΡΡ‚ΠΎ — массив }

NextP :TAdrTP; { - ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠ»Π΅Π΄. эл-Ρ‚ Π’П }

end;

TElTSP= record { Π’ΠΈΠΏ эл-Ρ‚Π° ВБП: }

SimvP :TIdent; { - ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (симв. прСдставлСниС) }

NextS :TAdrTSP; { - ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠ»Π΅Π΄. эл-Ρ‚ ВБП }

end;

TElTN= record { Π’ΠΈΠΏ эл-Ρ‚Π° Π’Π§: }

Numer :Word; { - Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: 0.65 535 }

NextN :TAdrTN; { - ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠ»Π΅Π΄. эл-Ρ‚ Π’Π§ }

end;

TElTZ= record { Π’ΠΈΠΏ эл-Ρ‚Π° Π’Π—: (ячСйки памяти) }

TypeZ :TPerem; { - Ρ‚ΠΈΠΏ Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠ³ΠΎ значСния }

Value :Byte; { - Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ — 1 Π±Π°ΠΉΡ‚ (char, bool) }

NextZ :TAdrTZ; { - ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠ»Π΅Π΄. эл-Ρ‚ Π’Π— }

end;

TElTL= record { Π’ΠΈΠΏ эл-Ρ‚Π° Π’Π›: }

LenL :Byte; { - Π΄Π»ΠΈΠ½Π° лСксСмы }

NextL :TAdrTL; { - ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠ»Π΅Π΄. эл-Ρ‚ Π’Π› }

case TypeL: TypeLx of

{ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ }

Idt: (PointPer :TAdrTP); { - для ΠΈΠ΄-Ρ€Π° }

Num: (PointNum :TAdrTN); { - для числа }

SSl, Log, Chr: (Index :Byte); { - для слуТ. слов, констант}

Rzd: (); { - для раздСлитСля «,» }

end;

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ‚Π°Π±Π»ΠΈΡ† ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ количСством Ρ‚ΠΈΠΏΠΎΠ² лСксСм. Π’ Π½Π°ΡˆΠ΅ΠΌ случаС ΠΈΡ… ΡˆΠ΅ΡΡ‚ΡŒ — Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π·Π°Ρ€Π°Π½Π΅Π΅ извСстных ΠΈ Π΄Π²Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°.

Π—Π°Ρ€Π°Π½Π΅Π΅ извСстныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

1. Π’Π°Π±Π»ΠΈΡ†Π° слуТСбных слов

2. Π’Π°Π±Π»ΠΈΡ†Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ

3. Π’Π°Π±Π»ΠΈΡ†Π° констант Ρ‚ΠΈΠΏΠ° Boolean

4. Π’Π°Π±Π»ΠΈΡ†Π° констант Ρ‚ΠΈΠΏΠ° Char

Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

1. Π’Π°Π±Π»ΠΈΡ†Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²

2. Π’Π°Π±Π»ΠΈΡ†Π° чисСл ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°:

Подадим Π½Π° Π²Ρ…ΠΎΠ΄ лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ:

ch, ac1, 5 b7

b7, `true'

ac1, 3, `C'

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

Π’Π°Π±Π»ΠΈΡ†Π° слуТСбных слов:

1 char9 ass

2/char10/ass

3 boolean11 and

4/boolean12/and

5 arr13 or

6/arr14/or

7 earr15 not

8/earr16/not

Π’Π°Π±Π»ΠΈΡ†Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ:

17`,'

Π’Π°Π±Π»ΠΈΡ†Π° ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… констант:

18`a'

19`b'

43`z'

44`0'

45`1'

53`9'

Π’Π°Π±Π»ΠΈΡ†Π° логичСских констант:

54`true'

55`false'

Π’Π°Π±Π»ΠΈΡ†Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²:

56ch

57ac1

58b7

Π’Π°Π±Π»ΠΈΡ†Π° чисСл:

Π’Π°Π±Π»ΠΈΡ†Π° лСксСм:

β„–

Π’ΠΈΠΏ лСксСмы

Π”Π»ΠΈΠ½Π° лСксСмы

Языковая конструкция

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ

SSl

Π‘Π»ΡƒΠΆ. слово: char

Idt

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

Rzd

Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ: ,

SSl

Π‘Π»ΡƒΠΆ. слово: arr

Idt

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

Rzd

Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ: ,

Num

Число: 5

SSl

Π‘Π»ΡƒΠΆ. слово: /arr

SSl

Π‘Π»ΡƒΠΆ. слово: /char

SSl

Π‘Π»ΡƒΠΆ. слово: boolean

Idt

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

SSl

Π‘Π»ΡƒΠΆ. слово: /boolean

SSl

Π‘Π»ΡƒΠΆ. слово: ass

Idt

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

Rzd

Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ: ,

SSl

Π‘Π»ΡƒΠΆ. слово: not

Log

Π›ΠΎΠ³. константа: true

SSl

Π‘Π»ΡƒΠΆ. слово: /not

SSl

Π‘Π»ΡƒΠΆ. слово: /ass

SSl

Π‘Π»ΡƒΠΆ. слово: ass

SSl

Π‘Π»ΡƒΠΆ. слово: earr

Idt

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

Rzd

Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ: ,

Num

Число: 3

SSl

Π‘Π»ΡƒΠΆ. слово: /earr

Rzd

Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ: ,

Chr

Π‘ΠΈΠΌΠ². константа: z

SSl

Π‘Π»ΡƒΠΆ. слово: /ass

Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ дСйствия (сСмантика Π°Π½Π°Π»ΠΈΠ·Π°):

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

1. Для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π±ΡƒΠΊΠ²Ρ‹ ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ Π±ΠΎΠ»Π΅Π΅ 16 символов.

{НИ} - Начало ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°

— ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π±ΡƒΡ„Π΅Ρ€Π° для записи (очистка)

— ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π΄Π»ΠΈΠ½Ρ‹ = 1

{ЀИ} - Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°

— Π·Π°ΠΏΠΈΡΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа Π² Π±ΡƒΡ„Π΅Ρ€

— ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ Π½Π° 1

— ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° счСтчика Π΄Π»ΠΈΠ½Ρ‹ Π½Π° Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (? 16)

{КИ} - ΠšΠΎΠ½Π΅Ρ† ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°

— ΠΏΠΎΠΈΡΠΊ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² (Ссли Π΅Π³ΠΎ Π½Π΅Ρ‚, Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ)

— Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ лСксСму Ρ‚ΠΈΠΏΠ° Idt с Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°

— ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ лСксСмы ставим Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ячСйку Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²

2. Для числа Число Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ ΠΎΡ‚ 0 Π΄ΠΎ 65 535 (word).

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ большС, Ρ‡Π΅ΠΌ 5.

{НЧ} - Начало числа

— ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π±ΡƒΡ„Π΅Ρ€Π° для записи (очистка)

— ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π΄Π»ΠΈΠ½Ρ‹ = 1

{Π€Π§} - Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ числа

— Π·Π°ΠΏΠΈΡΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа Π² Π±ΡƒΡ„Π΅Ρ€

— ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ Π½Π° 1

— ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° счСтчика Π΄Π»ΠΈΠ½Ρ‹ Π½Π° Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (? 16)

{КЧ} - ΠšΠΎΠ½Π΅Ρ† числа

— ΠΏΠΎΠΈΡΠΊ числа Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ чисСл (Ссли Π΅Π³ΠΎ Π½Π΅Ρ‚, Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ)

— Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ лСксСму Ρ‚ΠΈΠΏΠ° Num с Π΄Π»ΠΈΠ½ΠΎΠΉ числа

— ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ лСксСмы ставим Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ячСйку Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ чисСл

3. Для слуТСбного слова Π‘Π»ΡƒΠΆΠ΅Π±Π½ΠΎΠ΅ слово Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ описано Π² ΡΠΎΠΎΡ‚вСтствии с ΡΠ·Ρ‹ΠΊΠΎΠΌ.

{НБ} - Начало слуТСбного слова

— ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π±ΡƒΡ„Π΅Ρ€Π° для записи (очистка)

— ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π΄Π»ΠΈΠ½Ρ‹ = 1

{Π€Π‘} - Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ слуТСбного слова

— Π·Π°ΠΏΠΈΡΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа Π² Π±ΡƒΡ„Π΅Ρ€

— ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ Π½Π° 1

{КБ} - ΠšΠΎΠ½Π΅Ρ† слуТСбного слова

— ΠΏΠΎΠΈΡΠΊ слуТСбного слова Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ слуТСбных слов (Ссли Π΅Π³ΠΎ Π½Π΅Ρ‚, Ρ‚ΠΎ ΠΎΡˆΠΈΠ±ΠΊΠ°)

— Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ лСксСму Ρ‚ΠΈΠΏΠ° SSl с Π΄Π»ΠΈΠ½ΠΎΠΉ слуТСбного слова

— ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ лСксСмы ставим Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ячСйку Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ слуТСбных слов

4. Для константы (char, boolean)

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ описаны Π² ΡΠΎΠΎΡ‚вСтствии с ΡΠ·Ρ‹ΠΊΠΎΠΌ.

{НК} - Начало константы

— ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π±ΡƒΡ„Π΅Ρ€Π° для записи (очистка)

— ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π΄Π»ΠΈΠ½Ρ‹ = 1

{ЀК} - Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ константы

— Π·Π°ΠΏΠΈΡΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа Π² Π±ΡƒΡ„Π΅Ρ€

— ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ Π½Π° 1

{КК} - ΠšΠΎΠ½Π΅Ρ† константы

— ΠΏΠΎΠΈΡΠΊ константы Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… констант (char, boolean) (Ссли Π΅Π΅ Π½Π΅Ρ‚, Ρ‚ΠΎ ΠΎΡˆΠΈΠ±ΠΊΠ°)

— Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ лСксСму Ρ‚ΠΈΠΏΠ° Log ΠΈΠ»ΠΈ Chr с Π΄Π»ΠΈΠ½ΠΎΠΉ константы

— ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ лСксСмы ставим Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ячСйку ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

5. Для раздСлитСля Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ описаны Π² ΡΠΎΠΎΡ‚вСтствии с ΡΠ·Ρ‹ΠΊΠΎΠΌ.

{Π€Π } - Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ раздСлитСля

— ΠΏΠΎΠΈΡΠΊ раздСлитСля Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ (Ссли Π΅Π³ΠΎ Π½Π΅Ρ‚, Ρ‚ΠΎ ΠΎΡˆΠΈΠ±ΠΊΠ°)

— Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ лСксСму Ρ‚ΠΈΠΏΠ° Rzd с Π΄Π»ΠΈΠ½ΠΎΠΉ = 1

— ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ лСксСмы ставим Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ячСйку Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ

6. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ символы дСйствия

{ЀО} - Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ошибки

— Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅

{Π§Π‘} - Π§Ρ‚Π΅Π½ΠΈΠ΅ символа

— Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа ΠΈΠ· Ρ„Π°ΠΉΠ»Π°

3.4 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° БпСцификация ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€:

BeginIdt (Ch)

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° формирования ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΈ Π»Π΅ΠΊΡΠ΅ΠΌΡ‹ Ρ‚ΠΈΠΏΠ° Idt

Π’Ρ…ΠΎΠ΄: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π’Ρ‹Ρ…ΠΎΠ΄: символ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ нСпосрСдствСнно Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ

BeginNum (Ch)

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° формирования числа ΠΈ Π»Π΅ΠΊΡΠ΅ΠΌΡ‹ Ρ‚ΠΈΠΏΠ° Num

Π’Ρ…ΠΎΠ΄: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ числа (Ρ†ΠΈΡ„Ρ€Π°) Π’Ρ‹Ρ…ΠΎΠ΄: символ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ нСпосрСдствСнно Π·Π° Ρ‡ΠΈΡΠ»ΠΎΠΌ

BeginSSl

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° распознавания слуТСбного слова ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ лСксСмы Ρ‚ΠΈΠΏΠ° SSl

BeginConst

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° распознавания константы (симв. ΠΈΠ»ΠΈ Π»ΠΎΠ³.) ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ лСксСмы Ρ‚ΠΈΠΏΠ° Chr ΠΈΠ»ΠΈ Log

FormirRzd

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° формирования лСксСмы Ρ‚ΠΈΠΏΠ° Rzd (Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ)

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

Для задания сСмантики ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹: W-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, вСнский мСтаязык, аксиоматичСский ΠΈ Π΄Π΅Π½ΠΎΡ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π½Ρ‹Π΅ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ (АВ — Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ).

РассматриваСмыС Π² Π½Π°ΡΡ‚оящСм Ρ€Π°Π·Π΄Π΅Π»Π΅ АВ — Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ символам Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠ΅ ΡΠ΅ΠΌΠ°Π½Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»Π° вычислСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ².

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

Π’Π°Π±Π»ΠΈΡ†Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², Π½ΠΎ Π² ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΠ»Π΅ с ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Когда Π½Π° Π²Ρ…ΠΎΠ΄ подаСтся Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° лСксСм, ΠΌΡ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² (ВИ), смотрим Π±Ρ‹Π»Π° Π»ΠΈ описана эта пСрСмСнная Ρ€Π°Π½Π΅Π΅. Если Π±Ρ‹Π»Π°, Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ с ΠΊΠΎΠ΄ΠΎΠΌ ошибки. Если Π½Π΅Ρ‚, Ρ‚ΠΎ ΡΠΎΠ·Π΄Π°Π΅ΠΌ элСмСнт Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌ Π² ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΅Π΅ Ρ‚ΠΈΠΏ; выдСляСм ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π΅Π΅ Ρ‚ΠΈΠΏΡƒ, Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌ ссылку Π² ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ занСсти ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ это — пСрСмСнная (ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ количСство элСмСнтов = 1).

Если ΠΌΡ‹ ΠΎΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌ массив, Ρ‚ΠΎ ΠΌΡ‹ Π² ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Π’П заносим ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π΅ (количСство элСмСнтов). ПослС этого выдСляСм ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² Π’Π—, состоящСй ΠΈΠ· N ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² (N — количСство элСмСнтов Π² ΠΌΠ°ΡΡΠΈΠ²Π΅). И Π΄Π°Π»Π΅Π΅ записываСм ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π² Π’П Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ этого поля памяти (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива).

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с Π΄Π²ΡƒΠΌΡ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Boolean ΠΈ Char. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Ссли Π² Π½ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π§Ρ‚ΠΎΠ±Ρ‹ это ΡƒΡ‡Π΅ΡΡ‚ΡŒ, Π²Π²Π΅Π΄Π΅ΠΌ Π² ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ ячСйки памяти ΠΏΠΎΠ»Π΅ TypeZ (TChar, TBool), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°ΠΌ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранится Π² Π΄Π°Π½Π½ΠΎΠΉ ячСйкС. Π’Π°ΠΊΠΆΠ΅ Π² Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ значСния (Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹).

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ индСксы элСмСнтов массивов ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Π½ΠΈΠΌ Π½Π° Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΡ‹Π΅ значСния.

4.2 Атрибутная Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°

Πƒ"a1 ΠƒΠ„b1 := Πƒ"a2 ΠƒΠ„b2 Πƒ"a3 ΠƒΠ„b3

a2=a1; a3=b2; b1=b3;

Πƒ"a4 ΠƒΠ„b4 ΠƒΠ„x1 :='' ΠƒΠ„x2 ',' ΠƒΠ„y1 {WrRM}Πƒ"x3 Πƒ"y2 {FMB}Πƒ"a5 ΠƒΠ„b5 Πƒ"x4 ''

a5=a4; b4=b5; (x1, x3, x4)=x2; y2=y1;

< MasChar>Πƒ"a6 ΠƒΠ„b6 ΠƒΠ„x5 :='' ΠƒΠ„x6 ',' ΠƒΠ„y3 {WrRM}Πƒ"x7 Πƒ"y4 {FMC}Πƒ"a7 ΠƒΠ„b7 Πƒ"x8 ''

a7=a6; b6=b7; (x5, x7, x8)=x6; y4=y3;

^t1 :=''ΠƒΠ„x9 ',' ΠƒΠ„y5 {FUkTZEM}Πƒ"x10 Πƒ"y6 ΠƒΠ„t2 ''

t1=t2; x10=x9; y6=y5;

Πƒ"a8 ΠƒΠ„b8 :=''Πƒ"a9 ΠƒΠ„b9 ''Πƒ"a10 ΠƒΠ„b10

b8=b10; a9=a8; a10=b9;

Πƒ"a11 ΠƒΠ„b11 :=''Πƒ"a12 ΠƒΠ„b12 ''Πƒ"a13 ΠƒΠ„b13

b11=b13; a12=a11; a13=b12;

Πƒ"a14 ΠƒΠ„b14 :=Πƒ"a15 ΠƒΠ„b15

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