最佳Dijkstra论文解释这个引用?

时间:2010-05-19 01:38:53

标签: dijkstra

我今天早些时候很享受"The Humble Programmer"并且遇到了这个选择引用:

  

因此,就目前而且可能永远而言,第二类规则本身就是程序员所要求的纪律要素。我想到的一些规则是如此清晰,以至于它们可以被教导,并且永远不需要就某一特定程序是否违反它们进行争论。例如,在没有提供终止证据的情况下也不应写下循环的要求,也没有说明执行可重复语句不会破坏其不变性的关系。

我正在寻找Dijkstra的1300多篇着作中哪一篇最能详细描述,如上所述。

1 个答案:

答案 0 :(得分:7)

第5页至第18页:http://userweb.cs.utexas.edu/users/EWD/ewd02xx/EWD249.PDF
中。第3页到最后:http://userweb.cs.utexas.edu/users/EWD/ewd04xx/EWD473.PDF
结束第5页到结束:http://userweb.cs.utexas.edu/users/EWD/ewd06xx/EWD641.PDF
全部:http://userweb.cs.utexas.edu/users/EWD/transcriptions/EWD02xx/EWD261.html (荷兰语,翻译=以下)

注意:Dijkstra将他的页面编号从0开始。给定的页码从1开始,即PDF页码,而不是书面页码。


我用英语翻译EWD261

  

如何以数学方式编程

     

(明确定义的)程序的结构就像(明确定义的)数学理论。程序员的工作与创造性数学家的工作没有什么不同。

     

虽然存在一些但很重要的差异:

     
      
  1. 没有太多基本的编程概念,也不难理解(虽然误导性很简单);这就是为什么它是开发实践的理想选择。 (除此之外,还有一个事实是需要正确性,程序应该真的有效!)
  2.   
  3. 在大多数数学教育中,人们学习现有的定理,即。为学生配备一套特定的(详细的)概念;然而,程序员必须自己开发所需的概念。编程需要抽象导致一种创造力,而数学中的相同仅限于应用现有定理。
  4.   
  5. 因为程序很大而且必须工作,程序员才会学会如何谨慎而有意识地进行开发。这正是人们应该教的!对我而言,教授广泛的知识是不合理的。
  6.