编译

**编译**是指将用特定语言编写的计算机程序转换为另一种格式或语言的一组指令的过程。**编译器**是执行此任务的计算机程序。

通常,编译器会将用高级语言(如C++RustJava)编写的代码转换为可执行(可运行)代码,即所谓的**二进制代码**或**机器代码**。WebAssembly例如,是一种可执行二进制代码的形式,可以从用 C++、Rust、C#、Go、Swift 和其他几种语言编写的代码编译而来,并在任何网页上运行,并且大多数功能在现代浏览器中都受支持(请参阅浏览器兼容性表)。

大多数编译器执行提前 (AOT) 编译或即时 (JIT) 编译。

GNU gcc编译器是 AOT 编译器的一个众所周知的示例。AOT 编译器通常从 shell 环境(从终端或控制台内部)或 IDE 中的命令行调用。

JIT 编译器通常不会直接调用,而是内置在软件运行时内部,以提高性能。例如,所有主要浏览器现在都使用具有内置 JIT 编译器的 JavaScript 引擎。

编译器也可以在高级语言之间进行转换——例如,从 TypeScript 到JavaScript——在这种情况下,它们通常有时被称为**转译器**。

另请参阅