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

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΊ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ

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

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

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΊ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠ˜ΠΠ˜Π‘Π’Π•Π Π‘Π’Π’Πž ΠžΠ‘Π ΠΠ—ΠžΠ’ΠΠΠ˜Π― И НАУКИ Π Π€ Π€ΠΈΠ»ΠΈΠ°Π» Π€Π“Π‘ΠžΠ£ «Π”Π“Π’Π£» Π² Π³. ΠšΠ°ΡΠΏΠΈΠΉΡΠΊ ΠšΠ°Ρ„Π΅Π΄Ρ€Π° ΠŸΠžΠ’Π’ ΠΈ ΠΠ‘

ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°

По Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅:

" ВСория языков программирования"

Π½Π° Ρ‚Π΅ΠΌΡƒ:

" ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΊ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ"

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π°:

студСнт 4 курса Π³Ρ€. М831

МагомСдов К.К.

ΠŸΡ€ΠΈΠ½ΡΠ»Π°: Π‘ΡƒΠ»Π΅ΠΉΠΌΠ°Π½ΠΎΠ²Π° О.Π¨.

Каспийск 2011 Π³.

Аннотация

ЦСлью Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΊ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ, Ρ‚. Π΅.:

1. Π£Π΄Π°Π»ΠΈΡ‚ΡŒ бСсплодныС символы

2. Π£Π΄Π°Π»ΠΈΡ‚ΡŒ нСдостиТимыС символы

3. Π£ΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° с ΠΏΡƒΡΡ‚ΠΎΠΉ ΠΏΡ€Π°Π²ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ

4. Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ†Π΅ΠΏΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π Π°Π±ΠΎΡ‚Π° содСрТит:

_____ страниц машинописного тСкста

12 рисунков

3 библиографичСских источника

  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  • Π—Π°Π΄Π°Π½ΠΈΠ΅
  • ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΊ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ
  • ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ
  • Алгоритм удалСния нСдостиТимых символов
  • Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ†Π΅ΠΏΠ½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ»
  • ОписаниС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€
  • Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

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

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

Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ синтаксисом, Π½ΠΎ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ инструмСнтом для синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°. Бамая общая схСма синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°, построСнная Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

1. ОписаниС синтаксиса языка даСтся ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ срСдствами Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ.

2. Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° устанавливаСт свойства Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ исходя ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ», ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

3. ΠŸΡ€Π°Π²ΠΈΠ»Π°, мноТСства Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… символов ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒ.

4. Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒ прСдставляСт собой Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ (ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ наряду с Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ строкой, Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ элСмСнта ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ стСк.

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

БтСковая структура являСтся процСссом ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° дСйствий, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… синтаксичСскому Π°Π½Π°Π»ΠΈΠ·Ρƒ. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

ОписаниС синтаксиса Π² Π²ΠΈΠ΄Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ являСтся Π΅Π΅ ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΌ тСкстом.

Π’Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·ΡŒ синтаксиса ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ

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

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

Из Π²ΡΠ΅Ρ… классов Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠšΠ‘ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΡΠΈΠ½Ρ‚аксичСском Π°Π½Π°Π»ΠΈΠ·Π΅. Они Π΄Π°ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ смысл ΠΏΠΎΠ½ΡΡ‚ΠΈΡŽ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ смысл.

ΠΠ΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ символ — ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта синтаксиса ΠΈ ΠΌΠ΅ΡΡ‚ΠΎ Π΅Π³ΠΎ вхоТдСния Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ элСмСнты синтаксиса. ΠšΡ€ΠΎΠΌΠ΅ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ², явно ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΡ… синтаксичСскиС Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹, для ΠΌΠ½ΠΎΠ³ΠΈΡ… элСмСнтов синтаксиса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρ‹.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ понятия ΠΈ опрСдСлСния.

Алфавит — это ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ мноТСство символов.

НапримСр, Π°Π»Ρ„Π°Π²ΠΈΡ‚ A = {a, b, c, +,! } содСрТит 5 Π±ΡƒΠΊΠ², Π° Π°Π»Ρ„Π°Π²ΠΈΡ‚ B = {00, 01, 10, 11} содСрТит 4 Π±ΡƒΠΊΠ²Ρ‹, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит ΠΈΠ· Π΄Π²ΡƒΡ… символов.

Π¦Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ символов Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅ V Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ся любая конСчная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов этого Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°.

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

Π‘ΠΎΠ»Π΅Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° символов Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅ V ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

1) — Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅ V;

2) Ссли Π± — Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅ V ΠΈ a — символ этого Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°, Ρ‚ΠΎ Π±a ΠΈΠ»ΠΈ, Π° — Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅ V;

3) Π² — Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅ V Ρ‚ΠΎΠ³Π΄Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° являСтся Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ Π² ΡΠΈΠ»Ρƒ (1) ΠΈ (2).

Если Π± ΠΈ Π² — Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ, Ρ‚ΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π±Π² Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ся ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠ΅ΠΉ (ΠΈΠ»ΠΈ сцСплСниСм) Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Π± ΠΈ Π².

НапримСр, Ссли Π± = ab ΠΈ Π² = cd, Ρ‚ΠΎ Π±Π² = abcd.

Для любой Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π± всСгда Π± = Π± = Π±.

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ (ΠΈΠ»ΠΈ рСвСрсом) Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π± называСтся Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°, символы ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ записаны Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС.

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π± Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Π±R.

НапримСр, Ссли Π± = abcdef, Ρ‚ΠΎ Π±R = fedcba.

Для пустой Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ: = R.

n-ΠΎΠΉ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π± (Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Π±n) называСтся конкатСнация n Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Π±

Π±0 =; Π±n = Π±Π±n-1 = Π±n-1Π±.

Π”Π»ΠΈΠ½Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ - это число ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π΅Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².

НапримСр, Ссли Π± = abcdefg, Ρ‚ΠΎ Π΄Π»ΠΈΠ½Π° Π± Ρ€Π°Π²Π½Π° 7.

Π”Π»ΠΈΠ½Ρƒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π± Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ |Π±|. Π”Π»ΠΈΠ½Π° Ρ€Π°Π²Π½Π° 0.

Π―Π·Ρ‹ΠΊ Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅ V — это подмноТСство Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ Π² ΡΡ‚ΠΎΠΌ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅.

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ Ρ‡Π΅Ρ€Π΅Π· V* мноТСство, содСрТащСС всС Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅ V, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡƒΡΡ‚ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ .

НапримСр, Ссли V={0,1}, Ρ‚ΠΎ V* = {, 0, 1, 00, 11, 01, 10, 000, 001, 011,. }.

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ Ρ‡Π΅Ρ€Π΅Π· V+ мноТСство, содСрТащСС всС Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅ V, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡƒΡΡ‚ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ .

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, V* = V+ U {}.

Ясно, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ язык Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅ V ΡΠ²Π»ΡΠ΅Ρ‚ся подмноТСством мноТСства V*.

Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… способов описания языков. Один ΠΈΠ· Π½ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. ИмСнно этот способ описания языков ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‡Π°Ρ‰Π΅ всСго.

Π—Π°Π΄Π°Π½ΠΈΠ΅

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΊ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ - это КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ нСдостиТимых ΠΈ Π±Π΅ΡΠΏΠ»ΠΎΠ΄Π½Ρ‹Ρ… символов, Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈΠΏΡ€Π°Π²ΠΈΠ» («ΠΏΡƒΡΡ‚Ρ‹Ρ…» ΠΏΡ€Π°Π²ΠΈΠ»). ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°ΠΌΠΈ Π² ΠΊΠ°Π½ΠΎΠ½ΠΈΡ‡Π΅ΡΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΡƒΡŽ КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ ΠΊ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС бСсплодныС символы;

ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС нСдостиТимыС символы;

ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒΠΏΡ€Π°Π²ΠΈΠ»Π°;

ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ†Π΅ΠΏΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ шаги прСобразования Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ порядкС, ΠΈ Π½ΠΈΠΊΠ°ΠΊ ΠΈΠ½Π°Ρ‡Π΅.

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

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

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: символ A Ρ” VN Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ся бСсплодным Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ G = (VT, VN, P, S), Ссли мноТСство пусто.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: символ x Ρ” (VT U VN) называСтся нСдостиТимым Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ G = (VT, VN, P, S), Ссли ΠΎΠ½ Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΠ΅Ρ‚ся Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅Π½Ρ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ этой Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

Алгоритм удалСния бСсплодных символов

Π’Ρ…ΠΎΠ΄: КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° G = (VT, VN, P, S).

Π’Ρ‹Ρ…ΠΎΠ΄: КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° G' = (VT, VN', P', S), Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰Π°Ρ бСсплодных символов, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ L (G) = L (G').

ΠœΠ΅Ρ‚ΠΎΠ΄:

РСкурсивно строим мноТСства N0, N1,.

1. N0 =, i = 1.

2. Ni = (A >) Ρ” P ΠΈ Ρ” (Ni-1 U VT) * U Ni-1.

3. Если Ni? Ni-1, Ρ‚ΠΎ i = i+1 ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΡˆΠ°Π³Ρƒ 2, ΠΈΠ½Π°Ρ‡Π΅ VN' = Ni; P' состоит ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ» мноТСства P, содСрТащих Ρ‚ΠΎΠ»ΡŒΠΊΠΎ символы ΠΈΠ· VN' VT; G' = (VT, VN', P', S).

Алгоритм удалСния нСдостиТимых символов

Π’Ρ…ΠΎΠ΄: КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° G = (VT, VN, P, S)

Π’Ρ‹Ρ…ΠΎΠ΄: КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° G' = (VT', VN', P', S), Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰Π°Ρ нСдостиТимых символов, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ L (G) = L (G').

ΠœΠ΅Ρ‚ΠΎΠ΄:

1. V0 = {S}; i = 1.

2. Vi = x Ρ” (VT U VN), (A > x) P ΠΈ A Ρ” Vi-1 U Vi-1.

3. Если Vi? Vi-1, Ρ‚ΠΎ i = i+1 ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΡˆΠ°Π³Ρƒ 2, ΠΈΠ½Π°Ρ‡Π΅ VN' = Vi VN; VT' = Vi VT; P' состоит ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ» мноТСства P, содСрТащих Ρ‚ΠΎΠ»ΡŒΠΊΠΎ символы ΠΈΠ· Vi; G' = (VT', VN', P', S).

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ символов сопровоТдаСтся ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ» Π²Ρ‹Π²ΠΎΠ΄Π°, содСрТащих эти символы.

Если Π² ΡΡ‚ΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ шаги (1) ΠΈ (2), Ρ‚ΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ.

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим контСкстно-ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡƒΡŽ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ G Ρ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ S > U, S > VZ, T > aa, T > bb, U > aUa, U > bUb, V > aTb, V > bTa, W > YZY, W > aab, X > Xa, X > Xb, X > Π΅, Y > YY, Y > aU, Y > Π΅, Z > W, Z > b. Π£Π΄Π°Π»ΠΈΠ² Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, содСрТащиС бСсплодный символ U, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ G1: S > VZ, T > aa, T > bb, V > aTb, V > bTa, W > YZY, W > aab, X > Xa, X > Xb, X > Π΅, Y > YY, Y > Π΅, Z > W, Z > b.

Π’ Π½Π΅ΠΉ символ X ΡΠ²Π»ΡΠ΅Ρ‚ся нСдостиТимым. Π£Π΄Π°Π»ΠΈΠ² Ρ‚Ρ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°, содСрТащиС X, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ G2 с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ: S > VZ, T > aa, T > bb, V > aT b, V > bT a, W > YZY, W > aab, Y > YY, Y > Π΅, Z > W, Z > b. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, L (G) = L (G2) ΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° G2 Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ бСсплодных ΠΈ Π½Π΅Π΄ΠΎΡΡ‚ΠΈΠΆΠΈΠΌΡ‹Ρ… символов.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡƒΠΊΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ

ПослСдний Π²ΠΈΠ΄ рассматриваСмых ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ связан с ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ» с ΠΏΡƒΡΡ‚ΠΎΠΉ ΠΏΡ€Π°Π²ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ Π²ΠΈΠ΄Π° A > называСтся «ΠΏΡƒΡΡ‚Ρ‹ΠΌ» (Π°Π½Π½ΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ) ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° называСтся Π½Π΅ΡƒΠΊΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ ΠΈΠ»ΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ Π±Π΅Π· «ΠΏΡƒΡΡ‚Ρ‹Ρ…» ΠΏΡ€Π°Π²ΠΈΠ», Ссли Π»ΠΈΠ±ΠΎ

1) схСма Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π°Π½Π½ΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ»,

2) Π»ΠΈΠ±ΠΎ схСма Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π²ΠΈΠ΄Π° S >, Π³Π΄Π΅ S — Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ символ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» S Π½Π΅ Π²ΡΡ‚рСчаСтся Π² ΠΏΡ€Π°Π²Ρ‹Ρ… частях ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

Для Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ, содСрТащих Π°Π½Π½ΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, справСдливо ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅.

Π£Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ G', содСрТащСй Π°Π½Π½ΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΡƒΡŽ Π΅ΠΉ Π½Π΅ΡƒΠΊΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ G, Ρ‚Π°ΠΊΡƒΡŽ Ρ‡Ρ‚ΠΎ L (G') =L (G).

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

Если ΠΆΠ΅ Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π²ΠΈΠ΄Π° S >, Π³Π΄Π΅ S — Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ символ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» S Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΏΡ€Π°Π²Ρ‹Π΅ части Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ» Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ ввСсти Π½ΠΎΠ²Ρ‹ΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ символ S' ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ S > двумя Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ: S' > ΠΈ S'> S.

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ способа построСния Π½Π΅ΡƒΠΊΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ, ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠΌ Π°Π½Π½ΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ:

G ({a, b}, {S}, P = { S > aSbS, S > bSaS, S > }, S).

Выполняя всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π·Π°ΠΌΠ΅Π½Ρ‹ символа S Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²ΠΈΠ΄Π°:

S > aSbS, S > abS, S > aSb, S > ab.

ΠŸΠΎΡΡ‚ΡƒΠΏΠ°Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ со Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ, ΠΈΠΌΠ΅Π΅ΠΌ:

S > bSaS, S >baS, S > bSa, S > ba.

Учитывая, Ρ‡Ρ‚ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ символ, ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΠΉ Π°Π½Π½ΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΏΡ€Π°Π²Ρ‹Π΅ части Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ» Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Π·Π°ΠΌΠ΅Π½ΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ S > ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ Π²ΠΈΠ΄Π° S' > ΠΈ S' > S.

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½Π½Π°Ρ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ» ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ мноТСство ΠΏΡ€Π°Π²ΠΈΠ» искомой Π½Π΅ΡƒΠΊΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

S' > S |, S > aSbS | abS | aSb | ab | bSaS |?baS | bSa | ba

ВсС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ прСобразования Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΏΡ€ΠΈ построСнии ΠΊΠ°ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½Ρ‹Ρ… Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΎΠ².

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ†Π΅ΠΏΠ½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ»

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π²ΠΈΠ΄Π° A > B, Π³Π΄Π΅ A, B Ρ” VN, называСтся Ρ†Π΅ΠΏΠ½Ρ‹ΠΌ.

Для КБ-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ G, содСрТащСй Ρ†Π΅ΠΏΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΡƒΡŽ Π΅ΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ G', Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ Ρ†Π΅ΠΏΠ½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ».

ИдСя Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ.

Если Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° G ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π° A > B, B > C, C > aX, Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ, А > aX, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹Π²ΠΎΠ΄, А => B => C => aX Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ aX Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ G ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ G' с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€Π°Π²ΠΈΠ»Π° A > aX.

1. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ, А Ρ” N ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ NA={BΒ¦A =>*B} ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π°) ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ N0 = {A} ΠΈ i=1.

Π±) ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Ni ={CΒ¦B>C ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π  ΠΈ Π’ Ρ” Ni-1 } U Ni-1.

Π²) Если Ni? Ni-1, ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ i = i+1 ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ шаг (Π±).

Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ NA = Ni.

2. ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π ' Ρ‚Π°ΠΊ: Ссли Π’ > Π± ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π  ΠΈ Π½Π΅ являСтся Ρ†Π΅ΠΏΠ½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² Π ' ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, А > Π± для всСх Ρ‚Π°ΠΊΠΈΡ… А, Ρ‡Ρ‚ΠΎ Π’ Ρ” NА.

3. ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ G' = (VT, VN, P', S).

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ†Π΅ΠΏΠ½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» ΠΈΠ· Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ G:

G = ({+,*, (,), a}, {E, T, F}, P= F, F > (E), E).

РазобьСм ΠΏΡ€Π°Π²ΠΈΠ»Π° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π½Π° Π΄Π²Π° подмноТСства:

P1 = {E > T, T > F},

P2 = E > E+T, T > T*F, F > (E)

На ΡˆΠ°Π³Π΅ (1) NΠ• = {E, T, F}, NT = {T, F}, NF = {F}. ПослС шага (2) мноТСство Π ' станСт Ρ‚Π°ΠΊΠΈΠΌ

E > T+T | T*F | (E) | a

T > T*F | (E) | a

F > (E) | a

ОписаниС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€

1) Анализ

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅: ΠΏΡ€Π°Π²ΠΈΠ»Π°, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² Memo1.

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅: ΠΏΡ€Π°Π²ΠΈΠ»Π°, Π²Ρ‹Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² Memo2.

procedure TForm1. btn1Click (Sender: TObject);

label l;

BEGIN

mmo2. Clear;

for i: =0 to mmo1. Lines. Count do

if Length (mmo1. Lines [i]) >2 then begin

mm: = []; s: =mmo1. Lines [i];

for j: =0 to Length (s) do begin

if (s [j] in ['А'. 'Я']) or (s [j] in ['а'. 'я']) then mmo1. Lines. Delete (i);

mm: =mm+ [s [j]]; end;

if (not (s in ['A'. 'Z'])) or (s <>'-') or (' ' in mm) then mmo1. Lines. Delete (i);

end else mmo1. Lines. Delete (i);

for i: =0 to mmo1. Lines. Count do begin

s: =mmo1. Lines [i];

n: =Pos ('/', s); Delete (s, n,1);

m: =Pos ('/', s); Delete (s, m,1);

if (n>0) and (m>0) and (n

mmo2. Lines. Add (Copy (s, 1, n-1));

mmo2. Lines. Add (Copy (s, 1,2) +Copy (s, n, m-n));

mmo2. Lines. Add (Copy (s, 1,2) +Copy (s, m, Length (s) — m+1));

goto l;

end;

IF n>0 then begin

mmo2. Lines. Add (Copy (s, 1, n-1));

mmo2. Lines. Add (Copy (s, 1,2) +Copy (s, n, Length (s) — n+1));

goto l;

end;

IF (n=0) and (Length (s) >2) then mmo2. Lines. Add (s);

l:

end;

for i: =0 to mmo2. Lines. Count do begin p [i]: =mmo2. Lines [i];

mn [i]: = [];

for j: =3 to Length (p [i]) do if p [i, j] in ['A'. 'Z'] then mn [i]: =mn [i] + [P [i, j]];

end;

END;

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ выполнСния:

Π’Π²Π΅Π΄Π΅ΠΌ Π² ΠœΠ΅ΠΌΠΎ1 ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈ Π½Π°ΠΆΠΌΠ΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ 1

Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ символ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ

2) Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ бСсплодных символов

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅: ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΠ· ΠœΠ΅ΠΌΠΎ2

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅: ΠΏΡ€Π°Π²ΠΈΠ»Π° Π² ΠœΠ΅ΠΌΠΎ2 (Π±Π΅Π· бСсплодных символов)

procedure TForm1. btn2Click (Sender: TObject);

var vn2: set of Char;

begin

v: =mmo2. Lines. Count;

for i: =0 to v do p [i]: ='';

for i: =0 to v do begin p [i]: =mmo2. Lines [i];

mn [i]: = [];

for j: =3 to Length (p [i]) do

if p [i, j] in ['A'. 'Z'] then mn [i]: =mn [i] + [P [i, j]];

end;

mmo2. Clear;

vn: = [];

for i: =0 to v-1 do if mn [i] = [] then vn: =vn+ [p [i, 1]];

vn2: = [];

j: =0;

while vn<>vn2 do begin

vn: =vn2;

for i: =0 to V-1 do

if (mn [i] - vn= [])

then vn2: =vn2+vn+ [p [i, 1]];

end;

for i: =0 to v do

for j: =1 to Length (p [i]) do

if Length (p [i]) >2 then if (not (p [i, j] in vn)) and (p [i, j] in ['A'. 'Z']) then p [i]: ='';

for i: =0 to v do begin mn [i]: = [];

for j: =3 to Length (p [i]) do if p [i, j] in ['A'. 'Z'] then mn [i]: =mn [i] + [p [i, j]];

if Length (p [i]) >2 then mmo2. Lines. Add (p [i]);

end;

for i: =0 to v do p [i]: ='';

for i: =0 to mmo2. Lines. Count do begin p [i]: =mmo2. Lines [i];

mn [i]: = [];

for j: =3 to Length (p [i]) do

if p [i, j] in ['A'. 'Z'] then mn [i]: =mn [i] + [P [i, j]];

end;

end;

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:

1. Π’Π²Π΅Π΄Π΅ΠΌ Π² ΠœΠ΅ΠΌΠΎ1 ΠΏΡ€Π°Π²ΠΈΠ»Π°

2. НаТмСм Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ 1

3. НаТмСм Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ 1

3) Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ нСдостиТимых символов

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅: ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΠ· ΠœΠ΅ΠΌΠΎ2

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅: ΠΏΡ€Π°Π²ΠΈΠ»Π° Π² ΠœΠ΅ΠΌΠΎ2 (Π±Π΅Π· нСдостиТимых символов)

procedure TForm1. btn3Click (Sender: TObject);

begin

v: =mmo2. Lines. Count;

for i: =0 to v do p [i]: ='';

for i: =0 to v do begin p [i]: =mmo2. Lines [i];

mn [i]: = [];

for j: =3 to Length (p [i]) do

if p [i, j] in ['A'. 'Z'] then mn [i]: =mn [i] + [P [i, j]];

end;

mmo2. Clear;

vn: = [];

for i: =0 to 3 do

if Length (p [i]) >1 then begin vn: =vn+ [p [i, 1]] +mn [0]; Break; end;

m: =0;

while m<4 do begin

for i: =0 to v do

if Length (p [i]) >2 then

if p [i, 1] in vn then vn: =vn+mn [i];

Inc (m);

end;

for i: =0 to v do

for j: =0 to Length (p [i]) do

if Length (p [i]) >2 then if (not (p [i, j] in vn)) and (p [i, j] in ['A'. 'Z']) then p [i]: ='';

for i: =0 to v do

if Length (p [i]) >2 then mmo2. Lines. Add (p [i]);

for i: =0 to v do p [i]: ='';

for i: =0 to mmo2. Lines. Count do begin p [i]: =mmo2. Lines [i];

mn [i]: = [];

for j: =3 to Length (p [i]) do

if p [i, j] in ['A'. 'Z'] then mn [i]: =mn [i] + [P [i, j]];

end;

end;

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:

1. Π’Π²Π΅Π΄Π΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π² ΠœΠ΅ΠΌΠΎ1

2. НаТмСм Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ 1

3. НаТмСм Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ 3

4) УстранСниС ΠΏΡ€Π°Π²ΠΈΠ» с пустой ΠΏΡ€Π°Π²ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅: ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΠ· ΠœΠ΅ΠΌΠΎ2

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅: ΠΏΡ€Π°Π²ΠΈΠ»Π° Π² ΠœΠ΅ΠΌΠΎ2

procedure TForm1. btn4Click (Sender: TObject);

begin

v: =mmo2. Lines. Count;

for i: =0 to v do p [i]: ='';

for i: =0 to v do begin p [i]: =mmo2. Lines [i];

mn [i]: = [];

for j: =3 to Length (p [i]) do

if p [i, j] in ['A'. 'Z'] then mn [i]: =mn [i] + [P [i, j]];

end;

mmo2. Clear;

j: =0;

for i: =0 to v do

if Length (p [i]) >2 then

if p [i, 3] ='e' then begin

Inc (j); r [j]: =p [i, 1]; p [i]: ='';

end;

n: =j; k: =0;

for i: =1 to n do

for j: =0 to v do begin

if Length (p [j]) >1 then

if r [i] in mn [j] then begin

s: =p [j];

Delete (s, 1,2);

s1: =s;

m: =Pos (r [i], s);

delete (s, m,1);

l: =Pos (r [i], s);

if (m>0) and (l>0) then begin

inc (k);

p [k+v]: =Copy (p [j], 1,2) +s;

Inc (k); l: =Pos (r [i], s); Delete (s1,l+1,1);

p [k+v]: =Copy (p [j], 1,2) +s1;

Inc (k); l: =Pos (r [i], s1); Delete (s1,l, 1);

p [k+v]: =Copy (p [j], 1,2) +s1;

end;

if (m>0) and (l=0) then begin

inc (k);

p [k+v]: =Copy (p [j], 1,2) +s;

end;

end; end;

for i: =0 to v+ (k-1) do

for j: =i+1 to v+k do begin

if p [i] =p [j] then p [j]: ='';

if (Length (p [i]) =3) and (p [i, 1] =p [i, 3]) then p [i]: ='';

end;

for i: =0 to v+k do

if Length (p [i]) >2 then mmo2. Lines. Add (p [i]);

for i: =0 to v do p [i]: ='';

for i: =0 to mmo2. Lines. Count do begin p [i]: =mmo2. Lines [i];

mn [i]: = [];

for j: =3 to Length (p [i]) do

if p [i, j] in ['A'. 'Z'] then mn [i]: =mn [i] + [P [i, j]];

end;

end;

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:

1. Π’Π²ΠΎΠ΄ΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π² ΠœΠ΅ΠΌΠΎ1

2. НаТимаСм Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ 1

3. НаТимаСм Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ 4

5) Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ†Π΅ΠΏΠ½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ»

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅: ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΠ· ΠœΠ΅ΠΌΠΎ2

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅: ΠΏΡ€Π°Π²ΠΈΠ»Π° Π² ΠœΠ΅ΠΌΠΎ2

procedure TForm1. btn5Click (Sender: TObject);

begin

v: =mmo2. Lines. Count;

for i: =0 to v do p [i]: ='';

for i: =0 to v do p [i]: =mmo2. Lines [i];

mmo2. Clear;

for i: =1 to 5 do r [i]: =' '; k: =0;

for i: =0 to v do

if Length (p [i]) =3 then

if (p [i, 1] in ['A'. 'Z']) and (p [i, 3] in ['A'. 'Z']) and (p [i, 1] <>p [i, 3]) then begin

inc (k); r [k]: =p [i, 1]; r [k+1]: =p [i, 3]; p [i]: ='';

end;

for i: =1 to k do begin

mn [i]: = [];

for j: =i+1 to k+1 do

mn [i]: =mn [i] + [r [j]];

end;

m: =0; l: =0;

for i: =1 to k do begin

inc (m);

for j: =0 to v do

if (Length (p [j]) >2) and (p [j, 1] in mn [m]) then begin

inc (l); p [v+l]: =p [j];

p [v+l, 1]: =r [m]; end;

end;

for i: =0 to v+l do

if Length (p [i]) >2 then mmo2. Lines. Add (p [i]);

end;

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:

1. Π’Π΅Π΄Π΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π² ΠœΠ΅ΠΌΠΎ1

2. НаТмСм Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ 1

3. НаТмСм Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ 5

1. «Π’Сория ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ языков программирования» БСрСбряков Π’. А. Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ М3-ΠŸΡ€Π΅ΡΡ, 1999 Π³., 174 стр.

2. «Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим компилятор!» Π”ΠΆΠ΅ΠΊ ΠšΡ€Π΅Π½ΡˆΠΎΡƒ Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Π‘Π°ΠΌΠΈΠ·Π΄Π°Ρ‚, 1995 Π³., 135 стр.

3. «ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, языки, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρ‹ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹» М. Мозговой Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Наука ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°, 2006 Π³., 316 стр.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls, Grids, jpeg, ExtCtrls, XPMan, Menus, Buttons;

type

TForm1 = class (TForm)

btn1: TButton;

mmo1: TMemo;

mmo2: TMemo;

btn2: TButton;

btn3: TButton;

btn4: TButton;

btn5: TButton;

lbl1: TLabel;

xpmnfst1: TXPManifest;

procedure btn1Click (Sender: TObject);

procedure btn2Click (Sender: TObject);

procedure btn3Click (Sender: TObject);

procedure btn4Click (Sender: TObject);

procedure btn5Click (Sender: TObject);

procedure btn1MouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure btn2MouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure FormMouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure btn3MouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure btn4MouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure btn5MouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

i, m, n, j, v, k, l: Integer;

s, s1: string;

p: array [0.40] of string;

vn, vt, k1, k2,mm: set of Char;

mn: array [0.25] of set of Char;

c: Char;

r: array [1.5] of Char;

implementation

{$R *. dfm}

procedure TForm1. btn1Click (Sender: TObject);

label l;

BEGIN

mmo2. Clear;

for i: =0 to mmo1. Lines. Count do

if Length (mmo1. Lines [i]) >2 then begin

mm: = []; s: =mmo1. Lines [i];

for j: =0 to Length (s) do begin

if (s [j] in ['А'. 'Я']) or (s [j] in ['а'. 'я']) then mmo1. Lines. Delete (i);

mm: =mm+ [s [j]]; end;

if (not (s in ['A'. 'Z'])) or (s <>'-') or (' ' in mm) then mmo1. Lines. Delete (i);

end else mmo1. Lines. Delete (i);

for i: =0 to mmo1. Lines. Count do begin

s: =mmo1. Lines [i];

n: =Pos ('/', s); Delete (s, n,1);

m: =Pos ('/', s); Delete (s, m,1);

if (n>0) and (m>0) and (n

mmo2. Lines. Add (Copy (s, 1, n-1));

mmo2. Lines. Add (Copy (s, 1,2) +Copy (s, n, m-n));

mmo2. Lines. Add (Copy (s, 1,2) +Copy (s, m, Length (s) — m+1));

goto l;

end;

IF n>0 then begin

mmo2. Lines. Add (Copy (s, 1, n-1));

mmo2. Lines. Add (Copy (s, 1,2) +Copy (s, n, Length (s) — n+1));

goto l;

end;

IF (n=0) and (Length (s) >2) then mmo2. Lines. Add (s);

l:

end;

for i: =0 to mmo2. Lines. Count do begin p [i]: =mmo2. Lines [i];

mn [i]: = [];

for j: =3 to Length (p [i]) do if p [i, j] in ['A'. 'Z'] then mn [i]: =mn [i] + [P [i, j]];

end;

END;

procedure TForm1. btn2Click (Sender: TObject);

var vn2: set of Char;

begin

v: =mmo2. Lines. Count;

for i: =0 to v do p [i]: ='';

for i: =0 to v do begin p [i]: =mmo2. Lines [i];

mn [i]: = [];

for j: =3 to Length (p [i]) do

if p [i, j] in ['A'. 'Z'] then mn [i]: =mn [i] + [P [i, j]];

end;

mmo2. Clear;

vn: = [];

for i: =0 to v-1 do if mn [i] = [] then vn: =vn+ [p [i, 1]];

vn2: = [];

j: =0;

while vn<>vn2 do begin

vn: =vn2;

for i: =0 to V-1 do

if (mn [i] - vn= [])

then vn2: =vn2+vn+ [p [i, 1]];

end;

for i: =0 to v do

for j: =1 to Length (p [i]) do

if Length (p [i]) >2 then if (not (p [i, j] in vn)) and (p [i, j] in ['A'. 'Z']) then p [i]: ='';

for i: =0 to v do begin mn [i]: = [];

for j: =3 to Length (p [i]) do if p [i, j] in ['A'. 'Z'] then mn [i]: =mn [i] + [p [i, j]];

if Length (p [i]) >2 then mmo2. Lines. Add (p [i]);

end;

for i: =0 to v do p [i]: ='';

for i: =0 to mmo2. Lines. Count do begin p [i]: =mmo2. Lines [i];

mn [i]: = [];

for j: =3 to Length (p [i]) do

if p [i, j] in ['A'. 'Z'] then mn [i]: =mn [i] + [P [i, j]];

end;

end;

procedure TForm1. btn3Click (Sender: TObject);

begin

v: =mmo2. Lines. Count;

for i: =0 to v do p [i]: ='';

for i: =0 to v do begin p [i]: =mmo2. Lines [i];

mn [i]: = [];

for j: =3 to Length (p [i]) do

if p [i, j] in ['A'. 'Z'] then mn [i]: =mn [i] + [P [i, j]];

end;

mmo2. Clear;

vn: = [];

for i: =0 to 3 do

if Length (p [i]) >1 then begin vn: =vn+ [p [i, 1]] +mn [0]; Break; end;

m: =0;

while m<4 do begin

for i: =0 to v do

if Length (p [i]) >2 then

if p [i, 1] in vn then vn: =vn+mn [i];

Inc (m);

end;

for i: =0 to v do

for j: =0 to Length (p [i]) do

if Length (p [i]) >2 then if (not (p [i, j] in vn)) and (p [i, j] in ['A'. 'Z']) then p [i]: ='';

for i: =0 to v do

if Length (p [i]) >2 then mmo2. Lines. Add (p [i]);

for i: =0 to v do p [i]: ='';

for i: =0 to mmo2. Lines. Count do begin p [i]: =mmo2. Lines [i];

mn [i]: = [];

for j: =3 to Length (p [i]) do

if p [i, j] in ['A'. 'Z'] then mn [i]: =mn [i] + [P [i, j]];

end;

end;

procedure TForm1. btn4Click (Sender: TObject);

begin

v: =mmo2. Lines. Count;

for i: =0 to v do p [i]: ='';

for i: =0 to v do begin p [i]: =mmo2. Lines [i];

mn [i]: = [];

for j: =3 to Length (p [i]) do

if p [i, j] in ['A'. 'Z'] then mn [i]: =mn [i] + [P [i, j]];

end;

mmo2. Clear;

j: =0;

for i: =0 to v do

if Length (p [i]) >2 then

if p [i, 3] ='e' then begin

Inc (j); r [j]: =p [i, 1]; p [i]: ='';

end;

n: =j; k: =0;

for i: =1 to n do

for j: =0 to v do begin

if Length (p [j]) >1 then

if r [i] in mn [j] then begin

s: =p [j];

Delete (s, 1,2);

s1: =s;

m: =Pos (r [i], s);

delete (s, m,1);

l: =Pos (r [i], s);

if (m>0) and (l>0) then begin

inc (k);

p [k+v]: =Copy (p [j], 1,2) +s;

Inc (k); l: =Pos (r [i], s); Delete (s1,l+1,1);

p [k+v]: =Copy (p [j], 1,2) +s1;

Inc (k); l: =Pos (r [i], s1); Delete (s1,l, 1);

p [k+v]: =Copy (p [j], 1,2) +s1;

end;

if (m>0) and (l=0) then begin

inc (k);

p [k+v]: =Copy (p [j], 1,2) +s;

end;

end; end;

for i: =0 to v+ (k-1) do

for j: =i+1 to v+k do begin

if p [i] =p [j] then p [j]: ='';

if (Length (p [i]) =3) and (p [i, 1] =p [i, 3]) then p [i]: ='';

end;

for i: =0 to v+k do

if Length (p [i]) >2 then mmo2. Lines. Add (p [i]);

for i: =0 to v do p [i]: ='';

for i: =0 to mmo2. Lines. Count do begin p [i]: =mmo2. Lines [i];

mn [i]: = [];

for j: =3 to Length (p [i]) do

if p [i, j] in ['A'. 'Z'] then mn [i]: =mn [i] + [P [i, j]];

end;

end;

procedure TForm1. btn5Click (Sender: TObject);

begin

v: =mmo2. Lines. Count;

for i: =0 to v do p [i]: ='';

for i: =0 to v do p [i]: =mmo2. Lines [i];

mmo2. Clear;

for i: =1 to 5 do r [i]: =' '; k: =0;

for i: =0 to v do

if Length (p [i]) =3 then

if (p [i, 1] in ['A'. 'Z']) and (p [i, 3] in ['A'. 'Z']) and (p [i, 1] <>p [i, 3]) then begin

inc (k); r [k]: =p [i, 1]; r [k+1]: =p [i, 3]; p [i]: ='';

end;

for i: =1 to k do begin

mn [i]: = [];

for j: =i+1 to k+1 do

mn [i]: =mn [i] + [r [j]];

end;

m: =0; l: =0;

for i: =1 to k do begin

inc (m);

for j: =0 to v do

if (Length (p [j]) >2) and (p [j, 1] in mn [m]) then begin

inc (l); p [v+l]: =p [j];

p [v+l, 1]: =r [m]; end;

end;

for i: =0 to v+l do

if Length (p [i]) >2 then mmo2. Lines. Add (p [i]);

end;

procedure TForm1. btn1MouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

lbl1. Caption: ='Анализ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ';

end;

procedure TForm1. btn2MouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

lbl1. Caption: ='Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ бСсплодных символов';

end;

procedure TForm1. FormMouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

lbl1. Caption: ='ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ';

end;

procedure TForm1. btn3MouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

lbl1. Caption: ='Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ нСдостиТимых символов';

end;

procedure TForm1. btn4MouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

lbl1. Caption: ='ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡƒΠΊΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ»';

end;

procedure TForm1. btn5MouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

lbl1. Caption: ='Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ†Π΅ΠΏΠ½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ»';

end;

end.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Π¨Π°Π³ 1: Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π² ΠœΠ΅ΠΌΠΎ1

Π¨Π°Π³ 2: Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ 1

Π¨Π°Π³ 3: Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ 2

Π¨Π°Π³ 4: Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ 3

Π¨Π°Π³ 5: Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ 4

Π¨Π°Π³ 6: Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ 5

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