OpenEdge Advanced Business Language или OpenEdge ABL для краткости - это язык разработки бизнес-приложений, созданный и поддерживаемый Progress Software Corporation (PSC). Этот язык, который обычно классифицируется как язык программирования четвертого поколения , использует синтаксис, подобный английскому, для упрощения разработки программного обеспечения. [1] До версии 9 язык назывался PROGRESS или Progress 4GL , но в 2006 году PSC изменил название на OpenEdge Advanced Business Language (OpenEdge ABL), чтобы преодолеть предполагаемое в отрасли мнение о том, что 4GL менее функциональны, чем другие языки. [2] Подмножество языка, называемоеSpeedScript используется при разработке веб-приложений. [3]
Разработчики) | Progress Software Corporation |
---|---|
Стабильный выпуск | OpenEdge 12.3 / 20 октября 2020 г . |
Операционная система | Кроссплатформенность (см. Ниже) |
Тип | СУБД |
Лицензия | Проприетарный |
Веб-сайт | https://www.progress.com/openedge |
OpenEdge ABL помогает разработчикам разрабатывать приложения, опционально, с использованием собственной интегрированной реляционной базы данных и инструментов программирования . Эти приложения переносимы между вычислительными системами и позволяют получить доступ к различным популярным источникам данных без необходимости изучать лежащие в основе методы доступа к данным . Это означает, что конечный пользователь этих продуктов может не знать об основной архитектуре.
Комбинируя язык четвертого поколения и реляционную базу данных, OpenEdge ABL позволяет использовать модель быстрой разработки приложений (RAD) для разработки программного обеспечения. Программист и даже конечные пользователи могут быстро создавать прототипы, используя интегрированные инструменты и инструменты с графическим интерфейсом в среде разработки.
OpenEdge можно использовать для:
- Графический интерфейс Microsoft Windows (графический интерфейс пользователя)
- Программирование WWW (UNIX и Windows)
- CHUI (пользовательский интерфейс символов) (UNIX и Windows)
- Программирование серверов приложений JSON и XML (UNIX и Windows)
- а также программирование фоновых процессов (UNIX и Windows).
История
Первоначальный Progress 4GL был разработан (в 1981 г.) как архитектурно-независимый язык и интегрированная система баз данных, которую могли использовать неспециалисты для разработки бизнес-приложений людьми, которые не были компьютерными специалистами, но были хорошо осведомлены в своей области бизнеса. В то время бизнес-приложения часто писались на COBOL (для машин, таких как корпоративные мэйнфреймы IBM), а иногда и на C (для ведомственных мини-компьютеров под управлением операционной системы UNIX). Когда IBM PC стал популярным, возникла потребность в программном обеспечении для бизнеса, которое можно было бы использовать на этих и других недорогих компьютерах. Система Progress была создана для использования как на компьютерах IBM PC, работающих под DOS, так и на различных компьютерах, поддерживающих UNIX.
Синтаксис и семантика
Progress ABL - это англоязычный язык программирования со строгой типизацией и поздним связыванием . Первоначально разработанный как процедурный язык, начиная с версии 10.1, он был расширен элементами объектно-ориентированной грамматики, которые можно смешивать с исходным процедурным стилем. Блок кода может иметь транзакцию, привязанную к нему, и в этом случае изменения базы данных будут зафиксированы после его завершения. Ошибка, возникшая в таком блоке, отменяет эти изменения. Эти значения по умолчанию могут быть отменены программистом.
Простые программы работают без графического интерфейса пользователя, но есть синтаксис для его программного создания; или программисты могут использовать предоставленные инструменты для его создания.
Примеры
Привет мир
Следующий код ABL создает окно с текстом «Hello, World!» и кнопку с надписью «ОК».
ОПРЕДЕЛИТЕ ПЕРЕМЕННУЮ w КАК РУЧКА NO-UNDO .CREATE WINDOW w ASSIGN WIDTH = 50 HEIGHT = 5 MESSAGE-AREA = FALSE STATUS-AREA = FALSE . ТОК-ОКНО = ш .DEFINE BUTTON btnOK LABEL "OK" SIZE 12 BY 1.2 . ФОРМА "Hello World!" ВИД-КАК ТЕКСТ НА COL 20 СТРОКИ 2 btnOK НА COL 20 СТРОКИ 4 С РАМКОЙ ф РАЗМЕР 50 BY 5 NO-BOX ТРИ-D . СМОТРЕТЬ КАДР f . ВКЛЮЧИТЬ btnOK С КАДР е . WAIT-FOR "ВЫБРАТЬ" О btnOK . УДАЛИТЬ ОБЪЕКТ w .
Для достижения того же эффекта можно использовать окно сообщения:
СООБЩЕНИЕ "Hello World!" VIEW-AS ALERT-BOX INFO КНОПКИ OK .
Кроме того, вы можете использовать ERROR
и WARNING
вместо INFO
изменения значков сообщений.
Самая простая программа "Hello, World" выглядит так:
ДИСПЛЕЙ "Hello World!" .
SELECT
Эквивалент SQL
Оператор SQL :
ВЫБРАТЬ * ОТ клиента ;
(вместе с выбранным вами языковым подключением и процедурами отображения) может быть выражено в Progress / ABL как:
ДЛЯ КАЖДОГО клиента NO-LOCK : DISPLAY клиента . КОНЕЦ .
Оператор END не является обязательным в программе такого уровня простоты.
UPDATE
Эквивалент SQL
Оператор SQL:
ОБНОВЛЕНИЕ клиента НАБОР продавца = 'Фред' ГДЕ custno = 14 ;
(опять же, вместе с выбранным вами языковым соединением и процедурами отображения) может быть выражено в Progress / ABL как:
ДЛЯ КАЖДОГО покупателя ГДЕ покупатель . custno = 14 EXCLUSIVE-LOCK : НАЗНАЧЕНИЕ клиента . Продавец = 'Фред' . КОНЕЦ .
.. (Для упрощения этого примера были сделаны некоторые предположения об индексировании, блокировке и области транзакций.)
Язык основан на записях, а не на наборах записей. В операциях SQL работают с набором записей, в ABL операция применяется к записи за раз - очень похоже на использование курсора в SQL.
Области применения
Язык используется в самых разных областях, некоторые примеры:
- Предоставление ссуды в банках США
- Системы бронирования прокатных автомобилей
- Оптовая торговля
- Складские системы
- Транспортные Системы
- Диспетчерская служба коммерческой службы
- Системы безопасности карты
- Игровые системы (подумайте о Лас-Вегасе, а не о видео)
Заметки
- ^ Кэмпбелл, Джон, Programmer's Progress, руководство по языку прогресса. программное обеспечение белой звезды, 1991
- ^ Сальвадор Виналс, Введение в OpenEdge Advanced Business Language (ABL), технический документ PSC, 2007 г.
- ^ Кроуфорд, Г. WebSpeed Complete , Innov8 Computer Solutions, ISBN 0-9718679-0-9