Блок: 21 |
||||||
Номер |
Метка |
Операция |
Операнд1 |
Операнд2 |
Приёмник |
Результат |
0 |
* |
aa2 |
aa1 |
tmpValue22 |
171.20001 |
|
1 |
* |
b2 |
b1 |
tmpValue23 |
1200.744 |
|
2 |
* |
tmpValue23 |
4 |
tmpValue24 |
4802.976 |
|
3 |
- |
tmpValue24 |
tmpValue22 |
tmpValue25 |
-4631.776 |
|
4 |
let |
tmpValue25 |
null |
x |
-4631.776 |
|
5 |
> |
0 |
x |
tmpValue26 |
0 |
|
6 |
!= |
a1 |
b2 |
tmpValue27 |
1 |
|
7 |
&& |
tmpValue27 |
tmpValue26 |
tmpValue28 |
0 |
|
8 |
JmpF |
Label1_2 |
tmpValue28 |
null |
Переход на метку Label1_2 (условие ложно). |
|
12 |
Label1_2: |
< |
0 |
x |
tmpValue30 |
1 |
13 |
JmpF |
Label1_3 |
tmpValue30 |
null |
Переход к следующему выражению (условие истинно). |
|
14 |
* |
2 |
x |
tmpValue31 |
-9263.552 |
|
15 |
- |
tmpValue31 |
x |
tmpValue32 |
4631.776 |
|
16 |
let |
tmpValue32 |
null |
x |
4631.776 |
|
17 |
Jmp |
Label2_3 |
null |
null |
Переход на метку Label2_3. |
|
20 |
Label2_3: |
null |
null |
null |
null |
|
21 |
Label2_2: |
null |
null |
null |
null |
Блок: 22 |
||||||
Номер |
Метка |
Операция |
Операнд1 |
Операнд2 |
Приёмник |
Результат |
0 |
+ |
cc2 |
cc1 |
tmpValue40 |
6.0 |
|
1 |
let |
tmpValue40 |
null |
y |
6.0 |
|
2 |
>= |
0 |
y |
tmpValue41 |
1 |
|
3 |
+ |
bb1 |
cc2 |
tmpValue42 |
35.6 |
|
4 |
< |
tmpValue42 |
cc1 |
tmpValue43 |
1 |
|
5 |
|| |
tmpValue43 |
tmpValue41 |
tmpValue44 |
1 |
|
6 |
JmpF |
Label1_4 |
tmpValue44 |
null |
Переход к следующему выражению (условие истинно). |
|
7 |
+ |
x |
y |
tmpValue45 |
4637.776 |
|
8 |
let |
tmpValue45 |
null |
y |
4637.776 |
|
9 |
Jmp |
Label2_4 |
null |
null |
Переход на метку Label2_4. |
|
20 |
Label2_4: |
null |
null |
null |
null |
Таблица связей |
|||
Вых. блок |
Выход |
Вх. блок |
Вход |
В результате выполнения данной курсовой работы был разработан язык, предназначенный для программирования потоковых вычислений, с предусмотренными индивидуальным заданием особенностями, такими как: числовые идентификаторы блоков, определение связей только в блоках описаний (отсутствие заголовков в блоках).
В ходе выполнения данной работы были реализованы следующие возможности языка: арифметические операции, логические операции сравнения, операция присваивания, условный оператор с гибкой структурой и любым уровнем вложенности. В итоге были построены лексический, синтаксический и семантический анализаторы, а также преобразователь постфиксной записи в последовательность пентад и их выполнение, после чего было проведено тестирование на различных вариантах программ. Были закреплены знания по работе с регулярными выражениями, а также получен небольшой опыт программирования на Java. Все найденные ошибки были исправлены.
1. Малявко А.А. Теория формальных языков / Учебное пособие, Ч.1,2,3. — Новосибирск: Изд-во НГТУ, 2001-2005.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.