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

4.3. Описание перевода во внутренний язык

После синтаксического анализа программа представляется в форме набора тетрад.

4.3.1 Формат тетрады

Код операции

Операнд1

Операнд2

Результат

+

a

b

r1

Или в форме БНФ:

<код операции>,<операнд1>,<операнд2>,<результат>

,где <операнд1>,<операнд2> специфицируют аргументы, а <результат> -временное имя для хранения результата выполнения операции.

Операнды одной тетрады должны быть одинаково типа, так как соответствие типов в нашем языке структурное, то неодинаковые типы преобразуются к одинаковому автоматически .

Для доступа к элементу массива необходимо использовать тетраду

SUBS, a,i,t , которая будет интерпретирована как операция доступаa[i].

4.3.2 Формат тетрад для представления основных операторов

Тетрада

Семантика тетрады

=

b

a

a:=b

DEFL

L

Определение метки L

BRL

I

Безусловный переход к тетраде с меткой I

BF

I

E

Переход к тетраде с меткой I, если значение выражения Е равно “ложь”

BR

m

Безусловный переход к тетраде с номером m

BZL(BPL,BML)

m

E

Переход к тетраде с меткой m, если значение выраженияE= нулю (больше нуля, меньше нуля)

BE(BL,BG)

m

E1

E2

Переход к тетраде с меткой m, если значение выраженияE1 равно(меньше, больше) значения выраженияE2

+

a

b

E

Сложение E=a + b

-

a

b

E

Вычитание E=a – b

*

a

b

Е

Умножение Е=a * b

/

a

b

Е

Деление Е a / b

OR

a

b

Е

В Е хранится булевская переменная, соответствующая логическому ИЛИ aиb

AND

a

b

Е

В Е хранится булевская переменная, соответствующая логическому И aиb

NOT

a

Е

В Е хранится НЕ а

<

a

b

Е

В Е хранится результат вычисления логического выражения a<b

<=

a

b

Е

В Е хранится результат вычисления логического выражения a<=b

>

a

b

Е

В Е хранится результат вычисления логического выражения a>b

>=

a

b

Е

В Е хранится результат вычисления логического выражения a>=b

==

a

b

Е

В Е хранится результат вычисления логического выражения a==b

!=

a

b

Е

В Е хранится результат вычисления логического выражения a!=b

SUBS

a

i

Е

чтение из a[i]. Результат-новое значение Е=a[i]

LEN

a

Е

В Е хранится длина вектора Е

+=

a

b

a

Сложение a+=b

*=

a

b

a

Умножение a*=b

/=

a

b

a

Деление a/=b

-=

a

b

a

Вычитание a-=b

++

a

1

a

Инкремент а

--

a

1

a

Декремент а

CIN

a

Ввод из потока значения а

COUT

a

Вывод в поток значения переменной а

Для представления элементов используется тетрада SUBS,a,i,E, которая интерпретируется как операция доступаa[i] и позволяет выбрать элемент вектора, так как размер элемента вектора одно слово, тоn-мерный вектор представляется в памяти в видеnпоследовательно расположенных слов, а индекс элемента есть его смещение в данном представлении(начиная с нуля).