gpt4 book ai didi

language-agnostic - 声明式语言的实现细节是否具有内在的必要性

转载 作者:行者123 更新时间:2023-12-04 16:56:40 27 4
gpt4 key购买 nike

我正在阅读 Tomas Petricek 和 Jon Skeet 的“函数式编程”,我了解声明式编程和命令式编程之间的区别。

我想知道的是原始运算符和函数是如何实现的,是从命令式运算符和函数构造的声明式语言。

干杯

世界巡回赛

最佳答案

如果我正确理解您的问题,我认为这不是硬性规定。例如,您可以使用像 Lisp 这样的函数式语言来为自己创建一个解释器。在这种情况下,实现细节是以函数式的方式实现的(因为 Lisp 是一种函数式语言)。

此外,如果您有一种图灵完备的语言,您可以使用它来为任何其他语言实现解析器/解释器/编译器。有命令式图灵完备语言和函数式/声明式图灵完备语言。

但所有代码最终都会变成汇编代码或机器代码,这本质上是必不可少的。从理论上讲,我上面所说的是正确的,但在实践中显然不是:)。

顺便说一句有趣的历史,LISP 是一个完全理论化的结构。它是计算机语言的数学符号。在 Steve Russel 在 IBM 704 上用机器代码实现 LISP 的 eval 函数之前,它仍然是理论上的:

根据 Paul Graham 在 Hackers & Painters 中的报道,p。 185,McCarthy 说:“Steve Russell 说,看,我为什么不对这个 eval 进行编程......,我对他说,ho,ho, 你混淆了理论和实践 ,这个 eval 是为阅读,不是为了计算 。但他继续做了。也就是说,他将我论文中的 eval 编译成 IBM 704 机器代码,修复错误,然后将其宣传为 Lisp 解释器,这当然是。所以在这一点 Lisp 基本上具有今天的形式......”(强调我的)

所以再一次,理论与实践之间的微妙之处。 :)

关于language-agnostic - 声明式语言的实现细节是否具有内在的必要性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2224427/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com