• Мнения
  • |
  • Обсуждения
Работа, карьера, бизнес
Игорь Вадимов Грандмастер

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

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

Фото: Depositphotos

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

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

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

Заполненная перфокарта в текстовом режиме
Заполненная перфокарта в текстовом режиме
Фото: ru.wikipedia.org

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

Графиня Ада Лавлейс, акварельный портрет
Графиня Ада Лавлейс, акварельный портрет
Фото: ru.wikipedia.org

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

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

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

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

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

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

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

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

EDVAC, установленный в здании 328 Лаборатории баллистических исследований
EDVAC, установленный в здании 328 Лаборатории баллистических исследований
Фото: ru.wikipedia.org

В конце 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.

Электронный числовой интегратор и вычислитель (ЭНИАК)
Электронный числовой интегратор и вычислитель (ЭНИАК)
Фото: ru.wikipedia.org

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

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

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

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

Статья опубликована в выпуске 2.11.2018
Обновлено 21.07.2020

Комментарии (2):

Чтобы оставить комментарий зарегистрируйтесь или войдите на сайт

Войти через социальные сети:

  • Наталия Нечухаева Наталия Нечухаева Грандмастер 6 ноября 2018 в 22:22 отредактирован 6 ноября 2018 в 22:22 Сообщить модератору

    Спасибо за перфокарточку! Вспомнилось, как мы на них то ли забивали дырочки,то ли вырезали лезвием- чтобы изменить код знака. Например А (большая английская !) имеет код 065. Всегда и везде. "Туз, он и в Африке туз",- поговорка преферансиста.

    Оценка:5

    Оценка статьи: 5

    • Да, Наталия Нечухаева, "было дело под Полтавой"...
      То, что пробивал в картах перфоратор, называли "мозги" - такие мелкие прямоугольнички.
      Их брали и, чтобы заменить символ на другой, в ненужные дырки запихивали "мозги", а в нужных местах лезвием безопаски делали вырез - и пускали карту через перфокопирователь.
      А децимальный код 65 - это октальное 101, а код символа "собака" был октальное 100.
      А перевод строки и возврат каретки - 12-15, а бип - 7...
      Сколько лет прошло - а что-то еще осталось, хотя с перфокартами не работал с 1979 года - тогда уже пошли перфоленты.

      Оценка статьи: 5

Мы собираем файлы cookie и применяем Яндекс.Метрику.Подробнее×

Этот сайт использует сервис веб-аналитики Яндекс Метрика, предоставляемый компанией ООО «ЯНДЕКС», 119021, Россия, Москва, ул. Л. Толстого, 16 (далее — Яндекс)

Сервис Яндекс Метрика использует технологию «cookie».

Собранная при помощи cookie информация не может идентифицировать вас, однако может помочь нам улучшить работу нашего сайта. Информация об использовании вами данного сайта, будет передаваться и храниться на сервере Яндекса в Российской Федерации. Яндекс будет обрабатывать эту информацию с целью анализа пользовательской активности.

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