Языки программирования: сколько их было?

С самого первого пуска первой ЭВМ ей для работы был необходим набор инструкций. Когда они появились, какие проблемы решали и сколько их всего?

Для появления языков программирования само существование ЭВМ не было нужно, посему появились языки программирования задолго до появления ЭВМ, их создали для программирования создания рисунка на ткани.

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

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

Заполненная перфокарта в текстовом режиме

Аналитическая машина Чарльза Бэббиджа тоже нуждалась в программах для работы, поэтому в начале 1840-х графиня Ада Лавлейс написала для нее несколько программ — в том числе для вычисления чисел Бернулли. Эта программа тоже была написана на перфокартах.

Графиня Ада Лавлейс, акварельный портрет

Первый язык программирования для компьютеров «Plankalkul» (расчет планов) был разработан Конрадом Цузе в 1943-1945 гг. для его компьютера Z4. С компьютером не получилось, зато был создан первый язык программирования.

Первые ЭВМ программировали в машинных кодах. В наше время эти двоичные языки принято называть языками первого поколения.

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

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

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

Во избежание лишних проблем, придумали общие стандарты языков программирования и компиляторы с них в машинные коды. Программист пишет, скажем, «разделить А на Б», а компилятор (для данного типа ЭВМ) пишет реализацию деления. Программист пишет «распечатать результат», а компилятор задает подпрограмму подготовки результата в виде строки символов и распечатки этой строки на таком-то принтере (именно на том, который на данной ЭВМ предназначен для распечатки результатов задач).

Языки Ассеблера называют языками второго поколения. Языки Ассемблера, созданные в 50-е годы для древних ЭВМ являются мертвыми, но их принципы работы стали основой для новых языков, к каждому новому семейству процессоров создается язык ассемблера для данной системы команд. Эти языки используются при создании драйверов и подпрограмм ядра операционных систем.

В 1950-е начали создавать языки третьего поколения. Эти языки, их еще называют «языками высокого уровня» (ЯВУ), в зависимости от компилятора, могут работать на разных типах ЭВМ, в исполняемый машинный код их приводит свой компилятор для каждого типа ЭВМ.

EDVAC, установленный в здании 328 Лаборатории баллистических исследований

В конце 50-х появился Алгол-60 (Algol — от ALGOrithmic Language), на трансляторах для него писали программы в 60-е и в 70-е годы. Впоследствии Алгол-60 породил Алгол-68, значительно более продвинутый инструмент программирования. Ныне этот язык уже практически не используется, но на его основе было создано много других языков — Паскаль, Ада. Паскаль впоследствии дал толчок в создании Делфи (Delphi).

Так что если Алгол-60 сегодня язык мертвый, то его правнук Delphi — живее всех живых. Его умение создавать GUI и работать с базами данных, а более того — бесплатное распространение упрощенных версий компилятора, снискали ему славу среди пользователей. Сегодня существуют компиляторы Delphi для Windows и для Linux.

Во второй половине 50-х кроме Алгола появились еще Фортран (FORmula TRANslator — переводчик формул), Лисп (LISt Processing language — язык обработки списков) и Кобол (COmmon Business Oriented Language — Обобщенный бизнес-ориентированный язык).

Фортран существует и по сей день, в начале 60-х были созданы трансляторы Фортрана, работавшие на многих компьютерах семейства IBM, и, ввиду его распространенности, начали создавать компиляторы Фортрана для других компьютеров — в 60-е Фортран де-факто стал одним из стандартов программирования. Впоследствии после Фортрана-4 были Фортран-66, Фортран-77… последний на сегодняшний день стандарт Фортрана — Фортран-2008.

Электронный числовой интегратор и вычислитель (ЭНИАК)

Лисп — язык обработки списков. Разработан целый спектр разнообразных версий языка для исполнения разных типов задач.

Кобол — в 90-е годы на Коболе производилась обработка примерно 90% всех финансовых транзакций мира.

Являются ли вышеназванные ЯВУ живыми? Определенно — да. Достаточно совершить поиск в базах данных работодателей, чтобы убедиться, есть вакансии и для программистов и на Форатране, и Лиспе, и на Коболе. А уж программисты на Delphi — дорогой и очень востребованный товар.

Когда в 70-е годы появились персональные ЭВМ (они же ПЭВМ), число новых языков программирования начало увеличиваться в геометрической прогрессии. Все началось с С.



Сохрани статью себе в соцсеть!




Комментарии ( 0 )
    Оставить комментарий

    Ваш электронный адрес не будет опубликован. Обязательные поля помечены *