- Progress 4gl
-
Progress 4GL это 4GL Язык программирования, разработанный Progress Software Corporation.
Язык Четвертого Поколения PROGRESS (4GL) является функционально полным высокоуровневым, объектно-ориентированным языком разработки приложений, который позволяет удовлетворять всем требованиям, предъявляемым к современным приложениям, в тоже время уменьшая сложность и повышая производительность их разработки. 4GL содержит все необходимые программные конструкции для решения самых различных аспектов программирования сложных приложений без необходимости прибегать к менее эффективным и менее переносимым языкам третьего поколения. Кроме этого, 4GL обеспечивает поддержку и переход между тремя основными принципами программирования: структурированным, событийно-управляемым и объектно-ориентированным, — от Вас не требуется осваивать новые принципы программирования для того, чтобы успешно работать с PROGRESS. Для завершения процесса разработки промышленного приложения Вам потребуются средства разработки не только логики взаимодействия с пользователем, но также потребуются средства для решения таких важных задач, как:
- Автоматический контроль транзакций и блокирование записей
- Получение и обработка информации из баз данных
- Сложные вычисления и обработка данных
- Пакетная обработка
- Генерация отчетов
- Целостность базы данных и требования безопасности
- Поддержка двухбайтовых кодировок
Язык 4GL содержит все функции и операторы, необходимые для удовлетворения вышеперечисленных требований. Но, в отличие от остальных инструментальных средств, менее ориентированных на разработку приложения в архитектуре клиент/сервер, PROGRESS не требует от Вас использования различных языков программирования для отдельного программирования обработки данных на клиенте, серверных процессов и пакетной обработки на сервере. Все это уменьшает стоимость затрат по изучению языка и продолжению разработки.Используется в СУБД Progress. Позволяет кроме традиционных 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.
При этом очевидны недостатки:
- Язык SQL служит для описания запросов, а не для их программирования, в то время как на 4GL приходится именно программировать запросы.
- Многие вещи, с которыми СУБД типа Oracle или MS SQL Server прекрасно справляются в автоматическом режиме в Progress приходится прописывать явно.
- Преимущество, заключающееся в том, что помимо средств манипуляции данными в языке содержатся средства для создания интерфейса немного сомнительно, так как приводит к созданию однозвенного приложения.
- Не слишком удобные и не богатые средства для манипуляции и визуализации данных.
- Progress имеет всего три типа блокировок и не слишком интеллектуально работает с индексами.
В связи с этим ни язык 4GL ни СУБД Progress не получили и уже вряд ли получат широкое распространение.
Wikimedia Foundation. 2010.