【问题标题】:Best Dijkstra papers to explain this quote?最好的 Dijkstra 论文来解释这句话?
【发布时间】:2010-05-19 01:38:53
【问题描述】:

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

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

我正在寻找 Dijkstra 的 1300 多篇著作中的哪一篇最好地描述了他在上面描述的更详细的规则。

【问题讨论】:

    标签: dijkstra


    【解决方案1】:

    第 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. 因为程序很大,但必须工作,程序员将学会如何谨慎和有意识地进行开发。这正是一个人应该教的!对我来说,传授广泛的知识是不合理的。

    【讨论】:

    • 打印出EWD249,整篇论文看起来很有趣。阅读 EWD473,很有趣,但我想我错过了编程语言相关性。
    • @jemfinch 我会在这里翻译荷兰语页面(我是荷兰人)。
    • 那太棒了,我实际上正在考虑发推文,希望有人会写翻译:)
    • 另请注意; Dijkstra 是一种“一次编写软件,它不应该包含任何错误”。还;相反,他并没有在银盘上展示他所有的“规则”;人们必须在他的文本中搜索它们。它们不受任何语言的限制,但它们是关于“结构化程序”(但他不再喜欢这个词,因为 70 年代的人在滥用它)或“数学程序员”的一般建议工作(他后来更喜欢这个词),应该是而不是。
    • 哇!这是令人印象深刻的搜索。 +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    • 2011-12-12
    • 1970-01-01
    • 2011-03-02
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多