在我的讲义中,“语言实施系统”被解释为,
语言实现系统为程序提供接口 更高级别的语言到机器指令。
在维基百科给我的搜索之后,
编程语言实现是用于执行的系统 计算机程序。
但我很难理解这个概念。它是在谈论像JVM(Java虚拟机)这样的东西吗?
有人可以用简单的语言向我解释一下吗?
答案 0 :(得分:3)
我会试一试。
编程语言实现描述了将代码(例如Java)作为示例如何转换为机器(处理器等)理解的语言的方法。我们将其称为机器代码。
有两种主要形式,编译和解释。
从技术上讲,正如维基百科页面指出的那样,编译正在将一种编程语言转换为另一种编程语言(通常是较低级别的编程语言)。传统上,这是指将多个输入文件组合到可在目标系统上运行的单个文件中。
在解释语言中,程序会在您的计算机上运行时逐个转换。
您提到了Java虚拟机,所以我将以此为例。在JVM中,使用javac
将Java代码编译到Java字节码中。然后,Java虚拟机将此字节码解释,并在底层硬件上运行。这就是java
命令的作用。虽然Java可以被描述为已编译的和解释语言,但它可能更容易将Java本身视为编译语言,并将Java字节码视为解释语言。
相比之下,其他语言(如C和C ++)通常直接转换(编译)到目标硬件平台的机器代码。
除了这些,正如@kostix在评论中指出的那样,存在 transpiling 或源到源编译。透明度是指将一种更高级别的语言转换为另一种更高级别的语言。一个常见的例子是将JavaScript ES6转换为JavaScript ES5以实现向后兼容,或将C ++转换为JavaScript