«Наука в Сибири»
№ 22 (2807)
2 июня 2011 г.

НАЧАЛО

19 апреля 2011 г. в Институте систем информатики СО РАН была прочитана Пятая, юбилейная Ершовская лекция, посвященная 80-летию со дня рождения ак. А. П. Ершова, имя которого носит институт.

Мария Горынцева, «НВС»

Иллюстрация
А.П. Ершов.

Андрей Петрович Ершов, стоявший у истоков советского программирования, приобщился к его основам в 1952 г. на мехмате МГУ, на лекциях своего учителя, проф. А. А. Ляпунова, прочитавшего курс «Принципы программирования» из восьми лекций. Программирование в СССР тогда было в зачаточном состоянии, и сам А. А. Ляпунов только приступал к созданию так называемого операторного метода — системы понятий, которая впоследствии привела к разработке языков программирования, трансляторов, теории схем программ, т.е. всего того, что и в наши дни составляет базис программирования во всём мире. Как отмечал позже сам А. П. Ершов в одном из докладов, посвящённых памяти учителя, несомненная заслуга А. А. Ляпунова состояла в том, что он первым начал рассматривать программирование как объект изучения. На четвёртом курсе Андрей Петрович написал курсовую работу по методам программирования циклов под руководством А. А. Ляпунова и с тех пор связал свою жизнь в науке с новой отраслью знания.

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

В 1954 г. А. П. Ершов окончил МГУ и получил диплом с отличием, после чего поступил в аспирантуру к А. А. Ляпунову. Его работа в эти годы была посвящена разработке программирующей программы (ПП) для БЭСМ АН СССР. Автоматизация программирования была призвана восполнить недостаток вычислительных мощностей первых ЭВМ на лампах с их нестабильной работой, в то время как существовала очень большая потребность в вычислениях у специалистов самых разных областей, прежде всего стратегически важных: физиков-ядерщиков, ракето- и авиастроителей и т.п. Андрей Петрович предложил ряд понятий и методик, которые вошли в основной арсенал языков и систем программирования. В ПП для ЭВМ «Стрела-3» были впервые реализованы табличный подход к синтаксическому анализу и оптимальное программирование арифметических выражений.

В 1958 г. увидела свет монография А. П. Ершова «Программирующая программа для быстродействующей электронной счётной машины», которая стала заметным вкладом в развитие системного программирования и мгновенно была раскуплена. Через год книга была переведена на английский язык и получила высокую оценку зарубежных коллег.

В начале 1961 г. Андрей Петрович с семьёй переехал в Академгородок, который только начинал строиться, а 24 января 1962 г. защитил диссертацию на соискание учёной степени кандидата физико-математических наук. Защита проходила в конференц-зале Института гидродинамики СО АН СССР, единственного полностью отстроенного к тому времени.

Дальнейшая деятельность А. П. Ершова была связана с Академгородком. Городок в начале 60-х годов был окружён неким романтическим ореолом.

Глазами коллеги и ученика

Иллюстрация
Р.И. Подловченко и А.А. Берс.

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

— Первый раз я увидел А. П. Ершова на Московском городском семинаре по кибернетике в МГУ. Вёл его А. А. Ляпунов. Андрей Петрович рассказывал там про новый международный язык Алгол-50. Это очень старая версия, в дальнейшем этот язык приобрёл международное признание как Алгол-58. Позже я знакомился с его работами в сборнике «Проблемы кибернетики». К окончанию института в 1961 г. я уже был хорошо знаком с А. А. Ляпуновым, так как я ходил к нему на семинар.

Как уже было сказано, А. А. Ершов и А. А. Ляпунов в 1961 г. уехали в Новосибирск. Андрей Александрович решил последовать за ними, т.к. перспективы открывались широкие и заманчивые.

— И я позвонил самому С. Л. Соболеву, который тогда был директором сибирского Института математики, и сказал, что хочу поехать и устроиться к нему на работу. Он назначил мне встречу в Главном корпусе МГУ на Ленинских горах и, когда я пришёл, поговорил со мной и спросил, чем вызван такой интерес к его институту, к Сибири вообще? Я ответил, что у него работают Андрей Петрович Ершов и Леонид Витальевич Канторович, с трудами которых я знаком и кое-что использовал в своей дипломной работе. Сергей Львович организовал мне бумажку, на которой был гриф «Сибирское отделение», с просьбой распределить меня сюда — и за подписью М. А. Лаврентьева. А у Лаврентьева тогда было своего рода «право первой ночи», то есть он мог взять в Сибирское отделение кого хотел. Меня распределили в авиационную промышленность, пришлось потратить недели три, чтобы перераспределиться, и документ с подписью сыграл в этом свою положительную роль.

Первого апреля 1961 года я приехал сюда, в Новосибирск, который мне очень не понравился. Весна у нас всегда грязная, такой она была и тогда. Но, добравшись до Академгородка, где не было ещё всего микрорайона «Б», прогулявшись вечером до ИЯФа, я понял, что мне здесь всё-таки нравится и решил здесь остаться навсегда. Девочки, которые работали у Канторовича, мне не поверили. Это было в субботу, а в понедельник я пошёл слушать доклад Андрея Петровича в здании нынешней 3-й гимназии, где тогда помещался университет. Там, как вы знаете, такой длинный коридор, и в перерыве мы с Андреем Петровичем прошлись по нему туда и обратно. И к тому времени, когда мы вернулись, я получил приглашение работать в его отделе. 5 апреля я приступил к работе, по какому случаю мы устроили чай с пирогами. А потом я работал с Андреем Петровичем постоянно, за исключением тех трёх лет, когда А. А. Ляпунов счёл, что у меня есть некоторые проблемы с математикой, и взял к себе, чтобы подучить. После этого я вернулся к Ершову в качестве аспиранта.

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

Практика — критерий истины

В обывательской среде принято считать, что учёные — это, выражаясь политкорректно, люди малополезные для общества, занятые преимущественно тем, что удовлетворяют своё любопытство за государственный счёт (на деньги налогоплательщиков, как говорят теперь). Особенной бесполезностью, как известно, отличаются математики, результаты деятельности которых не могут повлиять ни на увеличение привесов и удоев, ни на рост валового продукта, ни на укрепление обороноспособности, так как представляют собой скопище непонятных цифр и символов. Между тем, отделу, которым руководил А. П. Ершов, приходилось решать задачи вполне земные и практические, что начисто опровергает обывательский взгляд на математику и смежные дисциплины.

А. А. Берс рассказал о том, что электронной подготовкой изданий пришлось заняться в связи с необходимостью публикации русского перевода описания языка Алгол 68, которое появилось практически сразу после появления официального текста. Перевод был выполнен А. П. Ершовым, А. Ф. Раром, Л. Л. Змиевской и А. А. Берсом при активном участии В. В. Грушецкого. Текст представлял собой немалую полиграфическую сложность:

— Печатать приходилось на двух языках, на шести шрифтах. Ни одна типография в Советском Союзе не бралась за такое трудное задание, кроме Первой образцовой им. А. А. Жданова. Именно эта типография и заказала нам систему электронной подготовки для издания книг. Так возник САПФИР — Система автоматизированной подготовки фотонаборных изданий, обеспечивающая редактирование. Мы начали её делать, реализовывая на ЕС ЭВМ с выходом на их импортное электронное фотонаборное устройство «Линотроник 500».

Так была создана система фотонабора, не имевшая аналогов в мире и предполагавшая овеществление (набор) текста ещё до редактирования. Был выдвинут принцип отделения собственно текста от его графического оформления, который реализовывался через использование «невидимого» алфавита для разметки текста и для организации вызова специализированных подпрограмм. Над проектом, непосредственное научное руководство которым (как всеми предыдущими и последующими) осуществлял сам А. П. Ершов, работали В. В. Медведев, С. К. Черноножкин, В. А. Детушев, Л. Л. Змиевская. А. А. Берс был главным конструктором САПФИРа. Этот проект выполнялся в 1975–1980 гг. совместно с Первой образцовой типографией.

— Когда мы защищали технический проект в Госкомиздате, то в перерыве к Андрею Петровичу подошел и взял за жилетную пуговицу небольшого роста человек с огромной бородой, как у Карла Маркса. Это был директор издательства «Правда» Б. А. Фельдман, который потребовал себе такую же систему. И даже лучше.

Мы провели исследование потребностей «Правды». Группа наших ведущих сотрудников поехала в Москву и полторы недели общалась с отделами, секретариатом, типографией. В результате появился отчёт, сохранившийся в архиве А. П. Ершова, а позже я написал генеральную схему по созданию и развитию проекта РУБИН (Редактирование, управление, база информации и набор). Это был совместный проект издательства ЦК КПСС «Правда», ВЦ СО АН СССР, ИПМ АН СССР, польского завода «МЕРА-Блоне» и центра электроники ЦОБРЕСПУ в Варшаве, он осуществлялся в 1978–1989 гг. Дело было доведено до серийного выпуска, но тут распался СЭВ, а затем и Центрального комитета КПСС не стало.

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

Справка: В состав системы РУБИН входили: Центральный информационно-вычислительный комплекс (ЦВК), обеспечивающий работу ряда адаптивных баз данных и информационно-справочное обслуживание редакции газеты «Правда», и периферийная сеть рабочих мест сотрудников отделов и секретариата редакции, построенная на рабочих станциях МРАМОР. Система предусматривала охват всего технологического цикла редакционной и типографской подготовки двух выпусков номеров газеты ежедневно, включая передачу печатных форм в провинцию по фототелеграфу. Ответственным исполнителем от ВЦ СО АН СССР был В. Г. Поляков.

Рабочая станция МРАМОР (Многофункциональное рабочее автоматизированное место обслуживания редакции) — это многошинный гетерогенный многопроцессорный программно-аппаратный комплекс, в котором процессоры работают в режиме «коллективного подряда» под управлением оригинальной ОС ОНИКС, обеспечивающей динамически распределяемую мультипрограммную загрузку 5–7 процессоров в интересах 2–4-х пользователей.

Для МРАМОРА были разработаны специальный монитор с портретным расположением экрана и клавиатура, допускающая перепрограммируемую многорегистровую раскладку и аккордный ввод. Рабочее место пользователя имело многооконный интерфейс, показ текста разнообразными шрифтами разной ширины, вывод макета полосы издания и т.д. По проекту МРАМОР в 1987 г. была выпущена опытная серия из 21 рабочей станции на 40 рабочих мест и подготовлен их серийный выпуск.

Научно-педагогическая деятельность

Многие, кто помнят А. П. Ершова, отмечают его вклад в развитие международных связей отечественного программирования. Так, ныне покойный Э. З. Любимский, в свое время заведующий отделом ИПМ им. М. В. Келдыша РАН, считал, что «без его такта, общительности, широкой научной и культурной эрудиции мы не имели бы и половины тех связей и контактов, которые имеем сейчас». Ведущие специалисты мирового программистского сообщества поддерживали деловые и дружеские отношения с А. П. Ершовым, приглашали за рубеж для чтения лекций на любой срок и практически на любых условиях, а также, что было очень важно во времена «железного занавеса», присылали ему много специальной литературы по программированию, которую трудно или невозможно было приобрести по коммерческим каналам. При этом Андрей Петрович менее всего напоминал Скупого Рыцаря, добывая информацию для всех. Эти книги и журналы составили основу легендарной библиотеки Ершова.

Английский язык он знал прекрасно. По словам А. А. Берса, когда в Доме учёных делались первые в мире два доклада по схемам потоков данных, то один из них, доклад Джека Денниса, Ершов переводил с английского на русский, а второй, доклад самого Берса, он же переводил с русского на английский.

Но и родным языком Андрей Петрович владел прекрасно, понимая разницу письменного и устного стилей. Помимо его собственной одарённости, сыграла свою роль и установка учителя — А. А. Ляпунова. А. А. Берс рассказывает об этом так:

— Я учился у Ершова «интересно разговаривать». После одного моего неудачного доклада на семинаре А. А. Ляпунов сказал мне: «Андрей, если уж вы собрали двадцать человек и хотите им что-то сообщить, это должно быть, как минимум, интересно для них». И вот в 1968 г., в ноябре, мы летели на Первую всесоюзную конференцию по программированию (ВПК-1), которая проводилась в Киеве Институтом кибернетики АН УССР (ныне Институт кибернетики имени В. М. Глушкова НАН Украины). Андрей Петрович был председателем программного комитета. Вместо Киева, где был туман, нас посадили в Москве, во Внуково. Ночь, аэропорт забит до отказа. Никаких удобств, никаких обязательств, как тогда было у «Аэрофлота». Мы лежим на каком-то багажном транспортёре, из-под которого страшно дует. Сквозняк был такой, что я решил встать и походить. Встаю и вижу: посреди всего этого бедлама стоит столик, возле него стул, на нём сидит Андрей Петрович. Перед ним разложены бумаги. Он что-то пишет. Увидел меня и попросил посидеть за столиком, пока он отойдёт. Я не читаю чужих записок, но краем глаза увидел, что на листках запись его вступительной речи председателя. Причём записывал он её так, как она должна была звучать при произнесении, а не так, как позже будет напечатано в трудах конференции. Это было для меня сильным впечатлением и настолько вдохновило, что я стал этому по возможности подражать. Поначалу получалось плохо, но практика диктовки выступлений на магнитофон помогла.

Умение донести свои мысли до слушателей пригодилось А. П. Ершову в его преподавательской работе. Всю жизнь он придерживался правила «без учеников нет учёного». Работать со студентами он начал в 1955 г., когда сам ещё был аспирантом, и сразу же после переезда в Академгородок в 1961 г. начал преподавать в НГУ, читая курс программирования и руководя практикой студентов в ИМ, а позже — в ВЦ СО АН. Отделение программирования, которое сразу возглавил Андрей Петрович, в те годы было неформальным структурным подразделением кафедры вычислительной математики. В 1966 г. была создана кафедра теоретической кибернетики, и отделение программирования вошло в её состав. А. П. Ершов возглавил эту кафедру после смерти А. А. Ляпунова, который заведовал ею до него.

На пути преподавания программирования возникало немало проблем. Одной из самых больших трудностей в 60-е годы был дефицит машинного времени — студенты не имели возможности проверить написанные ими программы на реальных ЭВМ. Как сказал А. А. Берс, «мы обучали студентов виртуальному программированию на виртуальных машинах». Даже в начале 70-х годов студенты практически не мели возможности работать на реальных компьютерах.

В 1977 г. в издательстве «Наука» вышла книга «Введение в теоретическое программирование» с подзаголовком «Беседы о методе». Она была написана в форме беседы опытного практика и преподавателя с младшим коллегой. Эта монография, на которой выросло не одно поколение студентов, получила признание не только в СССР: в 1990 г. её перевели на английский язык.

Помимо трудностей, связанных, если можно так выразиться, со скудной матчастью, были и проблемы иного рода. Некоторые идеи А. П. Ершова намного опередили своё время, и не все коллеги-математики могли их воспринять. Иногда на заседаниях ММФ НГУ весьма уважаемые учёные утверждали, что подготовка программистов ведёт к потере качества математического образования студентов и что искусственный интеллект — понятие ненаучное. Но А. П. Ершов с самых первых лет своей педагогической деятельности в НГУ начал работать не только со студентами, но и со школьниками. Позже он говорил, что не уметь программировать в школе в ХХ в. — это примерно то же, что в XVIII в. не уметь читать и писать.

Были организованы факультативы по программированию в нескольких школах Новосибирска, в школе № 130 открылись экспериментальные классы (с 8 по 10-й), в которых, помимо углублённого изучения физики и математики, давалось и программирование. При ВЦ СО АН существовал кружок по программированию для школьников средних классов. И это только два примера, а попыток внедрить информатику в школьное образование было намного больше.

Самой удачной, как полагают специалисты, можно считать такую форму как летние школы юных программистов (ЛШЮП). Летние школы базировались на том же принципе отбора талантливой молодёжи на территории Сибири, Дальнего Востока и Казахстана, что и знаменитая ФМШ. Однако уже в 1980 г. 5-я ЛШЮП получила статус Всесоюзной, а начиная с 1982 г. летние школы программистов стали международными, собирая школьников из Болгарии, Чехословакии, Венгрии, ГДР, Польши, в 1989 г. голландский астроном Тео Юрьенс привёз на очередную Школу 10 школьников из Голландии. На этих встречах школьники получали возможность поработать на настоящих ЭВМ, преподаватели — усовершенствовать методику учебного применения машин.

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

Без галстука. Вместо эпилога

И вновь слово А. А. Берсу:

— Он был замечательный, живой человек. А уж как он играл на гитаре и пел песни! Мы пели бардовские песни в огромном количестве. Тогда Визбор, Окуджава, Городницкий были ещё внове. И клуб «Под интегралом» организовали ведь мы, математики!

Я довольно часто, особенно последние лет десять, вспоминаю Андрея Петровича. Когда я размышляю о чём-то, мне удобно думать, а что сказал бы об этом Ершов. Когда я с ним работал, наше сотрудничество переросло в большую дружбу. Когда я приехал в Городок, общежитие не было готово, и я полтора месяца жил у Андрея Петровича в гостиной на диване. И потом на протяжении всей жизни я каждый день к нему заходил. Сказать какую-нибудь новость, обсудить что-то, просто увидеться... Так было всегда. За 27 лет я только два раза столкнулся с ситуацией, когда он сказал «уходи, я занят». Один раз он составлял документ с грифом «секретно». Что это было? Записка для правительства «Программа развития вычислительной техники в СССР». Там, разумеется, был не только гриф, но и содержание.

Андрей Петрович бессодержательного не писал.

Автором использованы устные и оцифрованные мемуары А. А. Берса,
материалы 5-й Публичной Ершовской лекции,
прочитанной профессором МГУ Р. И. Подловченко,
и книги И. А. Крайневой и Н. А. Черемных
«Путь программиста» (Новосибирск, 2011).

стр. 8-9