ВУЗ:
Составители:
16
Грамматика для последовательности операторов присваивания
Допустим, что в правой части оператора присваивания могут быть исполь-
зованы только выражения без скобок. В качестве разделителя операторов в по-
следовательности примем точку с запятой. Учитывая, что последовательность
операторов соответствует списку с разделителями в виде точки с запятой, и,
используя определенную ранее конструкцию идентификатора, получаем иско-
мую схему грамматики в виде:
U → A3
A3 → S R1
R1 → ; S R1 | λ
S → I B2
B2 → := H1
H1 → I R2
R2 → + I R2 | * I R2 | λ.
Грамматики для условных операторов и операторов цикла
Допустим, что рассматриваются условные операторы, аналогичные ис-
пользуемым в языке Pascal, с разделителями 'if', 'then', 'else'. В качестве условия
в таких операторах разрешается использовать отношения, состоящие из двух
идентификаторов, соединенных знаками = и <. Структура такого оператора оп-
ределяется двумя видами последовательностей фиксированной длины, для опи-
сания которых можно воспользоваться простым перечислением компонентов.
Первая последовательность определяет полный и сокращенный условные опе-
раторы, а вторая – конструкцию «отношение». Схема грамматики, задающая
эти последовательности, может быть изображена так:
V> → if R4 C2
C2 → then S C3
C3 → else S | λ
R4 → I R3
R3 → < I | = I.
В этой грамматике S определяется схемой предыдущей грамматики.
Рассмотрим описание операторов цикла, подобных используемым в языке
Паскаль, с разделителями 'while', 'do', 'repeat', 'until'. Каждый оператор может
быть описан в виде простой последовательности ограниченной длины, в кото-
рой используются построенные ранее грамматики для определения понятий R4
и S. Для рассматриваемых операторов цикла такие схемы грамматик с исполь-
зованием определенных ранее нетерминальных символов имеют вид:
W → .while. R4 C4
C4 → .do. S
W1 → .repeat. S C5
C5 → .until. R4.
Страницы
- « первая
- ‹ предыдущая
- …
- 12
- 13
- 14
- 15
- 16
- …
- следующая ›
- последняя »