Progress 4gl
Progress 4GL это 4GL Язык программирования, разработанный Progress Software Corporation.
Язык Четвертого Поколения PROGRESS (4GL) является функционально полным высокоуровневым , объектно-ориентированным языком разработки приложений, который позволяет удовлетворять всем требованиям, предъявляемым к современным приложениям, в тоже время уменьшая сложность и повышая производительность их разработки. 4GL содержит все необходимые программные конструкции для решения самых различных аспектов программирования сложных приложений без необходимости прибегать к менее эффективным и менее переносимым языкам третьего поколения. Кроме этого, 4GL обеспечивает поддержку и переход между тремя основными принципами программирования: структурированным, событийно-управляемым и объектно-ориентированным, - от Вас не требуется осваивать новые принципы программирования для того, чтобы успешно работать с PROGRESS. Для завершения процесса разработки промышленного приложения Вам потребуются средства разработки не только логики взаимодействия с пользователем, но также потребуются средства для решения таких важных задач, как:
- Автоматический контроль транзакций и блокирование записей
- Получение и обработка информации из баз данных
- Сложные вычисления и обработка данных
- Пакетная обработка
- Генерация отчетов
- Целостность базы данных и требования безопасности
- Поддержка двухбайтовых кодировок
Язык 4GL содержит все функции и операторы, необходимые для удовлетворения вышеперечисленных требований. Но, в отличие от остальных инструментальных средств, менее ориентированных на разработку приложения в архитектуре клиент/сервер, PROGRESS не требует от Вас использования различных языков программирования для отдельного программирования обработки данных на клиенте, серверных процессов и пакетной обработки на сервере. Все это уменьшает стоимость затрат по изучению языка и продолжению разработки. Используется в СУБД Progress. Позволяет кроме традиционных SQL запросов, реализация поддержки которых не очень удобна, позволяет использовать выражения FOR EACH, FIND , FIND FIRST. Кроме того, сушествует возможность сокращенного написания операторов. Например, объявление переменной
DEFINE VARIABLE foo AS INTEGER INITIAL 0 NO-UNDO.
идентично
DEF VAR foo AS INT INIT 0 NO-UNDO.
Пример программы
FOR EACH mytable WHERE mytable.field1>0 no-lock: CREATE mytable2. ASSIGN mytable2.id=mytable.field1 mytable2.name=mytable.field2 . END.