Язык программирования четвертого поколения - Fourth-generation programming language

Язык программирования четвертого поколения ( 4GL ) является любым компьютером языка программирования , который принадлежит к классу языков предусмотрен как продвижение при языках программирования третьего поколения (3GL). Каждое из поколений языков программирования стремится обеспечить более высокий уровень абстракции деталей внутреннего аппаратного обеспечения компьютера , делая этот язык более удобным для программистов , мощным и универсальным. Хотя определение 4GL со временем изменилось, его можно типизировать, работая с большими коллекциями информации одновременно, а не сосредотачиваясь только на битах и байтах . Языки, заявленные как 4GL, могут включать поддержку управления базами данных , создания отчетов , математической оптимизации , разработки графического интерфейса или веб-разработки . Некоторые исследователи заявляют, что 4GL являются подмножеством предметно-ориентированных языков .

Концепция 4GL разрабатывалась с 1970-х по 1990-е годы, перекрывая большую часть развития 3GL, с 4GL, идентифицированными как «непроцедурные» или «генерирующие программы» языки, в отличие от 3GL, являющихся алгоритмическими или процедурными языками. В то время как 3GL, такие как C , C ++ , C # , Java и JavaScript, остаются популярными для самых разных целей, 4GL, как было определено изначально, обнаружил, что их использование сосредоточено на базах данных, отчетах и ​​веб-сайтах. Некоторые продвинутые 3GL, такие как Python , Ruby и Perl, объединяют некоторые возможности 4GL в универсальной среде 3GL, а библиотеки с функциями, подобными 4GL, были разработаны как надстройки для большинства популярных 3GL, создавая языки, которые представляют собой смесь 3GL и 4GL, стирая различия.

В 1980-х и 1990-х годах предпринимались попытки разработать языки программирования пятого поколения (5GL).

История

Хотя термин 4GL использовался ранее в статьях и обсуждениях, он впервые был официально использован Джеймсом Мартином в его книге 1981 года « Разработка приложений без программистов» для обозначения непроцедурных языков спецификации высокого уровня . В каком - то примитивном, рано 4GLs были включены в Информатики MARK-IV (1967) продукт и Sperry «s MAPPER (1969 внутреннего использования, 1979 выпуск).

Есть несколько причин для создания 4GL и сохранения интереса к нему. Термин может применяться к большому набору программных продуктов. Это также может применяться к подходу, который ищет более широкие семантические свойства и возможности реализации. Подобно тому, как 3GL предлагал программистам больше возможностей, 4GL также открывал среду разработки для более широких слоев населения.

Схема раннего ввода для 4GL поддерживала ввод данных в пределах 72 символов перфокарты (8 байтов, используемых для упорядочивания), где тег карты определял тип или функцию. При разумном использовании нескольких карт колода 4GL может предложить широкий спектр возможностей обработки и отчетности, тогда как эквивалентная функциональность, закодированная в 3GL, может включать в себя, возможно, целую коробку или несколько карт .

72-символьный формат продолжался некоторое время, поскольку аппаратное обеспечение перешло на большую память и терминальные интерфейсы. Несмотря на свои ограничения, этот подход поддерживал очень сложные приложения.

По мере того, как интерфейсы улучшались и позволяли увеличивать длину операторов и обрабатывать ввод на основе грамматики, в результате возникла большая мощность. Пример этого описан на странице Nomad .

Другой пример силы Nomad проиллюстрирован Николасом Роулингсом в его комментариях для Музея компьютерной истории о NCSS (см. Цитату ниже). Он сообщает, что Джеймс Мартин попросил Роулингса предложить Nomad решение стандартной проблемы, которую Мартин назвал «Проблемой инженера» : «повысить на 6% инженеров, чей рейтинг должностей был в среднем 7 или выше». Мартин предоставил «дюжину страниц COBOL, а затем всего пару страниц Mark IV от информатики ». Роулингс предложил следующий единственный оператор, выполняющий операцию «установка за раз» ...

На разработку 4GL повлияло несколько факторов, причем большое значение имели ограничения аппаратного обеспечения и операционной системы. Когда 4GL был впервые представлен, разрозненное сочетание оборудования и операционных систем требовало поддержки разработки специальных приложений, специфичных для данной системы, для обеспечения продаж. Одним из примеров является система MAPPER , разработанная Sperry . Несмотря на то, что она восходит к истокам, система доказала свою эффективность во многих приложениях и была перенесена на современные платформы. Последний вариант встроен в предложение BIS Unisys . MARK-IV теперь известен как VISION: BUILDER и предлагается Computer Associates .

Железная дорога Санта-Фе использовала MAPPER для разработки системы в проекте, который был ранним примером 4GL, быстрого прототипирования и программирования пользователями . Идея заключалась в том, что легче научить железнодорожников использовать MAPPER, чем обучать программистов «тонкостям железнодорожных операций».

Одним из первых (и переносимых) языков со свойствами 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 имеют встроенные инструменты, позволяющие легко указать всю необходимую информацию:

Среды с низким кодом

В двадцать первом веке системы 4GL превратились в среды или платформы с «низким кодом» для решения проблемы быстрой разработки приложений за короткие периоды времени. Поставщики часто предоставляют образцы систем, таких как CRM, управление контрактами, отслеживание ошибок, из которых разработка может происходить с небольшим программированием.

Примеры

Общее использование / универсальный

Языки запросов к базе данных

Генераторы отчетов

Извлечение данных из файлов или базы данных для создания отчетов в широком диапазоне форматов выполняется с помощью инструментов генератора отчетов.

Языки обработки данных, анализа и отчетности

Создатели программного обеспечения

Математическая оптимизация

Разработка приложений с графическим интерфейсом на основе базы данных

Низкий код / ​​платформы для разработки без кода

Художники и генераторы экрана

Языки веб-разработки

Смотрите также

использованная литература