Программа на внутреннем языке
В этом разделе вкратце рассматриваются ступени создания программы на внутреннем языке. Также дается обзор инструментария для быстрого создания и организации проектов.
Проект
Проект – это набор данных, описывающий, как и из чего создается исполняемый код программы на внутреннем языке. Проект включает список исходных файлов, параметры компилятора, инструкции размещения исполнимого кода и др. Физически проект хранится в файле с расширением *.ibp. Создание проекта осуществляется на основе шаблона.
В Инфо-Бухгалтер 8 нет файлов проектов. Неявно роль проектов исполняют бланки. В файле бланка хранится информация о режиме интерпретатор/компилятор и опции компиляции. Для исходных файлов (*.src) и типовых операций индивидуальное хранение опций компиляции не предусмотрено. |
Основной файл и библиотеки
Один из исходных текстов проекта является основным – с него начинается компиляция. Такой файл имеет расширение *.ipp. Основной файл должен содержать точку входа в программу, обозначаемую ключевым словом ВЫЧИСЛИТЬ:
// основной файл ///////////////////// ... ВЫЧИСЛИТЬ ... КОНЕЦ //////////////////////////////////////
После ключевого слова ВЫЧИСЛИТЬ и до ключевого слова КОНЕЦ располагаются операторы тела программы. Эти операторы могут обращаться к переменным и функциям, объявленным вне тела, например до слова ВЫЧИСЛИТЬ. Если таких функций и других объявлений много или они используются в различных проектах, то их выносят в отдельные файлы, называемые библиотеками. Библиотеки являются файлами исходного текста с расширением *.ibl. Подключение библиотек осуществляется с помощью ключевого слова ИСПОЛЬЗОВАТЬ.
Простой пример показывает принцип взаимодействия основного файла и библиотеки:
// библиотека: Арифметика.ibl ///////// ФУНКЦИЯ ЧИСЛО: Квадрат(ЧИСЛО: арг) РЕЗУЛЬТАТ = арг * арг КОНЕЦ_ФУНКЦИИ /////////////////////////////////////// // основной файл: Пример.ipp ////////// ИСПОЛЬЗОВАТЬ("Арифметика.ibl") ВЫЧИСЛИТЬ СООБЩЕНИЕ(СТР(Квадрат(2))) // 4 КОНЕЦ ///////////////////////////////////////
В Инфо-Бухгалтер 8 используется сходный способ организации исходного кода в виде библиотек. Тело программы между ключевыми словами ВЫЧИСЛИТЬ и КОНЕЦ сохранилось лишь в типовых операциях. Для бланков телом программы является формульный раздел, а для файлов *.src – все содержимое файла. В отличие от Инфо-Бухгалтер 8, в Инфо-Бухгалтер 10 применять ключевое слово ИСПОЛЬЗОВАТЬ можно только вне тела программы или функции. |
Компиляция исполнимого файла
Компилятор обрабатывает основной файл и все подключенные библиотеки, при этом генерируется исполнимый байт-код. Исполнимый код записывается в файл с расширением *.ibx. Выполнением программы на внутреннем языке является обработка инструкций байт-кода специальным проигрывателем – виртуальной машиной.
В зависимости от настроек компилятора в исполнимом коде может содержаться или отсутствовать отладочная информация. Без отладочной информации в коде невозможна пошаговая отладка и отображение имен переменных, функций и т.д.
После успешной компиляции платформа, если того требуют настройки проекта, может сохранить исполнимый код в базу данных или в файл на сервере.
Компиляция может осуществляться несколькими способами:
- для открытого в среде разработки проекта;
- для проекта в составе открытого пакетного проекта;
- при вызове функции ЛКФ_КОМПИЛЯЦИЯ для обычного или пакетного проекта.
В Инфо-Бухгалтер 8 общий принцип создания и исполнения байт-кода такой же. Для бланков и типовых операций компиляция выполняется автоматически при устаревании или отсутствии исполнимого файла. В текущей версии Инфо-Бухгалтер 10 такой режим отсутствует. Задача массовой компиляции проектов в Инфо-Бухгалтер 10 решается созданием пакетных проектов. |
Шаблоны проектов
Шаблоны проектов – это специальные текстовые файлы, на основе которых среда разработки генерирует файл проекта и исходные файлы с заготовками кода. Например, шаблон "Диалог" создает проект с диалоговым окном, содержащим кнопки "ОК" и "Отмена". Можно создавать проект без использования шаблона. При этом создается исходный файл с пустым телом программы ВЫЧИСЛИТЬ/КОНЕЦ.
Шаблоны широко используются при создании проектов программ-обработчиков. Такие шаблоны создают тело программы со списком параметров, соответствующих типу обработчика. В настройки проекта добавляются необходимые опции. Программисту остается реализовать тело программы.
В Инфо-Бухгалтер 8 нет аналогов шаблонов проектов. Шаблоны документов хорошо известны по офисным программам. |
Пакетные проекты
Для логической группировки обычных проектов используется специальный тип проектов – пакетный. Физически пакетный проект представлен файлом с расширением *.ibw. Он содержит список проектов: обычных или пакетных. Таким образом, можно организовать логическую иерархию проектов путем вкладывания пакетных проектов нижнего уровня в пакетные проекты верхнего уровня.
Основная польза от пакетных проектов – это групповая компиляция. Причем компиляцию можно проводить с той степенью избирательности, с какой построена иерархия пакетных проектов. Возможность программного запуска компиляции открывает возможности для автоматического обновления исполнимого кода прикладной конфигурации.
В Инфо-Бухгалтер 8 есть пакетная компиляция всех бланков/типовых операций/исходных текстов и бланков с избирательностью по разделу. Пакетная компиляция запускается только вручную. Компиляция "по требованию" снимает остроту проблемы, но переносит момент компиляции с этапа начального конфигурирования/обновления на момент работы конечного пользователя. |