Воспоминания об академике Ершове А. А. Берса
[1]
А. А. Берс
Андрея Петровича Ершова я впервые увидел в ноябре 1959 г. на семинаре по кибернетике в МГУ, когда он делал доклад об Алголе 58, а затем на конференции, где он рассказывал о Сибирском языке. Его статья по операторным алгоритмам в 3-м выпуске «Проблем кибернетики» оказала большое влияние на мой дипломный проект (он об этом не знал), и когда я распределялся в ИМ СО АН, то обосновывал свое желание С. Л. Соболеву в том числе и ссылкой на то, что там работает А. П. Ершов. Кто меня познакомил с Андреем Петровичем, я не помню (наверное, А. А. Ляпунов), но к моему приезду в Академгородок он уже меня знал.
В первый же свой рабочий день в Институте математики СО АН я пошел на семинар, на котором Андрей Петрович рассказывал о сведении задачи распределения памяти к раскраске графов. В перерыве семинара он пригласил меня работать у него, а через день (5 апреля 1961 г.) привел в свою лабораторию, которая располагалась, как это было тогда обычным в Академгородке, в квартире одного из жилых домов. Недели через полторы, оказавшись без крова в ожидании завершения строительства общежития, я очутился у Андрея Петровича в доме, где и прожил благополучно несколько месяцев. Так началась наша дружба.
Год, прожитый без Андрея Петровича, еще не утешил боль потери и не позволил полностью осмыслить его роль в нашей жизни. Поэтому поделюсь несколькими, может быть не очень связными, но главными для меня впечатлениями.
1. Андрей Петрович затеял проект БЕТА — совместную реализацию трех больших языков: Алгола 68, ПЛ/1 и Симулы 67, объединяемую единым внутренним языком с мощной системой оптимизации на нем. Естественно, что все мы втянулись в сравнительный анализ деталей и структуры этих языков, нахождение общности и различий в них, и тем самым оказались во внешней по отношению к каждому из языков позиции.
Именно возможность глядеть на языки программирования «сверху» и понимание, что любой из алгоритмических языков (в том числе и язык команд любой ЭВМ) есть лишь частная проекция общего мира средств задания способов обработки информации, — это главное, что я получил от работы в проекте БЕТА и что существенным образом повлияло на формирование моего программистского мировоззрения. Вместе с методологией смешанных вычислений — это самое важное, чему научил меня Андрей Петрович. Я знаю пару сильных программистских коллективов, которые, создав систему программирования для мощного современного алгоритмического языка, так и не могут выйти из круга его понятий.
2. Наш отдел почти в полном составе летит на Первую всесоюзную конференцию по программированию в Киев через Москву, и из-за нелетной погоды мы проводим ночь в переполненном аэровокзале Внуково, где кругом раздраженные толпы. В этой сумятице, раздобыв где-то стул и присев за какой-то маленький столик, Андрей Петрович раскладывает бумаги и сосредоточенно пишет (как я потом узнал) текст своего выступления как председателя программного комитета с анализом представленных докладов и их обстоятельной классификацией по направлениям и темам. Причем пишет именно текст устного выступления, а не статьи для публикации.
Доклады и статьи Андрея Петровича всегда были очень интересны также и по форме. Он блестяще владел стилем изложения и, кроме того, умел очень точно сформулировать суть вопроса. Всемирно известен его афористический лозунг «Программирование — вторая грамотность»; другим примером может служить название доклада на институтском семинаре: «Персональная ЭВМ — личное оружие системного программиста», пропустить такой доклад было, разумеется, невозможно.
3. Андрей Петрович был внутренне очень упорядоченным человеком, с завидной регулярностью организующим свою работу. Во времена БЕТА-проекта, когда мы засиживались в институте до ночи и искренне полагали, что уж кто-кто, а мы-то работаем по 10–12 часов в сутки, Андрей Петрович на семинаре отдела сделал доклад, в котором на основе записей в своем рабочем дневнике проанализировал баланс своего времени. Из подробного сообщения о том, на что и сколько уходит времени в его сутках за достаточно долгий период, выяснилось, что на настоящую творческую работу ему удается обеспечить по 2—3 часа каждый день. Вот так!
Андрей Петрович старательно и тщательно организовывал и поддерживал обширные связи с зарубежными и отечественными коллегами и коллективами. Он получал огромную почту со всего света, аккуратно сам регистрируя все материалы, письма и ответы. На этой базе им собрана уникальная библиотека, включающая отчеты, препринты и публикации многих ведущих зарубежных программистских коллективов, в которую приезжали и приезжают поработать специалисты со всего Союза.
Многие зарубежные коллеги приезжали в Академгородок к Андрею Петровичу, и мы имели возможность не только увидеть и услышать их, но и, опять же заботами Андрея Петровича, обсуждать свои результаты и активно лично общаться с такими же, как и он, крупнейшими учеными-программистами мира: Дж. Маккарти, Дж. Шварцем[2], Э. Дейкстрой, Ч. Хоаром, А. ван Вейнгаарденом и многими другими.
4. В жизни Андрей Петрович был, вообще-то, человеком тихим; я ни разу не слышал, чтобы он повысил голос или допустил резкий или раздраженный тон в разговоре с кем бы то ни было. Скорее можно сказать, что от него исходили мягкое доброжелательство, заинтересованность и внимание к собеседнику.
Он достаточно вовремя уходил с работы домой, чтобы выполнять свою большую часть семейных забот. В частности, его постоянной обязанностью всегда было мытье всей посуды, и он несколько раз рассказывал, что большинство своих научных работ он придумал и продумал как раз в это время.
Когда мы собирались время от времени вечером, Андрей Петрович приносил гитару и пел, он очень любил песни Окуджавы. Когда в рабочей группе ИФИП по Алголу 68 произошел раскол (после чего, кстати, Вирт[3], который был в составе вышедшего меньшинства, создал язык Паскаль в противовес Алголу 68), Андрей Петрович и гостивший тогда у нас Джон Маккарти с большим увлечением и весельем написали на мотив популярной песенки Джоан Баез свой вариант «особого мнения меньшинства», создав параллельные английский и русский тексты, и записали его в собственном исполнении на пленку, которую Маккарти увез на очередное заседание рабочей группы, где она была воспринята с большим успехом. В русском тексте были, в частности, следующие строки:
«Подайте нам язык другой,
Чтобы не было в нем обмана,
Чтоб на нем могла писать
Любая обезьяна…
Нет, нет, нет, — это не наш язык…» и т. д.
Андрей Петрович писал очень хорошие стихи, только несколько из которых однажды были напечатаны в газете «Наука в Сибири», а его перевод известного стихотворения Киплинга «If», по моему мнению, поэтически равновелик с переводом Маршака, но более точно соответствует оригиналу.
5. Будучи по образованию и изначально по профессии математиком и став одним из первых в мире профессиональным информатиком, Андрей Петрович, как мне представляется, по складу своему был естествоиспытателем в общепринятом смысле этого слова, т. е. ученым, пристально изучающим независимую от него, объективную реальность и открывающим присущие ей закономерности. Такой реальностью для Андрея Петровича был мир вычислительных процессов и переработки информации. Пример, лежащий на поверхности: в безбрежной стихии естественного языка Андрей Петрович обнаружил, выделил и показал всем хорошо ограниченный, но достаточно богатый фрагмент — «феномен деловой прозы». Я думаю, однако, что и свое самое крупное достижение — метод смешанных вычислений — Андрей Петрович не придумал, а обнаружил, наблюдая, экспериментируя и размышляя над процессами переработки данных программами в ЭВМ.
Наша лаборатория, которую он создал и которой руководил до конца жизни, была названа Андреем Петровичем не случайно и не тривиально — лаборатория экспериментальной информатики. Намеченное им направление — завет нам.
Примечания
[1] Перепечатывается из журнала «Программирование», № 1, 1990, с любезного разрешения редакции.
[2] Джекоб Т. Шварц — профессор Нью-Йоркского университета, известный специалист в области языков программирования, один из пионеров параллельного программирования.
[3] Никлаус Вирт (р. 1934) — профессор Швейцарского федерального технологического института (ETH) в Цюрихе. Автор и разработчик языков PL360, Algol-W, Pascal, Modula-2, Oberon (совместно с профессором Х. Мессенбоком); персонального компьютера Lilith и т. д.
Из сборника «Андрей Петрович Ершов — ученый и человек». Новосибирск, 2006 г.
Перепечатываются с разрешения редакции.