Скачиваний:
7
Добавлен:
01.05.2014
Размер:
47.1 Кб
Скачать

Атрибутная грамматика.

1) Атрибутная грамматика для подграмматики описаний.

p - унаследованный

t - синтезированный

OPS ® OP OP_

OPS ® e

OP_ ® OP OP_

OP_ ® e

KOp1 ® i­t1 = Vt2 {присвоить}A1, A2,A3, R KO'p2 A1 ¬ p1 A2 ¬ t1

A3 ¬ t2 p 2 ¬ p1

KO’p1 ® i­t1 = Vt2 {присвоить}A1, A2,A3, R KO'p2 A1 ¬ p1 A2 ¬ t1

A3 ¬ t2 p 2 ¬ p1

KO'p ® e

KOVp1, p2 ® OV p3, p4 KO_ p5, p6 p3 ¬ p1 p5 ¬ p1

p4 ¬ p2 p6 ¬ p2

KO_ p1, p2 ® e

KO_ p1, p2 ® , OV p3, p4 KO_ p5, p6 p3 ¬ p1 p5 ¬ p1

p4 ¬ p2 p6 ¬ p2

OVp1, p2 ® it1 = { Vt2 {присвоить_элементу_вектора}A1, A2, A3, A4, R OSTp3, p4, p5 }

A1 ¬ p1 // тип

A2 ¬ p2 // индекс элемента вектора

A3 ¬ t2 ­// значение

A4 ¬ t1 // адрес переменной вектора

p3 ¬ p1 p4 ¬ p2 p5 ¬ t1

OSTp1, p2, p3 ® , Vt1 {присвоить_элементу_вектора}A1, A2, A3, A4, R OSTp3, p4, p5

A1 ¬ p1 A2 ¬ p2 A3 ¬ t1

A4 ¬ p5 p3 ¬ p1 p4 ¬ p2

p5 ¬ p3

OST p1, p2, p3 ® e

OP ® intt KOp ; p ¬ t

OP ® fltt KOp ; p ¬ t

OP ® vctt1 [ Vt2 ] KOVp1, p2 ; p1 ¬ t1 p2 ¬ t2

OP ® cst OC

OC ® intt KOp ; p ¬ tconst

OC ® fltt KOp ; p ¬ tconst

OC ® vctt1 [ Vt2 ] KOVp1, p2 ; p1 ¬ t1cosnt p2 ¬ t2

Примечание: тип = {int, float, vector, const int, const float, const vector}

Семантические процедуры для операционных символов.

Ai - унаследованные.

{присвоить}A1, A2,A3

A1 тип

2 адрес переменной

A3 значение

Тип переменной по адресу A2 получает значение A1.

Генерируется триада mov [A2], A3

Аномальные ситуации:

1) если тип значения и тип переменной не совпадают.

2) если переменная по адресу A2 константа.

{присвоить_элементу_вектора}A1, A2, A3, A4

A1 тип;

A2 индекс элемента вектора;

A3 значение;

A4 адрес переменной вектора;

Тип переменной по адресу A4 получает значение A1.

Генерируется триада mov [A4+A2], A3

Аномальные ситуации:

1) если тип значения не float.

2) если индекс элемента вектора превышает размерность вектора.

3) если переменная по адресу A2 константа.

Соседние файлы в папке Курсовая работа2