gpt4 book ai didi

macros - 发现 Common Lisp 的 "Core"实体和宏

转载 作者:太空宇宙 更新时间:2023-11-03 18:41:33 25 4
gpt4 key购买 nike

在阅读 Peter Seibel 的《Practical Common Lisp》时,我了解到该语言除了列表处理和评估等核心部分外,还有 loopdo 等是使用这些核心结构编写的。

我的问题有两个方面。首先是 Lisp 的“核心”到底是什么?如果需要,可以重新创建其他东西的最低限度是什么?第二部分是在哪里可以看到作为 Common Lisp 的一部分但实际上是用 Lisp 编写的宏的代码?作为一个附带问题,当一个人编写 Lisp 实现时,他是用什么语言编写的?

最佳答案

what exactly is the "core" of Lisp? What is the bare minimum from which other things can be re-created, if needed?

语法运算符的最小集合在 CLtL 中被称为“特殊形式”。该术语在 ANSI CL 中重命名为“特殊运算符”。其中有 24 个。这在 CLtL section "Special Forms" 中有很好的解释。 .在 ANSI CL 中它们是 25 .

where can one look at the code of the macros which come as part of Common Lisp, but were actually written in Lisp?

许多 Common Lisp 实现都是免费软件 ( list );你可以看看他们的源代码。例如,here对于 SBCL,here用于 GNU clisp 等

when one writes a Lisp implementation, in what language does he do it?

通常一个 Lisp 实现包括

  • 较低级别的部分,用系统编程语言编写。这部分包括24种特殊形式的函数调用机制和运行时部分的实现。和
  • 一个更高级别的部分,使用 Lisp 本身,因为用系统编程语言编写所有内容太乏味了。这通常包括宏和编译器。

系统编程语言的选择取决于。例如,对于构建在 Java VM 之上的实现,自然选择 Java。对于包含它们自己的内存管理的实现,它通常是 C,或者一些与 C 具有相似语义的 Lisp 扩展(即你有固定宽度的整数类型、显式指针等)。

关于macros - 发现 Common Lisp 的 "Core"实体和宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46979669/

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