Программирование компьютеров - сравнительно молодая отрасль человеческого знания. Она появилась вместе с самими вычислительными устройствами современного типа во второй половине 1940-х гг. и продолжает интенсивно развиваться. За прошедшие десятилетия появилось большое количество языков программирования (ЯП). Некоторые, решив возложенные на них задачи, вышли из употребления, другие актуальны до сих пор. Рассмотрим старые языки программирования, оказавшие значительное влияние на дальнейшее развитие отрасли.
Ассемблер
Рисунок 1. Листинг программы на Ассемблере. Автор24 — интернет-биржа студенческих работ
Несмотря на то, что Ассемблер начал использоваться еще в конце 1940-х гг., этот язык нельзя считать вышедшим из употребления. На нем до сих пор разрабатывают программы в тех случаях, когда необходима особо высокая скорость работы. Этот язык наиболее близок к машинным кодам - числовым обозначениям внутренних команд процессора, но, помимо них, Ассемблер содержит синтаксические элементы, напоминающие слова обычной человеческой речи (как правило, англоязычной). Например, инструкция mov
(от англ. movie - двигать) означает перемещение содержимого процессорного регистра в другой регистр или в память, инструкция add
(англ. складывать) означает сложение регистров процессора и т.п.
Фрагменты ассемблерного кода можно встретить в программах, написанных на высокоуровневых языках программирования, таких, как Си. Они применяются там, где от программы требуется особенно высокая скорость работы.
Компаниями разработано большое количество процессоров для различных целей. Для каждого из них существует собственный набор команд, хотя во многом эти наборы и пересекаются. Поэтому слово Ассемблер нельзя считать названием языка программирования. Скорее оно означает концепцию общения человека с компьютером.
Ассемблер применяется в микропроцессорной технике и робототехнике, при разработке ядер операционных систем, драйверов подключаемых к компьютеру устройств и т.п.
Язык Си
Название этого языка программирования состоит всего из одной буквы - C (си) английского алфавита. Он был разработан на рубеже 1960-1970-х гг. группой под руководством Денниса Ритчи в рамках работ по созданию новой операционной системы UNIX (не менее революционной, чем сам язык).
Ставка при разработке Си была сделана на сравнительную простоту освоения и универсальность. Первой цели удалось достичь лишь относительно существовавших на тот момент ЯП. По нынешним временам Си считается довольно сложным на фоне таких максимально упрощенных с точки зрения синтаксиса языков, как Python, JavaScript и др. Универсальность же Си не подлежит сомнению: реализации этого языка существуют для всех более-менее значимых операционных систем и процессорных архитектур. В то же время, Си нельзя назвать кроссплатформенным, т.е. соответствующим принципу "Написано однажды - работает везде" (как Java, C#). Си-программу для запуска на различных платформах придется пересобирать под каждую из них, что не всегда возможно в связи с разницей в API операционных систем.
Си, оставаясь одним из популярнейших языков, заложил основы для целого семейства, т.н. ЯП с Си-подобным синтаксисом. К ним относятся C++, Objective C, C#, Java, JavaScript и многие другие. Общим для них являются ограничение блоков программы фигурными скобками, а выражений - точками с запятыми, общие принципы построения операторов условных переходов и циклов, сходные описания функций и т.п.
Fortran и Algol
Первый релиз Fortran (допустимо кириллическое написание - Фортран) появился в 1957 г. Это был один из первых ЯП высокого уровня, причем оказавшийся столь успешным, что применяется до сих пор и продолжает развиваться. Специализация этого языка - математические и инженерные вычисления, что отражено и в названии (Fortran - аббревиатура от Formula Translator).
Зародившись в США в лабораториях компании IBM, Fortran быстро завоевал популярность в Европе, в том числе в СССР. Существует множество реализаций этого ЯП. Некоторые из них распространяются под открытыми лицензиями (например, GNU g77). Большим преимуществом языка является огромное количество готовых библиотек, накопившееся за годы его развития. Они хорошо отлажены и переписывать их на других языках зачастую не имеет смысла. Среди них есть алгоритмы для работы с матрицами, решения систем интегральных уравнений и т.п.
ЯП Algol (algorithmic language) был разработан силами европейского комитета IFIP в 1958—1960 гг. как аналог Fortran, распространявшегося тогда под коммерческой лицензией.
COBOL
Рисунок 2. Старый компьютер для проведения банковских операций. Автор24 — интернет-биржа студенческих работ
COBOL (COmmon Business-Oriented Language) был создан под руководством Грейс Хоппер на рубеже 1950-1960-х гг. Его назначение - разработка финансовых и банковских приложений. В настоящее время считается вышедшим из употребления в связи с тем, что для обработки нынешних объемов финансовой информации необходимы более совершенные средства (последний стандарт этого языка вышел в 2002 г.). Однако некоторый объем программ, написанных на COBOL, остается актуальным до сих пор.
Ada
Этот язык был разработан в 1980 г. по заказу министерства обороны США в качестве ЯП для набортных систем, т.е. автоматики, управляющей боевой авиацией и другими автоматическими устройствами. Несмотря на узкую специализацию, Ada продолжает успешно использоваться в своей нише и занимает там доминирующее положение. Попытки военного ведомства США заменить на своих предприятиях этот ЯП более "совершенными" (Си, C++) оказались неудачными.
Попытки стандартизировать Ada в качестве основного языка разработки для военной техники предпринимались в конце 1980-х гг. и в СССР.
Языки для искусственного интеллекта
ЯП Lisp (LISt Processing language) разработан в 1958 г. Джоном Маккарти как средство создания программ для искусственного интеллекта (ИИ). В этом качестве он представляет интерес до сих пор, поскольку содержит возможности, не реализованные непосредственно в более универсальных языках, которые используют для целей ИИ в наши дни (Java, Python). В Lisp едва ли не впервые были применены автоматическое управление памятью и "сборка мусора", без которых не обходится ни один современный язык программирования. Для работы под управлением Lisp производились даже специальные компьютеры (лисп-машины).
Другим языком, ориентированным на применение в системах ИИ, стал разработанный в начале 1970-х гг. Prolog (автор - французский программист Ален Колмероэ). Этот ЯП обладаем возможностями по формированию автоматических умозаключений. В настоящее время интерес к Prolog возобновляется.
Учебные языки программирования
ЯП Logo появился в 1967 г. как язык простой язык для обучения программированию с возможностью визуализации данных и алгоритмов. Современным аналогом можно считать язык Scrtatch, где программа также собирается из визуальных блоков, а не пишется в форме текста. Logo применяется во многих школах России на уроках информатики для младших классов (известен как "черепашка").
Рисунок 3. Графический интерфейс языка Logo. Автор24 — интернет-биржа студенческих работ
Среди других старых языков, появившихся в качестве учебных, необходимо упомянуть применяющиеся до сих пор Basic (1964 г., разработчики Томас Курц и Джон Кемени) и Pascal (1970 г., Никлаус Вирт).