[Список Лекций] [Научная деятельность] [Работы по кибернетике] [Теория математического программирования ] [<<] [<] [^] [>] [>>]

Научная деятельность

Теория математического программирования

В работе "О логических схемах программ" (1958) А.А. дал определение программирования как отдельного научного направления, отличного от классической теории алгоритмов, и первое описание операторного метода. Задача программирования - это разработка рациональных способов составления программ для решения задач на быстродействующих цифровых вычислительных машинах. Рациональные способы составления программ должны базироваться на рациональных способах описания алгоритмов. Языки теории алгоритмов расчленяют алгоритмы на столь элементарные операции, что описания даже простейших реальных алгоритмов становятся необозримыми. Кроме того, жесткий набор базисных элементарных операций не может во всех случаях давать рациональное представление алгоритма. Поэтому базисные блоки в описании должны быть достаточно крупными и выбираться в зависимости от класса задач. Блоки связываются между собой логическими условиями, определяющими порядок выполнения блоков, обмен информацией и т.п.

Описание алгоритма через блоки и логические условия было названо А.А. Ляпуновым логической схемой алгоритма (схемой счета), блоки схемы счета А.А. называет операторами счета. По схеме счета строится логическая схема программы. Для этого вводятся дополнительные блоки-операторы, получившие название операторов управления. А.А. вводит два уровня описания алгоритмов:

  1. описание, не связанное с программой - схема счета и
  2. описание, являющееся эскизом программы - схема программы.

В дальнейшем по схеме программы с учетом системы команд и особенностей конкретной машины составляется программа.

Аппарат логических схем стал первым языком, позволившим говорить об общих приемах программирования. Совокупность этих приемов получила впоследствии название операторного метода в программировании.

Схема счета и схема программы могут рассматриваться как алгебраические объекты, записанные на некотором формальном языке. Над ними можно выполнять различные эквивалентные преобразования и, следовательно, ставить задачу приведения схемы счета или схемы программы к простейшему или достаточно простому виду. В статье "К алгебраической трактовке программирования" (1962) А.А. предложил рассматривать логическую схему программы как класс программ. Конкретная программа получается из схемы, если в схеме некоторым способом интерпретировать символы операторов и предикатов. Две схемы называют эквивалентными, если при любой интерпретации входящих в них переменных (операторов и предикатов) получаются эквивалентные программы. А.А. Ляпуновым была поставлена задача отыскания алгоритма, распознающего эквивалентность схем программ и отыскания полной системы эквивалентных преобразований. Эти задачи были решены учеником А.А. Ляпунова Ю.И. Яновым. Алгебраическая теория программирования, основы которой были заложены в работах А.А. и его учеников, получила бурное развитие во многих научных коллективах как в нашей стране, так и за рубежом, и дала серьезные теоретические и прикладные результаты.

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

 

[<<] [<] [^] [>] [>>]