Теорема Бёма — Якопини


Теорема Бёма — Якопини — положение структурного программирования, согласно которому любой исполняемый алгоритм может быть преобразован к структурированному виду, то есть такому виду, когда ход его выполнения определяется только при помощи трёх структур управления: последовательной (англ. sequence), ветвлений (англ. selection) и повторов или циклов (англ. iteration).

1. В последовательной структуре инструкции выполняются в том порядке, как они записаны в программе, то есть одна за другой.

2. В структуре ветвлений последовательность выполнения инструкций зависит от заданного, чаще всего логической переменной, условия.

3. В циклах инструкции повторяются до тех пор, пока не изменится некое условие, например значение логической переменной.

Теорема была сформулирована и доказана итальянскими математиками Коррадо Бёмом и Джузеппе Якопини (Giuseppe Jacopini) в их статье 1966 года[1]. В статье также описывались методы преобразования неструктурированных алгоритмов в структурированные на примере созданного Бёмом языка программирования P′′.

Спустя 2 года после публикации теоремы, в 1968 году вышла статья Эдсгера Дейкстры «Go To Statement Considered Harmful»[2], в которой он критиковал использование оператора GOTO и высказывался в пользу улучшения стиля программного кода за счёт использования структур управления и отказа от других инструкций, управляющих ходом алгоритма.