LISP 是编译语言还是解释语言?
Is LISP a compiled or interpreted language?
我知道严格来说,没有编译语言或解释语言这回事。
但是,一般来说,LISP是用来写Python、bash脚本、批处理脚本的吗?
还是像 C++、JAVA 和 C# 这样的通用编程语言?
谁能简单解释一下?
早期版本的 Lisp 编程语言和达特茅斯 BASIC 将是示例解释器语言(解析源代码并直接执行其行为。)。但是,Common lisp(当前版本)是一种编译语言。
请注意,大多数 Lisp 编译器不是 Just In Time
编译器。作为程序员,您可以调用编译器,例如在 Common Lisp 中使用函数 COMPILE
和 COMPILE-FILE
。然后 Lisp 代码被编译。
此外,大多数同时具有编译器和解释器的 Lisp 系统允许自由混合执行解释代码和编译代码。
有关详细信息,请查看 here
传统上,LISP 可以被解释或编译——同时 运行 中的一些。在某些情况下,编译将是像 JAVA.
这样的虚拟机
LISP 是一种通用编程语言,但很少再这样使用了。在微编码 LISP 机器时代,整个操作系统,包括网络、图形和打印机驱动程序,都是用 LISP 本身编写的。例如,第一个 IMAP 邮件客户端完全是用 LISP 编写的。
不寻常的语法可能使其他编程语言(如 [=17=)更具吸引力。但如果仔细观察,您会发现流行语言(如 Perl)中受 LISP 启发的元素。
Lisp 是一种经过编译的通用语言,在现代使用中。
澄清一下:
- “LISP”现在被理解为“Common Lisp”
- Common Lisp 是一个 ANSI 标准
- Common Lisp 有多种实现,包括免费的和商业的
代码通常被编译,然后加载到图像中。编译和加载整个系统的个体 parts/files 的顺序通常是通过系统定义工具定义的(现在主要是指 ASDF)。
大多数实现还提供了一种在启动时加载源代码的方法。示例:
sbcl --load 'foo.lisp'
这使得使用 lisp 源文件作为“脚本”成为可能,即使它们很可能在执行前被编译。
我知道严格来说,没有编译语言或解释语言这回事。
但是,一般来说,LISP是用来写Python、bash脚本、批处理脚本的吗?
还是像 C++、JAVA 和 C# 这样的通用编程语言?
谁能简单解释一下?
早期版本的 Lisp 编程语言和达特茅斯 BASIC 将是示例解释器语言(解析源代码并直接执行其行为。)。但是,Common lisp(当前版本)是一种编译语言。
请注意,大多数 Lisp 编译器不是 Just In Time
编译器。作为程序员,您可以调用编译器,例如在 Common Lisp 中使用函数 COMPILE
和 COMPILE-FILE
。然后 Lisp 代码被编译。
此外,大多数同时具有编译器和解释器的 Lisp 系统允许自由混合执行解释代码和编译代码。
有关详细信息,请查看 here
传统上,LISP 可以被解释或编译——同时 运行 中的一些。在某些情况下,编译将是像 JAVA.
这样的虚拟机LISP 是一种通用编程语言,但很少再这样使用了。在微编码 LISP 机器时代,整个操作系统,包括网络、图形和打印机驱动程序,都是用 LISP 本身编写的。例如,第一个 IMAP 邮件客户端完全是用 LISP 编写的。
不寻常的语法可能使其他编程语言(如 [=17=)更具吸引力。但如果仔细观察,您会发现流行语言(如 Perl)中受 LISP 启发的元素。
Lisp 是一种经过编译的通用语言,在现代使用中。
澄清一下:
- “LISP”现在被理解为“Common Lisp”
- Common Lisp 是一个 ANSI 标准
- Common Lisp 有多种实现,包括免费的和商业的
代码通常被编译,然后加载到图像中。编译和加载整个系统的个体 parts/files 的顺序通常是通过系统定义工具定义的(现在主要是指 ASDF)。
大多数实现还提供了一种在启动时加载源代码的方法。示例:
sbcl --load 'foo.lisp'
这使得使用 lisp 源文件作为“脚本”成为可能,即使它们很可能在执行前被编译。