Поколения языков программирования
Эта статья нуждается в дополнительных ссылок для проверки . ( ноябрь 2015 г. ) |
Языки программирования подразделяются на несколько поколений языков программирования . Исторически эта классификация использовалась для обозначения растущей силы стилей программирования. Более поздние авторы несколько переопределили значения, поскольку различия, ранее считавшиеся важными, стали менее значимыми для современной практики.
Поколения [ править ]
Второе поколение (2GL) [ править ]
Примеры: языки ассемблера
Язык программирования второго поколения (2GL) — это способ классификации языков ассемблера, основанный на поколениях . [1] [2] [3]
Третье поколение (3GL) [ править ]
Примеры: C , C++ , Java , Python , PHP , Perl , C# , BASIC , Pascal , Fortran , ALGOL , COBOL.
3GL гораздо более машинонезависимы (переносимы) и более удобны для программистов. Сюда входят такие функции, как улучшенная поддержка совокупных типов данных и выражение концепций таким образом, чтобы это было удобно программисту, а не компьютеру. Язык третьего поколения превосходит язык второго поколения, поскольку компьютер заботится о несущественных деталях. 3GL более абстрактны, чем языки предыдущих поколений, и поэтому их можно считать языками более высокого уровня, чем их аналоги первого и второго поколения. впервые представленные в конце 1950-х годов, Фортран , АЛГОЛ и КОБОЛ, являются примерами ранних 3GL.
Наиболее популярные сегодня языки общего назначения, такие как C , C++ , C# , Java , BASIC и Pascal , также являются языками третьего поколения, хотя каждый из этих языков можно дополнительно подразделить на другие категории на основе других современных особенностей. Большинство 3GL поддерживают структурированное программирование . Многие поддерживают объектно-ориентированное программирование . Подобные черты чаще используются для описания языка, а не просто для обозначения 3GL.
Четвертое поколение (4GL) [ править ]
Примеры: ABAP , Unix Shell , SQL , PL/SQL , отчеты Oracle , R , Halide.
Языки четвертого поколения, как правило, специализируются на очень специфических областях программирования . [4] [5] 4GL могут включать поддержку управления базами данных , создания отчетов , математической оптимизации , разработки графического пользовательского интерфейса или веб-разработки .
Пятое поколение (5GL) [ править ]
Примеры: Пролог , OPS5 , Mercury , CVXGen. [6] [7] , эксперт по геометрии
Язык программирования пятого поколения (5GL) — это любой язык программирования , основанный на решении задач с использованием ограничений, заданных программе, а не на использовании алгоритма , написанного программистом. [8] Они могут использовать методы искусственного интеллекта для решения проблем таким образом. Большинство языков программирования , основанных на ограничениях и логическом программировании , а также некоторые другие декларативные языки являются языками пятого поколения.
В то время как языки программирования четвертого поколения предназначены для создания конкретных программ, языки пятого поколения предназначены для того, чтобы заставить компьютер решать данную проблему без участия программиста. Таким образом, пользователю нужно беспокоиться только о том, какие проблемы необходимо решить и какие условия необходимо выполнить, не беспокоясь о том, как реализовать процедуру или алгоритм для их решения. Языки пятого поколения используются в основном в исследованиях искусственного интеллекта или ИИ. OPS5 и Mercury — примеры языков пятого поколения. [9] как и ICAD , построенный на Lisp . KL-ONE — это пример схожей идеи — языка фреймов .
История [ править ]
Термины «язык программирования первого поколения» и «второго поколения» не использовались до появления термина «третье поколение»; ни один из этих трех терминов не упоминается в ранних сборниках языков программирования. Внедрение третьего поколения компьютерных технологий совпало с созданием языков программирования нового поколения. Маркетинг этой смены поколений машин коррелировал с несколькими важными изменениями в так называемых языках программирования высокого уровня , обсуждаемыми ниже, придавая техническое содержание разграничению второго и третьего поколений между языками программирования высокого уровня, а также задним числом переименовывая машинный код. языки как первое поколение и языки ассемблера как второе поколение .
Первоначально все языки программирования более высокого уровня, чем ассемблер, назывались « третьим поколением », но позже был введен термин « четвертое поколение », чтобы попытаться дифференцировать (тогда) новые декларативные языки (такие как Пролог и предметно-ориентированные языки). определенные языки), которые утверждали, что работают на еще более высоком уровне и в области, даже более близкой к пользователю (например, на уровне естественного языка), чем исходные императивные языки высокого уровня, такие как Паскаль , C , АЛГОЛ , Фортран , БАЗОВЫЙ и т. д.
«Поколенческая» классификация языков высокого уровня (третье поколение и более поздние) никогда не была полностью точной и позже, возможно, от нее отказались, при этом более точные классификации получили широкое распространение, такие как объектно-ориентированная , декларативная и функциональная. C дал начало C++ , а затем Java и C# ; Лисп в CLOS ; Ада — Ада 2012 ; и даже от COBOL до COBOL 2002 . В этом «поколении» также появились новые языки.
См. также [ править ]
Ссылки [ править ]
- ^ «Компьютерная надежда, языки поколений» .
- ^ Брукшир, Дж. Гленн (2012). Информатика: обзор (11-е изд.). Аддисон-Уэсли. стр. 240–241. ISBN 978-0-13-256903-3 .
- ^ Васс, Питер. «Поколения языков программирования и парадигмы программирования» (PDF) . Архивировано из оригинала (PDF) 29 января 2020 г.
- ^ 35-я Гавайская международная конференция по системным наукам - 1002 предметно-ориентированных языка для разработки программного обеспечения . Архивировано 16 мая 2011 года в Wayback Machine .
- ^ Арье ван Дёрсен; Пол Клинт; Йост Виссер (1998). «Языки конкретной предметной области: аннотированная библиография» . Архивировано из оригинала 2 февраля 2009 г. Проверено 15 марта 2009 г.
- ^ NAE, Мост , Автономная точная посадка космических ракет, 19 декабря 2016 г., Автор: Ларс Блэкмор.
- ^ CVXGEN: Генерация кода для выпуклой оптимизации , cvxgen.com, 4 декабря 2013 г.
- ^ Донг, Цзелин, изд. (2007). Сетевой словарь . Саратога, Калифорния: Javvin Technologies, Inc., с. 195. ИСБН 9781602670006 .
- ^ Э. Балагурусами, Основы компьютеров , Mcgraw Hill Education (Индия), 2009 г., ISBN 978-0070141605 , с. 340.