![](/user_photo/2706_HbeT2.jpg)
- •Содержание
- •1. Цель работы.
- •2. Краткое описание учебного языка, варианты заданий.
- •3. Расшифровка цифр варианта задания.
- •4. Пример праграммы
- •5. Регулярные выражения
- •6. Построить ка в форме матрицы:
- •7. Формальная грамматика
- •8. Примеры результатов работы Результат реализации лексического блока
- •Результат реализации синтаксичекого блока
- •Результат реализации генератора кода с переводом в язык абстрактной стековой машины
- •9. Список литературы
Результат реализации генератора кода с переводом в язык абстрактной стековой машины
-
Входная цепочка
int ab2, d3; float c1;
bool xy4;
by(xy4==yes) do ab2 = 4;
otherwise c1=3 ;
switch (ab2) { by 1 : d3=4 * (c1 + 3); by 2 : c1 =(ab2 + 3) *3; }
for d3 from 0 to 3 ab2 = d3 * 1;
-
Результат
Prog
-string:
xy4 DW
ab2 DW
c1 DW
ab2 DW
d3 DW
xy4 DW
ab2 DW
c1 DW
ab2 DW
d3 DW
//***COND_OP****//
RVALUE xy4
PUSH yes
==
GOTRUE M1
GOTO M2
LABEL M2
LVALUE c1
PUSH 3
:=
GOTO M3
LABEL M1
LVALUE ab2
PUSH 4
:=
GOTO M3
LABEL M3
//***SWITCH OP****//
RVALUE ab2
PUSH 1
=
GOTRUE CASE2
RVALUE ab2
PUSH
2
=
GOTRUE CASE 1
GOTO OUT_SWITCH
LABEL CASE2
LVALUE d3
PUSH 4
RVALUE c1
PUSH 3
ADD
MULT
:=
GOTO OUT_SWITCH
LABEL CASE 1
LVALUE c1
RVALUE ab2
PUSH 3
ADD
PUSH 3
MULT
:=
GOTO OUT_SWITCH
LABEL OUT_SWITCH
//***FOR****//
LVALUE d3
PUSH 0
:=
LABEL LAP
RVALUE d3
PUSH 3
<=
GOFALSE OUTFOR
LVALUE ab2
RVALUE d3
PUSH 1
MULT
:=
LVALUE
d3
RVALUE
d3
PUSH 1
ADD
:=
GOTO LAP
LABEL OUTFOR
HALT
9. Список литературы
-
Методическое пособие по СПО С.С. Сосинская, П.В. Юрин Издательство- Иркутского государственного технического университета 2006г.-95с.
-
Сосинская С. С. “Системное программное обеспечение ”: Лабораторная работа №3-25с. в электронном каталоге кафедры вычислительной техники.
-
Молчанов А.Ю. Системное программное обеспечение: Учебник для вузов. Питер 2003- 736 с.
-
Сайт : http://decoding.narod.ru/practic/polishrecord/polishrecord.html
http://codingrus.ru/readarticle.php?article_id=2158