Четверг, 13.05.2021, 12:25
Приветствую Вас Гость | RSS | PDA

Всё для студента информата

Полезная информация

Материалы для студента

Всё для студента IT » Материалы для студента » Теория языков программирования

НФБ грамматика - cинтаксис

В качестве примера рассмотрим нотацию НФБ-грамматик простого повествовательного предложения и вопросительного предложения, предварительно выполнив  формализацию структуры предложения.

Предложение

Структура предложения

The girl / run / home
The boy / cooks / dinner

Did / the girl / run  / home?
Is / the boy / cooking dinner?

Артикль/ существительное/ глагол / дополнение

Вспомогательный глагол / подлежащее/ сказуемое

Рассмотрим набор  правил в нотации НФБ для рассмотрения наших предложений.

            <предложение>::= <повествовательное> | <вопросительное>,

где символ ::= означает «определено как», а символ | - читается «или».
Далее, приведем определение предложений указанного типа:

            <повествовательное>::= <подлежащее><глагол><дополнение>
            <подлежащее>::=<артикль><существительное>
            <вопросительное>::=<вспомогательный глагол><подлежащее><сказуемое>

Такая специфическая запись – есть НФБ (нормальная форма Бэкуса) – конец 50-х гг.
В это же время Хомский предложил подобную грамматическую форму, названную контекстно-свободной грамматикой, для описания синтаксиса естественного языка.
Эти формы: НФБ и контекстно-свободной грамматики эквивалентны.

Синтаксис

НФБ-грамматика  состоит из конечного набора правил НФБ-грамматик, которые определяют язык – язык программирования. Поскольку синтаксис имеет отношение к форме (структуре), а не к значению (смыслу), то язык программирования с точки зрения синтаксиса представляет собой множество синтаксически правильных программ, каждая из которых есть просто последовательность символов.
Можно еще больше абстрагироваться от смысла синтаксических последовательностей и  определить язык как множество цепочек символов конечной длины. При таком определении языком можно назвать:

  1. множество всех операторов присваивания в С;
  2. множество всех программ на С;
  3. множество всех атомов LISP;
  4. множество последовательностей из элементов a и b, таких, что все элементы а в каждой последовательности предшествуют элементам b (например: a, aab, abb,…).

Язык может состоят из конечного множества цепочек, так и бесконечного множества (пример п.4). Ограничением является то, что длина цепочки должна быть конечной и символы взяты из определенного конечного множества (алфавита).
Определение п.4 – некорректно или лучше сказать неполно определяет множество цепочек: например, нельзя ответить на вопрос: цепочка из одного символа b принадлежит языку? Или – цепочка из одного символа а ? Эту проблему снимаем точным определением правил.  

Похожие статьи:

Не нашли то, что Вам нужно?.. Найдите ответ на форуме!
Категория: Теория языков программирования | Добавил: admin (01.05.2011)
Просмотров: 2560 | Теги: лекция, Тяп, модели языка
Сообщество
Помощь
Форма входа
Поиск

Студенческий помощник по информатике © 2021
При цитировании материалов данного сайта, обязательна ссылка на источник: ITstudents.ru



>