微积分和编程语法之间有什么关系?

Gio*_*rje 1 syntax computer-science calculus

我这个学期开始学习微积分.我之前使用过编程(或脚本)语言,主要是PHP和C#.我没有做过很多低级别的工作.我在语法之间建立的唯一关系是带有Y-Combinators的Anonymous函数和带有Set-notation的数组(我甚至不确定这些是否正确).

我总是看到微积分和编程之间的相似之处 - 它几乎就像命理学一样 - 那么微积分和编程语言如何相关?

潜意识里,我知道有关系,但我认为我不知道描述它的正确术语.有些人把我称为"计算理论"和"图灵机",但我还没有真正研究过它.如果我不完全理解计算理论,我还能认为自己是程序员吗?

Tyl*_*nry 10

"微积分"是一个词义,在数学的背景下:

任何正式系统,其中符号表达式根据固定规则进行操作.

因此,两个概念在某种程度上只是因为它们的名称都包含"微积分"这个词而无法理解.

Lambda演算是用于建模计算的形式,可证明相当于图灵机.图灵机和lambda演算(它们是在同一时间独立开发)的目的是提供一个正式的系统,其中可以严格证明有关计算的陈述.这是理论计算机科学的基础.它与编程语言有关,因为Church-Turing论文基本上表明任何能够模拟图灵机的编程语言都能够计算可能被计算的任何东西.满足此属性的语言称为Turing-complete.几乎所有现代通用编程语言都具有此属性.

微分/积分微积分,你在高中学到的那种,除了"微积分"这个词之外,与lambda演算没有任何共同之处.它与编程无关......除非你正在编写一个程序来计算积分或衍生物.

一阶逻辑(一种谓词演算)在人工智能和自动化定理证明领域具有一定的相关性,但这又是用计算机来解决数学问题,与基础计算理论无关,或者编程语言的设计.

  • 是.你在高中学到的微积分将与编写程序相关,这些程序试图解决需要计算导数或积分的问题(尤其用于科学计算,例如物理模拟).然而,高中微积分与计算机编程和可计算性的*理论*无关. (5认同)