Святослав Сергеевич Лавров
Член-корреспондент АН СССР
И. Р. Агамирзян
Святослав Сергеевич Лавров родился 12 марта 1923 г. в Петрограде в семье русских интеллигентов. Его отец был инженером военного флота, в мирное время — главным энергетиком на ряде заводов; мать, выпускница Демидовских женских курсов, недолго работала классной дамой, а затем библиотекарем.
Святослав Сергеевич Лавров
Уже в школьные годы С. С. Лавров увлекался математикой, посещал знаменитый математический кружок Ленинградского Дворца пионеров и был в числе победителей ленинградской математической олимпиады 1939 г. После окончания в 1939 г. средней школы С. С. Лавров поступил на математико-механический факультет Ленинградского государственного университета, где слушал лекции Д. К. Фаддеева по алгебре и Г. М. Фихтенгольца по анализу, из которых вынес первые представления о методах вычислений.
В 1941 г. С. С. Лавров вступил в ленинградское народное ополчение, но во время формирования его полка вместе с большой группой студентов был направлен на учебу в Ленинградскую военно-воздушную академию. После выпуска в 1944 г. в звании старшего техника-лейтенанта он получил назначение в истребительный авиационный полк техником звена. Через два года С. П. Королев пригласил его на работу по изучению немецкой трофейной техники, и он был зачислен на должность начальника измерительной службы в бригаду особого назначения Министерства обороны (позднее Государственный центральный полигон, известный как Капустин Яр).
Сергей Павлович Королев содействовал демобилизации С. С. Лаврова и принял его в начале 1947 г. на должность начальника группы баллистики в свое конструкторское бюро, входившее на правах отдела в СКБ подмосковного НИИ-88 Министерства вооружения. Через несколько лет СКБ НИИ-88 стало самостоятельным предприятием — ОКБ-1.
В группе баллистики С. С. Лавров занимался механикой тел переменной массы, уравнениями движения ракеты, выбором формы траектории выведения ракеты, выполнял проектные баллистические расчеты, точные расчеты траектории и координат точки падения, определял параметры рассеивания и необходимые объемы гарантийных запасов топлива, работал над теорией приборов и систем управления дальностью. Принимал активное участие в летных испытаниях всех ракет королёвского КБ: от трофейных А-4 (ФАУ-2) в 1947 г. до межконтинентальной ракеты Р-7 в 1957 г.
В 1950 г. Святослав Сергеевич написал совместно с Р. Ф. Аппазовым и В. П. Мишиным в форме технического отчета монографию по баллистике ракет, изданную в 1956 г. Артиллерийской академией в качестве учебника под грифом «Секретно». В открытой печати эта работа появилась только через десять лет (Аппазов Р. Ф., Лавров С. С., Мишин В. П. Баллистика управляемых ракет дальнего действия. М., Наука, 1966).
В 1954 г. С. С. Лавров заочно окончил механико-математический факультет Московского государственного университета, в 1959 г. получил ученую степень доктора технических наук по совокупности научных трудов без защиты диссертации. В 1963 г. ему было присвоено звание профессора по специальности «механика». В июле 1966 г. С.С.Лавров был избран членом-корреспондентом АН СССР по Отделению механики и процессов управления (по специальности «Автоматическое управление»).
Вплоть до 1966 г. С. С. Лавров работал в должности начальника отдела возглавляемого С. П. Королевым ОКБ-1 Министерства общего машиностроения. Начиная с 1959 г. С. С. Лавров по совместительству вел педагогическую работу на механико-математическом факультете МГУ им. М. В. Ломоносова. В 1963 г. С. С. Лавров стал профессором механико-математического факультета МГУ, а после образования в 1970 г. факультета вычислительной математики и кибернетики МГУ возглавил кафедру языков программирования на этом факультете.
Уже к 1960 г. его научные интересы сместились в область программирования и, в первую очередь, разработки необходимого программного обеспечения ЭВМ — сначала библиотек стандартных подпрограмм, позже — трансляторов с языков высокого уровня. Во второй половине 50-х годов все баллистические расчеты в КБ выполнялись на БЭСМ, и проблема упрощения и автоматизации программирования стояла достаточно остро уже тогда. С. С. Лавровым был разработан один из первых в мире языков символьного кодирования для БЭСМ, позднее опубликованный под названием «Соглашения о записи программ в символических обозначениях» (Лавров С. С. Введение в программирование. М., Наука, 1970). Однако язык символьного кодирования использовался тогда как средство формализации процесса программирования с ручной трансляцией в машинные коды.
С появлением в 1960 г. заводской серии ЭВМ М-20 (одна из четырех машин этой серии поступила в ОКБ-1) и почти одновременным выходом «Сообщения об алгоритмическом языке Алгол-60» стала технически возможной и интересной в научном плане реализация автоматического транслятора языка высокого уровня и определились ближайшие приоритеты исследований. Создание таких трансляторов началось в Институте прикладной математики АН СССР (Михаил Романович Шура-Бура и Эдуард Зиновьевич Любимский) и в Институте математики Сибирского отделения АН СССР (Андрей Петрович Ершов). Несколько позже была начата работа по транслятору с Алгола-60 в ОКБ-1, по проекту С.С. Лаврова и под непосредственным руководством Владимира Андреевича Степанова. Значительная часть исследований была выполнена Виктором Николаевичем Поповым. Сам С. С. Лавров помимо идейного руководства проектом продолжал заниматься разработкой стандартных подпрограмм (СП) численных методов (решение неалгебраических уравнений и их систем, отыскание экстремумов функций многих переменных) теперь уже в стандарте ИС-2, обеспечившем эффективное использование СП как при ручном программировании, так и в составе написанных для М-20 трансляторов.
Разработчики транслятора ОКБ-1, по предложению Владимира Михайловича Курочкина он был назван ТА-1, и в первую очередь С. С. Лавров, очень точно оценили как возможности машины М-20, так и ресурсы своей группы. В качестве входного языка транслятора было выбрано эффективно реализуемое подмножество Алгола-60, в которое не входили рекурсивные процедуры и функции, фактические параметры-выражения при передаче параметров по наименованию, переменные с индексами в качестве параметров циклов и собственные массивы. Все ограничения на входной язык, кроме рекурсии, оказались в русле последующих тенденций развития языков программирования. Благодаря такому ограничению входного языка транслятор ТА-1 оказался работоспособным раньше параллельных разработок, и уже весной 1962 года первая версия транслятора была запущена в эксплуатацию.
Из всех трансляторов Алгола для вычислительной техники второго поколения в СССР именно транслятор ТА-1 оказался наиболее популярным. Это объяснялось простотой подмножества входного языка, высокой эффективностью компиляции и приемлемыми характеристиками эффективности порождаемого кода. Немало способствовало широкому внедрению ТА-1 и появление через несколько лет значительно расширенной версии транслятора под названием ТА-1М («Сигнал»), созданной по идеям С. С. Лаврова группой под руководством В. А. Степанова. Это был первый в СССР и, очевидно, один из первых в мире трансляторов, позволявших производить отладку программ в терминах входного языка.
Одновременно с работой по проекту ТА-1 С. С. Лавров в постоянном творческом общении с А. П. Ершовым занимался теоретическими вопросами оптимизации распределения памяти. В 1961 г. им был предложен формализм для описания задач распределения памяти («схемы Лаврова») и была показана эквивалентность задач экономии памяти и раскраски графа (графа несовместимости областей действия). Окончательный вариант эвристического алгоритма распределения и повторного использования памяти был сформулирован А. П. Ершовым и практически реализован в «Альфа-трансляторе».
С 1963 г. С. С. Лавров начал заниматься языками обработки символьной информации. Интерес к этой тематике вырос из задач автоматизации проектирования (Бегунков Г. С., Лавров С. С., Педанов И. Е., Степанов В. А. Аппарат геометрических описаний для автоматизации конструкторских работ. В сб.: Вычислительная техника в машиностроении. Минск, изд. Института технической кибернетики АН БССР, 1966.) и осознания необходимости работы со специфическими для конкретных проблемных областей типами данных и наборами операций.
В 1966 г., после смерти С. П. Королева, С. С. Лавров перешел в Вычислительный центр АН СССР на должность заведующего отделом математического обеспечения ЭВМ. Именно там были выполнены многие работы по языкам обработки символьной информации на новейшей ЭВМ БЭСМ-6 (Снобол-А, 1968, совместно с Л. И. Гончаровой; Лисп, 1970, совместно с Г. С. Силагадзе).
Во второй половине 60-х и в начале 70-х годов С. С. Лавров принимал активное участие в Рабочей группе WG2.1 IFIP (Международной федерации по обработке информации) по Алголу. Язык АБВ, один из первых в мире экспериментальных расширяемых языков программирования, был предложен С. С. Лавровым как альтернатива Алголу-68. В материалах Рабочей группы WG2.1 именно С. С. Лавровым был сформулирован общепринятый сегодня тезис о необходимости интеграции языков программирования со средствами взаимодействия с операционной средой, ставший прообразом современной концепции API (Application Program Interface).
В 1971 г. С. С. Лавров вернулся в Ленинград и через год возглавил кафедру математического обеспечения ЭВМ математико-механического факультета ЛГУ. В начале 70-х годов им был реализован один из первых трансляторов с языка Паскаль, не получивший распространения в силу редкости аппаратной платформы (ODRA-1204, польский клон одной из моделей ICL). Тогда же С. С. Лавров активно публиковал статьи и книги, обобщающие опыт работ предыдущего периода (Лавров С. С., Гончарова Л. И. Хранение информации в памяти ЭВМ. М., Наука, 1971; Лавров С. С. и др. Расширяемый алгоритмический язык АБВ. В сб.: Обработка символьной информации. Вып. 3. М., Вычислительный центр АН СССР, 1976; Капустина Е. Н. и др. Схема расширений и основные принципы реализации аппарата процедур языка Паскаль в языке АБВ. В сб.: Обработка символьной информации. Вып. 4. М., Вычислительный центр АН СССР, 1978; Лавров С. С., Силагадзе Г. С. Язык Лисп и его реализация. М., Наука, 1978).
В 1977 г. С. С. Лавров стал директором Института теоретической астрономии АН СССР. В ИТА АН СССР им была организована и возглавлена лаборатория автоматизации научных исследований, в которой развернулись работы по созданию системы с автоматическим синтезом программ, ориентированной на решение научных и инженерных задач (СПОРА — система программного обеспечения работ по астрономии). Научные интересы С. С. Лаврова в этот период сместились в большей степени в область формальных методов, в частности автоматического доказательства теорем. Ранее Энном Харальдовичем Тыугу (Институт кибернетики АН Эстонской ССР, Таллинн) и Григорием Ефроимовичем Минцем (Ленинградское отделение математического института АН СССР) был выдвинут тезис о том, что автоматический синтез программ по спецификациям задач должен быть основан на конструктивном доказательстве теоремы существования решения задачи. Тезис был использован многими авторами на базе выводов (доказательств) в исчислении высказываний, в том числе в наиболее известной системе программирования с автоматическим синтезом программ для решения инженерных задач ПРИЗ (Э. Х. Тыугу и др.).
С. С. Лавров со своими сотрудниками попытался расширить эту базу до некоторого фрагмента исчисления предикатов. Описание разработанного в соответствии с идеями С. С. Лаврова сверхвысокоуровневого языка Декарт было опубликовано в 1980 г. (Бабаев И. О., Новиков Ф. А., Петрушина Т. И., Декарт — входной язык системы СПОРА. В сб.: Прикладная информатика. М., Финансы и статистика, 1980). Язык Декарт отличался от других современных языков глубокой интеграцией концепции абстрактного типа данных с реляционным подходом к представлению данных и декларативным описанием предметной области. Позднее в рамках работ по проекту СПОРА С. С. Лавровым был сформулирован оригинальный подход к формальному описанию семантики декларативных языков программирования средствами исчисления предикатов первого порядка без равенства и без функциональных букв (Лавров С. С., D-аксиоматизация языка Декарт. В сб.: Прикладная информатика. М., Финансы и статистика, 1987).
В соответствии с тезисом о конструктивном доказательстве теоремы существования решения задачи ключевой частью транслятора языка Декарт должна была являться система автоматического доказательства/опровержения теорем в исчислении предикатов. Работая над этой системой, С. С. Лавров вместе со своими учениками получил предварительные результаты по выделению из исчисления предикатов такого фрагмента, который охватывал бы нужды эффективного доказательства теорем существования для синтеза программ. Эта задача решалась на моделях двух предметных областей: элементарной геометрии и элементарного программирования.
В статьях «Использование вычислительной техники, программирование и искусственный интеллект (перспективы развития)» («Микропроцессорные средства и системы», 1984, № 3) и «Представление и использование знаний в автоматизированных системах» (там же, 1986, № 3) С. С. Лавров сформулировал предпосылки появления баз знаний в качестве основы нового поколения систем программирования. База знаний определена как совокупное представление понятийного, фактуального (предметного) и процедурного знания и системы их взаимодействия. При этом модель предметной области описывает общую обстановку, в которой возникла задача, а спецификация — содержание задачи. Основу первой из этих статей составили предложения С. С. Лаврова в комиссию по разработке Государственной программы развития вычислительной техники и средств взаимодействия человека с этой техникой. Подход, предлагавшийся С.С.Лавровым в начале 80-х годов, находится теперь в русле одной из основных проблем современной информатики — создания информационных систем, основанных на знаниях.
В середине 80-х годов С. С. Лавров уделял определенное внимание лингвистическим аспектам взаимодействия человека и компьютера. В статье «О знаниях и языке машины и человека» (сб. «Семиотика и информатика», вып. 24. М., ВИНИТИ, 1985) анализируется понятие «искусственного интеллекта» ЭВМ, его принципиальное отличие от «естественного» интеллекта человека, описываются слабые и некоторые сильные стороны этого понятия, обосновывается правомерность его употребления. Оспаривается точка зрения, что естественный язык, пусть даже соответствующим образом ограниченный, может служить наилучшим средством общения человека с ЭВМ. В статье «Формализация, лингвистика, логика» (сб. «Семиотика и информатика», вып. 27. М., ВИНИТИ, 1986) описываются свойства естественного языка как модели внешнего мира, его сильные и слабые стороны в этом качестве.
С конца 1987 г. С. С. Лавров работает в Институте прикладной астрономии РАН в должности советника при дирекции ИПА. Его научные интересы лежат в области применения математических методов для решения прикладных научных задач, в частности восстановления изображений в радио-интерферометрии.
Научная биография Святослава Сергеевича Лаврова в определенном смысле уникальна. Совсем в молодом возрасте С. С. Лавров стал основоположником ракетно-космической баллистики в СССР и неоспоримым авторитетом в области динамики управляемого полета и автоматического управления. Появление цифровой вычислительной техники привело к резкому повороту в деятельности С. С. Лаврова и в течение нескольких лет сделало его классиком программирования в СССР. Триада имен — А. П. Ершов, С. С. Лавров и М. Р. Шура-Бура — впервые появилась в качестве титульных редакторов русского издания сообщения об Алголе-60 (Алгоритмический язык Алгол-60. Пересмотренное сообщение. Пер. с англ. М., Мир, 1965). Целое поколение программистов выросло на идеях этих ученых. Вклад С. С. Лаврова в развитие программистской науки и практики в СССР неоспорим. Его ученики работают сегодня в разных городах России и других стран. Григорий Самуилович Цейтин и С. С. Лавров дали новый толчок развитию школы программирования, заложенной еще Леонидом Витальевичем Канторовичем и Андреем Андреевичем Марковым — школы, заслуженно называемой «ленинградской» — по городу, в котором С. С. Лавров родился и в котором уже почти 30 лет продолжается его научная деятельность.