ВУЗ:
Составители:
5
2 Основы теории разработки компиляторов
2.1 Описание синтаксиса языка программирования
Существуют три основных метода описания синтаксиса языков програм-
мирования: формальные грамматики, формы Бэкуса-Наура и диаграммы Вирта.
Формальные грамматики
Определение 2.1. Формальной грамматикой называется четверка вида:
),,,( SPVVG
N
T
= , (1.1)
где
V
N
- конечное множество нетерминальных символов грамматики
(обычно прописные латинские буквы);
V
T
- множество терминальных символов грамматики (обычно строч-
ные латинские буквы, цифры, и т.п.),
V
T
∩V
N
=
∅
;
Р – множество правил вывода грамматики, являющееся конечным
подмножеством множества (
V
T
∪
V
N
)
+
×
(V
T
∪
V
N
)
*
; элемент
(
α
,
β
) множества Р называется правилом вывода и записывает-
ся в виде
α
→
β
(читается: «из цепочки
α
выводится цепочка
β
»);
S – начальный символ грамматики, S ∈V
N
.
Для записи правил вывода с одинаковыми левыми частями вида
n
β
α
β
α
β
α
→→→ ,,,
21
K используется сокращенная форма записи
n
β
β
β
α
|||
21
K→ .
Пример 2.1. Опишем с помощью формальных грамматик синтаксис пас-
калеподобного модельного языка
М. Грамматика будет иметь правила вывода
вида:
P → program D2 B.
D2 → var D1
D1 → D | D1; D
D → I1: int | I1: bool
I1 → I | I1, I
B → begin S1 end
S1 → S | S1; S
S → begin S1 end | if E then S else S | while E do S | read(I) | write(E)
E → E1 | E1=E1 | E1>E1 | E1<E1
El → T | T+E1 | T-E1 | T∨El
T → F | F*T | F/T | F∧T
F → I | N | L | ¬F | (E)
L → true | false
2 Основы теории разработки компиляторов 2.1 Описание синтаксиса языка программирования Существуют три основных метода описания синтаксиса языков програм- мирования: формальные грамматики, формы Бэкуса-Наура и диаграммы Вирта. Формальные грамматики Определение 2.1. Формальной грамматикой называется четверка вида: G = (VT , V N , P, S ) , (1.1) где VN - конечное множество нетерминальных символов грамматики (обычно прописные латинские буквы); VT - множество терминальных символов грамматики (обычно строч- ные латинские буквы, цифры, и т.п.), VT ∩VN =∅; Р – множество правил вывода грамматики, являющееся конечным подмножеством множества (VT∪ VN)+ × (VT∪ VN)*; элемент (α, β) множества Р называется правилом вывода и записывает- ся в виде α→β (читается: «из цепочки α выводится цепочка β»); S – начальный символ грамматики, S ∈VN. Для записи правил вывода с одинаковыми левыми частями вида α → β1, α → β 2 , K ,α → β n используется сокращенная форма записи α → β1 | β 2 | K | β n . Пример 2.1. Опишем с помощью формальных грамматик синтаксис пас- калеподобного модельного языка М. Грамматика будет иметь правила вывода вида: P → program D2 B. D2 → var D1 D1 → D | D1; D D → I1: int | I1: bool I1 → I | I1, I B → begin S1 end S1 → S | S1; S S → begin S1 end | if E then S else S | while E do S | read(I) | write(E) E → E1 | E1=E1 | E1>E1 | E1
Страницы
- « первая
- ‹ предыдущая
- …
- 3
- 4
- 5
- 6
- 7
- …
- следующая ›
- последняя »