Make your own free website on Tripod.com

А. П. Ершов

Учитель

В 1952 г. я был студентом 4-го курса механико-математического факуль­тета Московского университета. То, что называется специализацией, уже совершилось. Год назад я записался на незадолго перед этим организован­ную кафедру вычислительной математики, возглавляемую тогда академи­ком Сергеем Львовичем Соболевым. В этом выборе уже сыграла свою роль обрывочная информация об электронных вычислительных машинах, вы­полняющих с фантастической скоростью длинные последовательности арифметических действий. Для студентов, которые в восхищении разевали рты на ладные и стрекочущие как пулеметы механические счетные машины «Мерседес», только-только появившиеся на кафедре, такая информация об ЭВМ, конечно, кружила голову, однако носила слишком уж «потусторон­ний» характер. Поэтому, не сознавая внутренней подготовленности к этому новому, еще не получившему названия делу, я блуждал между занятиями по конструктивной теории функций и алгеброй релейно-контактных схем, ста­рательно сдавая экзамены и предаваясь другим делам, типичным для сту­дента.

В начале 1952/53 учебного года в нашей группе «вычислителей», как на­зывали студентов кафедры С. Л. Соболева, прошел слух о появлении на фа­культете пришедшего откуда-то, вроде бы из военной академии, молодого доктора по теории множеств Алексея Андреевича Ляпунова, который объ­явил спецкурс под необычным названием: «Принципы программирования».

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

Первая лекция состоялась в самый разгар семестра, 29 октября 1952 г. Перед нами предстал чуть выше среднего роста худощавый скромно оде­тый человек запоминающейся наружности. Первое впечатление было сме­шанным. Несколько сбивчивая речь, импровизационный стиль лекции, но заразительный энтузиазм, усиливаемый пронизывающим искрящимся взглядом черных глаз. Абсолютная незаинтересованность укреплять авто­ритет общения внешними средствами, обычно присущими профессиональ­ному преподавателю, в сочетании с не менее абсолютной непреклонностью принципиальных положений. В нашей группе «вычислителей» к 4‑му курсу было несколько «ангажированных» студентов, уже углубившихся в разные разделы математики, которых курс Ляпунова никак не затронул. Оказалась, однако, дюжина студентов, для которых этот курс сыграл важнейшую фор­мирующую роль в их дальнейшей жизни. Почти все они внесли впоследст­вии заметный вклад в становление программирования и информатики.

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

С позиций диспетчера, ведающего расписанием и аудиториями, курс «Принципы программирования» мог вызвать лишь беспокойство в связи с его нерегулярностью: три лекции в 1‑м семестре и пять — во 2‑м. На пер­вых лекциях мы знакомились с системой команд условной трехадресной ЭВМ. Задним числом можно понять, что система команд машины БЭСМ (быстродействующей электронной счетной машины) Академии наук СССР уже тяготела над лектором, но говорить о ней как о реальной машине было еще рано. Сразу после довольно схематичного описания системы команд мы принимались за упражнения в составлении программ. Программы запи­сывались в таком виде, который сейчас можно было бы назвать перемеща­емой формой с использованием базовых адресов. В качестве источника ал­горитмов брались разложения элементарных функций в степенной ряд, вы­числение многочлена, численное интегрирование дифференциального урав­нения, решение треугольной системы линейных уравнений. Предпоследняя лекция имела пророческое название «Синтез программ», вошедшее в лите­ратуру через 25 лет. В последней лекции от 24 апреля уже содержалось представление об операторах программы, их классификация и методика программирования на основе операторного метода.

Конечно, изложение основных понятий операторного программирования было еще далеко от совершенства, но главное было в том, что эти понятия возникли буквально у нас на глазах. В значительной степени успех курса основывался на том, что Алексей Андреевич сразу угадал как специфичес­кие стороны деятельности, называемой программированием, так и ее уни­версальный характер, не зависящий от конкретного содержания решаемой задачи. Текстологический анализ, который, однако, потребовал бы более подробных и аккуратных записей, нежели — увы! — моих, мог бы обнару­жить, как зерна проницательных догадок и «вечных» истин прорастали в самых разных уголках изложения, далеко не всегда на его главной линии.

Помимо поступательного развития идей курса был также очевидный и захвативший нас момент прозрения, скачком изменивший горизонты про­граммирования. Это произошло после очередной командировки Алексея Андреевича в Киев, где он работал на первой электронной вычислительной машине, построенной и собранной под Киевом в здании бывшего Феофани­евского монастыря под руководством Сергея Алексеевича Лебедева. Алек­сей Андреевич вернулся из Киева преображенным. Активный творческий процесс всегда порождает избыточные идеи, среди которых не всегда удается сразу выбрать наиболее верную; для нас, однако, было исключи­тельно важным равное, поистине совместное, размышление над процессом программирования, определившее затем на годы направление и содержание работы.

Говоря о влиянии Алексея Андреевича на студентов и на формирование основных понятий программирования, нельзя, конечно, ограничиваться только пересказом восьми лекций курса. Одновременно с чтением лекций Алексей Андреевич руководил курсовыми работами, выступал на семина­рах, беседовал со студентами у себя дома. Не раз по окончании лекции он прихватывал очередного собеседника и вел его от Моховой к себе на Ша­боловку. Часового пути хватало, чтобы обсудить все на свете, от метода Монте-Карло до разницы между ДНК и РНК, о роли информационных по­токов в управляющих системах, об истинном значении кибернетики, о сущ­ности моделирования в технике и в биологии, о минералах и живых сооб­ществах, о Лузине и о французских математиках, о теории множеств и о внешней баллистике.

Деятельность Алексея Андреевича Ляпунова в МГУ в начале 50‑х годов интересна далеко не только для истории науки. Мне хотелось бы закончить свои краткие заметки несколькими уроками Ляпунова, имеющими прямое отношение к текущему моменту.

Сейчас, в период фронтального продвижения курса основ информатики и вычислительной техники, раздается немало возражений о преждевремен­ности преподавания этого курса в условиях отсутствия неограниченного доступа школьников к ЭВМ. При всей внешней убедительности такой по­зиции меня не покидает мысль, что за этой критикой иногда кроется убогая неспособность говорить и рассуждать о предмете, предваряя этим разгово­ром и рассуждением физическое обладание соответствующим предметом. Главное содержание курса информатики — это не ловкое манипулирование клавиатурой ЭВМ и знание деталей ее устройства, а несколько исключи­тельно мощных и глубоких идей, связанных с понятиями информации, ее обработки и представления, алгоритмов и со способами «перекачки» знания в действие и наоборот. Усвоить эти идеи и увидеть, как они действуют в ЭВМ и в повседневной практике людей, вот истинное постижение инфор­матики.

Первый урок Ляпунова состоял в том, что он научил нас говорить и рас­суждать о программировании, видеть в машине хотя и самодовлеющую, но конечную стадию процесса программирования, которое проявляло себя как естественное продолжение и развитие математической практики «домашин­ного» периода.

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

Второй урок Ляпунова как учителя состоял в том, что он никогда не пы­тался скрыть от студентов, что овладевает новой наукой программирования вместе с нами. Уже ко второму семестру его курса выяснилось, что многие из нас программируют более ловко, чем лектор. В результате лекции иногда превращались в поток встречных предложений, которые Алексей Андрее­вич воспринимал без тени раздражения. Мера его доверия и интереса к со­беседнику была безгранична. Надо сказать, что вообще взыскательное до­верие к активной молодежи было очень характерным для научной и об­щественной атмосферы в Московском университете и в той части Акаде­мии наук, которая занималась становлением вычислительной техники и прикладной математики. Научное и нравственное влияние А. А. Ляпунова, С. Л. Соболева, М. В. Келдыша, С. А. Лебедева, М. А. Лаврентьева, А. А. Дородницына было прямым и не демпфировалось посредственностью, сто­явшей в стороне от живого и нового дела и только еше ждущей своего часа.

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

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

© «Природа», 1987. (Опубликовано в № 5, с. 78–80.)