我的理解如下,定义如下:
翻译 - 使用某种语言编写代码,生成其他语言的代码。
编译 - 翻译成机器码。
机器码 - 直接给CPU的指令。
现在,来自docs.oracle.com:
javac - Java编程语言的编译器
编译器...?我认为它应该是Java 翻译器,因为它正在生成一种不是机器码的代码。字节码需要解释器(JVM)才能运行,所以它绝对不是机器码。
来自Wikipedia:
同样地,根据定义,我认为Java被翻译成字节码。在互联网上有许多类似的例子,我认为这方面存在一些混淆或者是我自己遗漏了某些东西。Java应用程序通常会被编译成字节码
请问能否澄清一下这个问题?编译和翻译之间有什么区别?