В качестве примера рассмотрим нотацию НФБ-грамматик простого повествовательного предложения и вопросительного предложения, предварительно выполнив формализацию структуры предложения.
Предложение |
Структура предложения |
The girl / run / home
The boy / cooks / dinner
Did / the girl / run / home?
Is / the boy / cooking dinner? |
Артикль/ существительное/ глагол / дополнение
Вспомогательный глагол / подлежащее/ сказуемое |
Рассмотрим набор правил в нотации НФБ для рассмотрения наших предложений.
<предложение>::= <повествовательное> | <вопросительное>,
где символ ::= означает «определено как», а символ | - читается «или».
Далее, приведем определение предложений указанного типа:
<повествовательное>::= <подлежащее><глагол><дополнение>
<подлежащее>::=<артикль><существительное>
<вопросительное>::=<вспомогательный глагол><подлежащее><сказуемое>
Такая специфическая запись – есть НФБ (нормальная форма Бэкуса) – конец 50-х гг.
В это же время Хомский предложил подобную грамматическую форму, названную контекстно-свободной грамматикой, для описания синтаксиса естественного языка.
Эти формы: НФБ и контекстно-свободной грамматики эквивалентны.
Синтаксис
НФБ-грамматика состоит из конечного набора правил НФБ-грамматик, которые определяют язык – язык программирования. Поскольку синтаксис имеет отношение к форме (структуре), а не к значению (смыслу), то язык программирования с точки зрения синтаксиса представляет собой множество синтаксически правильных программ, каждая из которых есть просто последовательность символов.
Можно еще больше абстрагироваться от смысла синтаксических последовательностей и определить язык как множество цепочек символов конечной длины. При таком определении языком можно назвать:
- множество всех операторов присваивания в С;
- множество всех программ на С;
- множество всех атомов LISP;
- множество последовательностей из элементов a и b, таких, что все элементы а в каждой последовательности предшествуют элементам b (например: a, aab, abb,…).
Язык может состоят из конечного множества цепочек, так и бесконечного множества (пример п.4). Ограничением является то, что длина цепочки должна быть конечной и символы взяты из определенного конечного множества (алфавита).
Определение п.4 – некорректно или лучше сказать неполно определяет множество цепочек: например, нельзя ответить на вопрос: цепочка из одного символа b принадлежит языку? Или – цепочка из одного символа а ? Эту проблему снимаем точным определением правил.
Похожие статьи:
|