编程语言实现

Programming Language Implementation

在我的讲义中 "Language Implementation System" 解释为,

A language implementation system provides an interface fro programs in higher level languages to machine instructions.

经过维基百科的搜索,

A programming language implementation is a system for executing computer programs.

但是我很难理解这个概念。它是在谈论 JVM(Java 虚拟机)之类的东西吗?

有人可以用更简单的术语向我解释一下吗?

我试试看。

编程语言实现描述了如何将您的代码(例如Java)作为示例转换为机器(处理器等)可以理解的语言的方法。我们将其称为机器码。

主要有两种形式,编译解释

从技术上讲,正如维基百科页面所指出的,编译是将一种编程语言转换为另一种(通常是较低级别的语言)。传统上,这指的是将多个输入文件组合成一个 运行 在目标系统上可用的文件。

解释 语言中,程序在您的机器上 运行ning 时会逐段转换。

您提到了 Java 虚拟机,所以我将以此为例。在 JVM 中,Java 代码使用 javac 编译 为 Java 字节码。该字节码然后由 Java 虚拟机 解释 并在底层硬件上 运行 解释。这就是 java 命令的作用。虽然 Java 可以描述为编译的 解释语言,但将 Java 本身视为编译语言和 Java 字节码可能更容易作为解释性语言。

相比之下,C、C++等其他语言通常直接转换(编译)为目标硬件平台的机器码。

除此之外,正如@kostix 在评论中指出的那样,还存在转译,或源到源编译。转译是指将一种高级语言转换为另一种高级语言。一个常见的例子是将 JavaScript ES6 转换为 JavaScript ES5 以实现向后兼容性,或将 C++ 转换为 JavaScript