Открыть сервис

Informix 4GL

Informix 4GL — это язык программирования четвёртого поколения (4GL), разработанный компанией Informix Software (в настоящее время — часть IBM) для создания приложений, работающих с реляционными базами данных (СУБД) Informix. Относится к классу языков, предназначенных для построения бизнес-приложений с тесной интеграцией с СУБД и генерации графических или символьных интерфейсов пользователя. Первая версия языка была выпущена в 1986 году и на протяжении десятилетий активно использовалась в корпоративных информационных системах, особенно в финансовом и производственном секторах.

История

Разработка Informix 4GL была начата в середине 1980-х годов как ответ на растущий спрос на инструменты для быстрой разработки приложений (RAD) для реляционных СУБД. С момента своего выпуска в 1986 году язык стал основным средством создания приложений для СУБД Informix. В 1990-е годы, в период расцвета реляционных баз данных, Informix 4GL получил распространение на платформах Unix (включая различные диалекты AT&T System V и BSD), в средах MS-DOS и Windows. С приобретением Informix Software корпорацией IBM в 2001 году язык вошёл в портфель продуктов IBM Rational. В 2010-х годах IBM анонсировала перевод Informix 4GL в режим поддержки, однако сообщество разработчиков продолжает его использование — в основном для сопровождения унаследованных систем. Существуют проекты сторонних компаний (например, «Four J’s Development Tools», ныне «Omnidex»), которые предоставляют компиляторы и среды выполнения, совместимые с синтаксисом языка.

Характеристики и особенности

Парадигма программирования

Informix 4GL является процедурным языком с элементами событийно-ориентированного программирования. Он не является объектно-ориентированным, хотя поддерживает модульную организацию кода через функции, процедуры и модули. Язык спроектирован для обработки транзакций: в его синтаксисе встроены конструкции для работы с курсорами, блокировками, транзакциями и обработкой ошибок.

Типизация и структура данных

Язык использует строгую статическую типизацию. Поддерживаются стандартные типы данных, включая:

Допускается объявление массивов и записей (RECORD), но отсутствует поддержка динамических массивов (за исключением встроенного типа DECIMAL). Пользователь может определять свои типы через RECORD и ARRAY.

Взаимодействие с СУБД Informix

В языке присутствует гибридный синтаксис: вызовы SQL-запросов вставляются прямо в текст программы (так называемый «embedded SQL»). Компилятор обрабатывает такие вставки, формируя вызовы API СУБД через библиотеку ESQL/C. Это позволяет:

Типичное приложение на Informix 4GL состоит из последовательности SQL-операторов, объединённых логикой управления потоком. Поддерживается работа с несколькими базами данных в одной сессии, а также соединение с удалёнными базами (dblink).

Графический интерфейс пользователя

Одна из ключевых особенностей — встроенная поддержка экранных форм (screen forms). Язык позволяет описывать окна с полями ввода, кнопками, списками и таблицами. До версии 2.0 (1988) интерфейсы строились исключительно на символьном режиме (текстовый терминал, curses). Начиная с Informix 4GL v2.0, при компиляции под Windows возможно использование графического интерфейса (GUI) через набор виджетов, напоминающих стандартные элементы Windows (окна, списки, поля ввода). Для платформ Unix поддерживается как символьный, так и X-Window графический режим (через библиотеки Motif). Описание формы (обивки) хранится в отдельном файле формата .att (attachments).

Компиляция и исполнение

Исходный код (расширение .4gl, .4ge) транслируется в промежуточный код (p-code) с помощью компилятора (c4gl). Полученный байт-код выполняется специальной виртуальной машиной (runtime — r4gl или fglrun). Существуют также компиляторы, генерирующие исполняемый машинный код для платформ Linux (на базе GCC). В версиях IBM Informix 4GL возможно создание отдельного модуля (shared object), подгружаемого динамически.

Структура и синтаксис

Основные элементы

Типичная программа на Informix 4GL включает:

Пример базового фрагмента кода: `` MAIN DEFINE nCount INTEGER DEFINE cName CHAR(80) PROMPT "Введите имя: " FOR cName LET nCount = LENGTH(cName) DISPLAY "Длина строки: ", nCount END MAIN ``

Конструкции управления потоком

В языке присутствуют:

Работа с окнами и сообщениями

Встроенные команды:

Классификация и варианты реализации

Применение

Благодаря высокой производительности при работе до 1990-х годов с СУБД Informix Dynamic Server, Informix 4GL широко применялся для построения:

На территории Российской Федерации Informix 4GL в 1990–2000-х годах использовался в некоторых банковских системах (например, АБС «Diasoft F»), системах логистики и учета на предприятиях с Unix-архитектурой. С уходом IBM из ряда сегментов рынка в 2010-х годах и переходом на Java/.NET, Informix 4GL сохраняется преимущественно в унаследованных проектах. Поддержка языка осуществляется силами сторонних разработчиков.

Критика и проблемы

Источники

  1. IBM Informix 4GL Programmer’s Guide (2009), IBM Corporation.
  2. Using Informix 4GL, Jonathan Leffler (2001), Addison-Wesley.
  3. Informix Guide to SQL: Tutorial (1998), Informix Software.
  4. Официальная документация IBM по Informix 4GL на сайте IBM Knowledge Center (ibm.com/support/knowledgecenter/SSGU8G).
  5. Документация компании Four J’s Development Tools (omnidex.com/products/4gl/).
  6. Статья «История Informix» в журнале «Открытые системы», № 3, 2010 г.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →