- •Комитет образования рф
- •Отчёт по курсовой работе
- •Языки программирования и методы трансляции
- •1. Описание входного языка.
- •1.2. Формализм для описания синтаксиса.
- •1.3.4. Идентификаторы.
- •1.3.5. Константы.
- •1.4.2. Выражения.
- •1.4.3. Описания.
- •Приложение 1. Полный синтаксис языка в форме Бэкуса-Наура.
- •2. Описание лексического анализатора.
- •2.1. Классы литер.
- •2.2. Классы лексем.
- •2. Описание синтаксического анализатора.
- •3.1. Входная грамматика анализатора.
- •Множество правил входной грамматики анализатора.
- •Атрибутная грамматика.
- •Семантические процедуры для операционных символов.
- •2) Атрибутная грамматика для подграмматики описаний.
- •Атрибутная грамматика.
- •Семантические процедуры для операционных символов.
- •Основная грамматика
- •Атрибутная грамматика.
- •Семантические процедуры для операционных символов.
Атрибутная грамматика.
Атрибутная грамматика для подграмматики выражений.
p - унаследованный
t - синтезированный
Vt1 ® Dt2 V'p1, t3 t1 ¬ t3 p1 ¬ t2
V'p, t ® e t ¬ p
V'p1, t1 ® || Dt2 {дизъюнкция}A1, A2, R V'p2, t3 t1 ¬ t3 A1 ¬ p1
A2 ¬ t2 p2 ¬ R
Dt1 ® Kt2 D'p1, t3 t1 ¬ t3 p1 ¬ t2
D'p, t ® e t ¬ p
D'p1, t1 ® && Kt2 {конъюнкция}A1, A2, R D'p2, t3 t1 ¬ t3 A1 ¬ p1
A2 ¬ t2 p2 ¬ R
Kt1 ® Ot2 K'p1, t3 t1 ¬ t3 p1 ¬ t2
K'p, t ® e t ¬ p
K'p1, t1 ® == Ot2 {равно}A1, A2, R K' p2, t3 t1 ¬ t3 A1 ¬ p1
A2 ¬ t2 p2 ¬ R
K'p1, t1 ® != Ot2 {неравно}A1, A2, R K' p2, t3 t1 ¬ t3 A1 ¬ p1
A2 ¬ t2 p2 ¬ R
Ot1 ® Et2 O'p1, t3 t1 ¬ t3 p1 ¬ t2
O'p, t ® e t ¬ p
O'p1, t1 ® >= Et2 {больше_или_равно}A1, A2, R O'p2, t3 t1 ¬ t3 A1 ¬ p1
A2 ¬ t2 p2 ¬ R
O'p1, t1 ® <= Et2 {меньше_или_равно}A1, A2, R O'p2, t3 t1 ¬ t3 A1 ¬ p1
A2 ¬ t2 p2 ¬ R
O'p1, t1 ® > Et2 {больше}A1, A2, R O'p2, t3 t1 ¬ t3 A1 ¬ p1
A2 ¬ t2 p2 ¬ R
O'p1, t1 ® < Et2 {меньше}A1, A2, R O'p2, t3 t1 ¬ t3 A1 ¬ p1
A2 ¬ t2 p2 ¬ R
Et1 ® Tt2 E'p1, t3 t1 ¬ t3 p1 ¬ t2
Et1 ® + Tt2 E'p1, t3 p1 ¬ t2
Et1 ® - Tt2 {унарный_минус}A1, A2, R E'p1, t3 A1 ¬ t2 p1 ¬ R
E'p, t ® e t ¬ p
E'p1, t1 ® + Tt2 {бинарный_плюс}A1, A2, R E'p2, t3 t1 ¬ t3 A1 ¬ p1
A2 ¬ t2 p2 ¬ R
E'p1, t1 ® - Tt2 {бинарный_минус}A1, A2, R E'p2, t3 t1 ¬ t3 A1 ¬ p1
A2 ¬ t2 p2 ¬ R
Tt1 ® Mt2 T'p1, t3 t1 ¬ t3 p1 ¬ t2
T'p, t ® e t ¬ p
T'p1, t1 ® * Mt2 {умножить}A1, A2, R T'p2, t3 t1 ¬ t3 A1 ¬ p1
A2 ¬ t2 p2 ¬ R
T'p1, t1 ® / Mt2 {разделить}A1, A2, R T'p2, t3 t1 ¬ t3 A1 ¬ p1
A2 ¬ t2 p2 ¬ R
Mt1 ® ( Vt2 ) t1 ¬ t2
Mt1 ® it2 M'p1, t3 p1 ¬ t2 t1 ¬ t3
Mt1 ® ct2 t1 ¬ t2
Mt1 ® length ( Vt2 ) {длина_вектора}A1, A2, R A1 ¬ t2 t1 ¬ R
M'p, t ® e t ¬ p
M'p1, t1 ® [ Vt2 ] {элемент_вектора}A1, A2, R A1 ¬ p1 A2 ¬ t2
t1 ¬ R