【问题标题】:What's the relationship between Calculus and programming syntaxes?微积分和编程语法之间有什么关系?
【发布时间】:2010-08-30 19:39:09
【问题描述】:

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

我总是看到微积分和编程之间的相似之处——它几乎就像命理——那么微积分和编程语言有什么关系呢?

下意识地,我知道存在关系,但我认为我不知道合适的术语来描述它。有些人把我提到“计算理论”和“图灵机”,但我还没有真正研究过。如果我不完全理解计算理论,我还能认为自己是一名程序员吗?

【问题讨论】:

  • 你的意思是lambda calculus?
  • 任何类型的微积分一般包括 lambda、FOL、多变量。我知道 lambda 在关系编程语法中很重要,但是其他形式的微积分呢?

标签: syntax computer-science calculus


【解决方案1】:

“微积分”是一个词的意思,在数学的语境中:

任何形式系统,其中符号 表达式是根据 固定规则。

因此,仅仅因为两个概念的名称都包含“微积分”这个词,就认为这两个概念在某种程度上相关是没有道理的。

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

Differential/Integral calculus,你在高中学的那种,除了“微积分”这个词之外,与 lambda 微积分没有任何共同之处。它与编程无关......除非你正在编写一个计算积分或导数的程序。

一阶逻辑(predicate calculus 的一种)在人工智能和自动定理证明领域有一定的相关性,但这只是用计算机解决数学问题,与基础理论无关计算,或编程语言的设计。

【讨论】:

  • 所以我要在高中学习的微积分根本与编程无关?——除非我打算解方程?
  • 是的。您在高中学习的微积分将与编写程序相关,这些程序试图解决需要计算导数或积分的问题(尤其用于科学计算,例如物理模拟)。然而,高中微积分与计算机编程和可计算性的理论没有任何关系。
【解决方案2】:

命理是完全不同的东西,但这不是重点!

我已经有一段时间没有学微积分了,但无论如何,它是数学。它在物理和机械工程方面有很多应用。

微积分和编程有些关系,比如你提到的计算理论,它也是数学的一个子集,但严格来说根本不是编程。

最后,您可以使用编程语言和软件来求解微积分方程,但您不需要这样做。微积分的存在时间比计算机要长得多!

【讨论】:

    猜你喜欢
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 2013-10-30
    • 2015-01-02
    • 2012-07-03
    • 1970-01-01
    相关资源
    最近更新 更多