Язык программирования четвертого поколения ( 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 .
На разработку 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:
Некоторые 4GL имеют встроенные инструменты, которые позволяют легко указать всю необходимую информацию:
В двадцать первом веке системы 4GL появились как среды или платформы с «низким кодом» для решения проблемы быстрой разработки приложений за короткие периоды времени. Поставщики часто предоставляют образцы систем, таких как CRM, управление контрактами, отслеживание ошибок, на основе которых разработка может осуществляться с минимальными затратами на программирование. [11]
Извлечение данных из файлов или базы данных для создания отчетов в широком диапазоне форматов выполняется с помощью инструментов генератора отчетов.
Источник: [12] [13]
{{cite journal}}
: Требуется цитировать журнал |journal=
( помощь )