Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ синтаксис языка Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

Бинтаксис (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅)

Бинтаксис β€” сторона языка программирования, которая описываСт структуру ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ΠΎΠ² символов (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ говорят β€” Π±Π΅Π·ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΡŽ). Бинтаксису языка противопоставляСтся Π΅Π³ΠΎ сСмантика. Бинтаксис языка описываСт «чистый» язык, Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя сСмантика приписываСт значСния (дСйствия) Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ синтаксичСским конструкциям.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ язык программирования ΠΈΠΌΠ΅Π΅Ρ‚ синтаксичСскоС описаниС. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ синтаксис языка ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ посрСдством ΠΏΡ€Π°Π²ΠΈΠ» Бэкуса-Наура.

Π§Π°Ρ‰Π΅ всСго синтаксис провСряСтся Π½Π° Ρ€Π°Π½Π½ΠΈΡ… стадиях компиляции. Π’ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языках программирования ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° синтаксиса производится ΠΈΠ»ΠΈ Π² процСссС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ (выполнСния), ΠΈΠ»ΠΈ Π² процСссС ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ компиляции Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ синтаксис ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒΡΡ нСпосрСдствСнно ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ исходных тСкстов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΡ€ΠΈ использовании IDE.

Бинтаксис записи Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Бинтаксис записи Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” ТёсткоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ запись ΠΊΠΎΠ΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ; Ρ„ΠΎΡ€ΠΌΠ° записи Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Если синтаксис Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π²Π΅Ρ€Π΅Π½, компилятор Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ собрана, ΠΏΠΎΠΊΠ° ошибка Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ исправлСна.

К синтаксичСским ошибкам записи Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ относятся (Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ сигнатура):

ПолСзноС

Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ «Π‘интаксис (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅)» Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… словарях:

Бинтаксис (значСния) β€” Бинтаксис: Π’ ВикисловарС Π΅ΡΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡ «синтаксис» Бинтаксис (Π³Ρ€Π΅Ρ‡ … ВикипСдия

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ пСрСписана. На страницС обсуТдСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ пояснСния. Π£ этого Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ значСния, см. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈ … ВикипСдия

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python β€” ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python с использованиСм ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ ООП: с самого Π½Π°Ρ‡Π°Π»Π° Python проСктировался ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования[1]. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ 1 Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ 1.1 … ВикипСдия

Π¨Π°Π±Π»ΠΎΠ½ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅) β€” Π¨Π°Π±Π»ΠΎΠ½Ρ‹ (Π°Π½Π³Π». template) срСдство языка C++, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для кодирования ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Π±Π΅Π· привязки ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ Π±ΡƒΡ„Π΅Ρ€ΠΎΠ², значСниям ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ). Π’ C++ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ созданиС шаблонов Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ … ВикипСдия

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅) β€” Π£ этого Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ значСния, см. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ конструктор класса (ΠΎΡ‚ Π°Π½Π³Π». constructor, ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠΎΠΊΡ€Π°Ρ‰Π°ΡŽΡ‚ ctor) ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ инструкций, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.… … ВикипСдия

SSI (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅) β€” Π£ этого Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ значСния, см. SSI. SSI (Server Side Includes Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π° сторонС сСрвСра) нСслоТный язык для динамичСской «сборки» Π²Π΅Π± страниц Π½Π° сСрвСрС ΠΈΠ· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… составных частСй ΠΈ Π²Ρ‹Π΄Π°Ρ‡ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ HTML… … ВикипСдия

АспСктно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” ΠŸΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ программирования АгСнтно ориСнтированная ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎ ориСнтированная ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ ДСкларативная (контрастируСт с Π˜ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ) ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡΠΌΠΈ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΠŸΠΎΡ‚ΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π’Π°Π±Π»ΠΈΡ‡Π½ΠΎ ориСнтированная (элСктронныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹) РСактивная … ВикипСдия

ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅) β€” Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ 1 ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ присваивания 1.1 Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания … ВикипСдия

ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅) β€” Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ 1 ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ присваивания 1.1 Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания … ВикипСдия

Π¦ΠΈΠΊΠ» (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅) β€” Π£ этого Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ значСния, см. Ρ†ΠΈΠΊΠ». Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΈΠ»ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅ имССтся список источников ΠΈΠ»ΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… … ВикипСдия

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ синтаксис Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π° Автор24

Бинтаксис Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ β€” это комплСкс ΠΏΡ€Π°Π²ΠΈΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Ρ‡Π°ΡΡ‚ΡŒΡŽ.

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

Π―Π·Ρ‹ΠΊΠΈ программирования ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΎ строго Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ языка. Π―Π·Ρ‹ΠΊ программирования описываСтся ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ:

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

Бинтаксис Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

ЦСлью составитСля ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ являСтся ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ получаСтся ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ устройствС. Но ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, для программиста ΠΎΠ½Π° являСтся Π½Π΅ΠΊΠΎΠΉ абстракциСй, которая Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ связана с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ оснащСниСм. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… особСнностСй языка программирования ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ абстрактный Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒ, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ синтаксичСским описаниСм языка. Π­Ρ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ компиляция ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ произвСсти Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ. По этой Π»ΠΎΠ³ΠΈΠΊΠ΅ модСлью ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ считаСтся Π΅Ρ‘ синтаксичСский абстрактный ΠΎΠ±Ρ€Π°Π·, Π° Π½Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ устройство. ΠŸΡ€Π°Π³ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΡƒΠΆΠ΅ опрСдСляСт ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚ΠΈΠΊΡƒ абстрагированного вычислСния ΠΏΠΎΠ΄ Π΄Π°Π½Π½ΡƒΡŽ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ систСму.

Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ

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

Одной ΠΈΠ· особСнностСй синтаксиса считаСтся Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π·Π°ΠΊΠΎΠ½ влоТСнности ΠΏΡ€Π°Π²ΠΈΠ» формирования структурных построСний. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ синтаксиса языка Π² своём описании нСпосрСдствСнно ΠΈΠ»ΠΈ Π² косвСнном Π²ΠΈΠ΄Π΅ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ части Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ сам сСбя. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π² Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π°, содСрТится Ρ„Ρ€Π°Π·Π° Β«Ρ‚Π΅Π»ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π° являСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Β», Π΅Π³ΠΎ частным случаСм Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π°. ВрСбуСтся бСзусловноС слСдованиС ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ синтаксиса (правописания) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НапримСр, Π² языкС Паскаль ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‡Ρ‘Ρ‚ΠΊΠΎ расписанныС ΠΏΡ€Π°Π²ΠΈΠ»Π° примСнСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°ΠΊΠΎΠ² ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠΈ. Π£ Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой (;) Π΅ΡΡ‚ΡŒ строго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ мСста постановки, это Π² ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ Ρ€Π°Π·Π΄Π΅Π»Π° описи ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ послС любого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°. Но ΠΎΠ½Π° Π½Π΅ ставится ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ End. Π£ запятой (,) Π΅ΡΡ‚ΡŒ функция раздСлСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… списках. Π­Ρ‚ΠΎ списки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ описания, списках Π΄Π°Π½Π½Ρ‹Ρ… Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°.

БоблюдСниС строгих ΠΏΡ€Π°Π²ΠΈΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ синтаксиса трСбуСтся Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ трансляции. Вранслятором являСтся исполняСмая Π² Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π² качСствС раздСлитСля ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² спискС всСгда обязана ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ запятая, ΠΈ Ссли Ρ‚Π°ΠΌ стоит любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π·Π½Π°ΠΊ прСпинания, Ρ‚ΠΎ транслятор посчитаСт это ошибкой. Или Ссли ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠ° с запятой, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° трансляции Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ вСсь тСкстовый Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой. Если этот Π·Π½Π°ΠΊ Π½Π΅ установлСн ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°Ρ€ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Ρ‚ΠΎ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ восприняты транслятором ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Ρ‡Ρ‚ΠΎ Π²Π΅Π΄Ρ‘Ρ‚ ΠΊ появлСнию ошибки.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Бинтаксис (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅)

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ язык программирования ΠΈΠΌΠ΅Π΅Ρ‚ синтаксичСскоС описаниС ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. Бинтаксис языка ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€Π°Π²ΠΈΠ» Бэкуса β€” Наура.

Бинтаксис провСряСтся Π½Π° Ρ€Π°Π½Π½ΠΈΡ… стадиях трансляции. Π’ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языках программирования ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° синтаксиса производится ΠΈΠ»ΠΈ Π² процСссС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ (выполнСния), ΠΈΠ»ΠΈ Π² процСссС ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ компиляции Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, синтаксис ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒΡΡ нСпосрСдствСнно ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ исходных тСкстов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΡ€ΠΈ использовании IDE.

БвязанныС понятия

Упоминания Π² Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅

БвязанныС понятия (ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅)

Из-Π·Π° ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ с Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ словом Β«ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Β» Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ (Π°Π½Π³Π». operator), см. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅).Π˜Π½ΡΡ‚Ρ€ΡƒΜΠΊΡ†ΠΈΡ ΠΈΠ»ΠΈ опСра́тор (Π°Π½Π³Π». statement) β€” наимСньшая автономная Ρ‡Π°ΡΡ‚ΡŒ языка программирования; ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдставляСт собой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ инструкций.

По ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· классификаций, языки программирования Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ дСлятся Π½Π° сильно ΠΈ слабо Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ (Π°Π½Π³Π». strongly and weakly typed), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠ΅ сильной ΠΈΠ»ΠΈ слабой систСмой Ρ‚ΠΈΠΏΠΎΠ². Π­Ρ‚ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ Ρ‚Ρ€Π°ΠΊΡ‚ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ, ΠΈ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для указания Π½Π° достоинства ΠΈ нСдостатки ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ языка. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ понятия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈ приводят ΠΊ Π½Π°Π·Ρ‹Π²Π°Π½ΠΈΡŽ Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… систСм Ρ‚ΠΈΠΏΠΎΠ² Β«ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈΒ» ΠΈΠ»ΠΈ «слабыми».

Π‘ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π°Π½Π³Π». coroutines) β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° связи ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠΊΠΎΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ многозадачности: ΠΌΠΎΠ΄ΡƒΠ»ΡŒ приостанавливаСтся Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅, сохраняя ΠΏΠΎΠ»Π½ΠΎΠ΅ состояниС (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ счётчик ΠΊΠΎΠΌΠ°Π½Π΄), ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. Π’ΠΎΡ‚, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, выполняСт Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, сохраняя свои стСк ΠΈ счётчик.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ синтаксис языка Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ синтаксис языка Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ синтаксис языка Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ синтаксис языка Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ синтаксис языка Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

Π‘ΠžΠ”Π•Π Π–ΠΠΠ˜Π•

Π£Ρ€ΠΎΠ²Π½ΠΈ синтаксиса

Бинтаксис ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ языка ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ дСлится Π½Π° Ρ‚Ρ€ΠΈ уровня:

Π‘Π°ΠΌΠ° стадия синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° Π΄Π²Π΅ части: Π΄Π΅Ρ€Π΅Π²ΠΎ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΠ»ΠΈ Β«ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ синтаксиса», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ опрСдСляСтся Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, слишком Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ для практичСского использования, ΠΈ абстрактноС Π΄Π΅Ρ€Π΅Π²ΠΎ синтаксиса (AST), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ это Π² ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΡƒΡŽ для использования Ρ„ΠΎΡ€ΠΌΡƒ. Π¨Π°Π³ΠΈ AST ΠΈ контСкстного Π°Π½Π°Π»ΠΈΠ·Π° ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΡƒ сСмантичСского Π°Π½Π°Π»ΠΈΠ·Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡŽ синтаксису, ΠΈΠ»ΠΈ, Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ, ΠΊΠ°ΠΊ Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅, Ρ€ΡƒΡ‡Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ синтаксичСских ΠΏΡ€Π°Π²ΠΈΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ слоТно ΠΈΠ»ΠΈ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ошибок

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° (add 1 1) ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ синтаксичСски ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° ЛиспС (ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ функция ‘add’ сущСствуСт, ΠΈΠ½Π°Ρ‡Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Π½Π΅ удастся), Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰Π°Ρ 1 ΠΈ 1. Однако ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ нСдопустимо:

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

НапримСр, ΠΊΠΎΠ΄ Python

содСрТит ΠΎΡˆΠΈΠ±ΠΊΡƒ Ρ‚ΠΈΠΏΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ добавляСт строковый Π»ΠΈΡ‚Π΅Ρ€Π°Π» ΠΊ цСлочислСнному Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρƒ. Ошибки Ρ‚ΠΈΠΏΠ° Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Ρ‹ Π²ΠΎ врСмя компиляции: ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Ρ‹ Π²ΠΎ врСмя синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° (Π°Π½Π°Π»ΠΈΠ·Π° Ρ„Ρ€Π°Π·), Ссли компилятор ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ Β«integerLiteral + integerLiteralΒ», Π½ΠΎ Π½Π΅ Β«stringLiteral + integerLiteralΒ», хотя Π±ΠΎΠ»Π΅Π΅ вСроятно, Ρ‡Ρ‚ΠΎ компилятор Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ всС выраТСния Ρ„ΠΎΡ€ΠΌΡ‹ Β«LiteralOrIdentifier + LiteralOrIdentifierΒ», ΠΈ Ρ‚ΠΎΠ³Π΄Π° ошибка Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° Π²ΠΎ врСмя контСкстного Π°Π½Π°Π»ΠΈΠ·Π° (ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ Ρ‚ΠΈΠΏΠ°). Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях эта ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π΅ выполняСтся компилятором, ΠΈ эти ошибки ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя выполнСния.

Π’ языкС с динамичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, Π³Π΄Π΅ Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя выполнСния, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ошибки Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя выполнСния. НапримСр, ΠΊΠΎΠ΄ Python

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

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ синтаксиса

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ синтаксис языка Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ синтаксис языка Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ синтаксис языка Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ синтаксис языка Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ синтаксис языка Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: S-выраТСния Лиспа

Π­Ρ‚Π° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° опрСдСляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π—Π΄Π΅ΡΡŒ дСсятичныС Ρ†ΠΈΡ„Ρ€Ρ‹, символы Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ рСгистра ΠΈ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ символами.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ сформированных ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ лСксСм Π² этой Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅: ‘ 12345 ‘, ‘ () ‘, ‘ (A B C232 (1)) ‘

Π‘Π»ΠΎΠΆΠ½Ρ‹Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Perl ΠΈ Lisp, спСцификация (ΠΈΠ»ΠΈ рСализация) языка допускаСт конструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π° этапС синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² этих языках Π΅ΡΡ‚ΡŒ конструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ программисту ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°. Π­Ρ‚Π° комбинация эффСктивно стираСт Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ синтаксичСским Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ· синтаксиса Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ для этих языков, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ„Π°Π·Π° синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡ. НапримСр, Π² Perl ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Π²ΠΎ врСмя синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ BEGIN ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Π° ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Perl ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡŽ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΎΡΡ‚Π°Π²ΡˆΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π°. Π’ просторСчии это называСтся Β«Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Perl ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PerlΒ» (ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π²ΠΎ врСмя синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ) ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ строго, Β«Π΄Π°ΠΆΠ΅ Perl Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PerlΒ» (ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌΠΎ). Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ макросы Lisp, прСдставлСнныС defmacro синтаксисом, Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π²ΠΎ врСмя синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ компилятор Lisp Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ всю систСму Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния Lisp. Напротив, макросы C ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой просто Π·Π°ΠΌΠ΅Π½Ρƒ строк ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ выполнСния ΠΊΠΎΠ΄Π°.

Бинтаксис ΠΏΡ€ΠΎΡ‚ΠΈΠ² сСмантики

Π’ качСствС Π±ΠΎΠ»Π΅Π΅ простого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

Π§Ρ‚ΠΎΠ±Ρ‹ быстро ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ синтаксис Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языков программирования, взглянитС Π½Π° список Β«Hello, World!Β». ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ :

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Алфавит, синтаксис ΠΈ сСмантика языка программирования

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ элСмСнтами любого языка программирования ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΅Π³ΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚, синтаксис ΠΈ сСмантика.

Алфавит – ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ символов, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… Π½Π° устройствах ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΈ экранах ΠΈ/ΠΈΠ»ΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это Π½Π°Π±ΠΎΡ€ символов Latin-1 с ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… символов. Иногда Π² это мноТСство Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ символы с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ» ΠΈΡ… записи (ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² лСксСмы).

ЛСксика – ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ» образования Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ символов (лСксСм), ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΡ… ΠΈΠ΄Π΅Π½Β­Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΌΠ΅Ρ‚ΠΊΠΈ), ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ лСксичСскиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ языка. Бюда ΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ (Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π½Ρ‹Π΅, ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅) слова языка программирования, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для обозначСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΡ€. Иногда эквивалСнтныС лСксСмы, Π² зависимости ΠΎΡ‚ языка программирования, ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΈΠΌ символом Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°, Ρ‚Π°ΠΊ ΠΈ нСсколькими. НапримСр, опСрация присваивания значСния Π² языкС Π‘ΠΈ обозначаСтся ΠΊΠ°ΠΊ Β«=Β», Π° Π² языкС Паскаль – Β«:=Β». ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π½Ρ‹Π΅ скобки Π² языкС Π‘ΠΈ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ символами Β«<Β» ΠΈ Β«>Β», Π° Π² языкС Паскаль – begin ΠΈ end. Π“Ρ€Π°Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ лСксикой ΠΈ Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠΌ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, являСтся вСсьма условной, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ‡Ρ‚ΠΎ компилятор ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π° Ρ„Π°Π·Π΅ лСксичСского Π°Π½Π°Π»ΠΈΠ·Π° замСняСт распознанныС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, begin – 512, end – 513) ΠΈ Π² дальнСйшСм рассматриваСт ΠΈΡ… ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ символы.

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

НСобходимо строгоС соблюдСниС ΠΏΡ€Π°Π²ΠΈΠ» правописания (синтаксиса) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ частности, Π² ПаскалС ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π½Π°ΠΊΠΎΠ² ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠΈ. Π’ΠΎΡ‡ΠΊΠ° с запятой (;) ставится Π² ΠΊΠΎΠ½Ρ†Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ€Π°Π·Π΄Π΅Π»Π° описания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°. ΠŸΠ΅Ρ€Π΅Π΄ словом End Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ. Запятая (,) являСтся Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ элСмСнтов Π²ΠΎ всСвозмоТных списках: спискС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ описания, спискС Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π²Π΅Π»ΠΈΡ‡ΠΈΠ½.

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

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

Для описания синтаксиса языка программирования Ρ‚ΠΎΠΆΠ΅ Π½ΡƒΠΆΠ΅Π½ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ язык. Π’ этом случаС Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ мСтаязыкС (Β«Π½Π°Π΄ΡŠΡΠ·Ρ‹ΠΊΠ΅Β»), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΌ для описания Π΄Ρ€ΡƒΠ³ΠΈΡ… языков. НаиболСС распространСнными мСтаязыками Π² Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΡΠ²Π»ΡΡŽΡ‚ΡΡ мСталингвистичСскиС Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ БСкуса – Наура (язык БНЀ) ΠΈ синтаксичСскиС Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹. Π―Π·Ρ‹ΠΊ синтаксичСских Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ Π±ΠΎΠ»Π΅Π΅ наглядСн, Π»Π΅Π³Ρ‡Π΅ воспринимаСтся.

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

Π’ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ опрСдСляСмым понятиСм Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ понятиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ записях ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€ΠΌΡƒΠ» приняты ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ соглашСния. НапримСр, Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° БНЀ, ΠΎΠΏΡ€Π΅Β­Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ понятиС «двоичная Ρ†ΠΈΡ„Ρ€Π°Β», выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π—Π½Π°Ρ‡ΠΎΠΊ Β«|Β» эквивалСнтСн слову Β«ΠΈΠ»ΠΈΒ».

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

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ Β«Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄Β» ΠΊΠ°ΠΊ Π½Π΅ΠΏΡƒΡΡ‚ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Ρ†ΠΈΡ„Ρ€ БНЀ описываСт Ρ‚Π°ΠΊ:

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ понятиС опрСдСляСтся само Ρ‡Π΅Ρ€Π΅Π· сСбя, называСтся рСкурсивным. РСкурсивныС опрСдСлСния Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ для БНЀ.

Возвратная стрСлка ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ повторСния. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΈΠ°Β­Π³Ρ€Π°ΠΌΠΌΠ° Π±ΠΎΠ»Π΅Π΅ наглядна, Ρ‡Π΅ΠΌ БНЀ.

БинтаксичСскиС Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ‹ Н. Π’ΠΈΡ€Ρ‚ΠΎΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для описания созданного ΠΈΠΌ языка Паскаль.

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

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *