Разработка словесного описания лексики, синтаксиса и семантики языка, предназначенного для программирования потоковых вычислений, страница 23

Блок: 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

Таблица связей

 Вых. блок 

 Выход 

 Вх. блок 

 Вход 

12. Заключение.

В результате выполнения данной курсовой работы был разработан язык, предназначенный для программирования потоковых вычислений, с предусмотренными индивидуальным заданием особенностями, такими как: числовые идентификаторы блоков, определение связей только в блоках описаний (отсутствие заголовков в блоках).

В ходе выполнения данной работы были реализованы следующие возможности языка: арифметические операции, логические операции сравнения, операция присваивания, условный оператор с гибкой структурой и любым уровнем вложенности. В итоге были построены лексический, синтаксический и семантический анализаторы, а также преобразователь постфиксной записи в последовательность пентад и их выполнение, после чего было проведено тестирование на различных вариантах программ. Были закреплены знания по работе с регулярными выражениями, а также получен небольшой опыт программирования на Java. Все найденные ошибки были исправлены.

13. Список литературы.

1.  Малявко А.А. Теория формальных языков / Учебное пособие, Ч.1,2,3. — Новосибирск: Изд-во НГТУ, 2001-2005.