Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Контекстно-свободные (КС) грамматики

Пример построения лексического анализатора

Смотреть методические указания к практическому занятию «Последовательный лексический анализатор»


 

Неформальный пример. Язык палиндромов над алфавитом .

Палиндром – строка, читаемая одинаково слева направо и справа налево.

Рекурсивное определение языка палиндромов над алфавитом .

Базис. палиндромы.

Индукция. Если палиндром, то палиндромы.

Ни одна цепочка не является палиндромом, если она не определяется этими базисом и индукцией.

 

КС грамматика – формальная запись подобных рекурсивных определений.

 

КС грамматика палиндромов над алфавитом :

1. Базис.

2.

3.

4. Индукция

5.

 

Определение. КС-грамматика - это четверка компонент:

конечное множество переменных (нетерминалов). Каждая такая переменная представляет некоторое множество строк, т.е. некоторый язык.

конечное множество символов, из которых состоят цепочки определяемого языка (терминальные символы, терминалы).

начальный символ грамматики (стартовый символ). Эта переменная представляет язык, определяемый грамматикой. Другие переменные представляют вспомогательные языки, которые помогают определить язык, задаваемый начальным символом.

конечное множество правил вывода (продукций), которые представляют рекурсивное определение языка. Каждая продукция состоит из нескольких частей:

  1. переменная, (частично) определяемая продукцией. Она называется головой продукции.
  2. символ продукции .
  3. конечная цепочка, состоящая из терминалов и переменных, возможно, пустая. Она называется телом продукции и представляет способ образования цепочек языка, обозначаемого переменной в голове продукции. По этому способу оставляем терминалы неизменными, а вместо каждой переменной в строке подставляет любую строку, про которую известно, что она принадлежит языку этой продукции.

 

Описанные четыре компонента образуют контекстно-свободную грамматику (КС-грамматику, КСГ). Будем представлять КСГ ее четырьмя компонентами в виде

, где

конечное множество переменных;

конечное множество терминалов;

конечное множество правил вывода;

начальный символ грамматики.

 

Соглашение: КС-грамматика определяется перечислением ее правил, причем, первое правило определяет начальный символ грамматики.

 

Пример 1. КС-грамматика палиндромов

Более короткая запись правил:

 

Пример 2. КС-грамматика выражений, состоящих из цифр и знаков «+» и «-». Поскольку знаки «+» и «-» должны быть расположены между двумя цифрами, такие выражения можно рассматривать как списки цифр, разделенных знаками «+» и «-».

 

Из этого списка правил следует, что

;

;

перечислены выше;

начальный символ грамматики.

 

Пример 3. Упрощенная КС-грамматика выражений типичного языка программирования. Ограничимся операторами «+» и «-», представляющими сложение и умножение. Разрешены идентификаторы, построенные из символов .

 

 

Из этого списка правил следует, что

перечислены выше;

начальный символ грамматики.

 


<== предыдущая лекция | следующая лекция ==>
Обработка зарезервированных ключевых слов | Порождение с использованием грамматики
Поделиться с друзьями:


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


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



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




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