ВУЗ:
Составители:
14
В этой задаче предполагалось, что список L должен содержать хотя бы
один элемент. Если же допустить, что множество цепочек, порожденных пра-
вилами грамматики, может включать пустой символ, то к построенным прави-
лам нужно добавить еще одно правило: L → λ .
Рассмотрим построение списка, между элементами которого должны сто-
ять разделители. Выберем в качестве разделителя запятую. Простейший список,
как и в предыдущем случае, состоит из одного элемента, а построение списка
из нескольких элементов может быть выполнено приписыванием к уже постро-
енной части списка разделителя с элементом списка. Правила, соответствую-
щие этому построению, имеют вид:
L → aR
R → ,aR
R → λ.
Если список с разделителями может быть пустым, то приведенный выше
набор правил нужно дополнить еще одним правилом с пустой правой частью.
Грамматики для целых чисел без знака и идентификаторов
Целые числа представляют собой последовательность цифр, поэтому их
можно рассматривать как списки, элементами которых являются цифры.
Используя в качестве аналога грамматику, задающую список без разделителей,
получаем схему грамматики для целых чисел в виде:
N → DR
R → DR
R → λ
D → 0 | 1 | ... | 9.
Структуру идентификатора можно представить в виде двух компонентов:
начала и основной части. Началом может быть любая из букв, а основная часть
представляет собой список без разделителей, элементами которого могут быть
либо буквы, либо цифры. Используя выделенные компоненты, получаем схему
грамматики вида:
I → CA
A → C A | DA
A → C | D
A → λ
D → 0 | 1 | ... | 9
C → a | d | c | ... | z.
Если наложить ограничения на длину идентификатора, например, допус-
тить использование идентификаторов, состоящих только из трех символов, то
схема грамматики получается проще.
I → C A1
A1 → CB | DB
B → C | D
D → 0 | 1 | ... | 9
C → a | d | c | ... | z.
Страницы
- « первая
- ‹ предыдущая
- …
- 10
- 11
- 12
- 13
- 14
- …
- следующая ›
- последняя »