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

Начиналось все со школьного увлечения математикой. В 16 лет он становится студентом матмеха Ленинградского университета. Столь раннее поступление позволило «выиграть» два года у войны и заложить основы систематического математического образования, значение которого в своей дальнейшей научной карьере Лавров оценивал очень высоко. В июне 1941-го, закончив второй курс, Лавров вместе с однокашниками идет в народное ополчение, а затем становится курсантом Ленинградской военной воздушной академии, которая позволила получить «сумбурное, но достаточно полное инженерное образование». Университетский курс Лавров завершил заочно после войны, уже активно занимаясь научной и инженерной работой. В 1954 году он получил диплом мехмата МГУ.

Так случилось, что вскоре после окончания войны судьба свела Лаврова с Сергеем Королевым, который пригласил молодого военного инженера принять участие в изучении немецкой трофейной ракетной техники. В 1947 году, демобилизовавшись, он попал в конструкторское бюро в Подмосковье, со временем преобразованное в знаменитое ОКБ-1. Лавров стал начальником группы баллистики в коллективе, где велись без преувеличения эпохальные работы по созданию ракет.

Во второй половине 50-х сотрудники группы Лаврова получили возможность использовать для баллистических расчетов ЭВМ. Поначалу это была БЭСМ, стоявшая в ВЦ АН СССР. Надо помнить, что все программы в то время писались в машинных кодах. Стремясь упростить этот процесс, Лавров предложил для БЭСМ язык наподобие Ассемблера, который позволял составлять программы в символьных обозначениях и помогал формализовать процесс программирования. Однако в машинные коды программы на этом языке приходилось транслировать вручную.

Эта разработка была одним из первых в мире языков символьного кодирования. Однако ученый понимал, что подобные языки по-прежнему ориентированы на машину, а потому не дают возможности развиться массовому программированию. Эта проблема все больше и больше увлекала его.

Переломным стал 1960 год, когда, по словам Лаврова, произошли три знаменательных события: «В мире — опубликовано ?Сообщение об алгоритмическом языке Алгол 60?, в стране — выпущена первая заводская серия из четырех вычислительных машин М-20, одна из которых попала к нам в ОКБ, во мне — созрело решение посвятить себя впредь уже не баллистике, а программированию».

Алгол-60, который Вирт охарактеризовал как «первый язык, который был ясно определен: его синтаксис задан с помощью строгого формализма», вызвал большой резонанс в мировом программистском сообществе. В СССР работы по созданию транслятора с Алгола-60 для машины М-20 были начаты сразу в двух известных коллективах: в Институте прикладной математики, где разработчиков возглавляли Михаил Шура-Бура, соавтор ЭВМ М-20, и Эдуард Любимский, и в Вычислительном центре Сибирского отделения Академии наук под руководством Андрея Ершова. Лавров предложил сотрудничество и тем и другим, но затем решился взяться за работу собственными силами.

К осени проект «программирующей программы» (так тогда называли трансляторы) для Алгола-60 у Лаврова был готов, и в группе по программированию, которая сложилась к тому времени в ОКБ, начались работы по его реализации. Оценив возможности М-20 и свои ресурсы, разработчики приняли решение взять в качестве входного языка транслятора подмножество Алгола-60, отказавшись от рекурсивных процедур и функций, фактических параметров-выражений при вызове по имени, переменных с индексами в качестве параметров циклов и собственных массивов. Как отмечает Лавров, все ограничения, кроме запрета на рекурсии, «оказались в русле последующих тенденций развития языков программирования». Благодаря такому разумному подходу его группе удалось завершить свою работу раньше других. Первая версия транслятора ТА-1 заработала весной 1962 года.

Транслятор Лаврова благодаря простоте входного языка и высокой эффективности компиляции приобрел большую популярность. По идеям Лаврова была реализована расширенная версия ТА-1 под названием «Сигнал», первый в стране транслятор, позволявший проводить отладку в терминах входного языка. В 1965 году вышло русское издание сообщения об Алголе-60, титульными редакторами которого выступили создатели трансляторов — Ершов, Лавров и Шура-Бура.

Знакомство Лаврова с Ершовым состоялось еще до появления Алгола-60. Увлеченный проблемами автоматизации программирования, Лавров изучил работы Ершова, посвященные технике трансляции, и нашел возможность познакомиться с ним. В то время Ершов, впоследствии возглавивший программистскую школу в Новосибирске, еще работал в Москве. Общение с Ершовым, который одной из основных проблем трансляции считал задачу экономии памяти, подтолкнуло Лаврова к разработке собственной теории оптимизации распределения памяти. В 1961 году вышла его работа, где предлагался формализованный подход к описанию задач распределения памяти, получивший название «схемы Лаврова».

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

В рабочих материалах группы зафиксирован его тезис о необходимости интеграции в языки программирования средств взаимодействия с операционной средой; по сути, Лавровым была предложена концепция современных API. Кроме того, желание найти альтернативу бесперспективному, по мнению Лаврова, Алголу-68, привело к разработке языка АБВ. Это была одна из первых попыток создать расширяемый язык программирования: Лавров описал механизм последовательного расширения базового языка до языка, в котором заинтересован пользователь.

В 1966 году, после смерти Королева, Лавров перешел в ВЦ АН СССР и полностью сосредоточился на языках обработки символьной информации, получив возможность апробации своих идей на самой современной для того времени ЭВМ БЭСМ-6. Интерес к этому направлению возник во время работы над задачами автоматизации программирования еще в ОКБ. В ВЦ АН на БЭСМ-6 были реализованы языки Снобол-А и Лисп.

С 1959 года Лавров вел преподавательскую деятельность на мехмате, а с образованием ВМК принял кафедру языков программирования на новом факультете. В 1971-м Лавров вернулся в родной город и продолжил растить новые поколения программистов в Ленинградском университете.

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

18 июня 2004 года Святослава Лаврова не стало. Ему был 81 год. Несмотря на возраст, он продолжал участвовать в научной жизни, выступал с докладами, писал книги. Последней стал учебник по программированию для университетов.

Поделитесь материалом с коллегами и друзьями