Алексей Андреевич Ляпунов Автор первых нотаций языков программирования
Алексей Андреевич Ляпунов
Автор первых нотаций языков программирования
Имеется ряд способов описания строения алгоритмов: машины Тьюринга, продукция Поста, нормальные алгоритмы Маркова, рекурсии и т. п. Однако для интересов кибернетики эти способы неудобны. Общее стремление при разработке систем понятий в теории алгоритмов состоит в сведении числа элементарных актов к минимуму и к их максимальной стандартизации. Это значительно облегчает установление несуществования алгоритмов того или иного типа. В задачах из области кибернетики язык теории алгоритмов служит совсем другим целям. Его назначение в том, чтобы дать удобную форму описания алгоритмов, служащих для решения тех или иных задач.
А. А. Ляпунов
Алексей Андреевич Ляпунов
Диапазон научных интересов члена-корреспондента Академии наук Алексея Андреевича Ляпунова был необычайно широк, а сферы их приложения разнообразны. Основные направления его исследований — математическая логика, теория множеств, кибернетика, программирование, математическая лингвистика, машинный перевод. А. А. Ляпунову принадлежит разработка управляющих (кибернетических) систем, строгое определение которых было сформулировано им вместе с его учеником С. В. Яблонским. С 1954 по 1964 годы А. А. Ляпунов в Московском университете вел семинар по кибернетике, который объединял ученых и специалистов, работавших по данной проблеме, а также координировал их работу. С 1958 года под редакцией А. А. Ляпунова начал выходить периодический сборник "Проблемы кибернетики", в котором публиковались научные статьи отечественных ученых, посвященные кибернетическим исследованиям.
В июле 50-х годов А. А. Ляпунов разработал первые учебные курсы по программированию, а в 1952/53 учебном году он прочитал студентам МГУ первый курс под названием "Принцип программирования" (до появления АЛГОЛа).
В 1953 году он создал операторный метод, одну из первых в мире нотаций языков программирования — аппарат описания алгоритмов (язык логических схем).
Заслуги А. А. Ляпунова в области кибернетики и программирования настолько велики, что период с середины 50-х годов до середины 60-х годов XX века часто называют "ляпуновским" периодом.
Он родился в Москве 7 октября 1911 года. Его отец, Андрей Николаевич Ляпунов, получил математическое образование, он учился в Московском университете, а также в Гейдельберге и Геттингене. Затем отец Ляпунова работал в Путейском ведомстве, а после 1917 года был сотрудником Института биофизики Народного Комиссариата здравоохранения. Мать Алексея Андреевича Елена Васильевна Ляпунова была широко образованным человеком и посвятила свою жизнь воспитанию детей, которых в семье Ляпуновых было семь.
Семья Алексея Андреевича принадлежала к известному роду Ляпуновых, в котором были и знаменитые ученые (А. М. Ляпунов — выдающийся математик, М. В. Ляпунов — астроном, Б. М. Ляпунов — славист и др.), и известные деятели русской культуры (композитор С. М. Ляпунов). Ляпуновы имели родственные связи с семьями выдающихся русских ученых — И. М. Сеченова, А. Н. Крылова, П. Л. Капицы и др.
Общение с детских лет с высокообразованными людьми рано пробудило у Алексея Ляпунова интерес и к искусству, и к различным наукам. Его увлекали астрономия, минералогия, биология, архитектура и живопись.
В 1928 году А. А. Ляпунов закончил среднюю школу и поступил в Московский университет. В 30-х годах он был учеником и сотрудником известного физика академика П. П. Лазарева, а с 1932 года находился под влиянием академика Н. Н. Лузина, возглавлявшего в те годы Московскую математическую школу. Под руководством Н. Н. Лузина он получает первый математический результат в области дескриптивной теории множеств. Дескриптивная теория множеств становится и до конца жизни остается одним из основных направлений его научной деятельности. С 1934 по 1942 год А. А. Ляпунов был младшим, а затем старшим научным сотрудником Математического института им. В. А. Стеклова, где в 1939 году он защитил кандидатскую диссертацию на тему "Об униформизации аналитических дополнений".
Будучи сотрудником П. П. Лазарева, Алексей Ляпунов интересовался проблемами применения математических методов к естественным наукам. В 1938 году он опубликовал совместно с Ю. Я. Керкисом результаты статистической обработки генетических экспериментов. Инициаторами этой работы были академики Н. И. Вавилов и А. Н. Колмогоров. В предвоенные годы Алексей Андреевич занимается теорией вероятностей и ее приложениями. Из работ этого периода следует отметить опубликованное в 1942 году исследование "О выборе из конечного числа конкурирующих гипотез". Ценность этой работы была понята значительно позднее (в настоящее время она используется в математической статистике, вероятностных методах распознавания образов и т. д.), примерно в то же время (1939 год) он начинает свою педагогическую работу в качестве доцента Педагогического института.
В 1942 году А. А. Ляпунов призывается на военную службу и направляется в пехотное училище, которое заканчивает в 1943 году. С 1943 по 1945 год он в должности командира топографического взвода в артиллерии принимает участие в боях на 4-м Украинском, 3-м Белорусском и 1-м Прибалтийском фронтах.
Находясь на фронте, А. А. Ляпунов не прекращал математические исследования. Здесь он занимался вопросами, связанными с точностью артиллерийской стрельбы, и примечательно, что для их решения он широко привлекал аппарат математической статистики.
В марте 1945 года Алексей был отозван из действующей армии для преподавательской работы в Артиллерийской академии им. Ф. Э. Дзержинского, где проработал до 1952 года. Одновременно А. А. Ляпунов выполняет серьезные работы по математике, что позволило ему в 1949 году успешно защитить докторскую диссертацию.
В течение 1949–1951 годов А. А. Ляпунов работал в Геофизическом институте АН СССР, где проводил исследования по прогнозированию землетрясений и обработке гравитационных наблюдений. С 1951 года он работал в Математическом институте АН СССР им. В. А. Стеклова, а с 1953 года — в Институте прикладной математики, возглавляя в этих институтах работы по программированию. Он одним из первых оценил возможность цифровых машин для решения задач невычислительного характера. В Математическом институте А. А. Ляпунов организовал семинар, сразу привлекший к себе внимание, а с осени 1952 года он стал работать на механико-математическом факультете МГУ в качестве профессора кафедры вычислительной математики, где организовал семинар по программированию.
В 1953 году А. А. Ляпунов создает операторный метод в программировании, с которого ведет начало теоретическое программирование. В основе операторного метода лежит аппарат логических схем, который включает основные формализмы, описывающие алгоритмы. В рамках этого метода были определены:
? программа;
? процесс ее выполнения;
? функция, реализуемая программой;
? эквивалентность программ;
? эквивалентные преобразования программ;
? схема программы;
? эквивалентность схем и их преобразования.
Аппарат (язык) логических схем программ, предложенный А. А. Ляпуновым, вырос из блок-схемного описания программы, применявшегося в то время в практике программирования. Блок-схемное описание предписывало перед программированием алгоритма деление его на части — блоки с установлением связей между ними. Однако понятие самого блока было расплывчатым, а поэтому и не могли быть четко описаны ни правила выделения блоков, ни правила соединения блоков в схему. Аппарат логических схем был с самого начала нацелен на устранение этих недостатков. Для него характерно предварительное и не зависящее от конкретного алгоритма выделение частей, из которых составляются алгоритмы программирования — это выделение осуществляется по признаку функциональной нагрузки, которую несет та или иная часть алгоритма. Так появились понятие оператора (термин "оператор" введен Ляпуновым), осуществляющего акт обработки информации, и понятие логического условия, которое осуществляет акт проверки информации, чтобы определить порядок выполнения операторов. Логическая схема, описывающая алгоритм, "представляет собой строку из операторов и логических условий, называемых членами схемы. После каждого логического условия начинается стрелка, оканчивающаяся либо перед одним из членов схемы, либо в конце строки".
Операторный метод лег в основу многих учебников и учебных пособий по программированию, выпущенных в 50-е годы. Особенно велика роль операторного метода в становлении программирования как науки.
Формальные определения программирования как науки были даны А. А. Ляпуновым в его статье "К алгебраической трактовке программирования", написанной позже. В ней он рассматривает формализмы программирования на "теоретико-множественной базе". Ляпунов связывает программирование с основными направлениями современной математики, в частности с позиций общей алгебры. В статье была заложена та идейная платформа, на которой основывались дальнейшие исследования, проводившиеся учениками Алексея Андреевича — Ю. И. Яновым, А. П. Ершовым, Н. А. Криницким, Р. И. Подловченко и др.
Необходимо также отметить, что с появлением операторного метода была сформулирована проблема автоматизации программирования и, в частности, задача построения программирующей программы (в современной терминологии — "транслятор"), т. е. такой программы, которая сама будет строить программы для различных алгоритмов. Как пишет Р. И. Подловченко, "эта задача определила направление исследований в программировании более чем на десятилетия вперед. Постановка ее принадлежит Алексею Андреевичу Ляпунову и сделана им в 1953 году".
Кроме того, А. А. Ляпунову принадлежит постановка задач невычислительного характера, таких как машинный перевод и ифовые задачи (шахматы, домино) и, что удивительно — эти задачи им были поставлены еще в 1953–1954 годах. Под его руководством в 1954 году впервые был осуществлен его ученицей О. С. Кулагиной машинный перевод с французского языка на русский.
Важным событием в научной жизни была организация А. А. Ляпуновым в 1956 году семинара по кибернетике в МГУ, который объединил ученых различных специальностей: математиков, экономистов, биологов, лингвистов, философов, а также инженеров и военных. Он просуществовал до 1964 года и сыграл большую роль в координации исследований и формировании новых направлений.
Во второй половине 50-х годов число оригинальных исследований по кибернетике в нашей стране стало так велико, что появилась необходимость в создании специализированных изданий по кибернетике. А. А. Ляпунов стал основателем серии сборников "Проблемы кибернетики" и главным редактором. Первый сборник серии вышел в свет в 1958 году. Под редакцией А. А. Ляпунова вышло почти 30 сборников "Проблемы кибернетики". Серия получила мировую известность — она регулярно переводилась на английский и немецкий языки.
В 1962 году по приглашению академика М. А. Лаврентьева А. А. Ляпунов переехал в Новосибирск и начал работать в Институте математики СО АН СССР, где с 1967 года заведовал отделом в отделении кибернетики. В Новосибирске он продолжал работать по дескриптивной теории множеств, по теоретическому программированию и развернул широкие исследования по математической биологии, в частности по таким ее проблемам, как моделирование экологических систем, популяционным явлениям, иерархичности управляющих систем в живой природе, проблемам классификации.
В 1964 году Алексей Андреевич Ляпунов был избран членом-корреспондентом Академии наук СССР.
Новосибирский период жизни А. А. Ляпунова в научном плане отмечен его работами философского характера, в частности осмыслением и развитием таких философских категорий, как материя, энергия и информация. Он приходит к убеждению, что "масса и энергия, с одной стороны, удовлетворяет закону сохранения, с другой — для них имеет место принцип заменяемости". Что же касается информации, то она обладает "совсем другими свойствами". Так, во-первых, по отношению к информации не имеет места закон сохранения, во-вторых, возможность размножения информации и невосстановимость утраченной являются ее характерными особенностями, в-третьих, "информация материальна, т. е. информация всегда нуждается в материальном носителе".
Эти философские концепции отражены в ряде его публикаций, а также представлены в виде тезисов доклада на Международном конгрессе по философии, который состоялся в Болгарии, в городе Варне, в 1973 году, но, к сожалению, без участия Алексея Андреевича.
Он скоропостижно скончался 23 июня 1973 года в Москве.
Заслуги Алексея Андреевича Ляпунова в области науки и воспитании научных кадров были отмечены многими правительственными наградами. В 1996 году одной из самых авторитетных организаций в области высоких технологий — IEEE Computer Society А. А. Ляпунов посмертно был удостоен медали "Computer Pioneer", как сказано: "For Soviet cybernetics and programming".