转到,不要去!证明:

sor*_*h-r 9 algorithm

这是证明:

每个算法A使用go或类似设计,等同于不使用的另一个算法B.

换一种说法:

使用去设计的每个算法,都可以不用去设计.

如何证明?

ja.*_*ja. 18

C.Böhm,G.Jacopini,"流程图,图灵机和只有两种形成规则的语言",Comm.ACM,9(5):366-371,1966.

http://en.wikipedia.org/wiki/Structured_program_theorem

http://en.wikipedia.org/wiki/P"

Böhm-Jacopini证明描述了如何从任意图表构造结构化流程图,使用额外整数变量中的位来跟踪原始程序由程序位置表示的信息.这种结构基于Böhm的编程语言P''.Böhm-Jacopini证明并没有解决是否采用结构化编程进行软件开发的问题,部分原因是这种结构更可能掩盖程序而不是改进程序.相反,它标志着辩论的开始.埃德斯·迪克斯特拉(Edsger Dijkstra)的着名信件"Go To Statement were Armful",随后于1968年出现.该定理的后续证明解决了Böhm-Jacopini证明的实际缺点,其结构保持或提高了原始程序的清晰度.1

  • @reinier:具有讽刺意味的是它偶尔会导致废话,比如"函数调用只是goto,所以如果我在我的代码中使用无限制的goto就好了",或者"功能X只是转到,不要使用它".goto的难点与机器代码无关,结构化编程可以让人们更容易编写代码.在大多数编译语言中,`jmp`*不等同于goto,因为goto不仅仅是一个jmp,它通常还需要某种同步来使堆栈进入目的地的正确状态.C中的`goto`是一个非常高级的编程结构;-) (5认同)