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

Часы
22.03.2024
Глазик
92
Сердечки
0
Соединённые точки
0
Соединённые точки
0
Соединённые точки
0

История языков программирования берет свое начало с 40-х годов прошлого века, когда возникла необходимость взаимодействовать с электронно-вычислительными машинами, подавая им команды. Со времен появления первой ЭВМ в 1945 году сами компьютеры и способы взаимодействия с ними существенно усложнились.
Первые языки программирования представляли собой простой набор двоичных кодов, а самые новые - это уже сложные объектно-ориентированные структуры, позволяющие писать программы с очень сложным функционалом при минимальных затратах времени и ресурсов. В материале мы подробно рассмотрим историю и эволюцию языков программирования, а также разберем их особенности и влияние друг на друга.

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

Фактически, можно сказать, что история развития языков программирования началась гораздо раньше изобретения ЭВМ. Основой для всех современных языков стал алгоритм, изобретенный Адой Лавлейс в 1843 году для взаимодействия с аналитической машиной Чарльза Беббиджа.
Ада, женщина
Ада Лавлейс, картинка с Вики
Это устройство еще нельзя было назвать ЭВМ, так как оно было полностью механическим, но все же алгоритм Лавлейс позволял давать машине достаточно сложные задания (например, решить уравнение с несколькими неизвестными).
аналитическая машина Бэббиджера
Аналитическая машина Чарльза Беббиджа
Чарльз Беббидж
Сам Чарльз Беббидж
Современная история программирования делится на пять периодов.
  • Первые языки основывались на понятном ЭВМ двоичном коде, что делало процесс написания программ долгим и сложным делом.
  • Ближе к концу 40-х годов появился новый синтаксис - теперь для общения с компьютером использовались не последовательности цифр, а кодовые слова.
  • Высокоуровневые языки третьего поколения позволили заниматься программированием без досконального знания об устройстве и принципах работы компьютера.
  • Следующим «прорывом» стало появление языков, синтаксис которых был приближен к разговорному английскому.
  • Самые новые языки - пятого поколения являются объектно-ориентированными: программа состоит из отдельных независимых модулей и оперирует уже объектами, а не кодовыми словами.

Двоичные коды

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

Первый низкоуровневый язык

Переход компьютерных программ из двоичных кодов в алгоритмы, читаемые человеком, произошел в середине 40-х годов. Первым «человекоориентированным» языком можно назвать Планкалкюль (в переводе с немецкого - «планирование вычислений»), созданный инженером из Германии Конрадом Цузе.
Человек, Цузе
Конрад Цузе
Когда рассматривается история программирования в лицах, то о личности этого ученого обычно забывают, но на самом деле его вклад сложно переоценить.
Немецкий инженер не просто создал язык, но и разработал собственную вычислительную машину - Z1. Для управления устройством использовалась клавиатура от печатной машинки, а источником питания был мотор от старого пылесоса. Цузе последовательно совершенствовал свое изобретение - версию Z4 уже можно смело назвать прообразом современных компьютеров.
z4 машина
Вычислительная машина Z4
Именно для Z4 была разработана инновационная на тот момент концепция - разделение работы устройства на две части: компьютерную программу и вычисления, которые ЭВМ будет производить на ее основе (по сути, аналог современного «харда» и «софта»). Планкалкюль имел уже не двоичную, а символьную лексику, а также собственные операторы присваивания. Этот язык мог бы стать настоящим прорывом, но проигрыш Германии во Второй мировой войне остановил все разработки.

Язык ассемблера

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

Высокоуровневые языки

Появление высокоуровневых языков еще больше упростило процесс написания программ. Языки третьего поколения не были привязаны к определенной модели компьютера. Для обеспечения взаимодействия программы и машины использовались компиляторы, которые переводили программный код в «понятный» данному компьютеру язык.
Таким образом, отпала необходимость писать код в понятном для конкретной машины виде. Языки третьего поколения стали более абстрактными и понятными для человека. Теперь программистами могли стать даже люди, которые не разбирались во всех тонкостях работы компьютера. К тому же, появилась возможность сосредоточить все усилия на логике разрабатываемого алгоритма, а не особенностях устройства того или иного компьютера.
Первым языком этой категории был Fortran, написанный для компьютеров IBM (его название расшифровывается, как «переводчик формул» - FORmula TRANslator). Интересно, что компилятор для фортрана был уже оптимизирующим, так как программисты не были заинтересованы в использовании кода, производительность которого уступает ассемблеру. Изначально отношение к фортрану было скептическим, но впоследствии его популярность росла, вынуждая и других производителей ПК писать компиляторы для своих устройств. В настоящее время фортран также используется - в основном, в силу того, что на нем уже написано много программ, которые бессмысленно переписывать заново.
IBM компъютер
компьютер IBM, работающий на фортране
Рассматривая историю языков программирования подробно, стоит отметить, что фортран - не единственный известный высокоуровневый язык:
  • ALGOL - был разработан в Швейцарии как европейский конкурент американскому продукту. Впоследствии слово «Algol» стало общеупотребительным, поэтому название поменяли на ALGOL 58.
  • LISP - создан для обрабатывания списков (его название и расшифровывается - LISt Processing). Язык работает на основании функции, что обеспечивает достаточно простое написание и отладку сложных комплексных программ. LISP имеет несколько диалектов, которые немного отличаются по функционалу.
  • COBOL - предназначен, в первую очередь, для разработки программного обеспечения для бизнеса и экономики. Язык отличается понятным синтаксисом, имеет четкую структуру и обеспечивает эффективную работу с большими объемами данных, но он не подходит для сложных инженерных расчетов.
Именно третье поколение языков позволило создавать программы, функционал которых мог быть полезен простым пользователям, а не только ученым или финансистам.
К минусам высокоуровневых языков можно было отнести только больший вес программ и повышенную требовательность к памяти по сравнению с низкоуровневыми. Но история развития программирования продолжалась, и уже на подходе были структурные языки.

Структурные языки

В 70-е годы прошлого века история происхождения программирования получила новое развитие. Были созданы первые структурные языки, которые представляли программу в виде наглядной иерархической структуры, а их синтаксис стал еще ближе к человеческому языку. Структуры позволяли объединять разные типы данных, работать с ними как с единым форматом, а также выстраивать их взаимозависимые последовательности. Это гораздо проще, чем работа с отдельными переменными, в которых несложно запутаться, если код будет достаточно длинным.
Самым известным структурным языком, который оказал существенное влияние на всю отрасль программирования в целом, является С, но он был далеко не единственным.
Одним из первых языков четвертого поколения стал созданный в 1974 году Prolog, который был основан на использовании человеческой логики для написания программ. В настоящее время различные версии Prolog используются для создания функций для работы с большими объемами данных (в том числе и для поисковых систем).
Язык Smalltalk интересен тем, что именно при его разработке был впервые произнесен термин «объектно-ориентированный». Его употребил разработчик Алан Кэй, он стремился создать язык, структура которого будет аналогична клеточной структуре организма, где отдельные клетки обмениваются между собой информацией. Стоит отметить, что Алан также занимался разработкой пользовательского интерфейса, основанного на иконках, а не на работе с консолью.
Структурные языки имели один существенный недостаток - они не позволяли работать со сложными и длинными программными кодами. Для создания нового, все усложняющегося, программного обеспечения требовался новый подход.

Объектно-ориентированное программирование

Языки пятого поколения появились в восьмидесятые годы прошлого века и на настоящий момент являются самыми совершенными. Объектно-ориентированные языки работают с классами - базовыми типами данных (например, строка или число). На основании классов создаются объекты, которые имеют все свойства своей категории, но могут отличаться по тем или иным характеристикам. То есть, класс содержит в себе не только сами переменные, но и работающие с ними функции.
Программа пишется не целым «полотном», а модулями, что делает программирование более простой и одновременно более творческой задачей. К тому же, отдельные составные части проще создавать и редактировать. Также появилась возможность копировать отдельные фрагменты кода, слегка изменяя их для выполнения смежных задач, вместо того, чтобы писать все с нуля. Существенно облегчился и процесс тестирования - можно проверять не программу целиком, а отдельные классы или модули.
На самом деле, первым ООП можно назвать Simula 67, который был создан еще в 1967 году. Язык имел встроенную поддержку синтаксиса, классы и подклассы, но он слишком опередил свое время и, к тому же, был не очень эффективно реализован, поэтому он был незаслуженно забыт. Но все же, его нельзя не упомянуть в рассказе про историю языков программирования. Тем более что разработчик одного из самых популярных ООП - С++ Б Бьёрн Страуструп, при работе опирался именно на концепции Simula.
Другими примерами современных ООП являются JavaScript, C#, Object Pascal и Python.

Комментарии

(0)
captcha
Отправить
Сейчас тут пусто. Буть первым (o゚v゚)ノ

Использованные термины

Релевантные вопросы

Похожие статьи

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

Часы
22.03.2024
В мире технологий постоянно происходят изменения, и языки программирования не исключение. Со временем некоторые из них уходят в небытие, оставляя после себя лишь уроки и воспоминания.

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

Часы
22.03.2024
В мире технологий постоянно происходят изменения, и языки программирования не исключение. Со временем некоторые из них уходят в небытие, оставляя после себя лишь уроки и воспоминания.