Документация Engee

Генерация кода для конечных автоматов

Engee поддерживает генерацию кода для блока Chart. Блок Chart позволяет описывать диаграммы состояний, графы переходов и их комбинации. Библиотека конечных автоматов Engee является эффективным инструментом разработки таких пользовательских алгоритмов для целевых устройств, где необходимо использовать сложные конструкции условий, циклов и переключателей.

В состояниях, действиях и условиях блока Chart генератором кода Engee поддерживаются следующие конструкции языка Julia:

  • Арифметические операторы

  • Логические операторы

  • Операторы сравнения

Поддерживаемые генератором кода Engee возможности блока Chart:

  • Безусловные и условные переходы

  • Входные, локальные, выходные переменные

  • Несколько несвязанных диаграмм состояний, графов переходов

  • Несколько инструкций, записанных в одну строку в теле действий условных переходов и в состояниях

  • Многострочные инструкции в состояниях

  • Сокращенные наименования операторов Chart (en, du, ex)

  • Комментирование в состояниях, теле условий и действий переходов

  • Поддержка механизма Backtracking (когда между состояниями есть промежуточные узлы)

  • Поддержка механизма суперпереходов (когда осуществляются переходы напрямую в подсостояния или между состояниями)

Для успешной и корректной генерации кода моделей с блоками Chart необходимо учитывать следующие особенности:

  • В многострочных комментариях не допускаются строки, начинающиеся с ключевых слов действий: en, entry, du, during, ex и exit. Пример:

    Корректно

    Некорректно

    #=
    Hello, world!
    #=
    #=
    en
    #=