09.17 Формулы Бэкуса-Наура, синтаксические диаграммы

Формальный язык
множество конечных слов (строк, цепочек) над конечным алфавитом.

Как его описать?

:)) Что понимается по «словом» в этом определении?

Алгоритмический язык
формальный язык, используемый для записи, реализации или изучения алгоритмов.
Язык программирования
знаковая система, предназначенная для записи компьютерных программ

Алгоритмический язык ≠ язык программирования:

<!> Ахтунг! Путаница в терминах! В описании ЯП часто используют термин «слово» (или «ключевое слово»), но это не вся программа. Это некоторая последоваетльность символов, имеющая самостоятельное значение — «знак» или «лексема».

Уровни рассмотрения ЯП (в скобках даны понятия из соответствующих разделов семиотики и лингвистики):

Семинар

Метаязык

Формальный язык описания синтаксиса формального языка

  • Обычно не включает семантику и уж тем более прагматику

Формулы Бэкуса-Наура

Базовая:

  1. Терминал: знак из лексики языка

  2. Метапеременная (нетерминал): элемент алфавита языка

  3. Склейка: несколько терминалов и нетерминалов

  4. Альтернатива: несколько элементов 1-3, разделённых «|»

  5. Определение: терминал, ::= элемент 1-4

Если ∃ последовательность определений, такая что из стартового нетерминала можно получить данное слово, оно принадлежит языку.

:)) <!> В чём принципиальная разница между БНФ и НАМ?

Расширенная (EBNF):

Особенности эмулятора

{OK} Разбор примера «целое число»:

number ::= ["-"] { digit }
digit ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"

{OK} EBNF -> BNF: повторение — это рекурсия, необязательность — альтернатива

<!> В лекциях используется BNF с итерацией, в УМК — BNF с итерацией и необязательной частью, группировок в них нет.

Синтаксические диаграммы

Генератор, который может служить парсером.

Особенности построителя (более современная версия с разнообразным лишним)

Примеры:

Д/З

TODO Две-три задачи на БНФ и две-три на RRD

LecturesCMC/AL/Prac/05_BackusNaur (последним исправлял пользователь FrBrGeorge 2026-09-17 02:45:31)