“Bohra”?你开什么玩笑?!
“1966年,Bohra和Jacopini提出了以下3种基本结构,用这3种基本结构作为表示一个良好算法的基本单元。
(1) 顺序结构 ……(2) 选择结构……(3) 循环结构……”
————谭浩强《C程序设计》第四版 p26
很多人看到这段文字想必会感到非常熟悉,因为类似的文字在无数的中文(!)教科书、考试题以及那些以“复制粘贴”或逐字摘抄为主要生产手段的博文中出现过。(百度一下 Bohra和Jacopini 基本结构 ,结果至少有四十多页)
然而这段文字却是错误的,其广泛传播和泛滥完美地诠释了什么叫“以讹传讹”。
首先,这段文字中的“Bohra”实乃“Böhm”之误。为结构化程序设计理论做出过重大贡献的两位科学家的名字是Corrado Böhm 和 Giuseppe Jacopini。其次,两位科学家的成果至少在1964年就已经公布(据 Böhm, Corrado; and Giuseppe Jacopini (May 1966). "Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules". Communications of the ACM 9 (5): 366–371. doi:10.1145/355592.365646)。
Böhm 和 Jacopini的论文并没有提出“3种基本结构”(这三种结构有高级语言之后就有),更没有提出“用3种基本结构作为表示一个良好算法的基本单元”。他们的论文仅仅表明:使用goto语句的程序,可以不使用goto语句,而只使用顺序、选择和循环语句也可以实现而已。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架