Студопедия

КАТЕГОРИИ:


Архитектура-(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, если их записать с использованием метасимволов:

<число> ® [ (+.-) ] < цифра>{<цифра>}

<цифра>® 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Первое правило читается так: «число есть цепочка символов, которая может начинаться с символов + или -, должна содержать дальше одну цифру, за которой может следовать последовательность из любого количества цифр». В отличие от формы Бэкуса - Наура, в форме записанной с помощью метасимволов, убран из грамматики малопонятный нетерминальный символ <ч>, а во-вторых – удалось полностью исключить рекурсию. Грамматика в итоге стала более понятной.

Форма записи правил с использованием метасимволов – это удобный и понятный способ представления правил грамматик. Она во многих случаях позволяет полностью избавиться от рекурсии, заменив ее символом интеграции {} (фигурные скобки). Эта форма наиболее употребительна для одного из типов грамматик - регулярных грамматик [1].




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 1002; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.