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