OpenEdge Advanced Business Language , или сокращенно OpenEdge ABL , — это язык разработки бизнес-приложений, созданный и поддерживаемый Progress Software Corporation . Обычно классифицируемый как язык программирования четвертого поколения , он использует синтаксис, подобный английскому, для упрощения разработки программного обеспечения. [1] Язык назывался PROGRESS или Progress 4GL до версии 9, но в 2006 году PSC изменила название на OpenEdge Advanced Business Language (OpenEdge ABL), чтобы преодолеть предполагаемое восприятие отрасли, что 4GL менее эффективны, чем другие языки. [2]
OpenEdge ABL помогает разработчикам разрабатывать приложения опционально с использованием собственной интегрированной реляционной базы данных и инструментов программирования . Эти приложения переносимы между вычислительными системами и обеспечивают доступ к различным популярным источникам данных без необходимости изучать базовые методы доступа к данным . Это означает, что конечный пользователь этих продуктов может не знать о базовой архитектуре.
Объединяя язык четвертого поколения и реляционную базу данных, OpenEdge ABL позволяет использовать модель быстрой разработки приложений (RAD) для разработки программного обеспечения.
Оригинальный Progress 4GL был разработан в 1981 году как архитектурно-независимый язык и интегрированная система баз данных, которые могли использоваться неспециалистами для разработки бизнес-приложений людьми, которые не были специалистами по информатике, но были осведомлены в своей бизнес-области. В то время бизнес-приложения часто писались на COBOL (для машин, таких как корпоративные мэйнфреймы IBM ), а иногда и на C (для мини-компьютеров департаментов, работающих под управлением операционной системы UNIX). Когда IBM PC стал популярным, возникла потребность в бизнес-программном обеспечении, которое можно было бы использовать на этих и других недорогих компьютерах. Система Progress была создана для использования как на машинах IBM PC под управлением DOS, так и на различных компьютерах, которые могли работать под управлением UNIX и операционных систем мини-компьютеров, таких как OpenVMS .
Progress ABL — это строго типизированный, поздно связанный, англоподобный язык программирования . Хотя изначально он был разработан как процедурный язык, начиная с версии 10.1 он был улучшен с помощью элементов объектно-ориентированной грамматики, которые можно смешивать с исходным процедурным стилем. Блок кода может иметь транзакцию, привязанную к нему, и в этом случае изменения базы данных будут зафиксированы после его завершения. Ошибка, возникшая в таком блоке, отменит эти изменения. Эти значения по умолчанию могут быть переопределены программистом.
Простые программы работают без графического пользовательского интерфейса, но существует синтаксис для его программного создания, или программисты могут использовать предоставленные инструменты для его создания.
Следующий код ABL создает окно с текстом «Hello, World!» и кнопкой с надписью «OK».
ОПРЕДЕЛИТЬ ПЕРЕМЕННУЮ w КАК ОБРАБОТЧИК БЕЗ ОТМЕНЫ . СОЗДАТЬ ОКНО w НАЗНАЧИТЬ ШИРИНУ = 50 ВЫСОТУ = 5 ОБЛАСТЬ-СООБЩЕНИЯ = ЛОЖЬ ОБЛАСТЬ-СОСТОЯНИЯ = ЛОЖЬ . ТЕКУЩЕЕ ОКНО = w . ОПРЕДЕЛИТЬ КНОПКУ btnOK НАДПИСЬ "OK" РАЗМЕРОМ 12 НА 1,2 . ФОРМА "Hello World!" ПРОСМОТР КАК ТЕКСТ В СТОЛБЦЕ 20 СТРОКА 2 btnOK В СТОЛБЦЕ 20 СТРОКА 4 С РАМКОЙ f РАЗМЕРОМ 50 НА 5 БЕЗ ОБЛАСТИ THREE-D . ПРОСМОТР КАДРА f . ВКЛЮЧЕНИЕ btnOK С КАДРОМ f . ОЖИДАНИЕ "ВЫБОРА " btnOK . УДАЛИТЬ ОБЪЕКТ w .
Для достижения того же эффекта можно использовать окно сообщения:
СООБЩЕНИЕ "Hello World!" ПРОСМОТР В ОКНЕ ОПОВЕЩЕНИЯ ИНФОРМАЦИЯ КНОПКИ ОК .
Параметр INFO
управляет значками сообщений и может быть заменен на ERROR
или WARNING
для получения другого внешнего вида.
Самая простая программа «Hello, World» выглядит так:
ОТОБРАЖЕНИЕ "Привет" .
Оператор SQL :
ВЫБРАТЬ * ИЗ клиента ;
(вместе с выбранным вами языковым подключением и процедурами отображения) можно выразить в Progress/ABL как:
ДЛЯ КАЖДОГО клиента БЕЗ БЛОКИРОВКИ : ОТОБРАЖЕНИЕ клиента . КОНЕЦ .
Оператор SQL:
ОБНОВЛЕНИЕ клиента SET продавец = 'Фред' ГДЕ custno = 14 ;
(опять же, вместе с выбранным вами языковым подключением и процедурами отображения) можно выразить в Progress/ABL как:
ДЛЯ КАЖДОГО клиента , ГДЕ customer . custno = 14 EXCLUSIVE-LOCK : НАЗНАЧИТЬ customer . salesman = 'Fred' . END .
.. (Для простоты примера были сделаны некоторые предположения относительно индексации, блокировки и области действия транзакций.)
Доступ к данным в ABL основан на записях, в отличие от обработки на основе набора результатов в традиционных языках на основе SQL. В операциях SQL, работающих с набором записей, в ABL операция применяется к записи за раз — во многом похоже на использование курсора в SQL, но гораздо эффективнее. Обработка на основе записей обеспечивает чистый и надежный механизм блокировки, который позволяет разработчику применять EXECUTIVE-LOCK, SHARE-LOCK или NO-LOCK к записи при доступе к ней приложения.
Язык используется в самых разных областях, вот некоторые примеры:
OpenEdge можно использовать для: [3]