JPL - внутренний процедурный язык программирования JAM
В состав Редактора Экранов входит JPL - процедурный интерпретируемый язык
программирования с синтаксисом, похожим на синтаксис C. В JPL доступны следующие
возможности:
- Скалярные переменные и одно- и двумерные массивы;
- Управляющие конструкции - if, else, for, while, break и next;
- Передача параметров в функции и возврат значений.
Все JPL-функции оформляются в виде JPL-модулей. JPL-модуль является набором нескольких
именованных функций и не более одной неименованной функции. Неименованная функция есть
JPL-код от начала модуля до первой именованной процедуры и, очевидно, может отсутствовать в
модуле, если он начинается сразу с именованной процедуры. Из неименованной процедура
доступны именованные. JPL-модули могут быть трех типов:
- Модуль экранного объекта (vidget module). Хранится вместе с
объектом. Неименованная процедура исполняется при возникновении события
validation для данного момента;
- Экранный модуль (screen module). Хранится вместе с экраном.
Неименованная процедура исполняется при загрузке экрана, именованные
процедуры могут являться обработчиками событий всех объектов данного
экрана;
- Внешний модуль (external module). Хранится в отдельном файле.
Загружается в память или принудительно, или при вызове процедуры с именем
этого файла. Возможна принудительная выгрузка. Неименованная процедура
исполняется при загрузке модуля. Внешние модули целесообразно
использовать для хранения универсальных процедур.
Экранные модули и модули объектов хранятся как в текстовом, так и в прекомпилированном (в
некоторый промежуточный код) виде. Доступны для редактирования в Редакторе Экранов.
Внешние модули хранятся в виде текстовых файлов. С помощью специальной утилиты текстовые
внешние модули могут быть прекомпилированы. Прекомпилированные внешние модули могут
храниться в библиотеках экранов.
Визуальный Репозиторий Объектов
Реализация принципов объектно-оpиентиpованного программирования осуществлена в JAM
следующим образом. Каждый элемент приложения с определенными свойствами и методами (в
качестве которых выступают обработчики событий) является объектом. Одной из составных частей
ядра JAM является Визуальный Репозиторий Объектов, в котором можно сохранять созданные
объекты. Визуальный Репозиторий Объектов является специальным типом библиотеки экранов и
соответствующим образом организован. Т.е. Репозиторий состоит из так называемых входов
(entries). которые выглядят как экраны с базовыми объектами на них. Текущая установка свойств и
методов является базовой. Для использования какого-либо базового объекта достаточно перенести
его мышью с входа Репозитория на проектируемый экран. При изменении свойств и/или методов
базового объекта эти изменения распространяются на всех потомков данного объекта. Реализован
механизм управляемого наследования свойств и методов, при котором можно запретить
наследование части или всех свойств/методов. Вся работа с Репозиторием осуществляется в
Редакторе.
Поддержка групповой разработки
Ядро JAM имеет встроенный интерфейс к системам управления многоверсионными проектами и
групповой разработки (PVCS на платформе Windows и SCCS на платформе UNIX). При этом под
управление этих систем передаются библиотеки экранов и/или Репозитории. При отсутствии таких
систем JAM самостоятельно реализует часть функций поддержки групповой разработки.
Редактор Меню
Позволяет разрабатывать и отлаживать системы меню. Реализована возможность построения
пиктографических меню (так называемые toolbar). Меню могут сохраняться как в отдельных
файлах, так и в экранных библиотеках. В одном файле может быть несколько поименованных
меню. Назначение каждого конкретного меню тому или иному объекту приложения
осуществляется в Редакторе Экранов.
Собственная СУБД JAM - JDB
В ядро JAM встроена однопользовательская реляционная СУБД JDB. Основным назначением JDB
является прототипирование приложений в тех случаях, когда работа со штатным сервером БД
недоступна или нецелесообразна. В JDB реализован необходимый минимум возможностей
реляционных SQL-серверов БД за исключением индексов, внешних слияний таблиц (outer joins),
хранимых процедур, триггеров и так называемых view. В результате с помощью JDB можно
построить БД, идентичную целевой БД (с точностью до отсутствующих в JDB возможностей) и
разработать значительную часть приложения не загружая сеть и сервер. В состав JAM входит
утилита интерактивного SQL для JDB.
Отладчик
Позволяет проводить комплексную отладку разрабатываемого приложения. Осуществляется
трассировка всех событий, возникающих в процессе исполнения приложения, как составная часть
реализован символический отладчик JPL-процедур и механизм точек прерывания.
Набор вспомогательных отдельных утилит
Утилиты JAM представляют три группы:
- Конвертор файлов экранов JAM в текстовые файлы. JAM сохраняет
экраны в виде двоичных файлов собственного формата. В ряде случаев
(например для изготовления проектной документации) необходимо текстовое
описание экранов;
- Конфигурирование устройств ввода/вывода. JAM и приложения,
построенные с его помощью, не работают непосредственно с устройствами
ввода/вывода. Вместо этого JAM обращается к логическим устройствам
ввода/вывода (клавиатура, терминал, отчет). Отображение логических
устройств в физические осуществляется с помощью развитых средств
конфигурирования;
- Обслуживание библиотек экранов. Осуществляются традиционные
операции с библиотеками.
Средства изготовления промышленного релиза приложения
Приложения, разработанные с использованием JAM, не требуют так называемых run-time систем и
могут быть изготовлены в виде исполняемых модулей. Для этого разработчик должен иметь
компилятор C и редактор связей. Для изготовления промышленного релиза в состав JAM входит
файл сборки (makefile), исходные тексты (на языке C) ряда модулей приложения и необходимые
библиотеки.