【发布时间】:2011-03-16 23:22:09
【问题描述】:
我正在努力更好地了解差异。我在网上找到了很多解释,但它们倾向于抽象的差异而不是实际的含义。
我的大部分编程经验都是使用 CPython(动态、解释)和 Java(静态、编译)。但是,我知道还有其他类型的解释和编译语言。除了可执行文件可以从用编译语言编写的程序中分发之外,每种类型是否有任何优点/缺点?我经常听到人们争辩说解释语言可以交互使用,但我相信编译语言也可以有交互实现,对吗?
【问题讨论】:
-
您选择了最差的语言进行比较。两者都是字节编译的。它们之间唯一真正的区别是 JITer,甚至 Python 也有一个部分 (psyco)。
-
Clojure 是交互式编译语言的一个很好的例子——一切都完全编译(首先编译到 JVM,然后通过 JIT 编译到本机代码)。然而,很多重新编译都是动态发生的,并且开发通常在交互式 REPL shell 中完成,您可以在其中评估运行环境中所需的任何功能。
-
标准 ML 是另一种交互式编译语言;内置编译器也会发出真正的本机机器代码。
标签: java python compiler-construction programming-languages interpreter