LISP 是编译型语言还是解释型语言?

Nay*_*iya 4 lisp

我知道严格来说不存在编译或解释语言这样的东西。

但是,一般来说,LISP 是用来编写像 Python、bash 脚本、批处理脚本这样的脚本吗?

或者它是像 C++、JAVA 和 C# 这样的通用编程语言吗?

谁能用简单的术语解释一下?

Sou*_*han 6

Lisp 编程语言和 Dartmouth BASIC 的早期版本将是解释器语言的示例(解析源代码并直接执行其行为)。然而,Common lisp(当前版本)是一种编译语言。

请注意,大多数 Lisp 编译器都不是Just In Time编译器。作为程序员,您可以调用编译器,例如在 Common Lisp 中使用函数COMPILECOMPILE-FILE。然后 Lisp 代码被编译。

此外,大多数同时具有编译器和解释器的 Lisp 系统允许自由混合解释和编译代码的执行。

欲了解更多详情,请查看此处

  • 第一个 Lisp 编译器于 1960 年完成。 (4认同)
  • 除了 Rainer 的评论之外:一些 Lisp 系统(我认为是 CMUCL)确实没有解释器,而是总是编译的,甚至是你交互输入的内容。我怀疑 Racket 也是这样工作的。 (2认同)
  • @tfb:有一些仅编译器的实现,但 CMUCL 有一个解释器 - 尽管通常的默认设置是使用编译器。SBCL(CMUCL 的一个分支)过去只有一个编译器,但不久前添加了一个解释器。 (2认同)