Интерпретатор
Интерпретатор ВТР.
Созданный в редакторе граф можно интерпретировать. Запуск нтерпретатора осуществляется инструментами, описанными ниже. Когда интерпретатор находится в какой-то вершине, то эта вершина и дуга, по которой будет происходить дальнейшее движение, выделяются на
Р-схеме жирным.
Условия и Действия записываются на языках интерпретирования. В текущей реализации поддерживается только язык QtScript. Он выбран потому, что его производные довольно популярны ( например JavaScript) , гибок и его легко встраивать в другие системы.
Примеры записи «условий» на языке QtScript:
(a==b)
(‘abcd’[3]==’d’)
(3).toString()==’3’
При интерпретации запись «условие» приводится к типу Boolean.
Примеры записи «действий» на языке QtScript:
ui.log(’Hello, World!’);
ui.log(Math.cos(Math.PI));
function tg(a){return Math.sin(a)/Math.cos(a);}
ui.log(”Tan:”+tg(3.1415));
Запись «действия» - выполняется.
В нижней части редактора находится поле “Сообщения”. Оно предназначено для вывода ошибок анализа условий и действий, отметок о начале и конце интерпретирования. Поскольку в языке QtScript отсутствуют средства вводавывода, в него была добавлена функция ui.message(s), которая выводит строку s в поле “Сообщения”.
Для управления работой интерпретатора существуют инструменты:
«Запустить» – запускает интерпретирование первой Р-схемы текущего документа, начиная с левой вершины;
«Пауза» – приостанавливает интерпретирование Р-схемы;
«Остановить» – останавливает интерпретирование и возвращает все объекты в начальное состояние.
«Шаг» – выполняет один переход из текущей вершины согласно «условиям» и приостанавливает программу.
«Запустить без задержек» - интерпретирует первую Р-схему текущего документа без задержек после перехода в новую вершину.
Выполнение останавливается, если нет следующей вершины для перехода.
Для слежения за глобальными объектами языков интерпретирования существует дерево «Глобальные объекты» в левой части редактора. В квадратных скобках отображены имена глобальных объектов, а после двоеточия – их строковые значения. Стандартные объекты языка QtScript сгруппированы в ветвь “other”.
Leave a Reply