Язык программирования четвертого поколения.
Язык программирования четвертого поколения ( 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] для обозначения непроцедурных языков спецификации высокого уровня . Каким-то примитивным образом ранние 4GL были включены в Informatics MARK-IV (1967 г.) и ( MAPPER Сперри продукт внутреннее использование 1969 г., выпуск 1979 г.).
Мотивов для создания «4GL» и постоянного интереса к нему несколько. Этот термин может применяться к большому набору программных продуктов. Это также может применяться к подходу, который ищет большие семантические свойства и возможности реализации. Точно так же, как 3GL давал программисту больше возможностей, 4GL открыл среду разработки для более широкого круга людей.
Ранняя схема ввода для 4GL поддерживала ввод данных в пределах 72 символов перфокарты (8 байтов, используемых для последовательности), где тег карты идентифицировал тип или функцию. При разумном использовании нескольких карт колода 4GL может предложить широкий спектр возможностей обработки и отчетности, тогда как эквивалентная функциональность, закодированная в 3GL, может охватывать, возможно, целую коробку или несколько карт . [7]
72-символьный формат сохранялся некоторое время по мере того, как оборудование переходило на больший объем памяти и терминальных интерфейсов. Даже несмотря на свои ограничения, этот подход поддерживает весьма сложные приложения.
По мере того, как интерфейсы улучшались и позволяли использовать операторы большей длины и обработку ввода на основе грамматики, появилась большая мощность. Пример этого описан на странице Nomad .
- Другой пример силы Nomad проиллюстрирован Николасом Роулингсом в его комментариях для Музея компьютерной истории о NCSS (см. цитату ниже). Он сообщает, что Джеймс Мартин попросил Роулингса предложить Кочевнику решение стандартной проблемы, которую Мартин назвал « Проблемой инженера» : «дать повышение на 6% инженерам, чей рейтинг работы в среднем составляет 7 или выше». Мартин предоставил «дюжину страниц COBOL, а затем всего пару страниц Mark IV из информатики ». Роулингс предложил следующее единственное утверждение, выполняющее операцию «множество за раз»:
На разработку 4GL повлияло несколько факторов, среди которых большое значение имели ограничения аппаратного обеспечения и операционной системы. Когда 4GL был впервые представлен, разрозненное сочетание аппаратного обеспечения и операционных систем требовало поддержки разработки пользовательских приложений, специфичных для системы, чтобы обеспечить продажи. Одним из примеров является система MAPPER, разработанная Сперри . Хотя ее корни уходят корнями в самое начало, система доказала свою эффективность во многих приложениях и была портирована на современные платформы. Последний вариант встроен в 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:
- Табличное (бескодовое) программирование, обычно выполняемое с использованием среды выполнения и библиотек. Вместо использования кода разработчик определяет свою логику, выбирая операцию в заранее определенном списке команд манипуляции с памятью или таблицей данных. Другими словами, вместо кодирования разработчик использует табличное программирование алгоритмов (см. также управляющие таблицы , которые можно использовать для этой цели). Эти типы инструментов можно использовать для разработки бизнес-приложений, обычно состоящих из пакета, позволяющего как манипулировать бизнес-данными, так и создавать отчеты, поэтому они поставляются с экранами графического интерфейса пользователя и редакторами отчетов. Обычно они предлагают интеграцию с DLL более низкого уровня, созданными из типичного 3GL, на случай, если возникнет необходимость в большем количестве операций, специфичных для оборудования/ОС.
- Языки программирования генератора отчетов принимают описание формата данных и отчета, который нужно создать, и на основе этого либо напрямую генерируют требуемый отчет, либо генерируют программу для создания отчета. См. также РПГ.
- Аналогично, генераторы форм управляют онлайн-взаимодействием с пользователями прикладной системы или создают для этого программы.
- Более амбициозные 4GL (иногда называемые средами четвертого поколения ) пытаются автоматически генерировать целые системы на основе результатов CASE- инструментов, спецификаций экранов и отчетов и, возможно, также спецификации некоторой дополнительной логики обработки.
- 4GL для управления данными, такие как SAS , SPSS и Stata, предоставляют сложные команды кодирования для манипулирования данными, изменения формы файлов, выбора случая и документирования данных при подготовке данных для статистического анализа и отчетности.
- Так называемые языки «XTalk», первоначально разработанные вместе с Apple Hypercard в 1987 году. Hypercard был прародителем более современных и мощных программ, таких как SuperCard, Toolbook и LiveCode.
Некоторые 4GL имеют встроенные инструменты, которые позволяют легко указать всю необходимую информацию:
- Джеймса Мартина обработки данных Версия методологии разработки систем была автоматизирована, чтобы обеспечить ввод результатов системного анализа и проектирования в форме диаграмм потоков данных , диаграмм отношений сущностей , диаграмм истории жизни сущностей и т. д., из которых сотни тысяч строк COBOL будет создан в одночасье.
- Совсем недавно Oracle 4GL корпорации продукты Oracle Designer и Oracle Developer Suite можно было интегрировать для создания определений баз данных, а также программ форм и отчетов.
Среды с низким кодом
[ редактировать ]В двадцать первом веке системы 4GL появились как среды или платформы с «низким кодом» для решения проблемы быстрой разработки приложений за короткие периоды времени. Поставщики часто предоставляют образцы систем, таких как CRM, управление контрактами, отслеживание ошибок, на основе которых разработка может осуществляться с минимальными затратами на программирование. [11]
Примеры
[ редактировать ]Общее использование/универсальный
[ редактировать ]- 4-е измерение
- Accell/SQL (4GL) от Unify Corporation .
- Broadcom 2e Ранее Synon 4GL RPG/COBOL Generator
- CA-Telon 4GL Cobol/PLI Генератор
- Кларион
- Клипер
- Когнос PowerHouse 4GL
- DataFlex (Microsoft Windows, Интернет, мобильные устройства)
- ДАННЫЕ
- дБаза
- Файлмейкер
- ФОКУС
- Forté Tool (транзакционный объектно-ориентированный язык)
- GeneXus
- Гавань
- HyperCard (разработка и поддержка прекращены)
- IBM Rational EGL ( язык корпоративного поколения )
- ЛабВЬЮ
- ЗАПУСК
- ЛИНК
- LiveCode
- М-Пауэр
- ЕСТЕСТВЕННЫЙ
- студии Каждый SDK
- Платформа разработки приложений Oracle
- OutSystems (производительность/PaaS)
- Платформа Jmix/CUBA (Производительность/фреймворк)
- PowerBuilder
- Р: База
- SheerPower4GL (только для Microsoft Windows)
- SQLWindows / Группа разработчиков
- Унифейс
- Unix-оболочка
- Visual FoxPro (разработка и поддержка прекращены)
- XBase++
- Содзё
к базе данных Языки запросов
[ редактировать ]Генераторы отчетов
[ редактировать ]- Скорость программного обеспечения EasyReporter
- ЛИНК
- Отчеты Oracle
- Прогресс запроса/результатов 4GL
- РПГ-II
Извлечение данных из файлов или базы данных для создания отчетов в широком диапазоне форматов выполняется с помощью инструментов генератора отчетов.
Языки манипулирования данными, анализа и составления отчетов
[ редактировать ]- С самого начала
- АБАП
- Язык команд аудита
- Язык программирования Clarion
- КорВижн
- Преступник
- ADS/Online (плюс обработка транзакций)
- Изитрив
- ФОКУС
- ГрафТок
- МВУ
- ИГОРЬ Про
- Информикс-4ГЛ
- JSL
- ЗАПУСК
- М-Пауэр
- ЛабВЬЮ
- LiveCode
- БОГОМОЛ
- MAPPER ( Unisys/Sperry ) теперь является частью BIS
- MARK-IV ( Стерлинг/Информатика ) теперь VISION:BUILDER of CA
- Simulink компонент MATLAB
- ЕСТЕСТВЕННЫЙ
- кочевник
- Октава
- ПЛ/SQL
- Прогресс 4ГЛ
- Р
- Рамис
- С
- Сцилаб
- САС
- СПСС
- SQL ПЛ
- СКР
- Был
- цели
- Вольфрам Язык
- XBase++
- XQuery
- XSLT
программного обеспечения Создатели
[ редактировать ]- 4-е измерение (программное обеспечение)
- LiveCode
- MATLAB РУКОВОДСТВО ПО
- Каждая студия
- ОпенРОАД
- Прогресс 4GL AppBuilder
- СуперТок
- Визуальный DataFlex
- Содзё
- XUL Может использоваться с XQuery.
Математическая оптимизация
[ редактировать ]Разработка приложений с графическим интерфейсом на основе базы данных
[ редактировать ]Платформы разработки с низким кодом/без кода
[ редактировать ]Художники экрана и генераторы
[ редактировать ]- Формы Oracle
- Прогресс 4GL ProVision
- SB+/Системный сборщик
Языки веб-разработки
[ редактировать ]Язык программирования музыки
[ редактировать ]См. также
[ редактировать ]- Список языков программирования четвертого поколения
- Язык, специфичный для предметной области
- Быстрая разработка приложений
Ссылки
[ редактировать ]- ^ 35-я Гавайская международная конференция по системным наукам - 1002 предметно-ориентированных языка для разработки программного обеспечения. Архивировано 16 мая 2011 г., на Wayback Machine.
- ^ Арье ван Дёрсен; Пол Клинт; Йост Виссер (1998). «Языки-свидетели конкретной предметной области: аннотированная библиография» . Архивировано из оригинала 2 февраля 2009 г. Проверено 15 марта 2009 г.
- ^ МакДонелл, Стивен (ноябрь 1993 г.). «Разработка программного обеспечения, инструменты CASE и 4GL — исследование использования Новой Зеландии. Часть 1: 750 новозеландских организаций». hdl : 10523/928 .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ «Поколения программного обеспечения Роджера Кларка» .
- ^ «Определение языка четвертого поколения» . ПКМАГ . Проверено 7 мая 2020 г.
- ^ Мартин, Джеймс . Разработка приложений без программистов. Прентис-Холл, 1981. ISBN 0-13-038943-9 .
- ^ «Перфокарты IBM» . www.columbia.edu . Архивировано из оригинала 16 февраля 2019 г. Проверено 3 февраля 2019 г.
- ^ «Программное обеспечение для интеллектуального анализа данных, анализ данных и многое другое: функции сервера бизнес-информации Unisys» . Унисис . 21 августа 2006 г. Архивировано из оригинала 21 августа 2006 г. Проверено 3 февраля 2019 г.
- ^ Луи Шлютер (1988). Пользовательские вычисления: следующее поколение . [книга по генератору отчетов и системам MAPPER]
- ^ Барбара Каннинг МакНерлин; Ральф Х. Спрэг (2004). «Гл. 9». Управление информационными системами на практике (PDF) . Пирсон/Прентис Холл. ISBN 978-0-13-101139-7 . [ постоянная мертвая ссылка ]
- ^ Форрест, Коннер. «Как Salesforce использует оркестровку с низким уровнем кода для спасения «барахтающихся проектов Интернета вещей» » . ЗДНет .
- ^ Марвин, Роб (10 августа 2018 г.). «Лучшие платформы разработки Low-Code на 2019 год» . ПКМАГ .
- ^ Сэйер, Мартин Хеллер и Питер (6 апреля 2018 г.). «25 простых инструментов для быстрого создания мобильных приложений» . Инфомир . Архивировано из оригинала 18 ноября 2017 года . Проверено 17 ноября 2017 г.
- ^ «DronaHQ. Создавайте приложения без программирования» . www.dronahq.com . Архивировано из оригинала 9 августа 2019 г. Проверено 11 сентября 2019 г.