История языков программирования

редактировать

История языков программирования простирается от документации ранних механических компьютеров до современных инструментов для разработки программного обеспечения. Ранние языки программирования были узкоспециализированными, полагались на математические обозначения и столь же неясный синтаксис. На протяжении 20-го века исследования теории компилятора привели к созданию языков программирования высокого уровня, которые используют более доступный синтаксис для передачи инструкций.

Первым языком программирования высокого уровня был Планкалкюль, созданный Конрадом Цузе между 1942 и 1945 годами. Первый язык высокого уровня, имеющий связанный Компилятор был создан Коррадо Бём в 1951 году для его докторской диссертации. Первым коммерчески доступным языком был FORTRAN (FORmula TRANslation), разработанный в 1956 году (первое руководство появилось в 1956 году, но впервые было разработано в 1954 году) командой под руководством Джона Бэкуса на IBM.

Содержание
  • 1 Ранняя история
  • 2 Первые языки программирования
  • 3 Установление фундаментальных парадигм
  • 4 1980-е: консолидация, модули, производительность
  • 5 1990-е: эпоха Интернета
  • 6 Современные тенденции
  • 7 Выдающиеся люди
  • 8 См. Также
  • 9 Ссылки
  • 10 Дополнительная литература
  • 11 Внешние ссылки
Ранняя история

В течение 1842–1849 гг., Ада Лавлейс перевела мемуары итальянского математика Луиджи Менабреа о новейшей машине, предложенной Чарльзом Бэббиджем : аналитической машине ; она дополнила мемуары примечаниями, в которых подробно описан метод вычисления чисел Бернулли с помощью двигателя, признанный большинством историков первой опубликованной компьютерной программой в мире.

Первые компьютерные коды были специализированы для своих приложений: например, Алонзо Черч смог выразить лямбда-исчисление формульным способом, а машина Тьюринга была абстракцией операции ленточно-маркировочная машина.

Jacquard Looms и Difference Engine Чарльза Бэббиджа имели простые языки для описания действий, которые эти машины должны выполнять, поэтому они были создателями первого языка программирования.

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

В 1940-х годах были созданы первые узнаваемые современные компьютеры с электрическим приводом. Ограниченная скорость и объем памяти вынуждали программистов писать вручную настроенные программы на языке ассемблера. В конце концов стало понятно, что программирование на ассемблере требует больших интеллектуальных усилий.

Первым предложением языка программирования высокого уровня был Планкалкюль, разработанный Конрадом Цузе для его компьютера Z1 между 1943 и 1945 годами, но в то время не были реализованы.

Первые работающие языки программирования, предназначенные для передачи команд компьютеру, были написаны в начале 1950-х годов. Сокращенный код Джона Мочли, предложенный в 1949 году, был одним из первых языков высокого уровня, когда-либо разработанных для электронного компьютера. В отличие от машинного кода , операторы Short Code представляют математические выражения в понятной форме. Однако программу приходилось транслировать в машинный код каждый раз при запуске, что делало процесс намного медленнее, чем выполнение эквивалентного машинного кода.

В начале 1950-х годов Алик Гленни разработал Autocode, возможно, первый скомпилированный язык программирования, в Манчестерском университете. В 1954 году R. для Mark 1 разработал вторую версию языка, известную как «Автокод Mark 1». А. Брукер. Брукер также разработал автокод для Ferranti Mercury в 1950-х годах совместно с Манчестерским университетом. Версия для EDSAC 2 была разработана Дугласом Хартри из математической лаборатории Кембриджского университета в 1961 году. Известная как EDSAC 2 Autocode, она была непосредственной разработкой компании Mercury Autocode адаптирован к местным условиям и отличался оптимизацией объектного кода и диагностикой на исходном языке, которые были усовершенствованы для того времени. Atlas Autocode, современный, но отдельный поток развития, был разработан для машины Atlas 1 Манчестерского университета .

В 1954 году FORTRAN был изобретен в IBM группой под руководством Джона Бэкуса ; это был первый широко используемый язык программирования общего назначения высокого уровня, который имел функциональную реализацию, а не просто проект на бумаге. Когда впервые был представлен FORTRAN, к нему относились скептически из-за ошибок, задержек в разработке и сравнительной эффективности программ, написанных вручную на ассемблере. Однако на рынке оборудования, который быстро развивался; со временем язык стал известен своей эффективностью. Он по-прежнему остается популярным языком для высокопроизводительных вычислений и используется для программ, которые оценивают и оценивают самые быстрые суперкомпьютеры в мире.

Другой ранний язык программирования был разработан Грейс Хоппер в США называется FLOW-MATIC. Он был разработан для UNIVAC I в Remington Rand в период с 1955 по 1959 год. Хоппер обнаружил, что клиентам, занимающимся обработкой бизнес-данных, не нравятся математические обозначения, и в начале 1955 года она и ее команда написала спецификацию для английского языка программирования и реализовала прототип. Компилятор FLOW-MATIC стал общедоступным в начале 1958 года и был практически завершен в 1959 году. Flow-Matic оказал большое влияние на разработку COBOL, поскольку только он и его прямой потомок AIMACO фактически использовались в то время.

Другие языки, которые все еще используются сегодня, включают LISP (1958), изобретенный Джоном Маккарти и COBOL (1959), созданный Комитетом ближнего радиуса действия. Еще одной важной вехой в конце 1950-х годов стала публикация комитетом американских и европейских компьютерных ученых «нового языка алгоритмов»; отчет АЛГОЛ 60 («АЛГОЛ ритмический L язык»). Этот отчет объединил многие идеи, циркулировавшие в то время, и включил три ключевых языковых нововведения:

  • структура вложенных блоков: кодовые последовательности и связанные объявления могут быть сгруппированы в блоки без необходимости превращения в отдельные, явно названные процедуры ;
  • лексическая область видимости : блок может иметь свои собственные частные переменные, процедуры и функции, невидимые для кода вне этого блока, то есть скрытие информации.

Еще одно нововведение, связанное с этим, было в как описывался язык:

  • для описания синтаксиса языка использовалась математически точная запись, форма Бэкуса – Наура (BNF). Почти все последующие языки программирования использовали вариант BNF для описания контекстно-свободной части своего синтаксиса.

Алгол 60 оказал особое влияние на разработку более поздних языков, некоторые из которых вскоре стали более популярными.. Большие системы Берроуза были разработаны для программирования на расширенном подмножестве Алгола.

Ключевые идеи Алгола были продолжены, производство АЛГОЛА 68 :

  • синтаксис и семантика стали еще более ортогональными, с анонимными подпрограммами, системой рекурсивной типизации с функциями высшего порядка и т.д.;
  • не только контекстно-свободная часть, но и весь синтаксис и семантика языка были определены формально, в терминах грамматики Ван Вейнгардена, формализма, разработанного специально для этой цели.

В Алголе 68 много маленьких - используемые особенности языка (например, параллельные и параллельные блоки) и его сложная система синтаксических сокращений и автоматического приведения типов сделали его непопулярным среди разработчиков и снискали ему репутацию сложного. Никлаус Вирт фактически покинул проектный комитет, чтобы создать более простой язык Pascal.

Fortran

Некоторые известные языки, которые были разработаны в этот период, включают:

Установление фундаментальных парадигм
Схема

Период с конца 1960-х до конца 1970-х годов принес большой расцвет языков программирования. Большинство основных языковых парадигм, используемых в настоящее время, были изобретены в этот период:

Каждый из этих языков породил целую семью потомков, и большинство современных языков посчитайте хотя бы одного из них по своей родословной.

В 1960-х и 1970-х годах также велись серьезные споры по поводу достоинств «структурного программирования », что по сути означало программирование без использования «goto ». Значительная часть программистов считала, что даже в языках, которые предоставляют «goto», использовать его в стиле программирования - это плохо, за исключением редких случаев. Эти дебаты были тесно связаны с языковым дизайном: некоторые языки вообще не включали «goto», что заставляло программиста использовать структурированное программирование.

Чтобы обеспечить еще более быстрое время компиляции, некоторые языки были структурированы для «однопроходных компиляторов », которые ожидают, что первыми будут определены подчиненные подпрограммы, как в Pascal, где основная процедура или функция драйвера - это последний раздел списка программ.

Некоторые известные языки, которые были разработаны в этот период, включают:

  • 1967 - BCPL (предшественник B)
  • 1968 - Logo
  • 1969 - B (предшественник C)
  • 1970 - Pascal
  • 1970 - Forth
  • 1972 - C
1980-е: консолидация, модули, производительность
MATLAB Erlang Tcl

1980-е были годами относительной консолидации в императивных языках. Вместо того, чтобы изобретать новые парадигмы, все эти движения развили идеи, изобретенные в предыдущем десятилетии. C ++ объединил объектно-ориентированное и системное программирование. Правительство США стандартизировало Ada, язык системного программирования, предназначенный для использования оборонными подрядчиками. В Японии и других странах были потрачены огромные суммы на исследование так называемых языков программирования пятого поколения, которые включали конструкции логического программирования. Сообщество функциональных языков перешло к стандартизации ML и Lisp. В этом десятилетии начались исследования Miranda, функционального языка с ленивым вычислением.

Одной из важных новых тенденций в дизайне языков было повышенное внимание к программированию для крупномасштабных систем с использованием модулей или крупномасштабных организационных единиц кода. Modula, Ada и ML разработали известные модульные системы в 1980-х годах. Модульные системы часто объединялись с конструкциями универсального программирования, которые, по сути, являлись параметризованными модулями (см. Также полиморфизм в объектно-ориентированном программировании ).

Хотя основные новые парадигмы для императивных языков программирования не появились, многие исследователи расширили идеи предшествующих языков и адаптировали их к новым контекстам. Например, языки Argus и системы адаптировали объектно-ориентированное программирование для распределенных систем.

. 1980-е годы также принесли успехи в реализации языков программирования. Движение RISC в компьютерной архитектуре постулировало, что оборудование должно быть разработано для компиляторов, а не для программистов на сборке. Благодаря усовершенствованию скорости процессора , которое сделало возможным все более агрессивные методы компиляции, движение RISC вызвало больший интерес к технологии компиляции для языков высокого уровня.

Языковые технологии продолжались в этом направлении вплоть до 1990-х годов.

Некоторые известные языки, которые были разработаны в этот период, включают:

  • 1986 - LabVIEW (язык визуального программирования)
  • 1986 - Erlang
  • 1987 - Perl
  • 1988 - Tcl
  • 1988 - Wolfram Language (как часть Mathematica, отдельное название получила только в июне 2013 г.)
  • 1989 - FL (Backus)
1990-е годы: эпоха Интернета
Haskell Lua PHP Rebol

Быстрый рост Интернета в середине 1990-х годов стал следующим крупным историческим событием в языках программирования. Открывая радикально новую платформу для компьютерных систем, Интернет создал возможности для новых языков. быть принятым. В частности, Язык программирования JavaScript приобрел популярность благодаря своей ранней интеграции с веб-браузером Netscape Navigator. Различные другие языки сценариев получили широкое распространение при разработке специализированных приложений для веб-серверов, таких как PHP. В 1990-е годы в императивных языках не было принципиальных новшеств, а было много рекомбинации и созревания старых идей. В эту эпоху началось распространение функциональных языков. Большой движущей философией была продуктивность программиста. Появилось множество языков «быстрой разработки приложений» (RAD), которые обычно поставлялись с IDE, сборкой мусора и были потомками более старых языков. Все такие языки были объектно-ориентированными. К ним относятся Object Pascal, Visual Basic и Java. Особое внимание уделялось Java.

Более радикальными и новаторскими, чем языки RAD, были новые языки сценариев. Они не произошли напрямую от других языков и отличались новым синтаксисом и более либеральным включением функций. Многие считают эти языки сценариев более производительными, чем даже языки RAD, но часто из-за того, что их выбор упрощает небольшие программы, а большие - сложнее писать и поддерживать. Тем не менее, языки сценариев стали самыми популярными из них, используемыми в сети.

Некоторые известные языки, которые были разработаны в этот период, включают:

Текущие тенденции

Развитие языков программирования продолжается как в промышленности, так и в исследованиях. Некоторые из последних тенденций включают:

Язык программирования D Groovy PowerShell Rust Scratch Swift

Некоторые известные языки, разработанные в этот период, включают:

Другие новые языки программирования включают Red, Crystal, Elm, Взломать, Хаксе, Зиг, Разум и Балерина.

Выдающиеся люди
Андерс Хейлсберг Юкихиро Мацумото Грейс М.. Хоппер Бьярн Страуструп Никлаус Вирт

Некоторые ключевые люди, которые помогали в разработке языков программирования:

См. также
Литература
  1. ^Хоппер (1978) с. 16.
  2. ^Knuth, Donald E.; Пардо, Луис Трабб. «Раннее развитие языков программирования». Энциклопедия компьютерных наук и технологий. Марсель Деккер. 7 : 419–493.
  3. ^Дж. Фуэги и Дж. Фрэнсис (октябрь – декабрь 2003 г.), «Лавлейс и Бэббидж и создание« заметок »1843 г.», Annals of the History of Computing, 25 (4): 16–26, doi : 10.1109 / MAHC.2003.1253887
  4. ^В 1998 и 2000 годах были созданы компиляторы для языка как историческое упражнение. Рохас, Рауль и др. (2000). «Планкалкюль: первый язык программирования высокого уровня и его реализация». Institut frame Informatik, Freie Universität Berlin, Технический отчет B-3/2000. (полный текст)
  5. ^Себеста, В.С. (2006). Понятия языков программирования. п. 44. ISBN 978-0-321-33025-3.
  6. ^«Скончался создатель Fortran Джон Бэкус - Технологии и гаджеты - NBC News». NBC News. 2007-03-20. Проверено 25 апреля 2010 г.
  7. ^«CSC-302 99S: Class 02: Краткая история языков программирования». Math.grin.edu. Архивировано из оригинала 15 июля 2010 года. Проверено 25 апреля 2010 г.
  8. ^Падуя, Давид (февраль 2000 г.). "Компилятор FORTRAN I" (PDF). Вычислительная техника в науке и технике. 2 (1): 70–75. Проверено 7 ноября 2019 г.
  9. ^Юджин Ло (18 июня 2010 г.). «Идеальный язык программирования HPC». Очередь. Ассоциация вычислительных машин. 8 (6).
  10. ^«HPL - портативная реализация высокопроизводительного эталонного теста Linpack для компьютеров с распределенной памятью». Проверено 21 февраля 2015 г.
  11. ^Hopper (1978) стр. 16.
  12. ^Саммет (1969) стр. 316
  13. ^Саммет (1978) стр. 204.
  14. ^Гордон, Майкл Дж. С. (1996). «От LCF к HOL: краткая история» (PDF). п. 3. Проверено 4 мая 2015. Эдинбургский LCF, включая интерпретатор ML, был реализован на Лиспе.
  15. ^Манджу, Фархад (29 июля 2020 г.). «Откуда вы знаете, что это написал человек?». Нью-Йорк Таймс. ISSN 0362-4331. Проверено 4 августа 2020 г.
  16. ^TIOBE (25 мая 2018 г.). «Индекс TIOBE, 100 лучших языков программирования согласно индексу TIOBE». www.tiobe.com. TIOBE_index.
  17. ^«GitHub's Octoverse 2018». Архивировано из оригинала 22.03.2019.
  18. ^Рохас, Рауль; Хашаген, Ульф (2002). Первые компьютеры: история и архитектура. MIT Press. п. 292. ISBN 978-0262681377. Проверено 25 октября 2013 г.
Дополнительная литература
  • Розен, Сол, (редактор), Programming Systems and Languages, McGraw-Hill, 1967.
  • Sammet, Jean E., Programming Languages : История и основы, Прентис-Холл, 1969.
  • Саммет, Жан Э. (июль 1972 г.). «Языки программирования: история и будущее». Коммуникации ACM. 15 (7): 601–610. doi : 10.1145 / 361454.361485.
  • Ричард Л. Вексельблат (ред.): История языков программирования, Academic Press 1981.
  • Томас Дж. Бергин и Ричард Дж. Гибсон (ред.): История языков программирования, Addison Wesley, 1996.
Внешние ссылки
Последняя правка сделана 2021-05-23 14:52:00
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте