stringtranslate.com

Язык программирования четвертого поколения

Язык программирования четвертого поколения ( 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 .

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

На разработку 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]

Экранные художники и генераторы

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

Язык программирования музыки

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

Ссылки

  1. ^ 35-я Гавайская международная конференция по системным наукам - 1002 предметно-ориентированных языка для разработки программного обеспечения. Архивировано 16 мая 2011 г. на Wayback Machine.
  2. ^ Ари ван Дёрсен; Пол Клинт; Йост Виссер (1998). «Доменно-специфические языки-свидетели: аннотированная библиография». Архивировано из оригинала 2009-02-02 . Получено 2009-03-15 .
  3. ^ MacDonell, Stephen (ноябрь 1993 г.). «Разработка программного обеспечения, инструменты CASE и 4GL — обзор использования в Новой Зеландии. Часть 1: 750 новозеландских организаций». hdl : 10523/928 . {{cite journal}}: Цитировать журнал требует |journal=( помощь )
  4. ^ «Поколения программного обеспечения Роджера Кларка».
  5. ^ "Определение языка четвертого поколения". PCMAG . Получено 7 мая 2020 г. .
  6. ^ Мартин, Джеймс . Разработка приложений без программистов. Prentice-Hall, 1981. ISBN 0-13-038943-9
  7. ^ "IBM Punch Cards". www.columbia.edu . Архивировано из оригинала 2019-02-16 . Получено 2019-02-03 .
  8. ^ "Программное обеспечение для интеллектуального анализа данных, анализ данных и многое другое: возможности сервера бизнес-информации Unisys". Unisys . 2006-08-21. Архивировано из оригинала 2006-08-21 . Получено 2019-02-03 .
  9. ^ Луи Шлютер (1988). Пользовательские вычисления: следующее поколение .[книга о генераторе отчетов и системах MAPPER]
  10. ^ Барбара Каннинг МакНурлин; Ральф Х. Спраг (2004). "Гл. 9". Управление информационными системами на практике (PDF) . Pearson/Prentice Hall. ISBN 978-0-13-101139-7.[ постоянная мертвая ссылка ]
  11. ^ Форрест, Коннер. «Как Salesforce использует оркестровку с низким кодом для спасения «буксующих проектов Интернета вещей»». ZDNet .
  12. ^ Марвин, Роб (10 августа 2018 г.). «Лучшие платформы разработки с малым объемом кода в 2019 году». PCMAG .
  13. ^ Sayer, Martin Heller и Peter (6 апреля 2018 г.). «25 простых инструментов для быстрого создания мобильных приложений». InfoWorld . Архивировано из оригинала 18 ноября 2017 г. Получено 17 ноября 2017 г.
  14. ^ "DronaHQ. Создавайте приложения без кодирования". www.dronahq.com . Архивировано из оригинала 2019-08-09 . Получено 2019-09-11 .