- •0. Формулировка задания
- •1. Описание входного языка Формулы Бэкуса-Наура
- •2. Описание семантики входного языка Правила реализации конструкций языка
- •3. Описание этапа лексического анализа.
- •3. 1. Определение типов лексем.
- •3. 2. Определение синтаксиса лексем.
- •3. 3. Построение диаграммы лексического анализатора.
- •3. 4. Таблицы лексем.
- •3. 5. Тестирование лексического анализатора.
- •4. Описание этапа синтаксического анализа
- •4.1. Разбиение кс–грамматики входного языка на подграмматики
- •4.3. Неформальное описание перевода
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
