Архитекторы компьютерного мира
Шрифт:
Алексей Андреевич Ляпунов
Автор первых нотаций языков программирования
Имеется ряд способов описания строения алгоритмов: машины Тьюринга, продукция Поста, нормальные алгоритмы Маркова, рекурсии и т. п. Однако для интересов кибернетики эти способы неудобны. Общее стремление при разработке систем понятий в теории алгоритмов состоит в сведении числа элементарных актов к минимуму и к их максимальной стандартизации. Это значительно облегчает установление несуществования алгоритмов того или иного типа. В задачах из области кибернетики язык теории алгоритмов служит совсем другим целям. Его назначение в том, чтобы дать удобную форму описания алгоритмов, служащих для решения тех или иных задач.
Алексей Андреевич Ляпунов
Диапазон научных интересов члена-корреспондента Академии наук Алексея Андреевича Ляпунова был необычайно широк, а сферы их приложения разнообразны. Основные направления его исследований — математическая логика, теория множеств, кибернетика, программирование, математическая лингвистика, машинный перевод. А. А. Ляпунову принадлежит разработка управляющих (кибернетических) систем, строгое определение которых было сформулировано им вместе с его учеником С. В. Яблонским. С 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 году А. А. Ляпунов создает операторный метод в программировании, с которого ведет начало теоретическое программирование. В основе операторного метода лежит аппарат логических схем, который включает основные формализмы, описывающие алгоритмы. В рамках этого метода были определены:
– > программа;
– > процесс ее выполнения;
– > функция, реализуемая программой;
– > эквивалентность программ;
– > эквивалентные преобразования программ;
– > схема программы;
– > эквивалентность схем и их преобразования.
Аппарат (язык) логических схем программ, предложенный А. А. Ляпуновым, вырос из блок-схемного описания программы, применявшегося в то время в практике программирования. Блок-схемное описание предписывало перед программированием алгоритма деление его на части — блоки с установлением связей между ними. Однако понятие самого блока было расплывчатым, а поэтому и не могли быть четко описаны ни правила выделения блоков, ни правила соединения блоков в схему. Аппарат логических схем был с самого начала нацелен на устранение этих недостатков. Для него характерно предварительное и не зависящее от конкретного алгоритма выделение частей, из которых составляются алгоритмы программирования — это выделение осуществляется по признаку функциональной нагрузки, которую несет та или иная часть алгоритма. Так появились понятие оператора (термин "оператор" введен Ляпуновым), осуществляющего акт обработки информации, и понятие логического условия, которое осуществляет акт проверки информации, чтобы определить порядок выполнения операторов. Логическая схема, описывающая алгоритм, "представляет собой строку из операторов и логических условий, называемых членами схемы. После каждого логического условия начинается стрелка, оканчивающаяся либо перед одним из членов схемы, либо в конце строки".