Кодинг в СССР: языки программирования, которые оставили яркий след в истории IT

Советские компьютерные разработки не уступали западным аналогам, а по некоторым параметрам даже превосходили их. Но в 1972-м году государство выбрало стратегию копирования американских IBM со встроенными трансляторами Фортрана. Короткая эпоха оригинальных отечественных разработок подошла к концу, оставив в наследие потомкам оригинальные и уникальные продукты, кое-где применяющиеся до сих пор. Сегодня мы поговорим об уникальных языках программирования, созданных в СССР.

Рефал

На дворе шестидесятые: Юрий Гагарин в космосе, ядерная война кажется как никогда близкой, на Западе начинается сексуальная революция и эпоха хиппи. Первые программисты пишут на Фортране (США) и Алголе (Европа). В СССР бурно развивается высокотехнологичное производство, и аббревиатуры БЭСМ и МЭСМ звучат на всех выставках компьютерной техники. А тем временем кибернетик Валентин Турчин создает нечто крайне интересное и опережает эпоху: Рефал (акроним от слов «рекурсивных функций алгоритмический») прославляет ученого и распространяется по всему миру. Что же этот язык собой представлял?

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

Валентин Турчин выглядит как типичный советский интеллигент, которым он и являлся: богатство интересов говорит о том, что он мог бы стать известен не только как программист, но и как философ или политик (он частично реализовался как правозащитник).
Валентин Турчин выглядит как типичный советский интеллигент, которым он и являлся: богатство интересов говорит о том, что он мог бы стать известен не только как программист, но и как философ или политик (он частично реализовался как правозащитник).

Валентин Турчин придумал, разработал и внедрил в информатику новый язык программирования в качестве надстройки над другими языками, как тот же Фортран или Algol. Рефал был ориентирован на символьные вычисления и применялся для перевода информации с одного языка на другой. Перехват исключений, рекурсия, основы функционального программирования, разработка и контроль искусственного интеллекта и нейронных сетей — эти и другие идеи произвели революцию в компьютерной среде. При этом советские программисты ориентировались в первую очередь на практичность нового языка, используя его для вычислений и переводов. Кстати, Рефал, как и многие другие советские языки, был основан на кириллической системе записей: тогда в программировании еще не сложилась гегемония латиницы.

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

Рефал оброс функциональными диалектами: наиболее применимыми оказались Рефал-2, Рефал-5, Рефал-6 и Рефал+. Язык успешно использовался для разработки советского программного обеспечения и широко применялся в военно-космической промышленности, но эти данные по большей части засекречены и не находятся в открытом доступе. Да и Валентин Турчин активно развивал свое детище уже в США, где Рефал снискал определенную популярность в восьмидесятых.

Уже в пожилом возрасте Турчин смог снова посещать Родину и периодически приезжал из США.
Уже в пожилом возрасте Турчин смог снова посещать Родину и периодически приезжал из США.

Вопреки плановому характеру советской экономики и НИИ, Рефал появился из ниоткуда, как и многие великие изобретения: хватило одного энтузиаста, который положил жизнь на то, чтобы сделать программирование удобнее и проще. И хотя появилось много других языков программирования, более совершенных и современных, Рефал не забыт и все еще используется в отдельных узких отраслях. Возможно, мы узнаем об этом чуть больше, когда рассекретят архивы позднесоветских времен.

ДРАКОН

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

«Буран» дорого обошелся государству: на реализацию проекта было потрачено 14-17 миллиардов советских рублей.
«Буран» дорого обошелся государству: на реализацию проекта было потрачено 14-17 миллиардов советских рублей.

ДРАКОН — это визуальный алгоритмический язык, который работает в связке с синтаксисом другого текстового языка, а программа, написанная в ходе подобного симбиоза, считается написанной на гибридном языке. Происходит это так: рисуется ДРАКОН-схема, внутри иконок размещаются куски текстового кода, и далее транслятор преобразует схему в файл с исходным кодом.

ДРАКОН был написан под ракетно-космическую технику и изначально ограничивался государственной тайной, но после развала СССР оказался доступен для других отраслей. Графическое отображение информации оказалось особенно полезно в медицине: через блок-схемы можно наглядно отобразить процессы, происходящие в организме пациента.

Главные преимущества ДРАКОНа показаны наглядно: эргономичность, четкость и упорядоченность. И конечно, простота использования.
Главные преимущества ДРАКОНа показаны наглядно: эргономичность, четкость и упорядоченность. И конечно, простота использования.

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

Эль-76

Если вы подумали про пиво, то нет: хотя это избитая шутка, но речь пойдет об еще одном языке. Переносимся в 1972 год, и события разворачиваются в Москве, в Институте точной механики и вычислительной техники. Еще одному отечественному «технарю» Владимиру Пентковскому, ранее участвовавшему в создании «Эльбруса», принадлежит главная роль в создании основ Эль-76 — языка, созданного специально под железо суперкомпьютера «Эльбрус».

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

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

«Hello, World!» в вариации Эль-76. Только кириллица, только хардкор! Время, когда советская научная школа рождала аутентичные передовые решения.
«Hello, World!» в вариации Эль-76. Только кириллица, только хардкор! Время, когда советская научная школа рождала аутентичные передовые решения.

Эль-76 изначально задумывался как узкоотраслевое решение, но «Эльбрус» проработал недолго: советская машина обладала неплохими характеристиками для своего времени, но уже при выходе на рынок проиграла IBM, Apple и Microsoft. А еще один уникальный язык не имел шансов конкурировать с Фортраном или C, поскольку не был приспособлен под железо иностранных компаний. Петь оду советскому программированию не следует, потому что у него хватало минусов и ограничений, но все же это — пример решения, которое в теории могло бы использоваться по всему миру. Судьба сложилась иначе, и теперь Эль-76 изучают специалисты по истории программирования и отдельные энтузиасты.

Рапира

А это учебный процедурный язык, разработанный специально для перехода между простыми и высокоуровневыми языками. Теоретическая база по Рапире появилась в 1978-1979-х годах: основу составили возможности языков Поплан и Сетл. Автор творения — преподаватель Геннадий Звенигородский и студенты Новосибирского государственного университета, а впервые о нем узнали читатели журнала «Квант», в котором выпускалась рубрика «Заочная школа программирования».

Издание «Квант», 1981-й год. Читатели могли освоить основы программирования с нуля, а выписывали его не только школьники и студенты, но и многие взрослые, кому была интересна информатика.
Издание «Квант», 1981-й год. Читатели могли освоить основы программирования с нуля, а выписывали его не только школьники и студенты, но и многие взрослые, кому была интересна информатика.

Рапира создавалась в учебных целях и была приспособлена под БЭСМ-6. Она являлась частью программы «Школьница», по которой планировалось предоставить в школьные кабинеты информатики систему широкого математического обеспечения. В дальнейшем язык также был адаптирован под ПЭВМ Агат.

Пример программы на Рапире.
Пример программы на Рапире.

Что особенно интересно, Рапира являлась регистро-независимым языком. В коде допускалось использование как кириллицы, так и латиницы, цифр и иных символов. Были адаптированные версии под грузинский, эстонский и английский языки, а также поддерживались высокоуровневые типы данных: кортежи и множества (как частные случаи кортежей).

Как студенты, так и школьники писали на Рапире различные прикладные программы: простейшие игры, калькуляторы и алгоритмы под разные задачи. Как учебное средство язык обладал значимым преимуществом: автор программы мог отследить переменные и их состояние на каждом этапе кодинга.

Увы, история Рапиры подошла к концу, когда она была заменена на Algol, а спустя несколько языков основное место в учебном процессе занял Pascal. Но до сих пор где-то в безымянных НИИ или транснациональных корпорациях пишут код прогеры, которые создавали первые программы на Рапире.

Программирующая Программа как начало советского кодинга

В завершение материала посмотрим на еще одну советскую разработку, не относящуюся к языкам, но тесно связанную с программированием. В СССР был создан первый в мире транслятор высокого уровня — ПП-1, а его наследник ПП-2 уже в 1955-м году ушел в массы. Автор транслятора — Алексей Ляпунов. Он первым предложил определение оператора — одного из этапов программы, на котором происходит обработка тех или иных данных. Совокупность этих операторов и логических условий он обозначил как схему счета, а уже под программой понималась схема и спецификации всех операторов. Четко расставив основные понятия, Ляпунов начал работу над первым компилятором и успешно испытал его в 1954-м году.

Ляпунов показывает свои идеи военным. Именно по этому пути чаще всего шли советские высокотехнологичные разработки.
Ляпунов показывает свои идеи военным. Именно по этому пути чаще всего шли советские высокотехнологичные разработки.

ПП расшифровывалась как Программирующая Программа и являлась аналогом западных автокода и ассемблера. На тот момент она обладала высочайшим в мире уровнем входного языка. Версия ПП-2 предназначалась для работы с ЭВМ «Стрела», и мы просто уточним, что дело происходило в 1954-1955-х годах: первое поколение ЭВМ на исходе, а IBM только приступает к созданию Фортрана.

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

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

66
5 комментариев

На самом деле, завораживает то, как из первых ЯП мы пришли к нашим современным, и как вообще человечество к таким вещам

1

Комментарий недоступен

а на хабре эта же статья есть?

на Хабре не публиковали :)