最好的Dijkstra报纸来解释这句话?

最好的Dijkstra报纸来解释这句话?,dijkstra,Dijkstra,今天早些时候我很享受,偶然发现了这句精选语录: 因此,就目前而言,也许永远而言,第二类规则本身就是程序员所要求的纪律元素。我头脑中的一些规则非常清楚,可以教授它们,并且不需要争论给定的程序是否违反了它们。例如,如果不提供终止证明,也不说明其不变性不会因执行可重复语句而被破坏的关系,则不应记录任何循环 我在寻找迪克斯特拉1300多篇著作中,哪一篇最能详细描述上述规则。第5页至第18页: 第3页中间至结尾: 结束第5页至结束: 全部:(荷兰语,翻译=下文) 注:Dijkstra的页码从0开始。给定的

今天早些时候我很享受,偶然发现了这句精选语录:

因此,就目前而言,也许永远而言,第二类规则本身就是程序员所要求的纪律元素。我头脑中的一些规则非常清楚,可以教授它们,并且不需要争论给定的程序是否违反了它们。例如,如果不提供终止证明,也不说明其不变性不会因执行可重复语句而被破坏的关系,则不应记录任何循环

我在寻找迪克斯特拉1300多篇著作中,哪一篇最能详细描述上述规则。

第5页至第18页:
第3页中间至结尾:
结束第5页至结束:
全部:(荷兰语,翻译=下文)

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


我对EWD261的英文翻译:

如何进行数学编程

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

尽管有一些微小但重要的区别:

  • 编程的基本概念不多,也不难理解(尽管过于简单);这就是为什么它是开发实践的理想选择。(除此之外,还有一个事实,即对正确性的要求,该程序应该真正起作用!)
  • 在大多数数学教育中,人们学习现有的定理,即。为学生提供一套具体(详细)的概念;然而,程序员必须自己开发所需的概念。编程需要抽象,这会带来一种创造性,而数学中的抽象仅限于应用现有的定理
  • 因为程序很大,而且必须工作,所以程序员将学习如何谨慎和有意识地开发。这正是我们应该教的!对我来说,教授广博的知识是没有道理的

  • 打印出来的EWD249,整张纸看起来很有趣。阅读EWD473,这很有趣,但我想我错过了与编程语言相关的内容。@jemfinch我将在这里翻译荷兰语页面(我是荷兰人)。那太棒了,我实际上在考虑推特,希望有人能写一篇翻译:)也请注意;Dijkstra是一种“只编写一次软件,它不应该包含任何bug”。也;相反,他并没有把所有的“规则”都写在银盘上;一个人必须在他的文本中寻找它们。它们不受任何语言的限制,但它们是关于“结构化程序”(但他不再喜欢这个术语,因为70年代的人滥用它)或“数学程序员”的工作(他后来更喜欢这个术语)应该是什么和不应该是什么的一般建议。哇!这是令人印象深刻的搜索+1.