Наталья Дубова
Плачевное состояние советской вычислительной техники сегодня, как говорится, налицо. Окидывая беглым взглядом эту некогда славную империю, родину знаменитых БЭСМов, давшую миру столько выдающихся инженеров – специалистов в компьютерной области, видишь лишь дым пожарища. Все сгорело!..
Нет, где-то вроде еще теплится жизнь. Вот остатки НИЦЭВТ под флагом IBM, вот ИНЭУМ, тоже еще живой... И все же это погорельцы. Однако, как было ясно еще Грибоедову, и дым отечества нам сладок и приятен. Бросим еще один взгляд на родные пепелища. Если и не утешимся, то по крайней мере ответим на кое-какие вопросы. Например: была ли у нас альтернатива западному пути в компьютеростроении, как была она в космонавтике и оборонной промышленности? Или для нас неизбежным было копирование IBM, как в политике и экономике единственным выходом оказалась западная либерализация? А может быть либерализация 90-х годов стала неизбежной после всеобщего поворота к архитектуре IBM в конце 60-х годов?
Как бы то ни было, печальный итог вполне закономерен. Можно говорить о негибкости советской экономики вообще, о принципиальной для нее невозможности воспринимать и эффективно использовать достижения научно-технического прогресса. В сфере вычислительной техники все экономические пороки проявили себя раньше и ярче, чем в других отраслях советской промышленности. Возможно, потому, что именно здесь последние 50 лет идет наиболее интенсивное, захватывающее широкий круг людей научно-техническое развитие.
И тем не менее, кажется, все могло быть иначе. Не вызывает сомнения тот факт, что Советский Союз в 50-е – 60-е годы имел очень сильную научную школу, точнее, несколько школ разработки вычислительной техники. Первые модели электронных счетных машин появляются примерно в одно и то же время в США и Европе (Англия) и чуть позже в СССР. Идеи создания таких машин зарождаются в разных странах, можно сказать, параллельно.
Когда советские ученые начинали свои разработки, они знали, что на Западе ЭВМ уже существуют. Однако сведения были весьма скудными, и на данном этапе говорить о каком-либо копировании западных образцов нельзя. Идеи и разработки были совершенно оригинальными.
В конце 60-х годов в стране был накоплен достаточный опыт по производству ЭВМ. В этот момент делается решительный шаг от многообразия к унификации, от моделей с различными принципами организации к серии машин единой архитектуры разной производительности. В качестве образца такой единой серии выбирается архитектура мейнфреймов IBM 360. Этот поворотный момент в истории советской вычислительной техники трактуется по-разному, в том числе, как начало ее конца. Однако, как мы видим сегодня, при всем многообразии моделей, есть ряд определяющих архитектурных стандартов, которых придерживаются разработчики компьютеров во всем мире.
В пользу выбора архитектуры американских машин говорит также тот факт, что в нашей стране практически отсутствовала индустрия программного обеспечения. Воспроизведение архитектурных принципов западных систем автоматически давало нам в руки богатейшую библиотеку ПО.
Другое дело, что создание IBM- или DEC-подобных компьютеров происходило, по сути, без возможности легального доступа к первоисточникам. Можно только предположить, насколько плодотворным было бы открытое сотрудничество ученых двух стран. Однако тогда машины воспроизводились во многом на основании лишь примерных сведений об их прототипах, так что нашим разработчикам все же оставался большой простор для творчества. Создатели ЕС и СМ настаивают на том, что эти машины являются оригинальными разработками, ориентированными на отечественную промышленность.
Общение с ведущими специалистами советского компьютеростроения 70-х – 80-х годов позволяет сделать вывод, что одной из основных причин печального конца отечественного компьютеростроения была очень слабая элементная база. Уже в 80-е годы отстававание на уровне чипов было катастрофическим, и о создании конкурентоспособных ПК в стране не могло быть и речи. Опять же запрет на использование западной микроэлементной базы, который можно объяснить только политическими соображениями, не давал возможности производить вычислительную технику на современном уровне. Если бы такого запрета не было, вероятно, дела пошли бы иначе. Во всяком случае, опыт современных российских сборщиков позволяет так думать.
На мой взгляд, нашей главной бедой в этой области было отсутствие нормальной интеграции в мировой процесс развития вычислительной техники. Если бы работа шла в условиях сотрудничества на равных, то при нашем научном потенциале наверняка результаты были бы совсем иные.
А начиналось все, как уже говорилось, параллельно и независимо, в характерной для холодной войны обстановке глубочайшей секретности. В США главным заказчиком зарождающейся вычислительной техники было Министерство обороны. У нас в конце 40-х – начале 50-х годов появляются первые идеи, первые проекты и, наконец, первые цифровые вычислительные машины – совершенно оригинальные, не скопированные с западных образцов. Собственно, никаких образцов и быть не могло. Формируются основные научные школы, создававшие машины первого и второго поколений. Это прежде всего школа выдающегося ученого, основоположника ЦВМ в нашей стране, академика С.А.Лебедева. Это школа И.С. Брука, под руководством которого создавались малые и управляющие ЭВМ. Это Пензенская научная школа, которую возглавлял Б.И. Рамеев и которая до конца 60-х годов успешно занималась универсальной вычислительной техникой общего назначения (см. схему ). Безусловно, в одной статье невозможно дать полную картину развития советской вычислительной техники. За рамками нашего рассказа останется многое: деятельность выдающегося ученого В.М.Глушкова – блестящего теоретика и практика в деле разработки вычислительной техники, еще в 60-е годы выдвинувшего идею создания глобальной информационной инфраструктуры по управлению экономическими процессами; разработка ЭВМ для спецприменений, которой занимались Н.Я. Матюхин и М.А.Карцев, ученики И.С.Брука; компьютеростроение в Белоруссии и Армении, разработка нетрадиционных архитектур ЭВМ. Каждая из этих тем заслуживает отдельного разговора. Да мы и не стремились охватить все. Равно как и не можем гарантировать абсолютной объективности изложения, поскольку опирались в основном на субъективные воспоминания участников тех событий. Но, без сомнения, историю развития ЭВМ в своем отечестве надо знать. Надо знать, что она была, богатая событиями и выдающимися личностями. "И дым отечества нам сладок и приятен"ѕ
В первые послевоенные годы Сергей Александрович Лебедев был директором Института электротехники АН Украины и по совместительству руководил лабораторией Института точной механики и вычислительной техники АН СССР. В этих научных организациях и была начата разработка первых действующих ЭВМ. Нашим ученым было известно о создании в США машины ENIAC – первой в мире ЭВМ с электронными лампами в качестве элементной базы и автоматическим программным управлением. В 1948-49 годов в Англии появились вычислительные машины с хранимыми в памяти программами. Сведения о разработках на Западе поступали отрывочные, и, естественно, документация по первым ЭВМ была недоступна нашим специалистам.
Лебедев начал работу над своей машиной в конце 1948 года. Разработка велась под Киевом, в секретной лаборатории в местечке Феофания. Независимо от Джона фон Неймана Лебедев выдвинул, обосновал и реализовал в первой советской машине принципы построения ЭВМ с хранимой в памяти программой. Малая электронная счетная машина (МЭСМ) – так называлось детище Лебедева и сотрудников его лаборатории – занимала целое крыло двухэтажного здания и состояла из 6 тысяч электронных ламп. Ее проектирование, монтаж и отладка были выполнены в рекордно быстрый срок – за 2 года, силами всего лишь 12 научных сотрудников и 15 техников. Те, кто создавал первые вычислительные машины, были одержимы своей работой, и это вполне объяснимо. Несмотря на то, что МЭСМ по существу была лишь макетом действующей машины, она сразу нашла своих пользователей: к первой ЭВМ выстраивалась очередь киевских и московских математиков, задачи которых требовали использования быстродействующего вычислителя.
В своей первой машине Лебедев реализовал основополагающие принципы построения компьютеров, такие как:
наличие арифметических устройств, памяти, устройств ввода/вывода и управления;
кодирование и хранение программы в памяти, подобно числам;
двоичная система счисления для кодирования чисел и команд;
автоматическое выполнение вычислений на основе хранимой программы;
наличие как арифметических, так и логических операций;
иерархический принцип построения памяти;
использование численных методов для реализации вычислений.
После Малой электронной машины была создана и первая Большая – БЭСМ-1, над которой С.И. Лебедев работал уже в Москве, в ИТМ и ВТ АН СССР. В 1953 году, после сдачи новой ЭВМ в эксплуатацию, ее создатель стал действительным членом АН СССР и директором института, который был в то время средоточием научной мысли в области вычислительной техники.
Одновременно с ИТМ и ВТ и конкурируя с ним, разработкой ЭВМ занималось недавно сформированное СКБ-245 со своей ЭВМ "Стрела". Между этими двумя организациями шла борьба за ресурсы, причем промышленное СКБ-245, находившееся в ведомстве Министерства машиностроения и приборостроения, часто получало приоритет по отношению к академическому ИТМиВТ. Только на "Стрелу", в частности, были выделены потенциалоскопы для построения запоминающего устройства, а разработчикам БЭСМ пришлось довольствоваться памятью на ртутных трубках, что серьезно повлияло на первоначальную производительность машины.
БЭСМ и "Стрела" составили парк созданного в 1955 году Вычислительного центра АН СССР, на который сразу легла очень большая нагрузка. Потребность в сверхбыстрых (по тем временам) расчетах испытывали математики, ученые-термоядерщики, первые разработчики ракетной техники и многие другие. Когда в 1954 году оперативная память БЭСМ была укомплектована усовершенствованной элементной базой, быстродействие машины (до 8 тысяч операций в секунду) оказалось на уровне лучших американских ЭВМ и самым высоким в Европе. Доклад Лебедева о БЭСМ в 1956 году на конференции в западногерманском городе Дармштадте произвел настоящий фурор, поскольку малоизвестная советская машина оказалась лучшей европейской ЭВМ. В 1958 году БЭСМ, теперь уже БЭСМ-2, в которой память на потенциалоскопах была заменена ЗУ на ферритовых сердечниках и расширен набор команд, была подготовлена к серийному производству на одном из заводов в Казани. Так начиналась история промышленного выпуска ЭВМ в Советском Союзе.
МЭСМ, "Стрела" и первые машины серии БЭСМ – это вычислительная техника первого поколения. Элементная база первых вычислительных машин – электронные лампы – определяла их большие габариты, значительное энергопотребление, низкую надежность и, как следствие, небольшие объемы производства и узкий круг пользователей, главным образом, из мира науки. В таких машинах практически не было средств совмещения операций выполняемой программы и распараллеливания работы различных устройств; команды выполнялись одна за другой, АЛУ простаивало в процессе обмена данными с внешними устройствами, набор которых был очень ограниченным. Объем оперативной памяти БЭСМ-2, например, составлял 2048 39-разрядных слов, в качестве внешней памяти использовались магнитные барабаны и накопители на магнитной ленте.
Более производительной была следующая разработка Лебедева – ЭВМ М-20, серийный выпуск которой начался в 1959 году. Число 20 в названии означает быстродействие – 20 тысяч операций в секунду, объем оперативной памяти в два раза превышал ОП БЭСМ, предусматривалось также некоторое совмещение выполняемых команд. В то время это была одна из самых мощных машин в мире, и на ней решалось большинство важнейших теоретических и прикладных задач науки и техники.
Очень трудоемким и малоэффективным был процесс общения человека с машиной первого поколения. Как правило, сам разработчик, написавший программу в машинных кодах, вводил ее в память ЭВМ с помощью перфокарт и затем вручную управлял ее выполнением. Электронный монстр на определенное время отдавался в безраздельное пользование программисту, и от уровня его мастерства, способности быстро находить и исправлять ошибки и умения ориентироваться за пультом ЭВМ во многом зависела эффективность решения вычислительной задачи. Ориентация на ручное управление определяла отсутствие каких бы то ни было возможностей буферизации программ.
Надо отметить, что первые шаги к созданию основ системного программного обеспечения Лебедев сделал в машине М20,где были реализованы возможности написания программ в мнемокодах. И это значительно расширило круг специалистов, которые смогли воспользоваться преимуществами вычислительной техники.
В 1948 году американскими учеными был создан полупроводниковый транзистор, который стал использоваться в качестве элементной базы ЭВМ. Это изобретение позволило разработать машины значительно меньших габаритов и энергопотребления и гораздо более высокой производительности и надежности при меньшей стоимости. Для машин второго поколения тем более актуальной становилась задача автоматизации программирования, поскольку увеличивался разрыв между временем на разработку программ и непосредственно временем счета. Второй этап развития вычислительной техники конца 50-х – начала 60-х годов характеризуется созданием развитых языков программирования (Алгол, Фортран, Кобол) и освоением процесса автоматизации управления потоком задач с помощью самой ЭВМ, то есть разработкой операционных систем. Первые ОС автоматизировали работу пользователя по выполнению задания, а затем были созданы средства ввода нескольких заданий сразу (пакета заданий) и распределения между ними вычислительных ресурсов. Появился мультипрограммный режим обработки данных.
Если говорить в общих чертах о структурных изменениях машин второго поколения, то это, прежде всего, появление возможности совмещения операций ввода/вывода с вычислениями в центральном процессоре, увеличение объема оперативной и внешней памяти, использование алфавитно-цифровых устройств для ввода и вывода данных. "Открытый" режим использования машин первого поколения сменился "закрытым", при котором программист уже не допускался в машинный зал, а сдавал свою программу на алгоритмическом языке оператору ЭВМ, который и занимался ее дальнейшим пропуском на машине.
Компьютеры этого времени становились более доступными, расширялась область их применения и наряду с задачами вычислительными появлялись задачи, связанные с обработкой текстовой информации. Их решение стало возможным благодаря появлению команд, оперирующих символами. Тогда же, кстати, появился восьмиразрядный байт, байтовая струтктура ОП, более удобная для работы с текстами. Машины первого поколения имели гораздо большую разрядность, например, в БЭСМ-1 было 39 разрядов.
К концу 50-х годов советская электронная промышленность освоила и начала серийный выпуск транзисторов. Таким образом, появилась возможность создания ЭВМ на полупроводниковой элементной базе. Ярчайший представитель советских ЭВМ второго поколения – БЭСМ-6, вершина научного творчества С.А. Лебедева и его коллег. Рассказать об этой машине мы попросили чл.-кор. РАН Геннадия Георгиевича Рябова, директора ИТМиВТ, который много лет работал с Лебедевым и знает о легендарной БЭСМ-6 практически все. По его словам, при разработке этой машины с самого начала была задана высокая планка – приблизиться к производительности в миллион одноадресных операций в секунду. И это высочайшее на тот момент быстродействие было достигнуто.
Однако не только, и даже не столько высокой производительностью отличается эта машина. Многие принципы ее структурной организации были революционными для своего времени и, по существу, предвосхищали архитектурные особенности машин третьего поколения.
По целому ряду свойств это была необычная машина. Здесь было реализовано расслоение оперативной памяти на блоки, допускающие одновременную выборку информации, что позволяло резко повысить быстродействие обращений к системе памяти. Метод буферизации запросов к системе памяти вместе со специальными механизмами устройства управления давал возможность сгладить неравномерность поступления запросов к памяти и тем самым повысить эффективность ее использования. Еще одной структурной особенностью БЭСМ-6 является появление прообраза современной кэш-памяти – сверхоперативной, неадресуемой из программы памяти небольшого объема, в которой размещались часто используемые операнды и небольшие внутренние командные циклы. Применение таких быстрых регистров позволяло сократить число обращений к ОЗУ и существенно повысить общее быстродействие машины.
Перечисленные особенности структурной организации получили название "вододпроводной" структуры машины. По существу, впервые в советских ЭВМ было реализовано конвейерное асинхронное выполнение команд процессора. Кроме того, в БЭСМ-6 нашла воплощение идея виртуальной памяти – аппаратный способ преобразования математических (виртуальных) адресов в физические. Поддерживалась постраничная организация памяти и на этой основе – средства защиты информации, была создана развитая система прерываний, необходимая для эффективной реализации многозадачности и обращения к внешним устройствам.
Интересные архитектурные решения ЭВМ, как правило, имеют определенные излишества, которые требуют дополнительной аппаратуры. В то же время машина, предназначенная для серийного выпуска, должна быть достаточно рациональна в конструктивном отношении. В этой связи Г.Рябов подчеркнул, что С.А.Лебедев, генеральный конструктор БЭСМ-6, был действительно гениальным инженером: он сумел разработать во многих отношениях оригинальную архитектуру и в то же время отсечь все лишнее, все дополнительные компоненты, способные снизить надежность основной аппаратуры.
Заместителем С.А.Лебедева при разработке новой машины был Владимир Андреевич Мельников. Государственные испытания БЭСМ-6 завершились в 1967 году. А демонтаж последней машины этой марки произошел всего три-четыре года тому назад. По словам Г.Рябова, подобная ситуация уникальна – вряд ли в мире удастся найти другую модель, которая эксплуатировалась бы почти 25 лет. За все время существования БЭСМ-6 московским заводом САМ было выпущено 350 таких машин. Несмотря на отсутствие серийности производства в полном смысле этого слова – печатный монтаж находился в зачаточном состоянии, очень многие операции выполнялись вручную – роль этой системы для отечественной науки и народного хозяйства в целом трудно переоценить. На основе БЭСМ-6 создавались центры коллективного пользования, координационно-вычислительные системы телеобработки и т.д. Один пример: БЭСМ-6 успешно эксплуатировалась в центре управления полетами, в частности, при обработке информации по программе "Союз-Аполлон". География применения БЭСМ-6 тоже впечатляет: эта машина работала не только в обеих столицах, но и на Дальнем Востоке, в Новосибирске, Иркутске и многих других городах Советского Союза.
Будучи универсальной, а не управляющей машиной, БЭСМ-6, тем не менее, могла использоваться в системах управления реального времени за счет высокой скорости обработки данных, а также очень хорошего программного обеспечения. О матобеспечнии этой машины стоит сказать особо. При создании БЭСМ-6 впервые с успехом объединились как инженерные, так и математические научные силы. И именно начиная с БЭСМ-6 матобеспечение стало поставляться заводом-изготовителем как неотъемлемая часть системы. Институт прикладной математики АН СССР, Вычислительный центр Академии наук, Московский Государственный Университет сделали очень многое, чтобы достойно "одеть" новую машину. Созданная в Университете библиотека численных методов для БЭСМ-6 сама по себе представляла огромную ценность.
Структурные особенности БЭСМ-6, такие как постраничная организация памяти, защита, механизмы прерываний и поддержка режимов многозадачности, позволяли развернуть на ней полноценную операционную систему. Такая операционная система была разаработана в МГУ под руководством член-корреспондента АН СССР Льва Николаевича Королева.
В дальнейшем ИТМиВТ продолжил работы по созданию суперЭВМ, разработав семейство высокопроизводительных машин "Эльбрус". Этот проект был начат еще Лебедевым, а после его смерти работу и институт возглавил ученик и соратник ученого Всеволод Сергеевич Бурцев. В конце 60-х в стране были начаты работы по созданию единой серии ЭВМ общего назначения, о чем мы подробнее поговорим позже. Надо сказать, что С.А.Лебедеву предлагали возглавить этот масштабный проект, однако академик предпочел развивать линию вычислительных систем сверхвысокой производительности. Разработка таких "предельных" машин имела определенные отличия от создания универсальных ЭВМ, поскольку здесь предъявлялись максимальные требования и к архитектуре, и к элементной базе, и к конструкции вычислительной системы.
Говоря об "Эльбрусах", нам придется несколько забежать вперед, поскольку эти ЭВМ относятся даже не к третьему, а к четвертому поколению вычислительной техники. В работе над "Эльбрусами" и ряде предшествующих им разработок института во главу угла ставились вопросы эффективной реализации отказоустойчивости и безостановочной работы системы. Поэтому в них появляются такие особенности, как многопроцессорность и связанные с ней средства распараллеливания ветвей задачи.
Многопроцессорный вычислительный комплекс Эльбрус-1, выпущенный в 1979 году, включал 10 процессоров и базировался на схемах средней интеграции. В этой машине советские ученые опередили американцев, создав симмеричную многопроцессорную систему с общей памятью. По принципам построения система команд ЦП "Эльбрусов" близка системе команд машин компании Burroughs, считающейся нетрадиционной. Машина Эльбрус-1 обеспечивала быстродействие от 1,5 млн. до 10 млн. оп/с, а Эльбрус-2 – более 100 млн. оп/с.
Эльбрус-2, работа над которым была завершена в 1985 году, также представлял собой симметричный многопроцессосрный вычислительный комплекс из 10 суперскалярных процессоров на матричных полузаказных БИС, которые выпускались в Зеленограде. Серийное производство машин такой сложности потребовало срочного развертывания систем автоматизации проектирования ЭВМ, и эта задача была решена под руководством Г.Г.Рябова настолько успешно, что ее авторы были удостоены Государственной премии.
"Эльбрусы" вообще несли в себе ряд революционных новшеств. Суперскалярность процессорной обработки, симметричная многопроцессорная архитектура с общей памятью, реализация защищенного программирования с аппаратными типами данных – все эти возможности появились в отечественных машинах раньше, чем на западе. Г.Г.Рябов особо выделил создание единой операционной системы для многопроцессорных комплексов, которым руководил Борис Арташесович Бабаян, в свое время отвечавший за разработку системного программного обеспечения БЭСМ-6. Одной из важнейших задач этой ОС было управление параллельно выполняющимися процессами и их синхронизация.
Наконец, функционирование столь масштабных систем требовало особого внимания к вопросам сопровождения и ремонта, замены элементов, обеспечения нон-стопности и помехоустойчивости ЭВМ, поиска эффективных решений проблемы теплоотвода и т.д.
"Эльбрусы" были мощными счетными машинами, потребность в которых испытывали многие научные организации. Но основным заказчиком этих комплексов был ВПК. Машины работали в целом ряде важных систем, связанных с обработкой радиолокационной информации, на них считали в номерных Арзамасе и Челябинске, ими комплектовалась обработка данных в центре управления полетами. На некоторых крупных объектах "Эльбрусы" функционируют и по сей день.
Интересно, что в рамках программы "Эльбрус" в конце 80-х годов была создана микроэлектронная копия БЭСМ-6 – суперЭВМ "ЭльбрусБ" (руководитель работы – М.В.Тяпкин), на которой можно было работать в системе команд БЭСМ-6. Этих машин было выпущено немного, не более десятка экземпляров, из них четыре стояли в вычислительном центре МГУ. Благодаря им эстафетная палочка богатейшего матобеспечения БЭСМ6 была передана в 80–90-е годы.
Работа над последней машиной семейства, Эльбрус-3, с быстродействием до 1 млрд. оп/с и 16 процессорами, была закончена в 1991 году. Однако на существовавшей в тот момент элементной базе система получилась чересчур громоздкой. Кроме того, как отмечает Г.Г.Рябов, в это время развитие рабочих станций и появление возможностей строить комплексы на их основе позволяли сделать вывод, что наращивание мощности за счет более простых структур во многих отношениях может оказаться экономически эффективнее.
По понятным причинам ИТМиВТ сейчас переживает не лучшие времена. Часть специалистов во главе с чл.-кор. РАН Б.А.Бабаяном в начале 90-х годов выделилась из института и создала Московский Центр SPARC-технологий. Б.А.Бабаян был основным идеологом архитектуры комплексов "Эльбрус". И в 90-е годы главными направлениями деятельности его коллектива, который работает в тесном сотрудничестве с рядом западных компаний, и прежде всего Sun Microsystems, являются разработка современных микропроцессорных архитектур и создание сверхоптимального компилятора для эффективного использования программного параллелизма. В конце 1998 года правопреемник Центра SPARC-технологий, компания МЦСТ, и созданнная в 1994 году также выходцами из ИТМиВТ компания Эльбрус-2000, объединились в Группу Эльбрус, которая продолжит работы в сфере современных компьютерных технологий и системной интеграции на основе рабочих станций и серверов Sun.
В самом ИТМиВТ ведутся работы по более узким специализациям. Директор института убежден, что на современном этапе использование полноразрядных микропроцессорных архитектур Intel или других компаний, которые находятся на самом пике своего развития, будет дополняться специализированным обрамлением – полузаказными БИС или программируемыми логическими матрицами. По мнению Г.Г.Рябова, интеллектуальный потенциал института необходимо использовать именно в этом направлении. Опыт быстрой и гибкой разработки специализированной логики накоплен специалистами ИТМиВТ еще при создании "Эльбрусов". Г.Г.Рябов считает, что хотя институт не может конкурировать с ведущими мировыми производителями универсальных чипов, разработка логических структур специализированных процессоров для определенных задач – как раз та ниша, которую он способен занять в международной компьютерной кооперации. Во всяком случае, в нашей стране ИТМиВТ уже имеет ряд таких заказов.
В следующем очерке речь пойдет о научных школах И.С.Брука и Б.И. Рамеева.
Воспоминания Дональда Кнута об Андрее Ершове
Андрей Ершов на конференции Algorуthms in Modern Mathematics and Computer Science, СССР, Ургенч, 1979 год |
Редакторы попросили меня записать некоторые из моих личных воспоминаний об Андрее Ершове. Хотя мы с Андреем жили на разных концах Земли и нас разделяло почти 12 часовых поясов, его жизнь оказала на мою значительное положительное влияние.
Это началось еще когда я был студентом последнего курса института Case Institute of Technology. Тогда только появилась книга Андрея "Программирование для БЭСМ", и мы, группа студентов, смогли убедить преподавателя русского языка включить ее в курс в качестве одного из двух сборников текстов для изучения научной лексики. Для нас это был замечательный опыт работы, поскольку многие технические компьютерные термины нельзя было найти в наших словарях, и даже преподаватель некоторые из них раньше вообще не слышал! (Выполненный Недлером перевод на английский язык тогда еще не был издан.) Мы почувствовали, что видим "настоящий" русский язык в том виде, в каком он действительно используется в науке; книга произвела на нас намного более сильное впечатление, чем второй текст, в котором говорилось о спутниках и исследовании космоса, но на очень примитивном уровне.
Эта книга не только помогла мне лучше освоить русский язык; из нее я узнал интересные алгоритмы оптимизации компилятора. На самом деле ранняя работа Андрея, которая послужила толчком к созданию этой важной области компьютерной науки, до сих пор вызывает интерес. Его метод изложения материала также оказался весьма значимым: блок-схемы, представленные впервые в его книге, я впоследствии использовал для иллюстрации процесса выполнения программы в своей статье Computer-drawn flow charts ("Блок-схемы, построенные компьютером"), изданной в Communications of the ACM, сентябрь 1963, стр. 555-563) и последующей серии книг "Искусство программирования".
Первая личная встреча с Андреем произошла на конференции рабочей группы IFIP, где готовился преемник языку Algol-60. К тому времени я узнал, что Андрей независимо от Джина Амдала изобрел хеширование с линейным числом испытаний - важный алгоритм, изучение которого стало поворотным моментом моей жизни, поскольку привело меня в область алгоритмического анализа. (См. сноску на стр. 529 в моей книге Sorting and Searching ("Сортировка и поиск"); в русском переводе эта сноска находится на стр. 628). Я был наслышан о новых методах, входящих в состав проекта языка Alpha, который вел Андрей. Поэтому я был крайне рад возможности встретиться с ним лично, тем более что, как выяснилось, он свободно владеет английским языком. Мы проговорили около двух часов о компиляторах и языках, пока он копировал на ксероксе многочисленные документы для этой конференции.
Впоследствии мы смогли чаще с ним видеться, поскольку он регулярно приезжал на встречи с Джоном Маккарти в Стэнфордский университет. Один из таких визитов стал первопричиной, пожалуй, самого памятного для меня события - моего
участия в конференции Algorуthms in Modern Mathematics and Computer Science ("Алгоритмы в современной математике и компьютерной науке"), состоявшейся в СССР в Ургенче в 1979 году. Эта конференция - паломничество ученых к святым местам, к месту рождения самого понятия "алгоритм" - для меня оказалась мечтой, ставшей явью. Хотя мы с Андреем официально числились сопредседателями конференции, на самом деле Андрей взял на себя 99% работы, в то время как я мог отдыхать и наслаждаться происходящим, узнавая множество важного от людей, с которыми здесь встречался. Такое бывает раз в жизни, и я надеюсь, что многие ученые, работающие в области компьютерных наук, смогут поучаствовать в аналогичной встрече, если кто-то вдохновится примером Андрея. За эту неделю я узнал его намного лучше и был особенно поражен тем, насколько блестяще он справлялся со всеми многочисленными ролями: руководителя конференции, организатора, философа, оратора, переводчика и редактора.
У меня есть немало других воспоминаний, в том числе и о замечательном случае, когда мы с женой встретили Андрея на вечере американской кадрили и он исполнял Virginia Reel и "до-си-до", но того, что уже сказано, вполне достаточно, чтобы понять, насколько важную роль в моей жизни сыграл Андрей.
Во время его последнего визита в Стэнфорд я узнал о громадной работе, которую он вел в последние годы жизни, о революционных изменениях в преподавании компьютерных наук миллионам студентов, о чем с восторгом говорили во всем мире. Мы все скорбим о том, что жизни Андрея было предначертано закончиться так скоро, мы восторгаемся тем многим, что удалось ему совершить, и знаем, что плоды его жизни станут источником знаний для следующих поколений ученых всего мира, работающих в области компьютерных наук.
Редакция "Открытых систем" благодарит С. В. Клименко за помощь в подготовке к публикации воспоминаний Дональда Кнута
Из плеяды первых отечественных программистов
Гелий Рузайкин
Андрей Петрович Ершов родился в Москве в 1931 г. Окончил механико-математический факультет Московского Государственного Университета в 1954 г. по специальности вычислительная математика, является учеником Алексея Андреевича Ляпунова. Будучи студентом четвертого курса прослушал цикл лекций "Принципы программирования", прочитанный Ляпуновым, и во многом определивший выбор программирования в качестве жизненного пути. В то же самое время Андрей Петрович начал работать в ИТМиВТ АН СССР, участвуя в подготовке приемных испытаний машины БЭСМ. Им была разработана в качестве тестовой задачи программа обращения матрицы.
На втором году учебы в аспирантуре приступил к организации отдела теории программирования в ВЦ АН СССР. Выполненные им исследования по созданию программирующей программы для БЭСМ были опубликованы в 1958 г. Их результаты составили первую в мире монографию по автоматизации программирования.
Наряду с научной деятельностью Ершов с первых же шагов занятий программированием участвовал в процессе преподавания: еще студентом по просьбе С.А. Лебедева читал лекции по программированию для разработчиков БЭСМ, а в 1957 г. впервые с его участием были организованы занятия со студентами на мехмате.
По приглашению академика С.Л. Соболева в 1960 г. Ершов начинает работать заведующим лаборатории в Сибирском отделении АН СССР. В дальнейшем переходит на работу в созданный ВЦ, СО АН СССР, с которым и связана его научно-педагогическая работа. Основные направления его деятельности связаны с вопросами автоматизации программирования и проблемами теоретического программирования, объектами которого служат математические абстракции программ. Его перу принадлежат многие статьи в отечественных и зарубежных научных изданиях и ряд книг.
В 1970 г. был избран членом-корреспондентом, а в 1984 г. академиком АН СССР. Зарубежные коллеги удостоили его чести и избрали членом ACM (1965 г.) и почетным членом Британского общества по вычислительной технике (1974 г.).
Андрей Петрович принимал активное участие в научной жизни в стране и за рубежом, его часто можно было видеть среди организаторов и выступающих на семинарах, симпозиумах и других мероприятиях. Его доклады вызывали неизменный интерес и нередко служили поводом для широких обсуждений. Так на Второй всесоюзной конференции по программированию в 1970 г., проходившей в Академгородке в Новосибирске, он убежденно отстаивал тезис, что программа наконец стала товаром, и это требует соответствующего отношения со стороны государства как к продукту, так и к его творцу - программисту.
Андрей Петрович Ершов был избран вице-президентом конгресса IFIP, членом редакционных коллегий многих научных изданий и Председателем Научного совета по комплексной проблеме "Кибернетика" АН СССР.