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

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

Первым языком программирования высокого уровня был Plankalkül, созданный Конрадом Цузе между 1942 и 1945годами. Первый язык высокого уровня. Имеющий соответствующий

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

Ранняя история

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

Первые компьютерные коды были специализированы для их применения: например,

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

Жаккардовые ткацкие станки и Разностная машина Чарльза Бэббиджа имели простые языки для описания действий. Которые должны были выполнять эти машины. Поэтому они были создателями первого языка программирования.

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

В 1940-х годах были созданы первые современные компьютеры с электрическим питанием.

Ограниченная скорость и объем памяти заставляли программистов писать программы на ассемблере. Настроенные вручную. В конце концов выяснилось. Что программирование на ассемблере требует больших интеллектуальных усилий.

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

Первые функционирующие языки программирования . Предназначенные для передачи инструкций компьютеру. Были написаны в начале 1950

-х гг. Короткий код Джона Мочли, предложенный в 1949 г.. Был одним из первых языков высокого уровня. Когда-либо разработанных для электронной вычислительной машины. Однако программу приходилось переводить в машинный код каждый раз. Когда она выполнялась. Что делало процесс намного медленнее. Чем выполнение эквивалентного машинного кода.

В начале 1950-х годов Алик Гленни разработал Autocode, возможно. Первый компилируемый язык программирования. В Манчестерском университете. В 1954 году вторая итерация языка. Известная как Р. А. Брукером. Брукер также разработал автокод для

Ферранти Меркьюри в 1950-х годах совместно с Манчестерским университетом. Версия для EDSAC 2 была разработана Дугласом Хартри из Математической лаборатории Кембриджского университета в 1961 году. Известный как EDSAC 2 Autocode. Он был прямым развитием Mercury Autocode. Адаптированным к местным условиям. И был известен своей оптимизацией объектного кода и диагностикой исходного языка. Которые были продвинуты в то время. Современный. Но отдельный поток разработки, Atlas Autocode был разработан для машины Atlas 1 Манчестерского университета.

В 1954 году, Фортран был изобретен в компании IBM авторским коллективом под руководством

Джона Бэкуса; это был первый широко используется высокоуровневый язык программирования общего назначения для функциональной реализации. А не просто проект на бумаге.[6][7] после Фортрана был впервые введен, считалось. Что оно со скепсисом из-за ошибки. Задержки в развитии. И сравнительную эффективность Однако на рынке аппаратных средств. Который быстро развивался. Язык в конце концов стал известен своей эффективностью. Это все еще популярный язык для высокопроизводительных вычислений[9] и используется для программ. Которые оценивают и ранжируют самые

быстрые суперкомпьютеры в мире.]

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

COBOL, так как только он и его прямой потомок АЙМАКО были фактически использованы в то время.[13]

Другие языки. Которые все еще используются сегодня. Включают LISP (1958). Изобретенный Джоном Маккарти и COBOL (1959). Созданный Комитетом Short Range. Еще одной вехой в конце 1950-х годов стала публикация комитетом американских и европейских ученых-компьютерщиков ALGOL 60 (ALGOrithmic LanguageЭтот отчет объединил многие идеи. Циркулировавшие в то время. И показал три ключевых языковых новшества:

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

Еще одно новшество. Связанное с этим. Заключалось в том. Как описывался язык:

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

Ключевые идеи Algol были продолжены. Производя ALGOL 68:

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

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

Фортран

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

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

Схема

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

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

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

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

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

1980-е годы: консолидация. Модули. Производительность

Эрланг

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

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

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

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

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

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

1990-е годы: эпохи Интернета

Хаскелл

Ребол

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

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

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

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

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

D Язык программирования

Заводной

PowerShell

Ржавчина

Царапать

Некоторые известные языки. Разработанные в этот период. Включают:[16][17]

Другие новые языки программирования включают Red, Crystal, Elm, Hack, Haxe, Zig, Reason и Ballerina.

Выдающиеся люди

Андерс Хейльсберг

Юкихиро Мацумото

Грейс М. Хоппер

Бьярне Страуструп

Niklaus Wirth

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

  1. ^
  2. ^ Кнут, Дональд Э.; Пардо, Луис Трабб. Энциклопедия компьютерных наук и технологий. Марсель Деккер. 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 годах были созданы компиляторы для этого языка в качестве исторического упражнения. Rojas, Raúl, et al. (2000). Institut frame Informatik. Freie Universität Berlin. Technical Report B-3/2000. (полный текст)
  5. ^ Sebesta, W. S. (2006). Концепции языков программирования. стр. 44. ISBN 978-0-321-33025-3.
  6. ^ . NBC News, 2007-03-20 . Проверено 2010-04-25.
  7. ^ . Math.grin.edu. Архивирован с оригинала 2010-07-15. Проверено 2010-04-25.
  8. ^ Падуя, Давид (февраль 2000). (PDF). Вычислительная техника в науке и технике. 2 (1): 70–75. doi:10.1109/5992.814661. Извлечено 7 ноября 2019года .
  9. ^ Юджин Лох (18 июня 2010). . Очередь. Ассоциация вычислительных машин. 8 (6).
  10. ^ . 2015-02-21.
  11. ^ Хоппер (1978) с. 16.
  12. ^ Sammet (1969) p. 316
  13. ^ Sammet (1978) p. 204.
  14. ^ Гордон, Майкл Джей Си (1996). (PDF). стр. 3 . Проверено 2015-05-04. Эдинбургский LCF. Включая интерпретатор ML. Был реализован на языке Lisp.
  15. ^ Манджу, Фархад (29 июля 2020 года). — Откуда Ты Знаешь ,Что Это Написал Человек? ISSN 0362-4331. Извлечено 4 августа 2020года .
  16. ^ ТИОБЕ (25 мая 2018 года). . www.tiobe.com. TIOBE_index.
  17. ^ . Архивировано с оригинала 2019-03-22.
  18. ^ Rojas, Raúl; Hashagen, Ulf (2002). Первые компьютеры: История и архитектура. MIT Press. p. 292. ISBN 978-0262681377. Извлечено 25 октября 2013года .

Дальнейшее чтение

  • Rosen, Saul, (редактор), Programming Systems and Languages, McGraw-Hill, 1967.
  • Sammet, Jean E., Языки программирования: история и основы, Prentice-Hall, 1969.
  • Sammet, Jean E. (июль 1972). Коммуникации АКМ. 15 (7): 601–610. doi:10.1145/361454.361485. S2CID 2003242.
  • Ричард Л. Вексельблат (ред.): История языков программирования, Academic Press 1981.
  • Томас Дж. Бергин и Ричард Г. Гибсон (ред.): История языков программирования, Аддисон Уэсли, 1996.

Внешние ссылки