Генерация кода для конечных автоматов
Engee поддерживает генерацию кода для блока Chart. Блок Chart позволяет описывать диаграммы состояний, графы переходов и их комбинации. Библиотека конечных автоматов Engee является эффективным инструментом разработки таких пользовательских алгоритмов для целевых устройств, где необходимо использовать сложные конструкции условий, циклов и переключателей.
В состояниях, действиях и условиях блока Chart генератором кода Engee поддерживаются следующие конструкции языка Julia:
-
Арифметические операторы
-
Логические операторы
-
Операторы сравнения
Поддерживаемые генератором кода Engee возможности блока Chart:
-
Безусловные и условные переходы
-
Входные, локальные, выходные переменные
-
Несколько несвязанных диаграмм состояний, графов переходов
-
Несколько инструкций, записанных в одну строку в теле действий условных переходов и в состояниях
-
Многострочные инструкции в состояниях
-
Сокращенные наименования операторов Chart (
en
,du
,ex
) -
Комментирование в состояниях, теле условий и действий переходов
-
Поддержка механизма Backtracking (когда между состояниями есть промежуточные узлы)
-
Поддержка механизма суперпереходов (когда осуществляются переходы напрямую в подсостояния или между состояниями)
Для успешной и корректной генерации кода моделей с блоками Chart необходимо учитывать следующие особенности:
-
В многострочных комментариях не допускаются строки, начинающиеся с ключевых слов действий:
en
,entry
,du
,during
,ex
иexit
. Пример:Корректно
Некорректно
#= Hello, world! #=
#= en #=