Язык ДРАКОН и Дональд КнутПриведу цитату из статьи Structured programming
https://en.wikipedia.org/wiki/Structured_programmingЦитата:
Donald Knuth accepted the principle that programs must be written with provability in mind, but he disagreed with abolishing the GOTO statement, and as of 2018 has continued to use it in his programs.[8]
In his 1974 paper, "Structured Programming with Goto Statements",[9] he gave examples where he believed that a direct jump leads to clearer and more efficient code without sacrificing provability.
Knuth proposed a looser structural constraint: It should be possible to draw a program's flow chart with all forward branches on the left, all backward branches on the right, and no branches crossing each other.
Автоперевод на русский язык:
Цитата:
Дональд Кнут принял принцип, что программы должны быть написаны с учетом доказуемости, но он не согласился с отменой оператора GOTO и по состоянию на 2018 год продолжал использовать его в своих программах. [ 8 ]
В своей статье 1974 года «Структурное программирование с операторами Goto» [ 9 ] он привел примеры, в которых, по его мнению, прямой переход приводит к более ясному и эффективному коду без ущерба для доказуемости.
Кнут предложил более слабое структурное ограничение: должно быть возможно нарисовать блок-схему программы со всеми прямыми ветвями слева, всеми обратными ветвями справа и без пересекающихся ветвей.
Вложение:
For_loop_example.png [ 70.29 КБ | Просмотров: 4529 ]
Блок-схема иллюстрирует мысль Кнута, правда, с ошибкой.
Ошибка в том, что на схеме прямая ветвь (сверху вниз) расположена справа, а обратная ветвь (снизу вверх) расположена слева.