Первый семестр 4-го курса (1968 г.). В расписании появился новый предмет – программирование. Лекции читает доцент Лев Александрович Чикин, фактически, первый программист Ростова.
Будучи чистым математиком (специалистом по теории краевых задач), в 1958 году при создании ВЦ РГУ Лев Александрович Чикин и только что защитивший кандидатскую диссертацию аспирант кафедры дифференциальных уравнений, ученик профессора Ф.Д. Гахова Рудольф Хафизович Зарипов (о нем читайте примечание в конце статьи) были направлены в МГУ для переподготовки в области программирования. Таким образом они и стали первыми программистами Ростова.
Параллельно с ними в Пензу на завод, где производили ЭВМ УРАЛ 1, были направлены на стажировку выпускники-физики Д.Е. Синельников, Е.Г. Ротов, И.И. Голянд, О.М. Золотов. День их приема на работу в РГУ – 4 октября 1958 г. считается днем рождения ВЦ РГУ. Так они стали первыми электронщиками Ростова.
Сама первая на ВЦ ЭВМ Урал 1 была введена в эксплуатацию в 1960 году. Формально ВЦ имел статус вычислительной лаборатории кафедры дифференциальных и интегральных уравнений, возглавляемой Ф.Д. Гаховым, но фактическое руководство научной работой ВЦ осуществляли Лев Александрович Чикин и Ефим Львович Литвер. Именно Льва Александровича и нужно считать первым директором ВЦ РГУ.
Параллельно со становлением ВЦ началось обучение студентов вычислительной математике и программированию. Была открыта кафедра вычислительной математики (ныне кафедра прикладной математики и программирования). Инициатором её создания был Л.А. Чикин, который стал её первым заведующим.
Возвращаюсь к лекциям по программированию. Для студента-математика, специализировавшегося по теории приближений, они были совершенно необычными. Зазвучали завораживающие слова «алгоритм», «программа», «цикл», «ячейка», «память». Языков программирования ещё не существовало, поэтому нас обучали программированию в ма-шинных кодах, фактически, системному программировани».
Совершенно необычными были и практические занятия по программированию. Они проходили не в компьютерных классах (а откуда они могли тогда взяться?), а в обычных аудиториях. Программы писались на доске мелом для абстрактной трехадресной машины с фиксированным набором машинных кодов. Программа записывалась в виде последовательного набора слов вида: «команда; адреса ячеек, из которых берутся данные; адрес ячейки памяти, в которую будет направлен результат».
Занятия вела очень молодая и красивая ассистент Александра Афанасьевна Чекулаева (Шурочка), пришедшая на кафедру с ВЦ и уже имевшая опыт реального программирования.
Как ни странно, занятия были далеко не скучными. Они завораживали меня тем, что ты должен был своей программой заставить тупую, безмозглую машину делать то, что ты от неё хочешь (возможно, это сродни работе дрессировщика на арене цирка).
Всё это (и лекции и практические занятия) проходило с четко обозначенной целью – в начале следующего семестра должна состояться учебная вычислительная практика на ВЦ РГУ. Не освоив программирование, на ней нечего будет делать.
И вот позади сессия и каникулы. Первые две недели нового семестра мы проводим на ВЦ РГУ, в здании, находящемся на ул. Красноармейской, почти на углу с пр. Ворошиловским (напротив дома профсоюзов). Первый этаж здания строился или под магазин или ещё под что-то, но достался нашему ВЦ (сейчас в нем размещается парикмахерский салон).
Первый день – день знакомства с машиной Урал 1, на которой нам предстоит работать. Она была расположена в громадном машинном зале (около 150 кв. м.) и занимала в нем своими шкафами, пультами и периферийными устройствами не менее 100 кв. м. Особое впечатление производили шкафы, забитые до отказа электронными лампами. Верхние части шкафов застеклены, и электронные лампы весело подмигивали нам в такт с работой машины.
Урал-1 работал с «потрясающей скоростью» – 100 операций в секунду, имел внутреннюю память на 4,5 кб. (1024 машинных слова), реализованную на магнитном барабане. Имелась у машины возможность использования и внешней памяти на магнитной ленте (для этого имелся специальный магнитофон с бобинами магнитной ленты). Внешняя память использовалась для хранения программ и результатов вычислений (в случаях прерывания вычислений из-за нехватки машинного времени).
Особый интерес представляло собой устройство ввода-вывода на перфоленте и связанное с ним устройство – перфоратор. Ввод программы и исходных данных осуществлялся путем считывания их с перфораций, нанесенных на засвеченную (т.е. черную) киноленту. Наносились перфорации (мелкие прямоугольные отверстия) на устройстве, которое называлось перфоратором. В перфоратор заряжалась бобина зачерненной кинопленки. Пульт перфоратора был очень похож на клавиатуру пишущей машинки. Программа записывалась на специальном бланке. Каждая строка бланка – один машинный код (то самое специальное слово вида: «команда; адреса ячеек, из которых берутся данные; адрес ячейки памяти, в которую будет направлен результат»). Здесь я не совсем точен, поскольку Урал-1 – одноадресная машина, и программирование для неё – особое искусство.Ты набираешь эти слова, а перфоратор пробивает на ленте соответствующий им набор отверстий.
Каждая допущенная тобой ошибка приводит к тому, что на ленте вместо нужной комбинации отверстий пробита ненужная. После переноса программы на ленту нужно её вычитать, и исправить свои ошибки, если их немного. Ненужные отверстия заклеиваются маленькими кусочками ленты, а отсутствующие пробиваются специальной «пробивалкой». Если ошибок много, то программу приходится перебивать заново. Наконец, лента готова, теперь её нужно свернуть и склеить в многослойное кольцо. Это кольцо нужно заправить в устройство ввода-вывода и нажать на кнопку ввода на пульте машины.
Лента начинает вращаться с большой скоростью со стрекотом, напоминающим работу кинопроектора. На высокой скорости чтения из этого подобия центрифуги вылетают оторвавшиеся кусочки – заплатки, которыми были заклеены лишние отверстия. Как правило, процесс считывания прерывается до завершения – кольцо разорвано, и лента, как пружина, выскакивает из устройства ввода-вывода. Восстановить уже ничего невозможно, и нужно все начинать заново – набивать программу на ленту, исправлять ошибки перфорирования, склеивать многослойное кольцо, вставлять в устройство ввода-вывода и ждать очередного выпрыгивания ленты с программой — и т. д, и т. п.
Первая неделя практики была посвящена составлению одной общей программы для всех нас (что было не так уж и сложно) и персональной (т. е. каждым из нас) её набивке на ленту и многократным попыткам ввода её в машину. Как только удавалось завершить этот процесс до конца, – программа считана, машина сработала и выдала результат – можно было переходить ко второму этапу практики.
Теперь нас разбили на двойки, каждая двойка получила персональное задание на составление программы, её отладку и проведение расчетов с помощью составленной программы. Именно вторая часть практики и определяла оценку за практику.
С составом моей двойки всё было ясно – вторым участником стал мой друг с первого сентября первого курса Виктор Санчес-Каррион. Решение об этом было мгновенным и совместным – мы просто переглянулись, перемигнулись, встали и пошли за своим заданием. Пошли не к Шурочке, а ко второму руководителю практики – Светлане. Светлана – тоже молодая и симпатичная (впоследствии доцент кафедры вычислительной математики и математической физики Светлана Михайловна Зеньковская) – работала в то время программистом на ВЦ.
Светлана посмотрела на нас, и похоже, что мы ей чем-то приглянулись (возможно даже тем, что мы, в отличие от большинства, записались не к Шурочке, а к ней). Не знаю и не могу теперь узнать, был ли это педагогический прием или «чистая» правда, но Светлана нас предупредила, что она напрямую заинтересована в результатах счета по составленной нами программе. От этого наши глаза загорелись, и мы «ринулись в бой».
Что именно должна была считать наша программа, я уже не вспомню, а Светланы Михайловны и Виктора уже нет среди нас, но помню, что составление программы потребовало от нас изрядных усилий. Нам всё время не хватало внутренней памяти машины, а использование в процессе вычислений внешних накопителей на магнитной ленте существенно снижало бы скорость вычислений.
Светлана пристально следила за нашими программистскими ухищрениями и с милой улыбкой советовала «Ребята, плюньте вы на наполеоновские планы, пишите программу с обращением к внешним носителям». Мы же упорно стояли на своем. Светлана перешла в атаку: «Учтите, если Ваша программа не заработает, то вы получите вечные двойки: Урал-1 демонтируют и после практики выведут из эксплуатации, вам физически не на чем будет ликвидировать «хвосты»…
Последний день практики. Программа написана, лента пробита. Предстоит её запустить вместе с данными для счета. За пультом машины Светлана и мы. «Учтите ребята, у вас последний шанс. Я уговорила электронщиков не отключать устройство ввода-вывода, чтобы вы могли ввести программу».
Нажимаем кнопку «Начало ввода». «Центрифуга-Киноустановка» загудела, лента, не разрываясь, совершила несколько оборотов и остановилась. Ввод свершился. Электронщики отключили тумбу ввода-вывода и унесли её в неизвестном нам направлении. Нажимаем кнопку «Счет». Весело заморгали лампы во всех шкафах Урала. Поморгав хаотично несколько секунд, они вошли в режим, похожий на моргание электрогирлянды на елке. Стало ясно, что программа зациклилась.
На глазах у Светы появились слезы. За время написания программы и её отладки – неудачных запусков из-за наших ошибок – мы успели проникнуться взаимной симпатией, и понимали, что угрозы незачета, исходившие от Светланы, это некая игра молодого преподавателя с симпатичными ей толковыми ребятами.
«Ребята, ищите ошибку, если она незначительная – внесем исправления с пульта машины». Ошибка оказалась именно такой. Прямо с пульта внесли необходимое исправление. Опять запустили Урал на счет и получили результаты. Рады были все трое, но больше всех Светлана.
На наших глазах электронщики завершали процесс демонтажа Урала 1. Они отключили пульт и потащили его в угол машинного зала. Шкафы с лампочками осиротели, будто поняли, что в них уже не заморгает ни одна лампа. Радость прошла. Наш Урал–1 прекратил свое существование. Спасибо ему, его судьба завершилась на нашей программе. Он проработал в РГУ 9 лет, морально устарел и ушел в небытие.
Его пульт управления я увидел спустя много лет в нашем областном музее краеведения. Он тихо почивал под какой-то лестницей музея. Возможно, на его кнопках хранятся отпечатки пальцев – мои, Виктора и Светланы.
Больше никогда в своей жизни я не писал программ и ничего не считал на компьютерах. Это делали и делают мои студенты под моим руководством. Зная, что мой личный опыт программирования очень непродолжителен, они удивляются тому, насколько быстро я нахожу ошибки в их программах, написанных на неведомых мне алгоритмических языках. Мои пояснения о том, что я, в отличие от них, являюсь не просто программистом, а системным программистом – для них непонятны, поскольку они никогда не писали программы в машинных кодах.
Прошли годы. Однажды в мой кабинет декана мехмата заглянула доцент Светлана Михайловна Зеньковская и спросила:
– Яша, Вы помните, какие красивые были на Вас туфли, когда Вы проходили практику на ВЦ?».
– Конечно, Светлана Михайловна, – темно-коричневые с золотистыми пряжками, я их купил на деньги, заработанные в стройотряде после первого курса. Конечно, к середине четвертого курса они уже были не очень, но других у меня и не было.
– А на Вашем напарнике Вите Санчесе был изумительный костюм.
Этот костюм ему привезли родители (Витя был сыном испанского политэмигранта) из первой поездки в Испанию на родину отца. Он был из неведомого тогда у нас тергаля. Витя был в нем действительно хорош. Костюм оказался не снашиваемым. В нем Витя на пятом курсе отправился в ЗАГС на свое бракосочетание.
*
А Р.Х. Зарипов стал одним из первых в мире разработчиков компьютерных программ для создания музыки. Именно им была реализована на нашем Урале–1 программа, с помощью которой были написаны первые компьютерные музыкальные произведения. Этот цикл был назван Р.Х. Зариповым «Уральские напевы» и был исполнен Симфоническим оркестром Ростовской филармонии. Обращение Р.Х. к этой области было естественным, параллельно с мехматом Р.Х. окончил Ростовское музыкальное училище. Как я понимаю, эти работы были одними из первых в той области, которую теперь называют искусственным интеллектом. Результатом исследований Р.Х. Зарипова в этой области стала монография: Зарипов, Рудольф Хафизович. Кибернетика и музыка [Текст] / Р. Х. Зарипов ; отв. ред. В. В. Иванов. — Москва : URSS : Либроком, 2014. – 232с.
__________________________
© Ерусалимский Яков Михайлович