Структурное программирование
Идея, что вся логика программы строится из трёх конструкций — последовательности, ветвления и цикла, — а значит, goto не нужен. Письмо Дейкстры «Go To Statement Considered Harmful» (1968) стало лозунгом.
Бём и Якопини ещё в 1966 году доказали, что трёх конструкций хватает для любых вычислений. Довод был скорее практическим, чем теоретическим: при произвольных переходах нельзя рассуждать о том, что истинно в данной точке кода, ведь вы могли попасть туда откуда угодно. Спор шёл десятилетие — Кнут написал взвешенную работу «Structured Programming with go to Statements» в 1974 году, — но решился тем, что языки просто перестали предлагать альтернативу. Сегодня это настолько очевидно, что термин почти не употребляют, хотя остатки живы: break, continue, ранний return и goto cleanup в C — всё это контролируемые переходы.