首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编程是数学的一个子集吗?

编程是数学的一个子集吗?
EN

Stack Overflow用户
提问于 2008-09-26 03:11:30
回答 29查看 17.7K关注 0票数 67

我已经听过很多次了,所有的编程都是数学的一个子集。Some suggest说,OO从根本上讲是基于数学的,但除了一些明显的例子外,我不明白其中的联系:

  • 使用归纳法证明递归算法,
  • 形式正确性证明,
  • 函数式语言,
  • λ演算,
  • 渐近复杂性,
  • DFA,NFA,图灵机,以及一般理论计算,
  • 以及盒子上的一切都是二进制的事实。

我知道数学对编程非常重要,但我很难接受这种“子集”的观点。编程在哪些方面是数学的一个子集?

我正在寻找一个可能与企业/OO开发相关的解释,如果有足够强的联系的话。

EN

回答 29

Stack Overflow用户

回答已采纳

发布于 2008-09-26 03:26:41

总之,请记住,数学是对逻辑的形式化编码,这也是我们在软件中所做的。

您的问题中的主题列表中加载了数学问题。我们能够在一个相当高层次的抽象上进行编程,所以原始的数学可能不会直接盯着你看。例如,您提到了DFAs..您可以在不了解任何数学的情况下在程序中使用正则表达式,但是当您想要设计一个好的正则表达式引擎时,您会发现更需要数学知识。

我想你说中了一个有趣的问题。编程是一门艺术,也是一门科学。有很多“行业工具”,你不一定要坐下来做很多高级的数学运算来简单地写一个程序。事实上,当你在编程时,你可能并不是真的在做太多的数学或计算机科学。

当我们开始解决计算机科学中的难题时,数学就出现了。你走得越深,它就会越充实..通常在较低的抽象级别中。

也有一些编程领域,你不一定要工作,但它们涉及更多的数学。例如,虽然您肯定可以在没有任何正式数学的情况下学习一门语言并编写一些应用程序,但如果没有一些应用数学,您在算法分析方面就不会取得很大进展。

票数 47
EN

Stack Overflow用户

发布于 2008-09-26 03:14:09

从数学的角度来说,它需要对算法等进行抽象思维。

当它涉及到计划时间表、可交付成果、测试时,它就是工程。

当你不知道它最终会变成什么样子的时候,它就是艺术。

票数 83
EN

Stack Overflow用户

发布于 2008-09-26 03:27:24

编程是应用数学中最困难的分支之一;较差的数学家最好保持纯粹的数学家。

--E.W. Dijkstra

票数 56
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/137550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档