Эволюция языков программирования

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

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

Язык программирования, ориентированный на конкретный тип процессора, и, операторы которого близки к машинному коду, называется языком программирования низкого уровня.

Термин «низкий уровень» не обозначает плохое качество языка, таким образом подчеркивается его неразрывная связь с аппаратной частью компьютера.

Машинный язык.

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

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

Ассемблер.

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

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

Транслятор - это программа, преобразующая текст, представленный на одном из языков программирования, в эквивалентную программу на машинном языке.

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

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

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

Дальнейшая эволюция языков программирования привела к появлению языков высокого уровня, что позволило отвлечься от системы команд конкретного типа процессора. Ниже приведена диаграмма важнейших первых языков (источник: Б. Страуструп «Программирование: принципы и практика использования С++»)

Эволюция языков программирования

Важное значение для развития высокоуровневых языков программирования имела разработка во второй половине 1950-х годов трех языков – Fortran, COBOL, Lisp. Философия, стоящая за этими языками, заключается в создании высокоуровневой системы обозначений, облегчающей программисту написание программ.

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

Fortran (Formula Translation - трансляция формул) - был разработан в 1956 году сотрудниками компании IВM под руководством Джона Бэкуса. Появление Fortran - одно из наиболее значительных событий в истории языков программирования.

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

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

COBOL (Common Business-Oriented Language - язык программирования для коммерческих и деловых задач) был разработан комитетом CODASYL в 1959-60 годах по инициативе Министерства обороны США и группы основных производителей компьютеров для обработки бизнес-данных. Основной упор в этом языке был сделан на манипуляции данными: копирование, хранение и поиск, вывод на печать (отчеты).

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

Lisp (LISt Processing – обработка списков) был разработан в 1958 году Джоном Маккарти для обработки связанных списков и символьной информации.

Lisp был первым языком, не зависевшим от аппаратного обеспечения. В настоящее время существует множество диалектов языка. Это семейство языков нашло применение в области моделирования искусственного интеллекта.