КАТЕГОРИИ: Архитектура-(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"; Определение грамматики. Форма ьэкуса—паура Множество V ~ VNuVT называют полным алфавитом грамматики G. Рассмотрим множества 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. Формальные языки и грамматики минальных символов, не меняя при этом языка, заданного грамматикой, — точно также, например, в программе на языке Pascal можно изменить имена идентификаторов, и при этом не изменится смысл программы. Для терминальных символов это неверно. Набор терминальных символов всегда строго соответствует алфавиту языка, определяемого грамматикой. Вот, например, та же самая грамматика для целых десятичных чисел со знаком в которой нетерминальные символы обозначены большими латинскими буквами (далее это будет часто применяться в примерах): 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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |