![]() КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Формальное определение грамматики. Форма Бэкуса—Наура
Для полного формального определения грамматики кроме правил порождения цепочек языка необходимо задать также алфавит языка. Формально грамматика G определяется как четверка G(VT,VN,P,S), где: □ VT — множество терминальных символов; □ VN — множество нетерминальных символов: VNnVT = 0; □ Р — множество правил (продукций) грамматики вида а-»р, где aeV+, |3eV"; Определение грамматики. Форма ьэкуса—паура
Рассмотрим множества VN и VT. Множество терминальных символов VT содержит символы, которые входят в алфавит языка, порождаемого грамматикой. Как правило, символы из множества VT встречаются только в цепочках правых частей правил, если же они встречаются в цепочке левой части правила,, то обязаны быть и в цепочке правой его части. Множество нетерминальных символов VN содержит символы, которые определяют слова, понятия, конструкции языка. Каждый символ этого множества может встречаться в цепочках как левой, так и правой частей правил грамматики, но он обязан хотя бы один раз быть в левой части хотя бы одного правила. Правила грамматики строятся так, чтобы в левой части каждого правила был хотя бы один нетерминальный символ. Эти два множества не пересекаются: каждый символ может быть либо терминальным, либо нетерминальным. Ни один символ в алфавите грамматики не может быть нетерминальным и терминальным одновременно. Целевой символ грамматики — это всегда нетерминальный символ. Во множестве правил грамматики может быть несколько правил, имеющих одинаковые правые части, вида: а->р(, а-»р2,... а-»Рп- Тогда эти правила объединяют вместе и записывают в виде: a->Pi|p2|...|pn. Одной строке в такой записи соответствует сразу п правил. Такую форму записи правил грамматики называют формой Бэкуса—Наура. Форма Бэкуса—Наура предусматривает, как правило, также, что нетерминальные символы берутся в угловые скобки: < >. Иногда знак «-»» в правилах грамматики заменяют на знак «::=» (что характерно для старых монографий), но это всего лишь незначительные модификации формы записи, не влияющие на ее суть. Ниже приведен пример грамматики для целых десятичных чисел со знаком: G({0,1,2,3.4.5.6.7.8.9.-.+},{<число>.<чс>,<цифра>},Р,<число>) Р: <число> -» <чс> | +<чс> | -<чс> <чс> -> <цифра> | <чс><цифра> <цифра> -> р | 1 | 2 1 3 | 4 | 5 1 б | 7 (8 I 9 Рассмотрим составляющие элементы грамматики G: □ множество терминальных символов VT содержит двенадцать элементов: де □ множество нетерминальных символов VN содержит три элемента: символы □ множество правил содержит 15 правил, которые записаны в три строки (то □ целевым символом грамматики является символ <число>. Следует отметить, что символ <чс> — это бессмысленное сочетание букв русского языка, но это обычный нетерминальный символ грамматики, такой же, как и Два других. Названия нетерминальных символов не обязаны быть осмысленными, это сделано просто для удобства понимания правил грамматики человеком. В принципе в любой грамматике можно полностью изменить имена всех нетер- Глава 9. Формальные языки и грамматики
Для терминальных символов это неверно. Набор терминальных символов всегда строго соответствует алфавиту языка, определяемого грамматикой. Вот, например, та же самая грамматика для целых десятичных чисел со знаком в которой нетерминальные символы обозначены большими латинскими буквами (далее это будет часто применяться в примерах): G'({0.1,2.3.4.5.6,7.8.9.-.+}.{S.T.F},P.S) Р:
Здесь изменилось только множество нетерминальных символов. Теперь VN = = {S.T.F}. Язык, заданный грамматикой, не изменился — грамматики G и С эквивалентны.
Дата добавления: 2015-06-27; Просмотров: 1134; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |