Язык программирования четвертого поколения ( 4GL ) является любым языком программирования , который принадлежит к классу языков , предусмотренным в качестве продвижения при языках программирования третьего поколения (3GL). Каждое из поколений языков программирования стремится обеспечить более высокий уровень абстракции деталей внутреннего аппаратного обеспечения компьютера , делая язык более удобным для программистов , мощным и универсальным. Хотя определение 4GL со временем изменилось, его можно типизировать, работая с большими коллекциями информации одновременно, а не сосредотачиваясь только на битах и байтах.. Языки, заявленные как 4GL, могут включать поддержку управления базами данных , создания отчетов , математической оптимизации , разработки графического интерфейса или веб-разработки . Некоторые исследователи заявляют, что 4GL являются подмножеством предметно-ориентированных языков . [1] [2]
Концепция 4GL разрабатывалась с 1970-х по 1990-е годы, перекрывая большую часть развития 3GL, с 4GL, идентифицированными как «непроцедурные» или «генерирующие программы» языки, в отличие от 3GL, являющихся алгоритмическими или процедурными языками. В то время как 3GL, такие как C , C ++ , C # , Java и JavaScript, остаются популярными для широкого спектра применений, 4GL, как было определено изначально, обнаружил, что их использование сосредоточено на базах данных, отчетах и веб-сайтах. [3] Некоторые продвинутые 3GL, такие как Python , Ruby и Perl, объединяют некоторые возможности 4GL в среде общего назначения 3GL, [4] и библиотеки с функциями, подобными 4GL, были разработаны как надстройки для большинства популярных 3GL, создавая языки, которые представляют собой смесь 3GL и 4GL, стирающую различие. [5]
В 1980-х и 1990-х годах предпринимались попытки разработать языки программирования пятого поколения (5GL).
История
Хотя термин 4GL использовался ранее в статьях и обсуждениях, он впервые был официально использован Джеймсом Мартином в его книге 1981 года « Разработка приложений без программистов» [6] для обозначения непроцедурных языков спецификации высокого уровня . В каком - то примитивном, рано 4GLs были включены в Информатики MARK-IV (1967) продукт и Sperry «s MAPPER (1969 внутреннего использования, 1979 выпуск).
Есть несколько причин для создания и сохранения интереса к 4GL. Термин может применяться к большому набору программных продуктов. Это также может применяться к подходу, который ищет более широкие семантические свойства и возможности реализации. Подобно тому, как 3GL предлагал программисту больше возможностей, 4GL также открывал среду разработки для более широких слоев населения.
Схема раннего ввода для 4GL поддерживала ввод данных в пределах 72 символов перфокарты (8 байтов, используемых для упорядочивания), где тег карты определял тип или функцию. При разумном использовании нескольких карт колода 4GL может предложить широкий спектр возможностей обработки и отчетности, тогда как эквивалентная функциональность, закодированная в 3GL, может включать в себя, возможно, целую коробку или несколько карт . [7]
72-символьный формат продолжался некоторое время, поскольку аппаратное обеспечение перешло на большую память и терминальные интерфейсы. Несмотря на свои ограничения, этот подход поддерживал очень сложные приложения.
По мере того, как интерфейсы улучшались и позволяли увеличивать длину операторов и обрабатывать ввод на основе грамматики, в результате возникла большая мощность. Пример этого описан на странице Nomad .
- Другой пример силы Nomad проиллюстрирован Николасом Роулингсом в его комментариях для Музея компьютерной истории о NCSS (см. Цитату ниже). Он сообщает, что Джеймс Мартин попросил Роулингса предложить Nomad решение стандартной проблемы, которую Мартин назвал «Проблемой инженера» : «повысить на 6% инженеров, чей рейтинг должностей был в среднем 7 или выше». Мартин предоставил «дюжину страниц COBOL, а затем всего пару страниц Mark IV от информатики ». Роулингс предложил следующий единственный оператор, выполняющий операцию «установка за раз» ...
На разработку 4GL повлияло несколько факторов, причем большое значение имели ограничения аппаратного обеспечения и операционной системы. Когда 4GL был впервые представлен, разрозненное сочетание оборудования и операционных систем требовало поддержки разработки специальных приложений, специфичных для данной системы, для обеспечения продаж. Одним из примеров является система MAPPER , разработанная Sperry . Хотя у нее есть корни в самом начале, система оказалась успешной во многих приложениях и была перенесена на современные платформы. Последний вариант вложен в BIS [8] приношения Unisys . MARK-IV теперь известен как VISION: BUILDER и предлагается Computer Associates .
Железная дорога Санта-Фе использовала MAPPER для разработки системы в проекте, который был ранним примером 4GL, быстрого прототипирования и программирования пользователями . [9] Идея заключалась в том, что легче научить железнодорожников использовать MAPPER, чем обучать программистов «тонкостям железнодорожных операций». [10]
Одним из первых (и переносимых) языков со свойствами 4GL был Ramis, разработанный Джеральдом Коэном из Mathematica , компании, занимающейся разработкой математического программного обеспечения. Коэн покинул Mathematica и основал Information Builders, чтобы создать аналогичный ориентированный на отчетность 4GL под названием FOCUS .
Более поздние типы 4GL привязаны к системе баз данных и сильно отличаются от более ранних типов в использовании методов и ресурсов, которые стали результатом общего улучшения вычислений с течением времени.
Интересным поворотом в сцене 4GL является осознание того, что графические интерфейсы и связанные с ними рассуждения, сделанные пользователем, образуют «язык», который плохо понимается.
Типы
Существует несколько различных типов 4GL:
- Программирование на основе таблиц (без кода), обычно выполняемое с помощью среды выполнения и библиотек. Вместо использования кода разработчик определяет свою логику, выбирая операцию в заранее определенном списке команд управления памятью или таблицей данных. Другими словами, вместо кодирования разработчик использует программирование алгоритмов на основе таблиц (см. Также управляющие таблицы, которые можно использовать для этой цели). Хорошим примером этого типа языка 4GL является PowerBuilder . Эти типы инструментов могут использоваться для разработки бизнес-приложений, обычно состоящих из пакета, позволяющего как манипулировать бизнес-данными, так и создавать отчеты, поэтому они поставляются с экранами графического интерфейса и редакторами отчетов. Обычно они предлагают интеграцию с библиотеками DLL нижнего уровня, созданными из типичного 3GL, когда возникает необходимость в дополнительных операциях, специфичных для оборудования / ОС.
- Языки программирования генераторов отчетов берут описание формата данных и отчета, который нужно создать, и на основании этого либо напрямую генерируют требуемый отчет, либо создают программу для генерации отчета. См. Также RPG
- Аналогичным образом генераторы форм управляют интерактивным взаимодействием с пользователями прикладной системы или создают для этого программы.
- Более амбициозные 4GL (иногда называемые средами четвертого поколения ) пытаются автоматически генерировать целые системы на основе выходных данных инструментов CASE , спецификаций экранов и отчетов, а также, возможно, спецификации некоторой дополнительной логики обработки.
- 4GL для управления данными, такие как SAS , SPSS и Stata, предоставляют сложные команды кодирования для обработки данных, изменения формы файлов, выбора случаев и документирования данных при подготовке данных для статистического анализа и составления отчетов.
- Так называемые языки «XTalk», первоначально разработанные с помощью Apple Hypercard в 1987 году. Hypercard явилась прародителем более современных и мощных программ, таких как SuperCard, Toolbook и LiveCode.
Некоторые 4GL имеют встроенные инструменты, позволяющие легко указать всю необходимую информацию:
- Версия Джеймса Мартина в технические данные методологии разработки систем автоматизирован , чтобы позволить ввод результатов анализа и проектирования системы в виде потока данных диаграммы , сущность отношений диаграммы , сущность истории жизни диаграммы и т.д., из которых сотни тысяч строк COBOL будет создан в одночасье.
- Совсем недавно корпорация Oracle «s Oracle Designer и Oracle Developer Suite продукты 4GL могут быть интегрированы для получения определения баз данных и программ , форм и отчетов.
Среды с низким кодом
В двадцать первом веке системы 4GL превратились в среды или платформы с «низким кодом» для решения проблемы быстрой разработки приложений за короткие периоды времени. Поставщики часто предоставляют образцы систем, таких как CRM, управление контрактами, отслеживание ошибок, из которых разработка может происходить с небольшим программированием. [11]
Примеры
Общее использование / универсальный
- Ускоритель (производительность)
- Accell / SQL (4GL) от Unify Corporation .
- Генератор CA- Telon 4GL Cobol / PLI
- Clarion
- Машинка для стрижки
- Cognos PowerHouse 4GL
- DataFlex
- ФОКУС
- Forté TOOL (транзакционный объектно-ориентированный язык)
- GeneXus
- Гавань
- IBM Rational EGL (язык корпоративного поколения )
- LabVIEW
- LANSA
- LINC
- LiveCode
- M-Power
- ЕСТЕСТВЕННЫЙ
- Пакет SDK для Omnis Studio
- Фреймворк для разработки приложений Oracle
- OutSystems (производительность / PaaS)
- PowerBuilder
- SheerPower4GL (только Microsoft Windows)
- SQLWindows / Команда разработчиков
- Uniface
- Оболочка Unix
- DataFlex (Microsoft Windows, Интернет, мобильный)
- Visual FoxPro
- XBase ++
Языки запросов к базе данных
- ФОКУС
- 4D QL
- Informix-4GL
- ЕСТЕСТВЕННЫЙ
- OpenEdge ABL
- OpenROAD (Ingres 4GL)
- Рамис
- SQL
Генераторы отчетов
- LINC
- Отчеты Oracle
- Прогресс запроса / результатов 4GL
- РПГ-II
Извлечение данных из файлов или базы данных для создания отчетов в широком диапазоне форматов выполняется с помощью инструментов генератора отчетов.
Языки обработки данных, анализа и отчетности
- Ab Initio
- ABAP
- Аудит командного языка
- Язык программирования Clarion
- CorVision
- Преступник
- ADS / Online (плюс обработка транзакций)
- Easytrieve
- ФОКУС
- GraphTalk
- IDL
- ИГОРЬ ПРО
- Informix-4GL
- JSL
- Юдоскрипт
- LANSA
- M-Power
- LabVIEW
- LiveCode
- БОГОМОЛ
- MAPPER ( Unisys / Sperry ) теперь является частью BIS
- MARK-IV ( Sterling / Informatics ) теперь ВИДЕНИЕ: СТРОИТЕЛЬ CA
- Simulink компонент MATLAB
- ЕСТЕСТВЕННЫЙ
- Кочевник
- Октава
- PL / SQL
- Прогресс 4GL
- PROIV
- р
- Рамис
- S
- Scilab
- SAS
- SPSS
- SQL PL
- SQR
- Stata
- Synon
- Язык Wolfram Language
- XBase ++
- XQuery
- XSLT
Создатели программного обеспечения
- 4-е измерение (программное обеспечение)
- LiveCode
- РУКОВОДСТВО ПО MATLAB
- Омнис Студия
- Открытая дорога
- Прогресс 4GL AppBuilder
- SuperTalk
- Визуальный DataFlex
- XUL можно использовать с XQuery
Математическая оптимизация
- ЦЕЛИ
- AMPL
- GAMS
- MathProg
- MATLAB
- Mathematica
Разработка приложений с графическим интерфейсом на основе базы данных
- C / AL
- Genexus
- SB + / SystemBuilder
- Унифицировать ВИДЕНИЕ
Младший код / Платформы для разработки без кода [12] [13]
- 1С: Предприятие язык программирования
- Appcelerator
- Аппиан
- Бизаги
- DronaHQ [14]
- K2 [15]
- Кони [16]
- LANSA
- M-Power
- Mendix
- OutSystems
- Pegasystems
- PNMsoft
- Прогресс
- ServiceNow
- Сервой
- ViziApps
Художники и генераторы экрана
- Формы Oracle
- Прогресс 4GL ProVision
- SB + / SystemBuilder
Языки веб-разработки
- ActiveVFP
- CFML
- LANSA
- OutSystems
- Генератор волн
Смотрите также
- Язык программирования первого поколения
- Язык программирования второго поколения
- Язык программирования третьего поколения
- Язык программирования пятого поколения
- Список языков программирования четвертого поколения
- Предметно-ориентированный язык программирования
- Быстрая разработка приложений
Рекомендации
- ^ 35-я Гавайская международная конференция по системным наукам - 1002 предметно-ориентированных языков для разработки программного обеспечения. Архивировано 16 мая 2011 г. на Wayback Machine.
- ^ Ари ван Дерсен; Пол Клинт; Йост Виссер (1998). «Языки, зависящие от предметной области: аннотированная библиография» . Архивировано из оригинала на 2009-02-02 . Проверено 15 марта 2009 .
- ^ «Разработка программного обеспечения, инструменты CASE и 4GL - обзор использования Новой Зеландии. Часть 1: 750 новозеландских организаций». hdl : 10523/928 . Цитировать журнал требует
|journal=
( помощь ) - ^ http://www.rogerclarke.com/SOS/SwareGenns.html
- ^ «Определение языка четвертого поколения» . PCMAG . Дата обращения 7 мая 2020 .
- ^ Мартин, Джеймс . Разработка приложений без программистов. Прентис-Холл, 1981. ISBN 0-13-038943-9 .
- ^ "Перфокарты IBM" . www.columbia.edu . Архивировано из оригинала на 2019-02-16 . Проверено 3 февраля 2019 .
- ^ «Программное обеспечение интеллектуального анализа данных, анализ данных и многое другое: функции сервера бизнес-информации Unisys» . Unisys . 21 августа 2006 г. Архивировано из оригинала на 2006-08-21 . Проверено 3 февраля 2019 .
- ^ Луи Шлютер (1988). Пользовательские вычисления: новое поколение . [книга по генератору отчетов и системам MAPPER]
- ^ Барбара Каннинг МакНурлин; Ральф Х. Спраг (2004). «Глава 9». Управление информационными системами на практике (PDF) . Пирсон / Прентис Холл. ISBN 978-0-13-101139-7.[ постоянная мертвая ссылка ]
- ^ Форрест, Коннер. «Как Salesforce использует оркестровку с низким кодом, чтобы спасти« проваливающиеся проекты Интернета вещей » » . ZDNet .
- ^ Марвин, Роб; 10 августа 2018 г., 13:50 EST; 10 августа 2018 г. «Лучшие платформы разработки Low-Code на 2019 год» . PCMAG .CS1 maint: числовые имена: список авторов ( ссылка )
- ^ Сайер, Мартин Хеллер и Питер (6 апреля 2018 г.). «25 простых инструментов для быстрого создания мобильных приложений» . InfoWorld . Архивировано из оригинального 18 ноября 2017 года . Проверено 17 ноября 2017 года .
- ^ «DronaHQ. Создавайте приложения без программирования» . www.dronahq.com . Архивировано из оригинала на 2019-08-09 . Проверено 11 сентября 2019 .
- ^ «К2 - Цифровая автоматизация процессов» . www.k2.com . Архивировано из оригинала на 2017-11-21 . Проверено 20 ноября 2017 .
- ^ «Кони. Ускорение цифрового успеха» . Кони . Архивировано из оригинала на 2017-11-24 . Проверено 20 ноября 2017 .