Π”ΠΈΠΏΠ»ΠΎΠΌΡ‹, курсовыС, Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚Ρ‹, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅...
Брочная ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅

ВСория языков программирования ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ трансляции

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

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

ВСория языков программирования ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ трансляции (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠšΠ£Π Π‘ΠžΠ’ΠΠ― Π ΠΠ‘ΠžΠ’Π

Π’Π΅ΠΌΠ°: «Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ языки ΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ»

Дисциплина: «Π’Сория языков программирования ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ трансляции»

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π“Π»Π°Π²Π° 1. Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ языки ΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

1.1 Π―Π·Ρ‹ΠΊΠΈ ΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ символов

1.1.1 Π¦Π΅ΠΏΠΎΡ‡ΠΊΠΈ символов ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π½ΠΈΠΌΠΈ

1.1.2 ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ языка. Бпособы задания языков

1.1.3 ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ языков программирования

1.2 ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

1.2.1 ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π€ΠΎΡ€ΠΌΠ° Бэкуса-Наура

1.2.2 Π”Ρ€ΡƒΠ³ΠΈΠ΅ способы задания Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ

1.3 ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ языков ΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ

1.3.1 ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ ΠΏΠΎ Π₯омскому

1.3.2 ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ языков

1.4 Π’Ρ‹Π²ΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ

1.4.1 Π¦Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°. Π‘Π΅Π½Ρ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ°

1.4.2 Π”Π΅Ρ€Π΅Π²ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π°

1.5 РаспознаватСли. Π—Π°Π΄Π°Ρ‡Π° Ρ€Π°Π·Π±ΠΎΡ€Π°

1.5.1 ΠžΠ±Ρ‰Π°Ρ схСма распознаватСля

1.5.2 Π’ΠΈΠ΄Ρ‹ распознаватСлСй ΠΈ ΠΈΡ… ΠΊΠ»Π°ΡΡΠΈΡ„икация

1.5.3 Π—Π°Π΄Π°Ρ‡Π° Ρ€Π°Π·Π±ΠΎΡ€Π° Π“Π»Π°Π²Π° 2. РСгулярныС языки

2.1 РСгулярныС мноТСства ΠΈ Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½Ρ‹Π΅ выраТСния

2.1.1 ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²Π° рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

2.1.2 УравнСния с Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½Ρ‹ΠΌΠΈ коэффициСнтами

2.2 ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρ‹ ΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

2.2.1 АвтоматныС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

2.2.2 ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π°

2.3 ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ рСгулярных языков

2.3.1 Бпособы задания рСгулярных языков

2.3.2 Бвойства рСгулярных языков Π“Π»Π°Π²Π° 3. ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ язык символ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° Π’ ΠΏΡ€Π΅ΠΆΠ½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π° ΠΏΠΎΠ΄ языками ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π»ΠΎΡΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ срСдство общСния ΠΌΠ΅ΠΆΠ΄Ρƒ людьми, Ρ‚. Π΅. имСлись Π² Π²ΠΈΠ΄Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ СстСствСнныС языки — русский, Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΈΠΉ, английский ΠΈ ΠΏΡ€. Π’ Π½Π°Ρ‡Π°Π»Π΅ Π₯Π₯ Π²Π΅ΠΊΠ° это прСдставлСниС ΠΏΡ€Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ измСнСния ΠΈ Π² Π½Π°ΡΡ‚оящСС врСмя ΠΏΠΎΠ΄ языком понимаСтся всякоС срСдство общСния, состоящСС ΠΈΠ· Π·Π½Π°ΠΊΠΎΠ²ΠΎΠΉ систСмы, мноТСства смыслов этой систСмы ΠΈ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ установлСнноС соотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ Π·Π½Π°ΠΊΠΎΠ² ΠΈ ΡΠΌΡ‹ΡΠ»Π°ΠΌΠΈ. ОсобСнно ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ (ΠΈ Π²ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ) класс ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ языки программирования, ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈ ΠΏΠΎΡΠ²ΡΡ‰Π΅Π½ наш курс.

Π‘Ρ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ сдСлало Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ тСкстов, относящихся ΠΊ ΡΠ°ΠΌΡ‹ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ языкам — СстСствСнным языкам, языкам Ρ„ΠΎΡ€ΠΌΡƒΠ», языкам программирования.

БущСствуСт Π²Π΅Π»ΠΈΠΊΠΎΠ΅ мноТСство ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдств Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ с ΡΠ°ΠΌΡ‹ΠΌΠΈ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ возмоТностями, ΠΈ Π°Ρ€Ρ…ΠΈΠ²Π°Ρ‚ΠΎΡ€Ρ‹, ΠΈ Ρ‚рансляторы для языков программирования ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠΈ для СстСствСнных языков.

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

Π“Π»Π°Π²Π° 1. Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ языки ΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

1.1 Π―Π·Ρ‹ΠΊΠΈ ΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ символов

1.1.1 Π¦Π΅ΠΏΠΎΡ‡ΠΊΠΈ символов ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π½ΠΈΠΌΠΈ

Π‘Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π΄ΠΈΠΌ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ опрСдСлСния ΠΈ Π²Π²Π΅Π΄Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ понятия.

Под Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ нСпустоС ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ мноТСство символов.

Π¦Π΅ΠΏΠΎΡ‡ΠΊΠ°, ΠΈΠ»ΠΈ строка — это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°, ΠΏΡ€ΠΈ этом символы Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ. Для Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π²Π°ΠΆΠ΅Π½ Π΅Π΅ ΡΠΎΡΡ‚Π°Π², порядок символов ΠΈ ΠΈΡ… ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ.

Π”Π»ΠΈΠ½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ являСтся количСство символов Π² Π½Π΅ΠΉ. НапримСр, Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° x = 'abcab' ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ |x| = 5.

Π”Π²Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ (Ρ€Π°Π²Π½Ρ‹): =, Ссли ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ состав ΠΈ ΠΏΠΎΡ€ΡΠ΄ΠΎΠΊ символов ΠΈ ΠΈΡ… ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ.

Π¦Π΅ΠΏΠΎΡ‡ΠΊΠ°, Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰Π°Ρ символов, называСтся пустой Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ, обозначаСтся Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ»ΠΈ .

Π›ΡŽΠ±Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ взятая Ρ‡Π°ΡΡ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ являСтся Π΅Π΅ ΠΏΠΎΠ΄Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ, собствСнный суффикс — это Ρ‡Π°ΡΡ‚ΡŒ строки, содСрТащая Π΅Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ символ ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰Π°Ρ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ, собствСнный прСфикс — это Ρ‡Π°ΡΡ‚ΡŒ строки, содСрТащая ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰Π°Ρ послСднСго.

Над Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠ΅ΠΉ, ΠΈΠ»ΠΈ сцСплСниСм (слоТСниСм) Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ, называСтся строка, получСнная ΠΈΡ… ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: x = 'abcab', y = 'cde', Ρ‚ΠΎΠ³Π΄Π° конкатСнация Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ x ΠΈ y Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄ z = xΒ· y = 'abcabcde'. Бвойства: Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ Π²Π°ΠΆΠ΅Π½ порядок символов, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ опСрация слоТСния Π½Π΅ ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΈΠ²Π½Π°, Ρ‚. Π΅. Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС ,. ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ ассоциативна, Ρ‚. Π΅., () = ().

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ x — это запись Π΅Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС, обозначаСтся xR. НапримСр, для Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ x = 'abcab' Π΅Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ xR = 'bacba'. Бвойство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ обращСния:, ()R= RR.

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ n Ρ€Π°Π· — это Π΅Π΅ ΡΡ†Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ (ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅) n Ρ€Π°Π·, обозначаСтся n.

Для пустой Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ справСдливы ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ равСнства:

|| = 0;

: = = ;

R = ;

n0: n = ;

: 0 = .

1.1.2 ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ языка. Бпособы задания языков

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС язык — это Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ символов ΠΈ ΠΏΡ€Π°Π²ΠΈΠ», ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… способы ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ этих символов ΠΌΠ΅ΠΆΠ΄Ρƒ собой для записи осмыслСнных тСкстов. Основой любого языка являСтся Π°Π»Ρ„Π°Π²ΠΈΡ‚, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ допустимых символов.

Π¦Π΅ΠΏΠΎΡ‡ΠΊΠ° символов являСтся Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ Π½Π°Π΄ Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠΌ Π£: (Π£), Ссли Π² Π½Π΅Π΅ входят Ρ‚ΠΎΠ»ΡŒΠΊΠΎ символы этого Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°.

Если — Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π°Π»Ρ„Π°Π²ΠΈΡ‚, Ρ‚ΠΎ:

+ — мноТСство всСх Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Π½Π°Π΄ Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠΌ Π±Π΅Π· .

* - мноТСство всСх Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Π½Π°Π΄ Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ .

Π―Π·Ρ‹ΠΊΠΎΠΌ L Π½Π°Π΄ Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠΌ Π£: L (Π£) — Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ счСтноС подмноТСство Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° всСх Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Π½Π°Π΄ этим Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠΌ. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ языка Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ ΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ сколь ΡƒΠ³ΠΎΠ΄Π½ΠΎ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ.

Для любого языка L (Π£) справСдливо L (Π£) Π£*.

Π―Π·Ρ‹ΠΊ L (Π£) Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ язык L (Π£): L (Π£) L (Π£), Ссли L (Π£) L (Π£).

Π”Π²Π° языка ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ (эквивалСнтны): L (Π£) = L (Π£), Ссли L (Π£) L (Π£) ΠΈ L (Π£) L (Π£).

ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠ΅ΠΉ (объСдинСниСм) языков L1 ΠΈ L2 Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ язык L, состоящий ΠΈΠ· Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… сцСплСний Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ языков L1 ΠΈ L2: L = L1Β· L2 = xΒ· y .

Π—Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅ Клини, ΠΈΠ»ΠΈ итСрация языка L, обозначаСтся L* ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ся рСкурсивно: 1) L0 = {Π»}, 2) Ln = LΒ· Ln-1 для n > 0, 3) L* = Ln для всСх n 0.

L+ = L*{Π»}.

Π―Π·Ρ‹ΠΊ L ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ суффиксным (прСфиксным) свойством, Ссли никакая Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° языка Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся суффиксом (прСфиксом) Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ.

Π―Π·Ρ‹ΠΊ состоит ΠΈΠ· Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ мноТСства Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ символов Π½Π°Π΄ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠΌ, ΠΈΠ»ΠΈ слов. Но Π½Π΅ Π»ΡŽΠ±Π°Ρ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° символов Π½Π°Π΄ этим Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠΌ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ языку, Ρ‚.ΠΊ. ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π° построСния допустимых Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ языка. Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ эти ΠΏΡ€Π°Π²ΠΈΠ»Π° — Π·Π½Π°Ρ‡ΠΈΡ‚ Π·Π°Π΄Π°Ρ‚ΡŒ язык. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ основных способа задания языка:

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

Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ способа пороТдСния Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ языка (Π·Π°Π΄Π°Π½ΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ языка) — ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚.Π½. Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° распознавания Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ языка — использованиС распознаватСля.

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

Π’ Π»ΡŽΠ±ΠΎΠΌ языкС ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ синтаксис ΠΈ ΡΠ΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΡƒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, трансляторы ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π΅Π»ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ с Π»Π΅ΠΊΡΠΈΡ‡Π΅ΡΠΊΠΈΠΌΠΈ конструкциями (лСксСмами), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ лСксикой языка. Π”Π°Π΄ΠΈΠΌ опрСдСлСния этих понятий.

Бинтаксис языка — это Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ», ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ допустимыС конструкции языка. Π§Π°Ρ‰Π΅ всСго синтаксис языка ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ строгого Π½Π°Π±ΠΎΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ», Π½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ это справСдливо Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… языков.

Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ° языка — это Ρ€Π°Π·Π΄Π΅Π», ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ языка. Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ° опрСдСляСт «ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ языка», Ρ‚. Π΅. Π·Π°Π΄Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСх допустимых Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ языка. Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° языков сСмантика опрСдСляСтся Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ.

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

1.1.3 ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ языков программирования

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

Для задания языка программирования Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ основных вопроса:

ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ мноТСство допустимых символов языка;

ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ мноТСство ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ языка;

Π·Π°Π΄Π°Ρ‚ΡŒ смысл ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… языков удаСтся Ρ€Π΅ΡˆΠΈΡ‚ΡŒ (ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ частично) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° вопроса.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ вопрос Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π»Π΅Π³ΠΊΠΎ. Алфавит языка ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚авляСт собой мноТСство Π΅Π³ΠΎ допустимых символов. Для языков программирования это, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ‚ΠΎΡ‚ Π½Π°Π±ΠΎΡ€ символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ввСсти с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹.

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

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

Π’Ρ€Π΅Ρ‚ΠΈΠΉ вопрос Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΎΡ‚носится ΠΊ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… языков. Для ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° Π½Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

1. ΠΈΠ·Π»ΠΎΠΆΠΈΡ‚ΡŒ смысл ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанной Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования, Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ языкС, Π±ΠΎΠ»Π΅Π΅ понятном Ρ‚ΠΎΠΌΡƒ, ΠΊΠΎΠΌΡƒ адрСсована ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°;

2. ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ смысла Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ «ΠΈΠ΄Π΅Π°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ», которая ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, написанных Π½Π° Π΄Π°Π½Π½ΠΎΠΌ языкС.

Π›ΡŽΠ±ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ — это ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, построСниС Π΅Π΅ Π±Π»ΠΎΠΊ-схСмы, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ описаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. ВсС эти способы ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π° Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, Π½ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ способа ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, насколько описаниС Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ соотвСтствуСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΏΠΎΠΊΠ° Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚. Для излоТСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅, понятном машинС — Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… — ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ трансляторы.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹; ΠΎΡ†Π΅Π½ΠΊΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ осущСствляСт Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ компиляторов Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ приходится Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ вопрос ΠΎ ΡΠΌΡ‹ΡΠ»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

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

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

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

Π˜Ρ‚Π°ΠΊ, возмоТности трансляторов ΠΏΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ осмыслСнности исходной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ практичСски Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ, поэтому сСмантичСскиС ошибки ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π° ΡΠΎΠ²Π΅ΡΡ‚ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

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

1.2 ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

1.2.1 ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π€ΠΎΡ€ΠΌΠ° Бэкуса-Наура

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

Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ описаниС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ построСно Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ систСмы ΠΏΡ€Π°Π²ΠΈΠ», ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΉ. ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ прСдставляСт собой ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΡƒΡŽ ΠΏΠ°Ρ€Ρƒ Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ символов (,), ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊ ΠΈ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΊΠ°ΠΊ «ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ «.

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

Говоря Π΄Π°Π»Π΅Π΅ ΠΎ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°Ρ… языков программирования, Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π° построСния синтаксичСских конструкций языка.

Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° G ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ся ΠΊΠ°ΠΊ Ρ‡Π΅Ρ‚Π²Π΅Ρ€ΠΊΠ° G (VT, VN, P, S), Π³Π΄Π΅ VT — мноТСство Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов (символы Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°);

VN — мноТСство Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов (слова, понятия, конструкции языка); VTVN=; V=VTVN — ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π°Π»Ρ„Π°Π²ΠΈΡ‚ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ G;

P — мноТСство ΠΏΡ€Π°Π²ΠΈΠ» Π²ΠΈΠ΄Π°, Π³Π΄Π΅ V+, V*;

SVN — Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ (Ρ†Π΅Π»Π΅Π²ΠΎΠΉ) символ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ G, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ начинаСтся процСсс пороТдСния Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ языка.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ символ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°Ρ… ΠΊΠ°ΠΊ Π»Π΅Π²ΠΎΠΉ, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€Π°Π²ΠΎΠΉ частСй ΠΏΡ€Π°Π²ΠΈΠ», Π½ΠΎ ΠΎΠ½ ΠΎΠ±ΡΠ·Π°Π½ Π±Ρ‹Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² Π»Π΅Π²ΠΎΠΉ части хотя Π±Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°. ΠŸΡ€Π°Π²ΠΈΠ»Π° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ строятся Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Π»Π΅Π²ΠΎΠΉ части ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ символ.

Π’ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅ ΠΏΡ€Π°Π²ΠΈΠ» Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько ΠΏΡ€Π°Π²ΠΈΠ», ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Π»Π΅Π²Ρ‹Π΅ части, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: 1, 2, …, n. Π’ΠΎΠ³Π΄Π° эти ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ΄Π½Ρƒ строку: 12n.

РассмотрСнная Ρ„ΠΎΡ€ΠΌΠ° записи ΠΏΡ€Π°Π²ΠΈΠ» Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ называСтся Ρ„ΠΎΡ€ΠΌΠΎΠΉ Бэкуса-Наура. Π’ Π½Π΅ΠΉ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ символы Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² ΡƒΠ³Π»ΠΎΠ²Ρ‹Π΅ скобки <>.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° пороТдСния Ρ†Π΅Π»Ρ‹Ρ… дСсятичных чисСл со Π·Π½Π°ΠΊΠΎΠΌ.

G ({0,1,2,3,4,5,6,7,8,9,-,+}, {<�число>,<�чс>,<οΏ½Ρ†ΠΈΡ„Ρ€Π°>}, P, <�число>).

P:

<�число> <�чс>+<�чс>-<�чс>

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

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

Π’ Π΄Π°Π½Π½ΠΎΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ мноТСство Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов содСрТит 3 элСмСнта (символы <�число>,<�чс>,<οΏ½Ρ†ΠΈΡ„Ρ€Π°>), мноТСство Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов — 12 элСмСнтов (10 Ρ†ΠΈΡ„Ρ€ ΠΈ Π΄Π²Π° Π·Π½Π°ΠΊΠ°), мноТСство P — 15 ΠΏΡ€Π°Π²ΠΈΠ», записанных Π² Ρ‚Ρ€ΠΈ строки. ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ символ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ — <�число>.

Π’ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ названия Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ измСнСния языка, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΅ΡŽ. Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ символы ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ нСльзя! Они ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρƒ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ языка.

Π Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½ΡƒΡŽ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ для Ρ†Π΅Π»Ρ‹Ρ… дСсятичных чисСл со Π·Π½Π°ΠΊΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅:

G ({0,1,2,3,4,5,6,7,8,9,-,+}, {S, T, F}, P, S).

P:

S T+T-T

T FTF

F 123 456 789.

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

Π’ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°Ρ… G ΠΈ G ΡΠ²Π½Π°Ρ рСкурсия присутствуСт Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°: <�чс> <�чс><οΏ½Ρ†ΠΈΡ„Ρ€Π°>, T TF.

Π§Ρ‚ΠΎΠ±Ρ‹ рСкурсия Π½Π΅ Π±Ρ‹Π»Π° бСсконСчной, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π² Π½Π΅ΠΉ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ символ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Π»Π΅Π²ΠΎΠΉ части Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°, Π³Π΄Π΅ ΠΎΠ½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ся, минуя самого сСбя. Π’ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°Ρ… G ΠΈ G ΡΡ‚ΠΎ достигаСтся Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ части Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°: <�чс> <οΏ½Ρ†ΠΈΡ„Ρ€Π°>, T F.

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

2.2 Π”Ρ€ΡƒΠ³ΠΈΠ΅ способы задания Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ

ΠšΡ€ΠΎΠΌΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ Бэкуса-Наура, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы записи Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ запись с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ мСтасимволов ΠΈ Π³Ρ€Π°Ρ„ичСскоС прСдставлСниС.

Π—Π°ΠΏΠΈΡΡŒ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ мСтасимволов ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ особыС символы — Ρ‚.Π½. мСтасимволы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π°ΠΊΡ‚ΡƒΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π² ΡΡ‚ΠΎΠΉ Ρ€ΠΎΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ () ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅, [] ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΈ {} Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки, Π° Ρ‚Π°ΠΊΠΆΠ΅ «,» запятыС ΠΈ «» ««ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Они ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ смысл:

() — Π² Π΄Π°Π½Π½ΠΎΠΌ мСстС ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π²ΡΠ΅Ρ… пСрСчислСнных Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½ΠΈΡ… Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ;

[ ] - указанная Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½ΠΈΡ… Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² ΠΏΡ€Π°Π²ΠΈΠ»Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈΠ»ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π°;

{} - указанная Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½ΠΈΡ… Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ любоС количСство Ρ€Π°Π· (Π² Ρ‚ΠΎΠΌ числС сколь ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ);

 — раздСляСт Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ символов Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобок;

" «- ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΈΠ· ΠΌΠ΅Ρ‚асимволов Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ символов языка.

ΠŸΡ€Π°Π²ΠΈΠ»Π° рассмотрСнной Π²Ρ‹ΡˆΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ G ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Ρ†Π΅Π»Ρ‹Ρ… дСсятичных чисСл со Π·Π½Π°ΠΊΠΎΠΌ Π² Π·Π°ΠΏΠΈΡΠΈ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ мСтасимволов Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

<�число> [(+, -)] <οΏ½Ρ†ΠΈΡ„Ρ€Π°>{<οΏ½Ρ†ΠΈΡ„Ρ€Π°>}

<οΏ½Ρ†ΠΈΡ„Ρ€Π°> (0,1,2,3,4,5,6,7,8,9)

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ «Ρ‡ΠΈΡΠ»ΠΎ Π΅ΡΡ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° символов, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ со Π·Π½Π°ΠΊΠ° + ΠΈΠ»ΠΈ -, Π΄ΠΎΠ»ΠΆΠ½Π° дальшС ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ Ρ†ΠΈΡ„Ρ€Ρƒ, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ†ΠΈΡ„Ρ€ любой Π΄Π»ΠΈΠ½Ρ‹».

Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° стала Π±ΠΎΠ»Π΅Π΅ понятной, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ рСкурсии, Π·Π°ΠΌΠ΅Π½ΠΈΠ² Π΅Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ {}. Π­Ρ‚Π° Ρ„ΠΎΡ€ΠΌΠ° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΠΌΠ° для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ‚ΠΈΠΏΠΎΠ² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ — для рСгулярных Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½ΠΈΠΆΠ΅.

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

Π’ Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ записи ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌΡƒ символу соотвСтствуСт Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°, построСнная Π² Π²ΠΈΠ΄Π΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π°. Π“Ρ€Π°Ρ„ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π²Π΅Ρ€ΡˆΠΈΠ½:

Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° (Π½Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π° — ΠΈΠ· Π½Π΅Π΅ начинаСтся входная Π΄ΡƒΠ³Π° Π³Ρ€Π°Ρ„Π°);

Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ символ — Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вписано ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ символа;

Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов — обозначаСтся ΠΎΠ²Π°Π»ΠΎΠΌ, ΠΊΡ€ΡƒΠ³ΠΎΠΌ ΠΈΠ»ΠΈ скруглСнным ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠΌ;

узловая Ρ‚ΠΎΡ‡ΠΊΠ° — ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π° Π·Π°ΠΊΡ€Π°ΡˆΠ΅Π½Π½Ρ‹ΠΌ ΠΊΡ€ΡƒΠΆΠΊΠΎΠΌ;

Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ‹Ρ…ΠΎΠ΄Π° — Π² Π½Π΅Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ выходная Π΄ΡƒΠ³Π° Π³Ρ€Π°Ρ„Π°.

КаТдая Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° ΠΈ ΠΎΠ΄Π½Ρƒ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ‹Ρ…ΠΎΠ΄Π°, Π½ΠΎ ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ Π²Π΅Ρ€ΡˆΠΈΠ½ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². Π’Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄ΡƒΠ³Π°ΠΌΠΈ, ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ Π΄ΡƒΠ³ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ, Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ — Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π΄ΡƒΠ³Π΅.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ символов, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌΡƒ символу Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ для этого символа. Начав Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π°, Π½ΡƒΠΆΠ½ΠΎ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Π΄ΡƒΠ³Π°ΠΌ Π΄ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π°, помСщая ΠΏΡ€ΠΈ этом всС Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ символы ΠΈΠ»ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ. Π§Π΅Ρ€Π΅Π· Π»ΡŽΠ±ΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ Π³Ρ€Π°Ρ„Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π½ΠΈ Ρ€Π°Π·Ρƒ ΠΈΠ»ΠΈ сколь ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΏΡƒΡ‚ΠΈ двиТСния. Если Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° содСрТит Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ символы, Π½ΡƒΠΆΠ½ΠΎ Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°, состоящая ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов. Для получСния Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ языка процСсс пороТдСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ с Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ символа Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

Описанная Ρ€Π°Π½Π΅Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° G ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Ρ†Π΅Π»Ρ‹Ρ… дСсятичных чисСл со Π·Π½Π°ΠΊΠΎΠΌ Π² Π³Ρ€Π°Ρ„ичСском Π²ΠΈΠ΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

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

1.3 ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ языков ΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ

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

1.3.1 ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ ΠΏΠΎ Π₯омскому

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

ΠŸΡƒΡΡ‚ΡŒ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π° ΠΊΠ°ΠΊ G(VT,VN,P,S), V=VTVN. Π’ ΡΠΎΠΎΡ‚вСтствии с ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠ΅ΠΉ Π₯омского Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ 4 Ρ‚ΠΈΠΏΠ° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ.

Π’ΠΈΠΏ 0 — Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ с Ρ„Ρ€Π°Π·ΠΎΠ²ΠΎΠΉ структурой, ΠΈΠ»ΠΈ Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ

На ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ» Π½Π΅ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ся Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, Ρ‚. Π΅. ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΈΠ΄:, Π³Π΄Π΅ V+, V*. Π­Ρ‚ΠΎ самый ΠΎΠ±Ρ‰ΠΈΠΉ Ρ‚ΠΈΠΏ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ. Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ относятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΡΡ‚ΠΎΠΌΡƒ ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ отнСсСны Π½ΠΈ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ самыми слоТными ΠΏΠΎ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π΅.

Π’ΠΈΠΏ 1 — ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΠΎ-зависимыС (ΠšΠ—) ΠΈ Π½Π΅ΡƒΠΊΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

К ΡΡ‚ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ относятся Π΄Π²Π° основных класса Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ.

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΠΎ-зависимыС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²ΠΈΠ΄Π° 1A2 12, Π³Π΄Π΅ 1,2V*, AVN, V+.

ΠΠ΅ΡƒΠΊΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²ΠΈΠ΄Π°, Π³Π΄Π΅, V+, .

Π’ ΠšΠ—-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°Ρ… ΠΏΡ€ΠΈ построСнии ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ языка ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ символ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΌΠ΅Π½Π΅Π½ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°ΠΌΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Скста, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ Π²ΡΡ‚рСчаСтся. Π¦Π΅ΠΏΠΎΡ‡ΠΊΠΈ 1 ΠΈ 2 Π² ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ… ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ контСкст: 1 — Π»Π΅Π²Ρ‹ΠΉ контСкст, 2 — ΠΏΡ€Π°Π²Ρ‹ΠΉ контСкст. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ пустыми.

Π’ Π½Π΅ΡƒΠΊΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°Ρ… ΠΏΡ€ΠΈ построСнии ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ языка Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° символов замСняСтся Π½Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Π½Π΅ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΉ Π΄Π»ΠΈΠ½Ρ‹.

Π­Ρ‚ΠΈ Π΄Π²Π° класса Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ эквивалСнтны.

ΠŸΡ€ΠΈ построСнии компиляторов Ρ‚Π°ΠΊΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ языки программирования ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ структуру ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ построСны с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ².

Π’ΠΈΠΏ 2 — ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΠΎ-свободныС (КБ) Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΠΎ-свободныС (КБ) Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²ΠΈΠ΄Π° A, Π³Π΄Π΅ AVN, V+. Π’ ΠΏΡ€Π°Π²ΠΎΠΉ части Ρƒ Π½ΠΈΡ… стоит всСгда хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ символ.

Π’Π°ΠΊΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π΅Ρ‰Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ΡƒΠΊΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ контСкстно-свободными (НКБ) Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°ΠΌΠΈ. БущСствуСт ΠΏΠΎΡ‡Ρ‚ΠΈ эквивалСнтный ΠΈΠΌ ΠΊΠ»Π°ΡΡ ΡƒΠΊΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… контСкстно-свободных (УКБ) Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ, ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΠΏΡƒΡΠΊΠ°Π΅Ρ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ, Ρ‚. Π΅. ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΈΠ΄ A, Π³Π΄Π΅ AVN, V*. Π’ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ, Ссли Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ наличия Π² ΡΠ·Ρ‹ΠΊΠ΅ пустой Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния, Π±ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ просто ΠΎ ΠšΠ‘-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°Ρ….

КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ описании синтаксичСских конструкций языков программирования.

Π’ΠΈΠΏ 3 — РСгулярныС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

К ΡΡ‚ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ относятся Π΄Π²Π° эквивалСнтных класса Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ: Π»Π΅Π²ΠΎΠ»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ ΠΈ ΠΏΡ€Π°Π²ΠΎΠ»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅.

Π›Π΅Π²ΠΎΠ»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π΄Π²ΡƒΡ… Π²ΠΈΠ΄ΠΎΠ²: A B, ΠΈΠ»ΠΈ A, Π³Π΄Π΅ A, BVN, VT+.

ΠŸΡ€Π°Π²ΠΎΠ»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ‚ΠΎΠΆΠ΅ Π΄Π²ΡƒΡ… Π²ΠΈΠ΄ΠΎΠ²: A B, ΠΈΠ»ΠΈ A, Π³Π΄Π΅ A, BVN, VT+.

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

Из ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠΎΠ² Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ любая рСгулярная Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° являСтся Ρ‚Π°ΠΊΠΆΠ΅ КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ, ΠΈΠ»ΠΈ любая Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ отнСсСна ΠΊ Ρ‚ΠΈΠΏΡƒ 0. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ УКБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΎΡ‚носятся ΠΊ Ρ‚ΠΈΠΏΡƒ 1, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²ΠΈΠ΄Π° A, нСдопустимыС Π² ΡΡ‚ΠΎΠΌ Ρ‚ΠΈΠΏΠ΅. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π° Ρ‚ΠΎΠΌΡƒ максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΌΡƒ Π½ΠΎΠΌΠ΅Ρ€Ρƒ Ρ‚ΠΈΠΏΠ°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ отнСсСна эта Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘Π°ΠΌΡ‹ΠΌΠΈ простыми ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Ρ‚ΠΈΠΏΠ° 3, самыми слоТными — Ρ‚ΠΈΠΏΠ° 0.

1.3.2 ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ языков

Π―Π·Ρ‹ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΡΠΎΠΎΡ‚вСтствии с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ Π·Π°Π΄Π°Π½Ρ‹, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΈΠ· Π²ΡΠ΅Ρ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΡ… ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ язык, выбираСтся Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° с ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ языков соотвСтствуСт слоТности Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ. ΠžΡ‚ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° языка зависит ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ распознаватСля этого языка.

Π’ΠΈΠΏ 0 — языки с Ρ„Ρ€Π°Π·ΠΎΠ²ΠΎΠΉ структурой

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

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС СстСствСнныС языки относятся ΠΊ ΡΡ‚ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ. Одно ΠΈ Ρ‚ΠΎ ΠΆΠ΅ слово Π² Π΅ΡΡ‚СствСнном языкС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΉ смысл Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Скста ΠΈ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠœΡ‹ Ρ‚Π°ΠΊΠΈΠ΅ языки Π΄Π°Π»Π΅Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ.

Π’ΠΈΠΏ 1 — контСкстно-зависимыС (ΠšΠ—) языки

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС врСмя Π½Π° Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ языка Ρ‚ΠΈΠΏΠ° 1 ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ зависит ΠΎΡ‚ Π΄Π»ΠΈΠ½Ρ‹ исходной Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ символов.

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

Однако языки программирования ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ структуру, поэтому Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Π°Ρ… ΠšΠ—-языки Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ся.

Π’ΠΈΠΏ 2 — контСкстно-свободныС (КБ) языки

КБ-языки Π»Π΅ΠΆΠ°Ρ‚ Π² ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° соврСмСнных языков программирования, Π½Π° ΠΈΡ… ΠΎΡΠ½ΠΎΠ²Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ процСссоры, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ†ΠΈΠΊΠ»Π° ΠΈ ΡƒΡΠ»ΠΎΠ²ΠΈΡ.

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

Π’ΠΈΠΏ 3 — рСгулярныС языки

Π­Ρ‚ΠΎ самый простой Ρ‚ΠΈΠΏ языков, ΠΈ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСнным Ρ‚ΠΈΠΏΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Π² Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… систСмах. ВрСмя Π½Π° Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ языка Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ зависит ΠΎΡ‚ ΠΈΡ… Π΄Π»ΠΈΠ½Ρ‹.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°ΠΊΠΈΠΌΠΈ языками ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ рСгулярныС мноТСства ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρ‹. Π”Π°Π»Π΅Π΅ ΠΌΡ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ ΠΈΡ… ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

1.4 Π’Ρ‹Π²ΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ

1.4.1 Π¦Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°. Π‘Π΅Π½Ρ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ°

Π’Ρ‹Π²ΠΎΠ΄ΠΎΠΌ называСтся процСсс пороТдСния Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ языка Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡ€Π°Π²ΠΈΠ» ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅ΠΉ язык Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

Π¦Π΅ΠΏΠΎΡ‡ΠΊΠ° 12 называСтся нСпосрСдствСнно Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈΠ· Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ 12 Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ G(VT,VN,P,S), V=VTVN, 1,2V*, V+, Ссли Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ G ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ P. НСпосрСдствСнная Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ обозначаСтся. Π’. Π΅. Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠ° ΠΈΠ· Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ нСсколько символов Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ символы согласно ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ этом Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ. Π’ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ любая ΠΈΠ· Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ 1, 2 (ΠΈΠ»ΠΈ ΠΎΠ±Π΅) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустой. Π’ ΠΏΡ€Π΅Π΄Π΅Π»Π΅ вся Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ, Ρ‚ΠΎΠ³Π΄Π° Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ P.

Π¦Π΅ΠΏΠΎΡ‡ΠΊΠ° называСтся Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈΠ· Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ — обозначаСтся *, Ссли выполняСтся ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… условий:

нСпосрСдствСнно Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠ° ΠΈΠ·: ;

такая, Ρ‡Ρ‚ΠΎ: Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠ° ΠΈΠ· ΠΈ Π½Π΅ΠΏΠΎΡΡ€Π΅Π΄ΡΡ‚Π²Π΅Π½Π½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠ° ΠΈΠ· (* ΠΈ).

Π­Ρ‚ΠΎ рСкурсивноС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ выводимости Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ. Π’. Π΅. Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠ° ΠΈΠ· Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ, Ссли ΠΎΠ½Π° Π»ΠΈΠ±ΠΎ нСпосрСдствСнно Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠ°, Π»ΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ нСпосрСдствСнно Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ ΠΎΡ‚ ΠΊ: 1 2i i+1n. Вакая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ нСпосрСдствСнно Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ называСтся Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄Π°, Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ — шагом Π²Ρ‹Π²ΠΎΠ΄Π°. Если нСпосрСдствСнно Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠ° ΠΈΠ· (), Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ся всСго ΠΎΠ΄ΠΈΠ½ шаг Π²Ρ‹Π²ΠΎΠ΄Π°.

Если Π²Ρ‹Π²ΠΎΠ΄ содСрТит Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ шагов, Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΡΡ‚, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠ° ΠΈΠ·: +. Если количСство шагов Π²Ρ‹Π²ΠΎΠ΄Π° извСстно, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρƒ Π·Π½Π°ΠΊΠ° выводимости Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ: 4 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠ° ΠΈΠ·-Π·Π° 4 шага. Π—Π°ΠΏΠΈΡΡŒ 0 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Ρ€Π°Π²Π½Ρ‹.

ЦСлСсообразно ΠΏΡ€ΠΈ записи Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС Π½Π°Π΄ Π·Π½Π°ΠΊΠΎΠΌ выводимости ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΡ€Π°Π²ΠΈΠ»Π°, согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ этот шаг.

Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ для любой Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ языка сущСствуСт СдинствСнная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π²Ρ‹Π²ΠΎΠ΄Π°, называСтся ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠΉ.

Π’Ρ‹Π²ΠΎΠ΄ называСтся Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΌ, Ссли ΠΈΠ· ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ нСльзя ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ шага, Ρ‚. Π΅. Ссли получСнная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° пустая ΠΈΠ»ΠΈ содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ символы Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ: VT*. Π¦Π΅ΠΏΠΎΡ‡ΠΊΠ°, получСнная Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π°, называСтся ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄Π°.

Π¦Π΅ΠΏΠΎΡ‡ΠΊΠ° символов V* называСтся ΡΠ΅Π½Ρ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠΎΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ G(VT,VN,P,S), Ссли ΠΎΠ½Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠ° ΠΈΠ· Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ символа Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ S: S *. Если Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΎΠ½Π° называСтся ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ ΡΠ΅Π½Ρ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠΎΠΉ.

Π’Ρ‹Π²ΠΎΠ΄ называСтся лСвосторонним, Ссли Π² Π½Π΅ΠΌ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ примСняСтся ΠΊ ΡΠ°ΠΌΠΎΠΌΡƒ Π»Π΅Π²ΠΎΠΌΡƒ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌΡƒ символу Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅. Аналогично опрСдСляСтся правосторонний Π²Ρ‹Π²ΠΎΠ΄.

Для Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ Π΄Π²ΡƒΡ… послСдних Ρ‚ΠΈΠΏΠΎΠ² (КБ ΠΈ Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½Ρ‹Ρ…) для любой ΡΠ΅Π½Ρ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ всСгда ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ лСвосторонний ΠΈΠ»ΠΈ правосторонний Π²Ρ‹Π²ΠΎΠ΄. Для Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² это Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ (структура ΠΏΡ€Π°Π²ΠΈΠ» Π½Π΅ Π²ΡΠ΅Π³Π΄Π° позволяСт Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΡ€Π°ΠΉΠ½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΊΡ€Π°ΠΉΠ½ΠΈΠΉ ΠΏΡ€Π°Π²Ρ‹ΠΉ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ символы Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅).

Рассмотрим снова ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Ρ†Π΅Π»Ρ‹Ρ… дСсятичных чисСл со Π·Π½Π°ΠΊΠΎΠΌ.

G ({0,1,2,3,4,5,6,7,8,9,-,+}, {S, T, F}, P, S).

P:

S T+T-T

T FTF

F 123 456 789.

ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΠΌ Π² Π½Π΅ΠΉ нСсколько Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Π²Ρ‹Π²ΠΎΠ΄Π°.

ST -TFFF -1 °F -19 (лСвосторонний);

T TF T0 TF0 T30 F30 730; (правосторонний)

S T TF TFF T6 °F F6 °F F63 263; (-)

S T TF T3 TF3 T63 F63 263; (правосторонний);

S T TF TFF T8 °F F8 °F (Π½Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΉ);

TFT TFTF TFFF TFF0 TF10 T210 F210 1210 (правосторонний).

Π—Π΄Π΅ΡΡŒ (1) — (4) — ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ ΡΠ΅Π½Ρ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π² (2) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° ΠΈΠ· Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ символа Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ (хотя Π² ΡΡ‚ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° ΠΈΠ· Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° T); (5) — просто ΡΠ΅Π½Ρ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° (Π½Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Π°Ρ). Π’ Π²Ρ‹Π²ΠΎΠ΄Π΅ (6) Π² ΡΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π½Π΅ ΠΏΡ€ΠΈΡΡƒΡ‚ствуСт ΡΠ΅Π½Ρ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ°, хотя Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° 1210 ΠΈ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ ΡΠ΅Π½Ρ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠΎΠΉ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ, достаточно ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄ этой Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΈΠ· Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ символа. А Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° TFT Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся ΡΠ΅Π½Ρ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠΎΠΉ, Ρ‚.ΠΊ. Π΅Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ символа. ВсС Π²Ρ‹Π²ΠΎΠ΄Ρ‹, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ (5), ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ (3), (4) Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° посрСдством Ρ€Π°Π·Π½Ρ‹Ρ… Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ². Π’Ρ‹Π²ΠΎΠ΄Ρ‹ (2), (4), (6) — правосторонниС, (1) — лСвосторонний, (3), (5) — Π½ΠΈ Ρ‚ΠΎ, Π½ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

1.4.2 Π”Π΅Ρ€Π΅Π²ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π°

Π”Π΅Ρ€Π΅Π²ΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄Π° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ G Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ся Π΄Π΅Ρ€Π΅Π²ΠΎ (Π³Ρ€Π°Ρ„), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ соотвСтствуСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚воряСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ условиям:

каТдая Π²Π΅Ρ€ΡˆΠΈΠ½Π° Π΄Π΅Ρ€Π΅Π²Π° обозначаСтся символом Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ AV;

ΠΊΠΎΡ€Π½Π΅ΠΌ Π΄Π΅Ρ€Π΅Π²Π° являСтся Π²Π΅Ρ€ΡˆΠΈΠ½Π°, обозначСнная Ρ†Π΅Π»Π΅Π²Ρ‹ΠΌ символом Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ S;

Π»ΠΈΡΡ‚ΡŒΡΠΌΠΈ Π΄Π΅Ρ€Π΅Π²Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ символами Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈΠ»ΠΈ символом ;

Ссли Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠ·Π΅Π» ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ символом AVN, Π° ΡΠ²ΡΠ·Π°Π½Π½Ρ‹Π΅ с Π½ΠΈΠΌ ΡƒΠ·Π»Ρ‹ — символами b1, b2,…, bnn > 0, 0 < i n, biV{}, Ρ‚ΠΎ Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ сущСствуСт ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ A b1b2…bn P.

По ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π΅ ΠΏΡ€Π°Π²ΠΈΠ» Π΄Π΅Ρ€Π΅Π²ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° всСгда ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ для Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ Ρ‚ΠΈΠΏΠ° 2 ΠΈ 3. Для строго Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ построСния Π΄Π΅Ρ€Π΅Π²Π° ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ лСвосторонним Π»ΠΈΠ±ΠΎ правосторонним Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ. Π”Π΅Ρ€Π΅Π²ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ двумя способами: свСрху Π²Π½ΠΈΠ· (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ лСвосторонний Π²Ρ‹Π²ΠΎΠ΄) ΠΈ ΡΠ½ΠΈΠ·Ρƒ Π²Π²Π΅Ρ€Ρ… (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ правосторонний).

Алгоритм построСния Π΄Π΅Ρ€Π΅Π²Π° свСрху Π²Π½ΠΈΠ·:

Ρ†Π΅Π»Π΅Π²ΠΎΠΉ символ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ помСщаСтся Π² Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ Π΄Π΅Ρ€Π΅Π²Π°;

Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ выбираСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ символ раскрываСтся Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ символов ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня;

срСди всСх ΠΊΠΎΠ½Ρ†Π΅Π²Ρ‹Ρ… Π²Π΅Ρ€ΡˆΠΈΠ½ Π΄Π΅Ρ€Π΅Π²Π° выбираСтся крайняя (лСвая для лСвостороннСго Π²Ρ‹Π²ΠΎΠ΄Π°, правая — для правостороннСго Π²Ρ‹Π²ΠΎΠ΄Π°) Π²Π΅Ρ€ΡˆΠΈΠ½Π°, обозначСнная Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ символом;

для Π½Π΅Π΅ выбираСтся Π½ΡƒΠΆΠ½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΈ ΠΎΠ½Π° снова раскрываСтся Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ Π²Π΅Ρ€ΡˆΠΈΠ½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ уровня;

Ссли всС ΠΊΠΎΠ½Ρ†Π΅Π²Ρ‹Π΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Ρ‹ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ символами, процСсс Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½. Π˜Π½Π°Ρ‡Π΅ — Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π½Π° ΡˆΠ°Π³ 3.

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

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ компилятор Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ свСрху Π²Π½ΠΈΠ· ΠΈ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡ€Π°Π²ΠΎ, для построСния Π΄Π΅Ρ€Π΅Π²Π° свСрху Π²Π½ΠΈΠ· ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ лСвосторонний Π²Ρ‹Π²ΠΎΠ΄; ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ ΠΈ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Рассмотрим Π΄Π΅Ρ€Π΅Π²ΡŒΡ Π²Ρ‹Π²ΠΎΠ΄Π° для ΡΠ΅Π½Ρ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ (1) ΠΈ (2).

1.5 РаспознаватСли. Π—Π°Π΄Π°Ρ‡Π° Ρ€Π°Π·Π±ΠΎΡ€Π°

1.5.1 ΠžΠ±Ρ‰Π°Ρ схСма распознаватСля

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

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

Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΡΠΎΡΡ‚Π°Π² компилятора ΠΈ ΡΠ²Π»ΡΠ΅Ρ‚ся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

Условная схСма распознаватСля ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ распознаватСля:

входная Π»Π΅Π½Ρ‚Π° — линСйная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ»Π΅Ρ‚ΠΎΠΊ, ΠΈΠ»ΠΈ ячССк, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ символ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°;

входная (ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π°Ρ) Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ Π²Ρ…ΠΎΠ΄Π½ΡƒΡŽ ячСйку; Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Π½Π° ΠΎΠ΄Π½Ρƒ ячСйку Π²ΠΏΡ€Π°Π²ΠΎ, Π²Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΌΠ΅ΡΡ‚Π΅;

устройство управлСния (Π£Π£), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ распознаватСля, ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ мноТСство состояний ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ;

внСшняя (рабочая) ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ распознаватСля ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ объСм.

Алфавит распознаватСля ΠΊΠΎΠ½Π΅Ρ‡Π΅Π½; ΠΎΠ½ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ всС допустимыС символы Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Π»Ρ„Π°Π²ΠΈΡ‚ символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π£Π£ ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ памяти распознаватСля.

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

Π Π°Π±ΠΎΡ‚Π° распознаватСля состоит ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ шагов, ΠΈΠ»ΠΈ Ρ‚Π°ΠΊΡ‚ΠΎΠ². Π’ΠΎ, ΠΊΠ°ΠΊΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ этот Ρ‚Π°ΠΊΡ‚, опрСдСляСтся Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ символом, состояниСм Π£Π£ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ, ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π½Ρ‹ΠΌ ΠΈΠ· ΠΏΠ°ΠΌΡΡ‚ΠΈ. Π˜Ρ‚Π°ΠΊ,

Π’Π°ΠΊΡ‚ состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ²:

входная Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° распознаватСля сдвигаСтся Π½Π° ΠΎΠ΄Π½Ρƒ ячСйку Π²ΠΏΡ€Π°Π²ΠΎ, Π²Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ остаСтся Π½Π° ΠΌΠ΅ΡΡ‚Π΅;

Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ помСщаСтся нСкоторая информация;

измСняСтся состояниС Π£Π£.

Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ распознаватСля происходит смСна ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ распознаватСля (ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ΅ описаниС) опрСдСляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ:

состояниС Π£Π£;

содСрТимоС Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π»Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π² Π½Π΅ΠΉ;

содСрТимоС внСшнСй памяти.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ называСтся Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ, Ссли Π£Π£ находится Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ состоянии, входная Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Π΅Ρ‚ самый Π»Π΅Π²Ρ‹ΠΉ символ Π½Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π»Π΅Π½Ρ‚Π΅, Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π°Ρ€Π°Π½Π΅Π΅ установлСнноС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ содСрТимоС.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ называСтся Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ, Ссли Π£Π£ находится Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… состояний, Π° Π²Ρ…одная Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Π΅Ρ‚ ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ†Π΅Π²ΠΎΠΉ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ ΠΈΠ»ΠΈ сошла с Π»Π΅Π½Ρ‚Ρ‹.

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

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

Π―Π·Ρ‹ΠΊ, опрСдСляСмый распознаватСлСм — это мноТСство всСх Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ допускаСт этот Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒ.

1.5.2 Π’ΠΈΠ΄Ρ‹ распознаватСлСй ΠΈ ΠΈΡ… ΠΊΠ»Π°ΡΡΠΈΡ„икация

РаспознаватСли ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π²ΠΈΠ΄Π° ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²: ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ устройства, устройства управлСния ΠΈ Π²Π½Π΅ΡˆΠ½Π΅ΠΉ памяти.

По Π²ΠΈΠ΄Π°ΠΌ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ устройства распознаватСли ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ двусторонними ΠΈ ΠΎΠ΄Π½ΠΎΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠΌΠΈ. ΠžΠ΄Π½ΠΎΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠ΅ распознаватСли Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΏΠΎ Π»Π΅Π½Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ (Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒ называСтся лСвосторонним). Π’Π°ΠΊΠΈΠ΅ распознаватСли Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ся Π½Π°Π·Π°Π΄ ΠΊ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½ΠΎΠΉ части Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ. ДвусторонниС распознаватСли Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π² Π»ΡŽΠ±ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.

По Π²ΠΈΠ΄Π°ΠΌ устройства управлСния распознаватСли Π±Ρ‹Π²Π°ΡŽΡ‚ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈ Π½Π΅Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅. Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒ являСтся Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, Ссли для любой допустимой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сущСствуСт Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Если для любой допустимой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ СдинствСнно Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ конфигурация, Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒ являСтся Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ. Для Π½Π΅Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ распознаватСля Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ шагС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ нСсколько Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈ этом ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ шагов ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ Π² Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ.

По Π²ΠΈΠ΄Π°ΠΌ внСшнСй памяти распознаватСли Π±Ρ‹Π²Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ²:

распознаватСли Π±Π΅Π· внСшнСй памяти;

распознаватСли с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ внСшнСй ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ;

с Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ внСшнСй ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.

РаспознаватСли Π±Π΅Π· внСшнСй памяти ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π°ΠΌΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π£Π£.

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

Π’ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Слях послСднСго Ρ‚ΠΈΠΏΠ° прСдполагаСтся, Ρ‡Ρ‚ΠΎ для ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ внСшняя ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ объСма, Π²Π½Π΅ зависимости ΠΎΡ‚ Π΄Π»ΠΈΠ½Ρ‹ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ. Π£ Ρ‚Π°ΠΊΠΈΡ… распознаватСлСй ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ°ΠΌΡΡ‚ΡŒ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ доступа.

ВсС Ρ‚Ρ€ΠΈ рассмотрСнных ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΡŽΡ‚ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ распознаватСлСй. НапримСр, Π² Π½Π΅ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ: «ΠΎΠ΄Π½ΠΎΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠΉ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒ с Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ стСковой ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ».

Π’ΠΈΠΏ распознаватСля Π² ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ опрСдСляСт Π΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Ρ†Π΅Π»ΠΎΠΌ. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ распознаватСля Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ связана с Ρ‚ΠΈΠΏΠΎΠΌ языка, Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ.

НапримСр, для языков Ρ‚ΠΈΠΏΠ° 1 (ΠšΠ—) распознаватСлями ΡΠ²Π»ΡΡŽΡ‚ΡΡ двусторонниС Π½Π΅Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρ‹ с Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ внСшнСй ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Π’Π°ΠΊΠΎΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² ΠŸΠž ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Но ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΎΡ‚ Π΄Π»ΠΈΠ½Ρ‹ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ сущСствСнно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ распознаватСлСй для ΠšΠ—-языков. Π’Π°ΠΊΠΈΠ΅ распознаватСли, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° тСкстов Π½Π° Π΅ΡΡ‚СствСнных языках, ΠΊΠΎΠ³Π΄Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ограничСния Π½Π° Ρ€Π°Π·Π±ΠΎΡ€ тСкста нСсущСствСнны.

Для КБ-языков распознаватСлями ΡΠ²Π»ΡΡŽΡ‚ΡΡ односторонниС Π½Π΅Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρ‹ с ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠΉ (стСковой) внСшнСй ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, срСди всСго мноТСства КБ-языков ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подкласс Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… распознаватСлями ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρ‹ с ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ — Π”ΠœΠŸΠ. Π­Ρ‚ΠΎΡ‚ класс языков Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ интСрСсСн для построСния компиляторов.

Для языков программирования Π±ΠΎΠ»Π΅Π΅ цСлСсообразно ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ компиляторы Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ КБ-языков, дополняя ΠΈΡ… ΡΠ΅ΠΌΠ°Π½Ρ‚ичСским Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ основы ΠšΠ—-языки — такая комбинация ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Для рСгулярных языков распознаватСлями ΡΠ²Π»ΡΡŽΡ‚ΡΡ односторонниС Π½Π΅Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ распознаватСли Π±Π΅Π· внСшнСй памяти — ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρ‹ (КА). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, любой Π½Π΅Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠšΠ всСгда ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ (Π”ΠšΠ). Π’ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Π°Ρ… распознаватСли Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ рСгулярных языков ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для лСксичСского Π°Π½Π°Π»ΠΈΠ·Π° тСкста исходной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. РСгулярныС языки находят ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… областях, связанных с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠŸΠž Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… систСм.

1.5.3 Π—Π°Π΄Π°Ρ‡Π° Ρ€Π°Π·Π±ΠΎΡ€Π°

Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΠΈ — Π΄Π²Π° нСзависимых ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для опрСдСлСния языка. Однако ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ компилятора для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ языка программирования Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Π°, которая Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой эти Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

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

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

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ эта Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½Π° Π½Π΅ Π΄Π»Ρ всСх Ρ‚ΠΈΠΏΠΎΠ² языков, хотя для ΠšΠ‘ ΠΈ Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½Ρ‹Ρ… языков Π·Π°Π΄Π°Ρ‡Π° Ρ€Π°Π·Π±ΠΎΡ€Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌΠ° ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π΅ ΠΏΡ€ΠΎΡΡ‚ΠΎ Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π»ΠΈ входная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π΄Π°Π½Π½ΠΎΠΌΡƒ языку, Π½ΠΎ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π΅ ΡΠΌΡ‹ΡΠ». ЀактичСски Ρ€Π°Π±ΠΎΡ‚Π° распознаватСля Π² ΡΠΎΡΡ‚Π°Π²Π΅ компилятора Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠΈ Π΄Π΅Ρ€Π΅Π²Π° Ρ€Π°Π·Π±ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли исходная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π½Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ языку, компилятор Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π΅ ΠΏΡ€ΠΎΡΡ‚ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„Π°ΠΊΡ‚ ошибки, Π½ΠΎ ΠΈ ΠΏΠΎ возмоТности ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π΅ Ρ‚ΠΈΠΏ ΠΈ ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π“Π»Π°Π²Π° 2. РСгулярныС языки

2.1 РСгулярныС мноТСства ΠΈ Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½Ρ‹Π΅ выраТСния

2.1.1 ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²Π° рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° гСнСрирования бСсконСчных языков посрСдством ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… описаний Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами. Одним ΠΈΠ· Π½ΠΈΡ… являСтся использованиС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для пороТдСния бСсконСчных Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ языка.

РСгулярноС мноТСство ΠΈ Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° V ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ся рСкурсивно ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

0 — рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ рСгулярноС мноТСство;

— Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ рСгулярноС мноТСство {};

aV a — рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ рСгулярноС мноТСство {a};

Ссли p ΠΈ q — ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ рСгулярныС выраТСния, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ рСгулярныС мноТСства P ΠΈ Q, Ρ‚ΠΎ p+q, pq, p* - рСгулярныС выраТСния, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ соотвСтствСнно рСгулярныС мноТСства PQ, PQ, P*;

Π½ΠΈΡ‡Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ рСгулярным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½Ρ‹ΠΌ мноТСством Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся.

Π˜Π½Ρ‹ΠΌΠΈ словами, рСгулярныС мноТСства — это Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ символов Π½Π°Π΄ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠΌ, построСнныС с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ объСдинСния, ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ ΠΈ Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΡ.

ВсС рСгулярныС языки ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой рСгулярныС мноТСства.

Π”Π²Π° рСгулярных выраТСния ΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½Ρ‹: =, Ссли ΠΎΠ½ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ мноТСство.

КаТдоС рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ рСгулярноС мноТСство, Π½ΠΎ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ рСгулярного мноТСства ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ Π·Π°Π΄Π°ΡŽΡ‰ΠΈΡ… Π΅Π³ΠΎ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

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

НапримСр, язык, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой мноТСство всСх Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ ΠΈΠ· Π½ΡƒΠ»Π΅ΠΉ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ описан эквивалСнтными рСгулярными выраТСниями Π±1 ΠΈ Π±2: Π±1 = (0+1)*, Π±2 = (0*1*)*.

ΠŸΡƒΡΡ‚ΡŒ, , — рСгулярныС выраТСния. Π’ΠΎΠ³Π΄Π° свойства рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΠΎΡ€ΠΌΡƒΠ»:

***

(+)()+

(+)+

(+)=+

()()

**

+*=*+=*

0*=

0=0=0

0+=+0=

==

(*)**

ВсС эти свойства Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π° Ρ‚Π΅ΠΎΡ€ΠΈΠΈ мноТСств, Ρ‚.ΠΊ. рСгулярныС выраТСния — это обозначСния для ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… мноТСств.

2.1.2 УравнСния с Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½Ρ‹ΠΌΠΈ коэффициСнтами

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ уравнСния с Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½Ρ‹ΠΌΠΈ коэффициСнтами Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: X=X+; X=X+, Π³Π΄Π΅, V* — рСгулярныС выраТСния Π½Π°Π΄ Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠΌ V, Π° XV. Π”Π²Π° Π²ΠΈΠ΄Π° записи ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ (правосторонняя ΠΈ Π»Π΅Π²ΠΎΡΡ‚оронняя запись) связаны с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ для рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ опСрация ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ свойством коммутативности. ОбС записи Ρ€Π°Π²Π½ΠΎΠΏΡ€Π°Π²Π½Ρ‹.

РСшСниями Ρ‚Π°ΠΊΠΈΡ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ Π±ΡƒΠ΄ΡƒΡ‚ рСгулярныС мноТСства. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ, Ссли Π²Π·ΡΡ‚ΡŒ РМ, ΡΠ²Π»ΡΡŽΡ‰Π΅Π΅ΡΡ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ уравнСния, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π Π’ ΠΈ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅, получится тоТдСствСнноС равСнство.

РСшСниСм ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уравнСния являСтся рСгулярноС мноТСство, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ *. Если ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ вмСсто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ X Π² ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ X+=(*)+=6 (*)+=13(*)+=5(* +)=1* =X.

Аналогично, для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ уравнСния Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄ *. ΠŸΠΎΠ΄ΡΡ‚Π°Π²ΠΈΠ² Π΅Π³ΠΎ Π² ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ тоТдСство.

Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ СдинствСнными. НапримСр, Ссли рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ мноТСство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ содСрТит ΠΏΡƒΡΡ‚ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ, Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ уравнСния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любоС мноТСство, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ X=*(+), Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ мноТСство (Π² Ρ‚ΠΎΠΌ числС Π½Π΅ Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½ΠΎΠ΅). Однако ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ — наимСньшиС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ для Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ. Они Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ наимСньшСй ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.

Из Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ систСму ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ с Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½Ρ‹ΠΌΠΈ коэффициСнтами. НапримСр, Π² ΠΏΡ€Π°Π²ΠΎΡΡ‚ΠΎΡ€ΠΎΠ½Π½Π΅ΠΉ записи такая систСма Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄:

X1=10+11X1+12X2+…+1nXn;

X2=20+21X1+22X2+…+2nXn;

Xi=i0+i1X1+i2X2+…+inXn;

Xn=n0+n1X1+n2X2+…+nnXn;

Π’ Π΄Π°Π½Π½ΠΎΠΉ систСмС всС коэффициСнты ij ΡΠ²Π»ΡΡŽΡ‚ΡΡ рСгулярными выраТСниями Π½Π°Π΄ Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠΌ V, Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ Π²Ρ…одят Π² ΡΡ‚ΠΎΡ‚ Π°Π»Ρ„Π°Π²ΠΈΡ‚: XiV i.

БистСмы ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ с Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½Ρ‹ΠΌΠΈ коэффициСнтами Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… подстановок. Рассмотрим ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для правостороннСй записи. Алгоритм Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½ΠΎΠΌΠ΅Ρ€Π° шага i.

Алгоритм Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:

ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ i:=1.

Если i=n, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡˆΠ°Π³Ρƒ 4, ΠΈΠ½Π°Ρ‡Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ i-Π΅ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅:

Xi=iXi+i, Π³Π΄Π΅ i=ii, i=i0+i i+1 Xi+1+…+i n Xn, Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Xi=i*i. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ это Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅ уравнСния для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Xi+1,…, Xn.

Π£Π²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ i Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΡˆΠ°Π³Ρƒ 2.

ПослС всСх подстановок ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ для Xn Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄: Xn=nXn+, Π³Π΄Π΅ n=nn, Π° — рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π°Π΄ Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠΌ V*, Ρ‚. Π΅. Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Xi. Π’ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Xn=n*.

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