Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Поколения [ править ]

Первое поколение (1GL) [ править ]

Примеры: языки программирования машинного уровня.

Язык программирования первого поколения (1GL) - это язык программирования машинного уровня . [1]

Язык (программирования) первого поколения (1GL) - это группа языков программирования, которые являются языками машинного уровня, используемыми для программирования компьютеров первого поколения . Первоначально для компиляции или сборки языка первого поколения не использовался переводчик . Инструкции по программированию первого поколения вводились через переключатели на передней панели компьютерной системы.

Инструкции в 1GL состоят из двоичных чисел , представленных единицами и нулями . Это делает язык подходящим для понимания машины, но гораздо более трудным для интерпретации и изучения человеком-программистом.

Второе поколение (2GL) [ править ]

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

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

Третье поколение (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 и Pascal , также являются языками третьего поколения, хотя каждый из этих языков можно подразделить на другие категории на основе других современных особенностей. Большинство 3GL поддерживают структурированное программирование . Многие поддерживают объектно-ориентированное программирование . Подобные черты чаще используются для описания языка, а не просто для обозначения 3GL.

Четвертое поколение (4GL) [ править ]

Примеры: ABAP , Unix Shell , SQL , PL / SQL , Oracle Reports , R

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

Пятое поколение (5GL) [ править ]

Примеры: Prolog , OPS5 , Mercury.

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

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

История [ править ]

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

Первоначально все языки программирования более высокого уровня, чем ассемблер, назывались « третьим поколением », но позже был введен термин « четвертое поколение », чтобы попытаться различить (тогда) новые декларативные языки (такие как Prolog и domain- определенные языки), которые утверждали, что работают на еще более высоком уровне и в области, даже более близкой к пользователю (например, на уровне естественного языка), чем исходные, императивные языки высокого уровня, такие как Pascal , C , ALGOL , Fortran , BASIC , и т.п.

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

См. Также [ править ]

  • Хронология языков программирования

Ссылки [ править ]

  1. ^ a b "Компьютерная надежда, языки поколения"
  2. ^ Брукшир, Дж. Гленн. Информатика: обзор (11-е изд.). Эддисон-Уэсли. С. 240–241. ISBN 0-13-256903-5.
  3. ^ Васс, Петер. "Поколения языков программирования и парадигмы программирования" (PDF) . Архивировано из оригинального (PDF) 29 января 2020 года.
  4. ^ 35-я Гавайская международная конференция по системным наукам - 1002 предметно-ориентированных языков для разработки программного обеспечения. Архивировано 16 мая 2011 г. на Wayback Machine.
  5. ^ Ари ван Дерсен .; Пол Клинт; Йост Виссер (1998). «Языки, зависящие от предметной области: аннотированная библиография» . Архивировано из оригинала на 2009-02-02 . Проверено 15 марта 2009 . CS1 maint: обескураженный параметр ( ссылка )
  6. ^ Донг, Джилин, изд. (2007). Сетевой словарь . Саратога, Калифорния: Javvin Technologies, Inc. стр. 195. ISBN 9781602670006.
  7. ^ Э. Балагурусами, Основы компьютеров , Mcgraw Hill Education (Индия), 2009, ISBN 978-0070141605 , стр. 340