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

4.2. Описание промежуточного языка (триады)

Код операции

Операнд1

Операнд2

Семантика

MOV

b

a = b

ADD

a

b

a + b

SUB

a

b

a – b

AA

a

a++

MM

a

a--

MUL

a

b

a * b

DIV

a

b

a / b

NEG

a

-a

OR

a

b

a || b

AND

a

b

a && b

NOT

a

!a

L

a

b

a < b

LE

a

b

a <= b

G

a

b

a > b

GE

a

b

a >= b

EQL

a

b

a == b

NEQL

a

b

a != b

I2D

a

Преобразование целого aк вещественому

RD

a

Read(a)

WR

a

Write(a)

TP

a

<тип>a

DEFL

l

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

BRL

l

Безусловный переход на l

BF

l

E

Переход к триаде с меткой l, если значение выраженияEравно «ложь»

LEN

a

length(a)

CONC

a

b

concat(a,b)

FND

s1

s2

find(s1,s2)

RPLSTR

s1

s2

replace(s1,s2,s3)

.

s3

SBSTR

s

i

substring(s,i,j)

.

j

4.2.1. Неформальное описание перевода if(<expr>) <op1>else<op2>

Оператор

Код операции

Операнд1

Операнд2

if (<expression>)

<expr>

1

BF

(1)

Lelse

2

operator1

<operator1>

3

BRL

Lend

4

Else

DEFL

Lelse

5

<operator2>

<operator2>

6

DEFL

Lend

7

if(<expr>) <op>

Оператор

Код операции

Операнд1

Операнд2

if (<expression>)

<expr>

1

BZL

Lend

(1)

2

operator1

<operator1>

3

DEFL

Lend

4

Оператор цикла while(<expr>)<op>

Оператор

Код операции

Операнд1

Операнд2

DEFL

Lbegin

1

while (<expression1>)

<expr1>

2

BF

(2)

Lend

3

<operator1>

<operator1>

4

BRL

Lbegin

5

DEFL

Lend

6

18