关于语言翻译的问题
Posted
技术标签:
【中文标题】关于语言翻译的问题【英文标题】:Question on Language Interpreter 【发布时间】:2011-06-16 07:03:26 【问题描述】:我正在阅读 C 语言书籍。 它说,
一些高级语言不是 编译但被解释。
Basic和Java是两种编程 程序经常使用的语言 解释而不编译。其他 例子包括 Unix 系统的 shell 和 Python。
C# 和 Perl 怎么样?
我认为 C# 应该总是编译,而 Perl 并不总是编译。
是吗?
【问题讨论】:
当然,BASIC 的许多版本都被编译了。这是低级语言用户试图为自己的痛苦辩护的常见误解。您还遇到了 Java 的一个灰色区域,因为它被编译为字节码,但在负责将其转换为当前处理器/环境的本机代码的虚拟机下执行。见这里:***.com/questions/2657268/… @Cody 他将此问题标记为基本问题,因为这是一个简单问题。 @Rafe:我指的并不是这个标签,而是他引用的书中的引文:“Basic 和 Java 是两种编程语言,其中......” @Cody 哦,甚至没看到...这很尴尬... 【参考方案1】:C# 和 Java 都经过编译,但不编译为本机代码。它们被编译成 字节码(分别用于公共语言运行时和 Java 虚拟机),由它们的 VM 解释。
实际上,Perl 可以编译,因为有一个命令行选项可以从 Perl 生成 C 代码并进行编译。但更一般地说,Perl 是被解释的。
Perl 和 Python 在正常运行时都会编译为字节码,然后由它们各自的解释器解释。与 Java 和 C# 不同,运行前不需要编译。
根据您的 C 书的定义,只有将语言编译为直接在 CPU 上运行而无需运行时的本机代码(例如程序集),才会编译语言。
【讨论】:
没问题;你用这篇文章打败了我,所以我想我不妨添加我可以添加的内容:)以上是关于关于语言翻译的问题的主要内容,如果未能解决你的问题,请参考以下文章