我这学期开始学习微积分。我之前使用过编程(或脚本)语言,主要是PHP和C#。我没有做过很多低级别的工作。我在语法之间建立的唯一关系是带有Y-Combinators的Anonymous函数和带有Set-notation的数组(我甚至不确定这些是否正确)。
我总是看到微积分和编程之间的相似之处 - 它几乎就像数字命理学一样 - 那么微积分和编程语言如何相关?
潜意识里,我知道有关系,但我认为我不知道描述它的正确术语。有些人把我称为“计算理论”和“图灵机”,但我还没有真正研究过它。如果我不完全理解计算理论,我还能认为自己是程序员吗?
答案 0 :(得分:10)
“微积分”是一个词义,在数学的背景下:
任何具有象征意义的正式系统 表达式是根据 固定规则。
因此,两个概念在某种程度上只是因为它们的名字都包含“微积分”这个词而无法理解。
Lambda calculus是建模计算的形式,可证明等同于Turing machine。图灵机和lambda演算(它们是在同一时间独立开发)的目的是提供一个正式的系统,其中可以严格证明有关计算的陈述。这是理论计算机科学的基础。它与编程语言有关,因为Church-Turing Thesis,它基本上表明任何能够模拟图灵机的编程语言都能够计算可能被计算的任何东西。满足此属性的语言称为Turing-complete。几乎所有现代通用编程语言都具有此属性。
Differential/Integral calculus,你在高中学到的那种,除了“微积分”这个词之外,与lambda演算没有任何共同之处。它与编程无关......除非你正在编写一个程序来计算积分或衍生物。
一阶逻辑(一种predicate calculus)在人工智能和自动化定理证明领域具有一定的相关性,但同样这只是使用计算机来解决数学问题,与之无关。潜在的计算理论,或编程语言的设计。
答案 1 :(得分:2)
命理学是完全不同的东西,但这不是重点!
自从我学习微积分以来已经有一段时间了,但不过,这是数学。它在物理和机械工程方面有很多应用。
微积分和编程有些相关,例如你提到的计算理论,它也是数学的一个子集,但严格来说它根本不是编程。最后,您可以使用编程语言和软件来解决微积分方程,但您不需要。微积分已经存在了比计算机更长的时间!