Поколения языков программирования

Концепция в информатике

Языки программирования были классифицированы на несколько поколений языков программирования . [1] Исторически эта классификация использовалась для обозначения возрастающей мощности стилей программирования. Более поздние авторы несколько переопределили значения, поскольку различия, которые ранее считались важными, стали менее значимыми для текущей практики.

Поколения

Первое поколение (1GL

Второе поколение (2GL)

Примеры: языки ассемблера

Язык программирования второго поколения (2GL) — это поколенческий способ категоризации языков ассемблера . [2] [3] [4]

Третье поколение (3GL)

Примеры: C , C++ , Java , Python , PHP , Perl , C# , BASIC , Pascal , Fortran , ALGOL , COBOL

Языки 3GL гораздо более независимы от машины (переносимы) и более удобны для программиста. Это включает в себя такие функции, как улучшенная поддержка агрегированных типов данных и выражение концепций способом, который выгоден программисту, а не компьютеру. Язык третьего поколения улучшается по сравнению с языком второго поколения, заставляя компьютер заботиться о несущественных деталях. Языки 3GL более абстрактны, чем предыдущие поколения языков, и, таким образом, могут считаться языками более высокого уровня, чем их аналоги первого и второго поколений. Впервые представленные в конце 1950-х годов, Fortran , ALGOL и COBOL являются примерами ранних языков 3GL.

Большинство популярных сегодня языков общего назначения, таких как C , C++ , C# , Java и BASIC , также являются языками третьего поколения, хотя каждый из этих языков может быть дополнительно подразделен на другие категории на основе других современных черт. Большинство 3GL поддерживают структурное программирование . Многие поддерживают объектно-ориентированное программирование . Такие черты чаще используются для описания языка, а не просто для того, чтобы быть 3GL.

Четвертое поколение (4GL)

Примеры: ABAP , оболочка Unix , SQL , PL/SQL , Oracle Reports , R , Halide

Языки четвертого поколения, как правило, специализируются на очень конкретных областях программирования . [5] [6] Языки четвертого поколения могут включать поддержку управления базами данных , создания отчетов , математической оптимизации , разработки графического пользовательского интерфейса или веб-разработки .

Пятое поколение (5GL)

Примеры: Prolog , OPS5 , Mercury , CVXGen [7] [8] , Geometry Expert

Язык программирования пятого поколения (5GL) — это любой язык программирования, основанный на решении проблем с использованием ограничений, заданных для программы, а не на использовании алгоритма , написанного программистом. [9] Они могут использовать методы искусственного интеллекта для решения проблем таким образом. Большинство языков программирования на основе ограничений и логических языков программирования , а также некоторые другие декларативные языки являются языками пятого поколения.

В то время как языки программирования четвертого поколения предназначены для создания конкретных программ, языки пятого поколения предназначены для того, чтобы компьютер мог решать заданную задачу без участия программиста. Таким образом, пользователю нужно беспокоиться только о том, какие проблемы необходимо решить и какие условия необходимо выполнить, не беспокоясь о том, как реализовать процедуру или алгоритм для их решения. Языки пятого поколения используются в основном в исследованиях искусственного интеллекта или ИИ. OPS5 и Mercury являются примерами языков пятого поколения, [10] как и ICAD , который был построен на Lisp . KL-ONE является примером связанной идеи, языка фреймов .

История

Термины «язык программирования первого поколения» и «язык программирования второго поколения» не использовались до появления термина «язык программирования третьего поколения»; ни один из этих трех терминов не упоминается в ранних сборниках языков программирования. Введение третьего поколения компьютерных технологий совпало с созданием нового поколения языков программирования. Маркетинг этого поколенческого сдвига в машинах коррелировал с несколькими важными изменениями в том, что называлось языками программирования высокого уровня , обсуждаемыми ниже, придавая техническое содержание различию второго/третьего поколения среди языков программирования высокого уровня, а также задним числом переименовывая языки машинного кода в первое поколение , а языки ассемблера — во второе поколение .

Первоначально все языки программирования более высокого уровня, чем ассемблер, назывались « третьим поколением », но позже был введен термин « четвертое поколение », чтобы попытаться отличить (тогда) новые декларативные языки (такие как Пролог и предметно-ориентированные языки), которые, как утверждалось, работали на еще более высоком уровне и в области, еще более близкой к пользователю (например, на уровне естественного языка), чем исходные императивные языки высокого уровня, такие как Паскаль , Си , Алгол , Фортран , Бейсик и т. д.

«Поколенческая» классификация языков высокого уровня (третьего поколения и более поздних) никогда не была полностью точной и, возможно, была впоследствии заброшена, а более точные классификации получили широкое распространение, например, объектно-ориентированная , декларативная и функциональная. C дал начало C++ , а затем Java и C# ; LispCLOS ; Ada — Ada 2012 ; и даже COBOL — COBOL 2002. В этом «поколении» также появились новые языки.

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

Ссылки

  1. ^ "Генерация языков программирования". GeeksforGeeks . 2017-10-22 . Получено 2025-01-15 .
  2. ^ «Компьютерная надежда, языки поколения».
  3. ^ Брукшир, Дж. Гленн (2012). Компьютерные науки: обзор (11-е изд.). Addison-Wesley. стр.  240–241 . ISBN 978-0-13-256903-3.
  4. ^ Васс, Петер. "Поколения языков программирования и парадигмы программирования" (PDF) . Архивировано из оригинала (PDF) 29-01-2020.
  5. ^ 35-я Гавайская международная конференция по системным наукам - 1002 предметно-ориентированных языка для разработки программного обеспечения. Архивировано 16 мая 2011 г. на Wayback Machine .
  6. ^ Ари ван Дёрсен; Пол Клинт; Йост Виссер (1998). «Доменно-специфические языки: аннотированная библиография». Архивировано из оригинала 2009-02-02 . Получено 2009-03-15 .
  7. ^ NAE, The Bridge, Автономная точная посадка космических ракет, 19 декабря 2016 г., Автор: Ларс Блэкмор.
  8. ^ CVXGEN: Генерация кода для выпуклой оптимизации, cvxgen.com, 4 декабря 2013 г.
  9. ^ Dong, Jielin, ред. (2007). Сетевой словарь . Саратога, Калифорния: Javvin Technologies, Inc. стр. 195. ISBN 9781602670006.
  10. ^ Э. Балагурусами, Основы компьютеров , Mcgraw Hill Education (Индия), 2009, ISBN 978-0070141605 , стр. 340. 
Взято с "https://en.wikipedia.org/w/index.php?title=Поколения_языков_программирования&oldid=1272453036"