Лекция
Привет, сегодня поговорим про форма бэкуса , обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое форма бэкуса , наура , настоятельно рекомендую прочитать все из категории Алгоритмизация и программирование. Структурное программирование. Язык C.
форма бэкуса — наура (сокр. БНФ, Бэкуса — Наура форма) — формальная система описания синтаксиса, в которой одни синтаксические категории последовательно определяются через другие категории. БНФ используется для описания контекстно-свободных формальных грамматик. Существует расширенная форма Бэкуса — Наура, отличающаяся лишь более емкими конструкциями.
Используется для описания синтаксиса языков программирования, данных, протоколов (например, в документах RFC) и т. д. (причем как грамматики, так и регулярной лексики, поскольку регулярные грамматики являются подмножеством контекстно-свободных).
Терминология этой статьи может расходиться с традиционной.
БНФ-конструкция определяет конечное число символов (нетерминалов). Кроме того, она определяет правила замены символа на какую-то последовательность букв (терминалов) и символов. Об этом говорит сайт https://intellect.icu . Процесс получения цепочки букв можно определить поэтапно: изначально имеется один символ (символы обычно заключаются в угловые скобки, а их название не несет никакой информации). Затем этот символ заменяется на некоторую последовательность букв и символов, согласно одному из правил. Затем процесс повторяется (на каждом шаге один из символов заменяется на последовательность, согласно правилу). В конце концов, получается цепочка, состоящая из букв и не содержащая символов. Это означает, что полученная цепочка может быть выведена из начального символа.
БНФ-конструкция состоит из нескольких предложений вида
<определяемый символ> ::= <посл.1> | <посл.2> | . . . | <посл.n>
, описывающих правила. Такое правило означает, что символ <определяемый символ>
может заменяться на одну из последовательностей <посл.i>. Знак определения обычно выглядит как ::=
или →
, но возможны и другие варианты.
Некоторые специальные символы, как например <пусто>
, означают какую-то последовательность (в данном случае — пустую).
<правпосл>::=<пусто> | (<правпосл>) | <правпосл><правпосл>
Это простая конструкция, состоящая всего из одного правила, утверждающего, что символ <правпосл>
может замениться либо на пустое место, либо на этот же символ <правпосл>, заключенный в скобки, либо на два символа <правпосл>
идущих подряд.
Описание оператора if
в БНФ на языке PASCAL
<условный оператор if> ::= if <булево выражение> then <оператор> [else <оператор>] <булево выражение> ::= <булево выражение> <булево выражение>| <выражение> <логический оператор> <выражение> <логический оператор> ::= <|> | = <выражение> ::= <переменная> | <строка> | <символ> …
На этом все! Теперь вы знаете все про форма бэкуса , Помните, что это теперь будет проще использовать на практике. Надеюсь, что теперь ты понял что такое форма бэкуса , наура и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Алгоритмизация и программирование. Структурное программирование. Язык C
Из статьи мы узнали кратко, но содержательно про форма бэкуса
Комментарии
Оставить комментарий
Алгоритмизация и программирование. Структурное программирование. Язык C
Термины: Алгоритмизация и программирование. Структурное программирование. Язык C