История языков программирования
этой статьи Начальный раздел может быть слишком коротким, чтобы адекватно суммировать ключевые моменты . ( февраль 2018 г. ) |
История вычислений |
---|
Аппаратное обеспечение |
Программное обеспечение |
Информатика |
Современные концепции |
По стране |
Хронология вычислений |
Глоссарий информатики |
История языков программирования простирается от документации первых механических компьютеров до современных инструментов для разработки программного обеспечения . Ранние языки программирования были узкоспециализированными, опираясь на математическую запись и столь же неясный синтаксис . [1] На протяжении 20 века исследования в области теории компиляторов привели к созданию языков программирования высокого уровня , которые используют более доступный синтаксис для передачи инструкций.
Первым языком программирования высокого уровня был Plankalkül , созданный Конрадом Цузе между 1942 и 1945 годами. [2] Первый язык высокого уровня, имеющий связанный с ним компилятор, был создан Коррадо Бёмом в 1951 году для его докторской диссертации. [3] Первым коммерчески доступным языком был ФОРТРАН (FORmula TRANslation), разработанный в 1956 году (первое руководство появилось в 1956 году, но впервые разработано в 1954 году) командой под руководством Джона Бэкуса из IBM .
Ранняя история [ править ]
В 1842–1849 годах Ада Лавлейс перевела мемуары итальянского математика Луиджи Менабреа о новейшей предложенной Чарльзом Бэббиджем машине: аналитической машине ; она дополнила мемуары заметками, в которых подробно описывался метод расчета чисел Бернулли с помощью двигателя, признанного большинством историков первой в мире опубликованной компьютерной программой. [4]
«Жаккардовые ткацкие станки» Чарльза Бэббиджа» и «Разностная машина были разработаны для использования перфокарт . [5] [6] которые описывали бы последовательность операций, которые должны выполнять их программируемые машины.
Первые компьютерные коды были специализированы для своих приложений: например, Алонзо Чёрч смог выразить лямбда-исчисление шаблонным способом, а машина Тьюринга была абстракцией работы машины для маркировки ленты.
Первые языки программирования [ править ]
В 1940-х годах были созданы первые современные компьютеры с электрическим приводом. Ограниченная скорость и объем памяти вынуждали программистов писать программы на языке ассемблера, настраиваемые вручную . Со временем стало понятно, что программирование на языке ассемблера требует огромных интеллектуальных усилий. [ нужна ссылка ]
Ранним предложением языка программирования высокого уровня был Plankalkül , разработанный Конрадом Цузе для его компьютера Z1 между 1942 и 1945 годами, но в то время не реализованный. [7]
Первые функционирующие языки программирования, предназначенные для передачи инструкций компьютеру, были написаны в начале 1950-х годов. Джона Мочли , «Краткий код» предложенный в 1949 году, был одним из первых языков высокого уровня, когда-либо разработанных для электронного компьютера . [8] В отличие от машинного кода , операторы Short Code представляли математические выражения в понятной форме. Однако программу приходилось интерпретировать в машинный код каждый раз при ее запуске, что делало процесс намного медленнее, чем запуск эквивалентного машинного кода.
В начале 1950-х годов Алик Гленни разработал Autocode , возможно, первый компилируемый язык программирования, в Манчестерском университете . разработал для Mark 1 вторую версию языка, известную как «Автокод Mark 1» В 1954 году Р. А. Брукер . Брукер вместе с Манчестерским университетом также разработал автокод для Ferranti Mercury в 1950-х годах. Версия для EDSAC 2 была разработана Дугласом Хартри из математической лаборатории Кембриджского университета в 1961 году. Известная как EDSAC 2 Autocode, она была прямым развитием Mercury Autocode, адаптированным к местным условиям и отличалась оптимизацией объектного кода и исходным языком. Передовая для того времени диагностика. современное, но отдельное направление разработки, Atlas Autocode, было разработано для Манчестерского университета машины Atlas 1 .
В 1954 году FORTRAN был изобретен в IBM командой под руководством Джона Бэкуса ; это был первый широко используемый язык общего назначения высокого уровня, имеющий функциональную реализацию, в отличие от дизайна только на бумаге. [9] [10] Когда FORTRAN был впервые представлен, к нему относились со скептицизмом из-за ошибок, задержек в разработке и сравнительной эффективности программ, написанных вручную на ассемблере. [11] Однако на быстро развивающемся рынке аппаратного обеспечения этот язык в конечном итоге стал известен своей эффективностью. Это по-прежнему популярный язык для высокопроизводительных вычислений. [12] и используется для программ, которые оценивают и оценивают 500 самых быстрых суперкомпьютеров в мире. [13]
Еще один ранний язык программирования был разработан Грейс Хоппер в США и назван FLOW-MATIC . Он был разработан для UNIVAC I в компании Remington Rand в период с 1955 по 1959 год. Хоппер обнаружила, что клиенты, занимающиеся обработкой бизнес-данных , недовольны математическими обозначениями , и в начале 1955 года она и ее команда написали спецификацию для английского языка программирования и реализовал прототип. [14] Компилятор FLOW-MATIC стал общедоступным в начале 1958 года и был практически завершен в 1959 году. [15] Flow-Matic оказал большое влияние на разработку COBOL , поскольку только он и его прямой потомок AIMACO . в то время использовался [16]
Другие языки, используемые до сих пор, включают LISP (1958 г.), изобретенный Джоном Маккарти , и COBOL (1959 г.), созданный Комитетом ближнего действия. Еще одной вехой в конце 1950-х годов стала публикация комитетом американских и европейских ученых-компьютерщиков «нового языка алгоритмов»; Отчет ALGOL 60 (« ALGO Ритмический язык »). Этот отчет объединил многие идеи, циркулировавшие в то время, и представил три ключевые языковые инновации:
- структура вложенных блоков: последовательности кода и связанные с ними объявления могут быть сгруппированы в блоки без необходимости превращать их в отдельные процедуры с явным именем;
- лексическая область видимости : блок может иметь свои собственные переменные, процедуры и функции, невидимые для кода вне этого блока, то есть скрытие информации .
Еще одно нововведение, связанное с этим, заключалось в описании языка:
- математически точная запись, форма Бэкуса – Наура для описания синтаксиса языка использовалась (BNF). Почти все последующие языки программирования использовали вариант BNF для описания контекстно-свободной части своего синтаксиса.
АЛГОЛ 60 оказал особенное влияние на разработку более поздних языков, некоторые из которых вскоре стали более популярными. были Большие системы Берроуза разработаны для программирования на расширенном подмножестве АЛГОЛА.
Ключевые идеи АЛГОЛА были продолжены в АЛГОЛЕ 68 :
- синтаксис и семантика стали еще более ортогональными благодаря анонимным подпрограммам, рекурсивной системе типизации с функциями высшего порядка и т. д.;
- не только контекстно-свободная часть, но и полный синтаксис и семантика языка были определены формально, в терминах грамматики Ван Вейнгаардена , формализма, разработанного специально для этой цели.
Многие малоиспользуемые возможности языка АЛГОЛ 68 (например, параллельные и параллельные блоки) и его сложная система синтаксических сокращений и автоматического приведения типов сделали его непопулярным среди разработчиков и завоевали репутацию сложного языка . Никлаус Вирт фактически вышел из комитета по дизайну, чтобы создать более простой язык Паскаль .
Некоторые известные языки, разработанные в этот период, включают:
- 1951 - Язык региональной ассамблеи
- 1952 – Автокод
- 1954 – IPL (предшественник LISP)
- 1955 – FLOW-MATIC (привел к COBOL)
- 1957 – ФОРТРАН (первый компилятор)
- 1957 – КОМТРАН (предшественник КОБОЛа)
- 1958 – ЛИСП
- 1958 – АЛГОЛ 58
- 1959 – ФАКТ (предшественник КОБОЛа)
- 1959 – КОБОЛ
- 1959 – РПГ
- 1960 – АЛГОЛ 60
- 1962 – АПЛ
- 1962 – Начало
- 1962 – СНОБОЛ
- 1963 – CPL (предшественник C)
- 1964 – Спикези
- 1964 – БАЗОВЫЙ
- 1964 - ПЛ/И
- 1966 – ЖОСС
- 1966 – Свинка
- 1967 – BCPL (предшественник C)
- 1967 — Logo (образовательный язык, позже оказавший влияние на Smalltalk и Scratch ).
Установление фундаментальных парадигм [ править ]
Период с конца 1960-х по конец 1970-х годов принес расцвет языков программирования. Большинство основных языковых парадигм, используемых сейчас, были изобретены в этот период: [ оригинальное исследование? ]
- Speakeasy , разработанная в 1964 году в Аргоннской национальной лаборатории (ANL) Стэнли Коэном , представляет собой систему объектно-ориентированного программирования (OOPS), во многом похожую на более поздние MATLAB , IDL и Mathematica числовые пакеты . Speakeasy имеет четкий базовый синтаксис Фортрана . Сначала он рассматривал эффективные физические вычисления внутри ANL, был модифицирован для исследовательских целей (как «Modeleasy») для Совета Федеральной резервной системы в начале 1970-х годов, а затем стал доступен коммерчески; Speakeasy и Modeleasy все еще используются.
- Simula , изобретенный в конце 1960-х годов Найгаардом и Далем как надмножество АЛГОЛА 60, был первым языком, разработанным для поддержки объектно-ориентированного программирования .
- FORTH , самый ранний конкатенативный язык программирования, был разработан Чарльзом Муром в 1969 году как система личного развития в Национальной радиоастрономической обсерватории (NRAO).
- C , один из первых языков системного программирования , был разработан Деннисом Ритчи и Кеном Томпсоном в Bell Labs между 1969 и 1973 годами.
- Smalltalk (середина 1970-х годов) обеспечил полную разработку объектно-ориентированного языка.
- Пролог , разработанный в 1972 году Аленом Кольмерауэром , Филиппом Русселем и Робертом Ковальски , был первым языком логического программирования .
- ML создал систему полиморфных типов (изобретенную Робином Милнером в 1973 году) на Lisp. [17] новаторские статически типизированные функциональные языки программирования. Каждый из этих языков породил целую семью потомков, и большинство современных языков имеют по крайней мере один из них в своем происхождении.
В 1960-е и 1970-е годы также наблюдались серьезные споры о достоинствах « структурированного программирования », которое, по сути, означало программирование без использования goto
. Значительная часть программистов считала, что даже в языках, которые предоставляют goto
— плохой стиль программирования , использовать его, за исключением редких случаев, . Эти дебаты были тесно связаны с языковым дизайном: некоторые языки не имели goto
, что вынудило использовать структурное программирование.
Чтобы обеспечить еще более быстрое время компиляции, некоторые языки были структурированы для « однопроходных компиляторов », которые ожидают, что сначала будут определены подчиненные подпрограммы, как в Паскале , где основная подпрограмма или функция драйвера является последним разделом листинга программы.
Некоторые известные языки, разработанные в этот период, включают:
консолидация, модули, производительность 1980 -е :
1980-е годы были годами относительной консолидации императивных языков . Вместо того, чтобы изобретать новые парадигмы, все эти движения развивали идеи, изобретенные в предыдущее десятилетие. C++ сочетает в себе объектно-ориентированное и системное программирование. Правительство США стандартизировало Ada — язык системного программирования, предназначенный для использования оборонными подрядчиками. В Японии и других странах огромные суммы были потрачены на исследование так называемых языков программирования пятого поколения , включающих конструкции логического программирования. Сообщество функциональных языков приступило к стандартизации ML и Lisp. исследования Миранды , функционального языка с ленивым вычислением В этом десятилетии начались .
Одной из важных новых тенденций в языковом проектировании стало повышенное внимание к программированию для крупномасштабных систем за счет использования модулей или крупномасштабных организационных единиц кода. Modula , Ada и ML разработали известные модульные системы в 1980-х годах. Модульные системы часто были связаны с универсальными программными конструкциями: дженерики, по сути, представляли собой параметризованные модули. [ нужна ссылка ] (см. также полиморфизм в объектно-ориентированном программировании ).
Хотя крупных новых парадигм императивных языков программирования не появилось, многие исследователи расширили идеи предыдущих языков и адаптировали их к новым контекстам. Например, языки систем Argus и Emerald адаптировали объектно-ориентированное программирование к распределенным вычислительным системам.
1980-е годы также принесли успехи в реализации языков программирования. Движение компьютеров с сокращенным набором команд (RISC) в компьютерной архитектуре постулировало, что аппаратное обеспечение должно разрабатываться для компиляторов, а не для программистов-ассемблеров. Благодаря повышению скорости центрального процессора (ЦП), которое позволило использовать более агрессивные методы компиляции, движение RISC вызвало больший интерес к технологии компиляторов для языков высокого уровня.
Языковые технологии продолжали действовать в этом направлении вплоть до 1990-х годов.
Некоторые известные языки, разработанные в этот период, включают:
- 1980 — C++ (как C с классами , переименованный в 1983 году)
- 1983 – Ада
- 1984 – Общий Лисп
- 1984 – МАТЛАБ
- 1984 — dBase III, dBase III Plus ( Clipper и FoxPro как FoxBASE )
- 1985 – Эйфель
- 1986 – Цель-С
- 1986 — LabVIEW ( язык визуального программирования ).
- 1986 – Эрланг
- 1987 – Перл
- 1988 – PIC (язык разметки)
- 1988 – ТКЛ
- 1988 — Wolfram Language (в составе Mathematica , получил отдельное название только в июне 2013 года)
- 1989 – Флорида (Бакус)
Интернета 1990 век -е :
Быстрый рост Интернета в середине 1990-х годов стал следующим важным историческим событием в языках программирования. Открывая радикально новую платформу для компьютерных систем, Интернет создал возможность для внедрения новых языков. В частности, популярность языка программирования JavaScript возросла благодаря его ранней интеграции с веб-браузером Netscape Navigator. Различные другие языки сценариев получили широкое распространение при разработке индивидуальных приложений для веб-серверов, таких как PHP. не было фундаментальных новшеств В 1990-е годы в императивных языках , но было много рекомбинаций и созревания старых идей. В эту эпоху началось распространение функциональных языков . Главной движущей философией была производительность программистов. Появилось множество языков быстрой разработки приложений (RAD), которые обычно имели интегрированную среду разработки (IDE), сборку мусора и были потомками старых языков. Все такие языки были объектно-ориентированными . В их число входили Object Pascal , Objective Caml (переименованный в OCaml ), Visual Basic и Java . Особое внимание уделялось Java.
Более радикальными и инновационными, чем языки RAD, были новые языки сценариев . Они не произошли напрямую от других языков и имели новый синтаксис и более либеральное использование функций. Многие считают, что эти языки сценариев более продуктивны, чем даже языки RAD, но часто из-за выбора, который делает небольшие программы проще, а большие программы сложнее писать и поддерживать. [ нужна ссылка ] Тем не менее, языки сценариев стали наиболее распространенными языками, используемыми в Интернете.
Некоторые языки программирования включали в свой дистрибутив другие языки, чтобы сэкономить время разработки. например, и Python , и Ruby включали Tcl для поддержки программирования графического интерфейса через такие библиотеки, как Tkinter .
Некоторые известные языки, разработанные в этот период, включают:
- 1990 – Хаскелл
- 1991 – «Питон»
- 1991 – Визуальный Бейсик
- 1993 – Двое
- 1993 – Р.
- 1994 — CLOS (часть ANSI Common Lisp )
- 1995 – Рубин
- 1995 – Их 95.
- 1995 – Ява
- 1995 — Delphi ( Объект Паскаль )
- 1995 – Визуал ФоксПро
- 1995 – JavaScript
- 1995 – PHP
- 1996 – ОКамл
- 1997 – Ребол
тенденции Текущие
Эволюция языков программирования продолжается как в промышленности, так и в исследованиях. Некоторые из последних тенденций включают в себя:
- Расширение поддержки функционального программирования на основных коммерческих языках, включая чисто функциональное программирование для упрощения анализа и распараллеливания кода (как на микро-, так и на макроуровне).
- Конструкции для поддержки параллельного и распределенного программирования.
- Механизмы добавления проверки безопасности и надежности в язык : расширенная статическая проверка, зависимая типизация , контроль информационных потоков, статическая потокобезопасность .
- Альтернативные механизмы компонуемости и модульности: миксины , трейты , классы типов , делегаты , аспекты .
- Компонентно-ориентированная разработка программного обеспечения.
- Метапрограммирование , рефлексивное программирование (рефлексия) или доступ к абстрактному синтаксическому дереву.
- Аспектно-ориентированное программирование (АОП), позволяющее разработчикам вставлять код в другой модуль или класс в «точках соединения».
- Предметно-ориентированные языки и генерация кода
- XML для графического интерфейса ( XUL , Extensible Application Markup Language (XAML))
- Повышенный интерес к дистрибуции и мобильности.
- Интеграция с базами данных, включая XML и реляционные базы данных .
- Открытый исходный код как философия развития языков, включая коллекцию компиляторов GNU и таких языков, как PHP , Python , Ruby и Scala .
- Повышенный интерес к языкам визуального программирования , таким как Scratch , LabVIEW и PWCT.
- Языки массового параллелизма для графических процессоров графических процессоров и массивов суперкомпьютеров, включая OpenCL.
- Ранние исследования языков программирования квантовых вычислений (см. список )
- Ранние исследования по применению методов искусственного интеллекта (ИИ) для генерации кода с использованием ИИ, например, с использованием GPT-3 и Gemini . [18] [19]
Многие крупные технологические компании представили несколько новых языков программирования, которые созданы для удовлетворения их потребностей и обеспечивают первоклассную поддержку своих платформ. например:
- Microsoft представила C# , F# , TypeScript , Q# , Bosque и Power Fx .
- Google представил Go , Dart и Carbon .
- Apple представила Swift .
- Мета представила Хака .
Некоторые известные языки, разработанные в этот период и внесенные в индекс TIOBE (100 лучших языков программирования) по состоянию на февраль 2024 года, включают: [20] [21]
- 2000 – ЭкшнСкрипт
- 2001 – С#
- 2001 – Д
- 2002 – «Скретч»
- 2003 – «Заводной»
- 2003 – «Скала»
- 2005 – Фа#
- 2006 – PowerShell
- 2007 – Кложур
- 2008 – Nim
- 2009 – «Иди»
- 2011 – «Дарт»
- 2011 – Котлин
- 2012 – Юлия
- 2012 – Машинопись
- 2012 – «Эликсир»
- 2014 – «Стриж»
- 2014 – «Хак»
- 2015 – «Ржавчина»
- 2015 – Раку
- 2016 – «Кольцо»
- 2016 – «Зиг»
- 2022 – Карбон
Другие новые языки программирования включают Elm , Балерина , Рэд , Кристалл , Хаксе , Ви (Вланг) , Разум и Моджо .
Ключевые цифры
Некоторые ключевые люди, которые помогали в разработке языков программирования:
- Ада Лавлейс опубликовала первую компьютерную программу.
- Алан Купер , разработчик Visual Basic .
- Алан Кей , новатор в области объектно-ориентированного программирования и создатель Smalltalk .
- Андерс Хейлсберг , разработчик Turbo Pascal , Delphi , C# и TypeScript .
- Артур Уитни , разработчик A+ , k и q .
- Бертран Мейер , изобретатель Эйфеля .
- Бьёрн Страуструп , разработчик C++ .
- Брэд Кокс , соавтор Objective-C .
- Брендан Эйх , разработчик JavaScript .
- Брайан Керниган , соавтор первой книги по C языку программирования совместно с Деннисом Ритчи , соавтором языков программирования AWK и AMPL .
- Чак Мур , изобретатель Форта , первого конкатенативного языка программирования и выдающееся имя в проектировании микропроцессоров стековых машин .
- Крис Латтнер , создатель Swift , Mojo и LLVM .
- Клив Молер , создатель MATLAB .
- Деннис Ритчи изобретатель C. , Операционная система Unix, операционная система Plan 9.
- Дуглас Макилрой оказал влияние и разработал такие языки, как SNOBOL , TRAC , PL/I , ALTRAN , TMG и C++ .
- Грейс Хоппер , первая использовавшая термин «компилятор» и разработчик FLOW-MATIC , повлияла на развитие COBOL . Популяризировались машинно-независимые языки программирования и термин « отладка ».
- Гвидо ван Россум , создатель Python .
- Джеймс Гослинг , ведущий разработчик Java и его предшественника Oak .
- Жан Ичбиа , главный дизайнер Ады , Ада 83 .
- Жан-Ив Жирар , соавтор полиморфного лямбда-исчисления (Система F).
- Джефф Безансон , главный дизайнер и один из основных разработчиков Julia .
- Джеффри Сновер , изобретатель PowerShell .
- Джо Армстронг , создатель Erlang .
- Джон Бэкус , изобретатель Фортрана , участвовал в разработке АЛГОЛА 58 и АЛГОЛА 60 .
- Джон К. Рейнольдс , соавтор полиморфного лямбда-исчисления (Система F).
- Джон Маккарти , изобретатель LISP , комитет по разработке ALGOL 60 .
- Джон фон Нейман , создатель концепции операционной системы .
- Грейдон Хоар , изобретатель Rust .
- Кен Томпсон , изобретатель игры «Би- энд -гоу» .
- Кеннет Э. Айверсон , разработчик APL , соавтор J с Роджером Хуэем .
- Конрад Цузе разработал первый язык программирования высокого уровня Plankalkül . (который повлиял на ALGOL 58) [22] ).
- Кристен Найгаард , пионер объектно-ориентированного программирования, соавтор Simula .
- Ларри Уолл , создатель языка программирования Perl (см. Perl и Raku ).
- Мартин Одерски , создатель Scala и ранее участвовавший в разработке Java .
- Мартин Ричардс разработал язык программирования BCPL , предшественник B и C. языков
- Натаниэль Рочестер , изобретатель первого ассемблера (IBM 701).
- Никлаус Вирт , изобретатель Паскаля , Модулы и Оберона .
- Оле-Йохан Даль , пионер объектно-ориентированного программирования, соавтор Simula .
- Расмус Лердорф , создатель PHP .
- Рич Хики , создатель Clojure .
- Роберт Джентльмен соавтор R. ,
- Роберт Гриземер , один из создателей Го .
- Робин Милнер , изобретатель машинного обучения , разделивший заслуги в Хиндли-Милнера выведении полиморфного типа .
- Роб Пайк , соавтор Go , Inferno (операционная система) и Plan 9 (операционная система) . Соавтор операционной системы.
- Росс Ихака соавтор R. ,
- Стэнли Коэн , изобретатель Speakeasy , который был создан с использованием OOPS, системы объектно-ориентированного программирования, впервые в 1964 году.
- Стивен Вольфрам , создатель Mathematica .
- Уолтер Брайт создатель Д. ,
- Юкихиро Мацумото , создатель Ruby .
См. также [ править ]
Ссылки [ править ]
- ^ Хоппер (1978) с. 16.
- ^ Кнут, Дональд Э.; Пардо, Луис Трабб. «Раннее развитие языков программирования». Энциклопедия компьютерных наук и технологий . 7 . Марсель Деккер: 419–493.
- ^ Кандидатская диссертация Коррадо Бема
- ^ Фуэги, Дж.; Фрэнсис, Дж. (октябрь – декабрь 2003 г.), «Лавлейс и Бэббидж и создание «заметок» 1843 года », Annals of the History of Computing , 25 (4): 16–26, doi : 10.1109/MAHC.2003.1253887
- ^ Бэйлз, Ребекка (24 июля 2023 г.). «Объяснение аналитической машины Чарльза Бэббиджа» . история-компьютер.com .
- ^ Суэйд, Дорон. «Двигатели» . www.computerhistory.org . Проверено 23 февраля 2024 г.
- ^ В 1998 и 2000 годах для этого языка были созданы компиляторы в качестве исторического упражнения. Рохас, Рауль и др. (2000). «Plankalkül: первый язык программирования высокого уровня и его реализация». Институт информатики, Свободный университет Берлина, Технический отчет B-3/2000. (полный текст)
- ^ Себеста, WS (2006). Понятия языков программирования . п. 44. ИСБН 978-0-321-33025-3 .
- ^ «Умер создатель Фортрана Джон Бэкус – Технологии и гаджеты» . Новости Эн-Би-Си. 20 марта 2007 г. Проверено 25 апреля 2010 г.
- ^ «CSC-302 99S: Класс 02: Краткая история языков программирования» . Math.grin.edu. Архивировано из оригинала 15 июля 2010 г. Проверено 25 апреля 2010 г.
- ^ Падуя, Дэвид (февраль 2000 г.). «Компилятор FORTRAN I» (PDF) . Вычисления в науке и технике . 2 (1): 70–75. Бибкод : 2000CSE.....2a..70P . дои : 10.1109/5992.814661 . Проверено 7 ноября 2019 г.
- ^ Юджин Ло (18 июня 2010 г.). «Идеальный язык программирования для HPC» . Очередь . 8 (6). Ассоциация вычислительных машин.
- ^ «HPL — портативная реализация высокопроизводительного теста Linpack для компьютеров с распределенной памятью» . Проверено 21 февраля 2015 г.
- ^ Хоппер (1978) с. 16.
- ^ Бархат (1969) стр. 316.
- ^ Бархат (1978) стр. 204.
- ^ Гордон, Майкл Дж. К. (1996). «От LCF до HOL: краткая история» (PDF) . п. 3 . Проверено 4 мая 2015 г.
Edinburgh LCF, включая интерпретатор ML, был реализован на Lisp.
- ^ Манджу, Фархад (29 июля 2020 г.). «Откуда вы знаете, что это написал человек?» . Нью-Йорк Таймс . ISSN 0362-4331 . Проверено 4 августа 2020 г.
- ^ Милмо, Дэн (06 декабря 2023 г.). «Google заявляет, что новая модель искусственного интеллекта Gemini превосходит ChatGPT в большинстве тестов» . Хранитель . ISSN 0261-3077 . Проверено 26 февраля 2024 г.
- ^ «Индекс TIOBE, Топ-100 языков программирования по версии TIOBE Index» . www.tiobe.com . Индекс ТИОБЕ . 22 февраля 2024 г.
- ^ «Октоверс GitHub 2018» . Архивировано из оригинала 22 марта 2019 г.
- ^ Рохас, Рауль; Хашаген, Ульф (2002). Первые компьютеры: история и архитектура . МТИ Пресс. п. 292. ИСБН 978-0262681377 . Проверено 25 октября 2013 г.
Дальнейшее чтение [ править ]
- Розен, Сол (редактор), «Системы и языки программирования» , McGraw-Hill, 1967.
- Саммет, Джин Э. , Языки программирования: история и основы , Прентис-Холл, 1969.
- Саммет, Жан Э. (июль 1972 г.). «Языки программирования: история и будущее» . Коммуникации АКМ . 15 (7): 601–610. дои : 10.1145/361454.361485 . S2CID 2003242 .
- Ричард Л. Вексельблат (редактор): История языков программирования , Academic Press, 1981.
- Томас Дж. Бергин и Ричард Г. Гибсон (ред.): История языков программирования , Аддисон Уэсли, 1996.
- Себеста, Роберт В. Концепции языков программирования. Pearson Education India, 2004.