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

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

Поколения

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

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

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

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

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

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

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

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

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

Примеры: C, C ++, C #, Ява, БАЗОВЫЙ, Паскаль, Фортран, АЛГОЛ, КОБОЛ

3GL гораздо более независимы от машины и более удобны для программистов. Это включает в себя такие функции, как улучшенная поддержка агрегированных типов данных и выражение концепций таким образом, чтобы это было удобно для программиста, а не для компьютера. Язык третьего поколения лучше, чем язык второго поколения, поскольку компьютер заботится о несущественных деталях. 3GL более абстрактны, чем языки предыдущих поколений, и поэтому могут считаться языками более высокого уровня, чем их аналоги первого и второго поколений. Впервые представленный в конце 1950-х годов, Фортран, АЛГОЛ, и КОБОЛ являются примерами ранних 3GL.

Самые популярные сегодня языки общего назначения, такие как C, C ++, C #, Ява, БАЗОВЫЙ и Паскаль, также являются языками третьего поколения, хотя каждый из этих языков может быть подразделен на другие категории на основе других современных черт. Поддержка большинства 3GL структурное программирование. Многие поддерживают объектно-ориентированного программирования. Подобные черты чаще используются для описания языка, а не просто для обозначения 3GL.

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

Примеры: SQL, Оболочка Unix, Отчеты Oracle, р

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

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

Примеры: OPS5, Меркурий

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

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

История

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

Изначально все языки программирования более высокого уровня, чем ассемблер, назывались "третье поколение ", но позже термин"четвертое поколение "был введен, чтобы попытаться дифференцировать (тогда) новые декларативные языки (Такие как Пролог и предметно-ориентированные языки), которые утверждали, что работают на еще более высоком уровне и в предметной области, даже более близкой к пользователю (например, на уровне естественного языка), чем исходные, императивные языки высокого уровня, такие как Паскаль, C, АЛГОЛ, Фортран, БАЗОВЫЙ, так далее.

«Поколенная» классификация языков высокого уровня (третье поколение и позже) никогда не была полностью точной и позже, возможно, от нее отказались, а более точные классификации получили широкое распространение, такие как объектно-ориентированный, декларативно и функционально. C породил C ++ а позже Ява и C #, Лисп к ЗАКРЫТЬ, Ада к Аде 2012, и даже COBOL в COBOL 2002, и в этом «поколении» появились и новые языки.

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

Рекомендации

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