Вверх ↑
HiAsm4 - Состав Конструктора

Состав Конструктора
Структура Конструктора программ


   Прежде, чем разбирать каждый из блоков на диаграмме стоит отметить некоторые графические обозначения
- пунктирной стрелкой обозначены блоки, которые могут отсутствовать в зависимости от типа используемого пакета
- в рамках даны примеры названий конкретных программ, модулей или библиотек, которыми представлен данный блок

HiAsm - представляет из себя не более чем простой графический редактор с пользовательским интерфейсом. Если убрать с диаграммы все блоки, кроме этого, то в Конструкторе программ не возможно будет создать или отредактировать ни одну схему. Весь набор проектов и элементов для редактирования схем определяется в конструкторе установленным набором пакетов (блок Pack слева на диаграмме).

Pack - пакет(или набор пакетов), который содержит в себе описания проектов, элементов и используемых компиляторов. Список пакетов среды можно увидеть при нажатии кнопки "Новый". В этом же диалоге при выборе конкретного пакета отображается список его проектов. И уже после создания проекта в палитре элементов можно увидеть все доступные для пользователя элементы пакета.

Codegen - кодогенератор пакета. Это библиотека, которая входит в состав пакета и предназначена (в основном) для генерации исходного кода(блок Sources) приложения на целевом языке с использованием (или без) скриптов элементов (блок Script). Процесс сборки кода происходит в следующей последовательности:
- после выполнения команды run или build HiAsm передает всю информацию о схеме в кодогенератор
- кодогенератор в зависимости от своего типа делает следующее:
- FTCG и ему подобные
    -- запускает интерпретатор HWS, который последовательно выполняет скрипты элементов в соответствии с их соединением и положением в схеме (блок Sources)
    -- каждый скрипт элемента генерирует небольшой кусок кода в соответствие с его свойствами и соединениями в среде с другими элементами
    -- после отработки интерпретатора код собирается в готовые для компиляции исходники проекта
- Все остальные
    -- запускается цикл обхода всех элементов схемы
    -- для каждого элемента выполняется процедура создания и инициализации из уже готовых модулей, написанных на целевом языке пакета
    -- полученный код собирается в готовые для компиляции исходники проект
- исходники проекта сохраняются в папке code пакета
- кодогенератор в зависимости от типа проекта делает следующее:
- Компилируемый проект
    -- вызывает текущий компилятор пакета для сборки исходников проекта
    -- полученный исполняемый модуль перемещает в папку пользователя
    -- удаляет исходники
- Не компилируемый проект
    -- перемещает полученные исходники в папку пользователя
   Стоит отметить возможно не совсем очевидную, но очень важную разницу между двумя типами кодогенераторов: все кодогенераторы до появления FTCG при сборке проекта занимались в сущности только тем, что описывали последовательность создания и инициализации элементов, а так же их соединения друг с другом. Код самих же элементов лежал в уже готовых не изменяемых файлах. В тоже время кодогенератор FTCG для каждого элемента выполняет соответствующий ему скрипт, который в зависимости от свойств и соединений элемента честно генерирует свою часть кода будущей программы. Благодаря этому исходник по качеству и внешнему виду получается практически таким же, каким его мог бы написать обычный программист вручную.

Sources - исходники проекта на целевом языке пакета.

Compiler - компиляторы проектов пакета.
BB-code статьи для вставки
Всего комментариев: 0
(комментарии к статье еще не добавлены)
Комментарий
...