blob: 0c25619c9ee90b2a39a02d4e0ede2452858a989f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
---
title: 编译
slug: Glossary/Compile
translation_of: Glossary/Compile
original_slug: Glossary/编译
---
<p>编译是将相同的程序从一种计算机程序语言转换到另一种语言计算机语言的过程。编译器是运行上述任务的软件。有时候,任务也被称为“汇编”或“构建”,这通常表示不仅仅编译完成,例如,用二进制格式进行打包。</p>
<p>通常,编译器转换一个人类理解的高级语言例如c或者java到机器语言,例如cpu理解的汇编语言。一些编译器转化同级别语言的被称为转换器或者交叉编译器,例如从TypeScript到jiavascript的编译。这些通常被理解为效率工具。</p>
<p>绝大多数编译器以预先编译(AOT)或实时编译(JIT)形式工作。作为一个开发者,你通常使用命令行或者集成开发环境(IDE)调用预先编译(AOT)的编译器。最出名的就是gcc编译器了。</p>
<p>实时编译器通常是用来提高性能的,令你没有感知的。例如在浏览器中,Firefox的SpiderMonkey的JavaScript引擎又一个内置的实时编译器会在你浏览时将网页中的JavaScript代码编译为机器码,从而提供运行效率。类似WebAssembly的项目正在使这些工作做的更好。</p>
<h2 id="了解更多">了解更多</h2>
<h3 id="基础知识">基础知识</h3>
<ul>
<li>{{Interwiki("wikipedia", "Compiler")}} on Wikipedia</li>
<li>The <a href="https://gcc.gnu.org">GNU Compiler Collection (GCC)</a></li>
</ul>
<h3 id="学习资料">学习资料</h3>
<ul>
<li><a href="https://medium.com/basecs/a-deeper-inspection-into-compilation-and-interpretation-d98952ebc842">Base CS Introduction on Compilers</a></li>
<li><a href="http://stackoverflow.com/a/1672/133203">A big list of learning material on StackOverflow</a></li>
</ul>
|