0

我正在阅读C语言书籍。 它说,语言翻译问题

一些高级语言不是 编译,但解释。

Basic和Java是两个编程 语言,其中程序 解释和不编译。其他 的例子包括Unix系统的 shell和Python。

C#和Perl怎么样?

我认为C#应该总是编译,Perl不会总是编译。

是吗?

+0

当然,许多版本的BASIC *都被编译。这是低级语言的用户试图证明自己的痛苦持续存在的常见误解。由于它被编译为字节码,因此您也会遇到相当灰色的区域,但是会在虚拟机下执行,该虚拟机负责将其转换为当前处理器/环境的本机代码。在这里:http://stackoverflow.com/questions/2657268/whats-the-difference-between-compiled-and-interpreted-language – 2011-01-27 03:37:46

+0

@Cody他把这个问题标记为基本的,因为这是一个简单的问题。 – 2011-01-27 03:51:51

回答

3

C#和Java都编译,但不是本地代码。它们被编译为字节码(分别用于公共语言运行时和Java虚拟机),它们由VM解释。

实际上,Perl可以被编译,因为有一个命令行选项可以从Perl生成C代码并编译它。但更普遍的是,Perl被解释。

Perl和Python在正常运行时都被编译为字节码,然后由它们各自的解释器进行解释。运行之前不需要编译,与Java和C#不同。

通过C书的定义,只有将语言编译为直接在CPU上运行且不带运行时的本地代码(例如程序集)时才会编译语言。