Академик А. П. Ершов — пионер и лидер отечественного программирования
Андрей Петрович Ершов — ученый и человек

Академик А. П. Ершов — пионер и лидер отечественного программирования

[1]

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

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

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

В 1954 г. А. П. Ершов закончил университет — это был первый в советских вузах массовый выпуск по специальности «программирование». С 1954 по 1957 г. он аспирант А. А. Ляпунова в Московском университете. Его первой статьей была опубликованная в 1955 году в Докладах Академии наук работа «Об одном методе обращения матриц», но Ершов не был бы программистом, если бы он сам не написал стандартную программу для БЭСМ, реализующую этот новый, предложенный им метод. Кандидатскую диссертацию, посвященную понятию операторного алгорифма, Ершов подготовил к 1958 г., однако в связи с настороженным отношением «чистых» математиков к новой науке защитить ее ему удается только в 1962 г. Докторская диссертация по методам построения трансляторов защищается им в 1968 г. В 1970 г. он становится членом-корреспондентом, а в 1984 г. — академиком АН СССР.

Такое быстрое продвижение связано с тем, что уже в конце 50-х годов Ершов становится одним из ведущих советских программистов — не только благодаря своим собственным блестящим научным результатам, но и как руководитель плодотворно работающих программистских коллективов. В 1957 г. он становится заведующим отделом автоматизации программирования в только что организованном Вычислительном центре АН СССР. В связи с созданием Сибирского отделения АН СССР по приглашению директора Института математики СО АН академика C. Л. Соболева он принимает на себя обязанности организатора и фактического руководителя отдела программирования этого института, продолжая работу в Москве.

В 1960 г. Ершов окончательно переезжает в Сибирь, возглавляемый им отдел программирования сначала входит в состав Института математики, а затем переходит в Вычислительный центр СО АН,  созданный Г. И. Марчуком в 1964 году. 

Сибирское отделение привлекало молодых активных ученых большими возможностями организации новых масштабных исследований, и Ершов был одним из тех, кто в конце 50-х и начале 60-х годов вместе с академиками-основателями создавал институты нового научного центра. Благодаря Ершову Академгородок становится одним из ведущих программистских центров. Он создал известную новосибирскую школу системного и теоретического программирования, исследования которой складывались из работ его учеников и последователей в различных новосибирских институтах. Сам Ершов, будучи только заведующим отделом и отделением Вычислительного центра, стал идейным руководителем и неформальным главой большого и активно работающего содружества новосибирских программистов.

Велико влияние Ершова и на развитие программистской науки и практики в стране в целом. Это влияние далеко не ограничивалось тем, что он был главой одной из ведущих советских научных школ, или его большим личным научным вкладом. С конца 60-х годов он становится в центре программистской жизни в СССР. Он был одним из основных организаторов первых национальных конференций по программированию, большого числа национальных конференций, семинаров и школ по различным проблемам системного и теоретического программирования, членом редколлегий основных советских программистских журналов, редактором (с момента его образования) журнала «Микропроцессорные средства и системы», председателем ряда национальных комиссий и рабочих групп. В 1987 г. он становится председателем Совета по кибернетике, который координирует все отечественные академические исследования по информатике и программированию.

Вообще, понимая, как важна научно-организационная работа в период становления новых научных направлений, А. П. Ершов уделял ей много внимания, и не только в национальном масштабе. Он активно участвовал в работе Международной федерации по обработке  информации (IFIP) — был членом ряда комитетов и рабочих групп IFIP, активным участником ряда конгрессов, в том числе вице-председателем программного комитета IFIP-68, приглашенным докладчиком IFIP-71, организатором рабочих конференций IFIP. В 1980 г. за свою деятельность в IFIP он был награжден знаком отличия «Серебряный сердечник» (Silver Core). Он входил в состав редколлегий таких международных изданий как «Information Processing Letters», «Theoretical Computer Science» и др. Его международные творческие и дружеские связи были обширны. Он выступал с приглашенными докладами в Европе, Японии и США. С 1965 г. он — член Ассоциации по вычислительной технике США (АСМ), в 1974 г. стал почетным членом Британского вычислительного общества (BCS). В последние годы жизни А. П. Ершов уделяет много внимания информатике образования.

А. П. Ершов выступал как признанный авторитет и вдумчивый эксперт многих советских программных проектов — они задумывались и выполнялись под его влиянием. Будучи внимательным и заботливым учителем, он уделял много времени подготовке программистских кадров. Среди его учеников — большое число кандидатов наук и несколько докторов наук в различных городах Советского Союза. Собственно преподавательскую работу он начал в 1958 г. — сначала в Московском, затем в Новосибирском университете, в котором он был профессором. В Новосибирском университете он был организатором и бессменным руководителем коллектива, ведущего подготовку студентов и аспирантов в области системного и теоретического программирования.

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

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

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

Первой такой областью были языки и системы программирования, и в ней, начиная со своих ранних работ, Ершов занимает ведущие позиции. Он входил в число разработчиков Программирующей программы для БЭСМ — одного из первых отечественных трансляторов. Достаточно вспомнить, что он первым (во всяком случае — впервые в отечественном программировании) предложил такую языковую конструкцию как цикл и такой метод как функция расстановки (хэш-функция). В 1958 г. он опубликовал первую в мировой практике монографию по трансляции, ставшую широко известной и переведенную в дальнейшем на английский и китайский языки. Опыт и идеи задуманных и руководимых Ершовым проектов — первого оптимизирующего транслятора Альфа с языков типа АЛГОЛ, первого кросс-транслятора АЛГИБР, транслятора АЛЬФА-6 для ЭВМ БЭСМ-6, многоязыковой транслирующей системы БЕТА — стали составной частью современного фундамента трансляции.

Особое место в работах Ершова занимает проект АИСТ. Начальный его этап — АИСТ-0 — представлял собой одну из первых отечественных мультипроцессорных систем для ЭВМ М-20, снабженную богатым программным обеспечением, реализующим различные режимы обслуживания — от пакетного до разделения времени. К сожалению, эта несомненно новаторская и оригинальная работа была прекращена в связи с принятием (по-видимому, ошибочной) национальной программы развития Единой системы (ЕС) ЭВМ, клона серии ЭВМ IBM/360.  Эдсгер Дейкстра как-то не без сарказма заметил по этому поводу: «Тот факт, что Советский Союз перешел на архитектуру IBM, можно считать наиболее убедительной победой Запада в холодной войне».

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

Наиболее показательной можно считать историю русского термина «информатика», инициатива применения которого в нашей стране принадлежит Ершову. Термин этот возник в 60-х годах в ряде европейских стран (Informatik — в Германии, informatique — во Франции и т. д.) для обозначения области деятельности, связанной с автоматизированной обработкой информации с помощью электронных вычислительных машин. В англоязычных странах ему соответствует computer science. Со временем, осмыслив накопленный, специфический для новой научной дисциплины багаж, Ершов делает решительный шаг и дает термину «информатика» более  широкое толкование, чем традиционно вкладывалось в его английский эквивалент. В работе 1984 г. «О предмете информатики», опубликованной в «Вестнике АН СССР»[2], Ершов очерчивает контуры новой науки, ее смысл и предмет изучения. В его формулировке «информатика — это наука, изучающая закономерности и методы накопления, передачи и обработки информации на основе ЭВМ».

Ершов также ввел в обиход термин «технология программирования», что сыграло не  менее значительную роль. Программисты первого поколения привыкли к тому, что создание программ есть высокоинтеллектуальный труд сродни исследовательскому. В чем-то они были правы, поначалу так и было. Ершов первым (во всяком случае, из отечественных программистов) увидел другую ипостась программирования — не исследовательскую, а производственную — как основу новой отрасли промышленности, занятой производством программного обеспечения. Стремление Ершова провести аналогию между созданием программного обеспечения и промышленным производством, ввести дисциплину, организацию, инструментирование в такой, казалось бы, нерегламентируемый творческий процесс, как программирование, встречало у многих наших коллег конца 60-х годов активное сопротивление и даже резкий протест. Отстаивая свою позицию, он иногда сознательно обострял ее — говорил о «дегероизации трансляции» в том смысле, что создание «хороших» трансляторов с известных языков пусть и сложная, но конструкторская, а не исследовательская задача, ввел термин «фабрика трансляторов». Закрепление термина «технология» в применении к программированию отражает верность такой позиции, но то, что сейчас кажется тривиальным утверждением, Ершову приходилось отстаивать в жарких спорах и дискуссиях.

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

Замечания и суждения Ершова по этому поводу разбросаны во многих его работах, но есть несколько широко известных его статей, многократно переведенных и изданных, которые целиком посвящены не научным или техническим проблемам программирования, а чисто, если можно так выразиться, профессиологическим аспектам — что есть программирование как наука и деятельность, что есть программист как специалист специфического интеллектуального труда. Это такие работы, как «О человеческом и эстетическом факторах в программировании»[3], «Два облика программирования»[4],  «Программирование — вторая грамотность»[5].

Перу Ершова принадлежит великолепная и в чем-то уникальная книга — «Введение в теоретическое программирование (беседы о методе)». Особая значимость этой книги в том, что там ясно показывается, как на основе рассмотрения практических проблем возникают теоретические модели и как эти модели позволяют решать практические задачи. Книга издана в 1977 году, а программистские монографии, как мы хорошо знаем, быстро стареют. Но эта монография вне общего правила: в 1990-е годы вышел ее английский перевод.

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

В дальнейшем Ершов обратился к проблеме преподавания программирования и, более широко, информатики в средней школе. Осознав принципиальную важность обучения информатике, Ершов в последние десять лет своей жизни отдал этому делу и львиную долю своей энергии, и то, что называют жаром души. Ершов был одним из создателей школьной информатики, ее признанным лидером и одним из ведущих мировых специалистов. В работе, написанной вместе с Г. А. Звенигородским и Ю. А. Первиным, «Школьная информатика. Концепции, состояние, перспективы»[6] он определил развитие этого направления вплоть до наших дней. Ершов был одним из авторов и редакторов первого школьного курса информатики, а также методического пособия для учителей, прилагавшегося к этому курсу. Незадолго до его смерти появился новый учебник по информатике, одним из авторов и редактором которого он являлся. Он создавал телевизионный курс по этому предмету, руководил разработкой школьных систем программирования и школьного программного обеспечения вообще, вел большую организационную и экспертную работу. Здесь, как и во многом другом, проявились его активная жизненная позиция, высокое чувство гражданской и общечеловеческой ответственности. Преодолевая множество помех и затруднений, часто мелочных и изматывающих, ведя пропагандистскую, воспитательную, организаторскую работу, выступая в самых неожиданных, но требуемых обстоятельствами амплуа, Ершов отдал становлению школьной информатики много времени и сил.

Научные направления деятельности Ершова многообразны. В принципе это свойственно многим программистам 50-х и начала 60-х годов — можно назвать немало советских и зарубежных программистов, которым принадлежат хорошие результаты в трех—четырех различных научных направлениях. Такой характер деятельности естествен для ученых, стоящих у истоков новой научной дисциплины (и, к сожалению, мало доступен тем, кто вступает в уже сложившуюся науку с широким спектром устоявшихся направлений). Но даже на фоне первых программистов Ершов выделяется поистине «ломоносовской» широтой своих интересов и многообразием полученных результатов. Безо всяких преувеличений можно назвать Андрея Петровича Ершова и пионером, и лидером отечественного программирования. И если первое во многом определилось временем, то второе —  его собственными заслугами, величиной и значительностью его личности.

Примечания

[1] Одно из последних публичных выступлений Игоря Васильевича Поттосина (1933—2001), ближайшего соратника, ученика и друга А. П. Ершова. И. В. Поттосин прочел этот доклад на Мемориальном заседании, посвященном 70-летию А. П. Ершова, во время 4-й Международной конференции «Перспективы систем информатики» летом 2001 г. в Академгородке.

[2] Вестн. АН СССР. — 1984. — № 2. — С. 112—113.

[3] А. П. Ершов. Избранные труды. — Новосибирск: ВО «Наука». Сибирская издательская фирма, 1994. — С. 41—48.

[4] Там же. С. 309—313.

[5] Настоящий том. С. 82.

[6] ЭВМ в школе: Опыт формулирования национальной программы// INFO 84. Plenarvortrage. — Dresden: Zentrum fur Rechentechnik, 1984. — S. 53—63. — (Совм. с Г. А. Звенигородским, Ю. А. Первиным, Н. А. Юнерман).

Из сборника «Андрей Петрович Ершов — ученый и человек». Новосибирск, 2006 г.
Перепечатываются с разрешения редакции.