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

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

Описание тетрад

Синтаксис

Семантика

Коп

Оп1

Оп2

Рез

BRL

L

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

BF

L

R

Переход на метку L, если R = “Ложь”

DEFL

L

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

:=

B

A

A := B

BLBEG

Начало блока

BLEND

Конец блока

+

A

B

R

R := A + B

A

B

R

R := A – B

*

A

B

R

R := A * B

/

A

B

R

R := A / B

A

R

R := –A

AND

A

B

R

R := A and B

OR

A

B

R

R := A or B

NOT

A

R

R := not A

>

A

B

R

R := A > B

<

A

B

R

R := A < B

>=

A

B

R

R := A >= B

<=

A

B

R

R := A <= B

=

A

B

R

R := A = B

<>

A

B

R

R := A <> B

ITOA

I

R

Преобразование типа I целый  вещественный

ITOC

I

R

Преобразование типа I целый  комплексный

ATOC

A

R

Преобразование типа I вещественный  комплексный

SUBS

A

i

R

Выборка элемента A[i] вектора A

LEN

A

R

Определение длины вектора A

SUM

A

B

R

Сумма векторов A и B

DIF

A

B

R

Разность векторов A и B

MULS

A

B

R

Скалярное произведение векторов A и B

MULC

A

B

R

Умножение вектора A на константу B

ABS

A

R

Модуль комплексного числа

RE

A

R

Выборка вещественной части комплексного числа

IM

A

R

Выборка мнимой части комплексного числа

WRT

A

Вывод значения А на экран

RED

A

Запрос на ввод с клавиатуры значения переменной A

CRLF

Возврат каретки и перевод строки

BR

m

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

BZ/BP/

BM

m

E

Переход на тетраду с номером m, если значение переменной Е равно/больше/меньше 0

BE/BL/

BG

m

E1

E2

Переход на тетраду с номером m, если значение операнда Е1 равно/больше/меньше значению(-я) операнда Е2

4.3. Неформальное описание перевода

1. Перевод условного оператора IF (Полная форма)

Входная конструкция:

IF <Выражение> THEN <Оператор1> ELSE <Оператор>

Последовательность тетрад:

КОП

Оп1

Оп2

Рез

<Выражение> (R - результат)

BF

Lelse

R

<Оператор1>

BRL

Lend

DEFL

Lelse

<Оператор2>

DEFL

Lend

2. Перевод условного оператора IF (Сокращённая форма)

Входная конструкция:

IF <Выражение> THEN <Оператор>

Последовательность тетрад:

КОП

Оп1

Оп2

Рез

<Выражение> (R - результат)

BF

Lend

R

<Операторы>

DEFL

Lend

3. Перевод оператора цикла WHILE

Входная конструкция:

WHILE <Выражение> DO <Оператор>

Последовательность тетрад:

КОП

Оп1

Оп2

Рез

DEFL

Lbegin

<Выражение> (R - результат)

BF

Lend

R

<Операторы>

BRL

Lbegin

DEFL

Lend

4. Перевод оператора вывода WRITELN

Входная конструкция:

WRITELN(<Выражение1>, <Выражение2>, … ,<ВыражениеN>)

Последовательность тетрад:

КОП

Оп1

Оп2

Рез

<Выражение1> (R1 - результат)

<Выражение2> (R2 - результат)

<Выражение1> (RN - результат)

WRT

R1

WRT

R2

WRT

RN

CRLF

5. Перевод оператора вывода READLN

Входная конструкция:

READLN(A1, A2, … ,AN)

Последовательность тетрад:

КОП

Оп1

Оп2

Рез

RED

A1

RED

A2

RED

AN

CRLF

6. Перевод оператора безусловного перехода GOTO

Входная конструкция:

1: <Оператор>

GOTO 1

Последовательность тетрад:

КОП

Оп1

Оп2

Рез

DEFL

Label1

<Оператор>

BRL

Label1

7

Соседние файлы в папке Курсовик (вар 1)