我正在读C语言书。 它说,
某些高杠杆语言不是 已编译但已解释。Basic和Java是两个编程 程序不在其中的语言 解释而不是编译。其他 例子包括Unix系统 shell和Python。
C#和Perl怎么样?
我认为C#应该始终编译,而Perl不会总是编译。
是吗?
答案 0 :(得分:3)
C#和Java都是编译的,但不是本机代码。它们被编译为字节码(分别用于公共语言运行时和Java虚拟机),由其VM进行解释。
实际上,可以编译Perl,因为有一个命令行选项可以从Perl生成C代码并编译它。但更一般地说,Perl被解释了。Perl和Python在正常运行时都被编译为字节码,然后由各自的解释器解释。运行之前没有必要的编译,这与Java和C#不同。
根据您的C书的定义,只有将语言编译为直接在CPU上运行且没有运行时的本机代码(例如程序集)时才编译语言。