Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовик по ТЯП. Вариант 5.doc
Скачиваний:
16
Добавлен:
01.05.2014
Размер:
975.87 Кб
Скачать

8. Грамматика описания операторов

Входные символы:

Имя символа

Семантика

OperDesc

Раздел описания операторов

ManyOperDef

Последовательность помеченных операторов

LabOper

Один помеченный оператор (возможно, составной)

Oper

Один непомеченный оператор (возможно, составной)

O

Один непомеченный несоставной оператор

Операционные символы:

Имя символа

Семантика

Атрибуты

{ВЫЗОВO}

Вызов соответствующего ДМП-процессоров

{ВЫЗОВ L}a

Вызовы соответствующего ДМП-процессоров. Результаты его работы запоминаются как атрибут a

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

{МЕТКА}k

В таблицу меток по адресу kзаносится адрес триады, следуюшей за этой меткой

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

Правила:

OperDesc->ManyOperDef

ManyOperDef -> ManyOperDef ; LabOper

ManyOperDef -> LabOper

LabOper -> L {ВЫЗОВ L}p : {МЕТКА}q Oper

q <- p

LabOper -> Oper

Oper -> begin ManyOperDef end

Oper -> O{ВЫЗОВO}

9. Грамматика видов операторов

Символы грамматики:

Имя символа

Семантика

O

Непомеченный оператор

OIO

Операторы ввода и вывода

OEq

Оператор присваивания

OManager

Операторы условия, цикла и безусловного перехода

{ВЫЗОВOIO}, {ВЫЗОВOEq}…

Вызов соответствующих ДМП-процессоров

Правила:

O -> OIO {ВЫЗОВ OIO}

O -> OEq {ВЫЗОВ OEq}

O -> OManager{ВЫЗОВOManager}

O -> OList{ВЫЗОВOList}

10. Грамматика операторов ввода и вывода

Входные символы:

Имя

Семантика

OIO

Операторы ввода и вывода

OOu

Оператор вывода

OIn

Оператор ввода

MD

Последовательность данных для вывода

D

Единица данных для вывода

EQ

Арифметическое выражение

Condition

Логическое выражение

V

Переменная

Операционные символы:

Имя символа

Семантика

Атрибуты

{ВЫЗОВ EQ}a, {ВЫЗОВ V}a, {ВЫЗОВ Condition}a

Вызовы соответствующих ДМП-процессоров. Результаты их работы запоминаются как атрибут a

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

{ВВЕСТИ}q

Генерируется триада RD q

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

{ВЫВЕСТИ}p

Генерируется триада WR p

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

Правила:

OIO -> OOu

OIO -> OIn

OOu -> wri ( MD )

MD -> MD , D

MD -> D

D -> EQ {ВЫЗОВ EQ}b {ВЫВЕСТИ}p

p <- b

D -> Condition {ВЫЗОВ Condition}с {ВЫВЕСТИ}p

p <- c

OIn -> rea ( V {ВЫЗОВ V}a ) {ВВЕСТИ}q

q <- a

11. Грамматика оператора присваивания

Входные символы:

Имя

Семантика

OEq

Оператор присваивания

V

Переменная

EQ

Арифметическое выражение

Condition

Логическое выражение

Операционные символы:

Имя символа

Семантика

Атрибуты

{ВЫЗОВ EQ}a, {ВЫЗОВV}a, {ВЫЗОВCondition}a

Вызовы соответствующих ДМП-процессоров. Результаты их работы запоминаются как атрибут a

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

{ПРИСВОИТЬ} left, flag, right

В таблице идентификаторов ищется переменная по адресу left. Значение по адресуrightищется в таблице идентификаторов, еслиflag= 1 или в таблице промежуточных значений, еслиflag= 0. Если имя типа переменной и имя типа найденного значения не совпадают, то синтаксическая ошибка.

Если переменная по адресу leftпомечена как «константа» или «метка», то синтаксическая ошибка. Иначе в поле «значение» переменной записывается содержимое поля «значение» по адресуright.

left,right- унаследованные

Правила

OEq->V{ВЫЗОВV}a:=EQ{ВЫЗОВEQ}b {ПРИСВОИТЬ}left, 0, right

left <- a

right <- b

OEq -> V {ВЫЗОВ V}a := Condition {ВЫЗОВ Сondition}c b {ПРИСВОИТЬ}left, 0, right

left<-a

right<-b

OEq->V{ВЫЗОВV}a=V{ВЫЗОВV}b{ПРИСВОИТЬ}left, 1, right

a<-b