blob: c40b5545ca0d90e5abe221c5e0d58435b453c80a (
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
30
|
---
title: Compile (コンパイル)
slug: Glossary/Compile
tags:
- CodingScripting
- Glossary
translation_of: Glossary/Compile
---
<p>コンパイルとは、特定の{{Glossary("computer programming", "プログラミング言語")}}を用いて記述されたコンピュータープログラムを他の言語 (普通はコンピューターが実行できるバイナリ言語) を用いて記述された同じプログラムに形を変えることである。コンパイラーはこのタスクを実行するソフトウェアです。時々、このタスクは "アセンブル" や "ビルド" とも呼ばれて、典型的には単なるコンパイルの完了以上のことを示します。例えば、あるバイナリーフォーマットにパッケージするなど。</p>
<p>通常、コンパイラーは C や{{Glossary("Java")}} のように人間が理解しやすい高級言語をアセンブリのような CPU が理解できる機械語に変換します。TypeScript を {{Glossary("JavaScript")}} にコンパイルするような、同レベル間の言語を翻訳するコンパイラーはトランスパイラやクロスコンパイラーと呼ばれます。これらはプロダクティビティツールと考えられています。</p>
<p>ほとんどのコンパイラーは、ahead-of-time (AOT) か just-in-time (JIT) で動きます。プログラマーは、たいていコマンドラインか使用している {{Glossary("IDE")}} から AOT コンパイラーを起動します。最も有名なコンパイラーである "gcc" はその一例です。<br>
JIT コンパイラーはたいてい透過的であり、性能のために使用されます。例えばブラウザーの場合、Firefox の <a href="https://developer.mozilla.org/ja/docs/Mozilla/Projects/SpiderMonkey">SpiderMonkey</a> JavaScript エンジンは組み込み JIT コンパイラーを持っています。これは、ウェブサイトを閲覧中にウェブサイトの JavaScript がより速く実行できるように機械語のコードにコンパイルします。<a href="https://developer.mozilla.org/ja/docs/WebAssembly">WebAssembly</a> のようなプロジェクトはこれをより良く行えるようにします。</p>
<h2 id="Learn_more" name="Learn_more">さらに学ぶ</h2>
<h3 id="General_knowledge" name="General_knowledge">一般的な知識</h3>
<ul>
<li>{{Interwiki("wikipedia", "コンパイラ")}} (Wikipedia)</li>
<li><a href="https://gcc.gnu.org">GNU Compiler Collection (GCC)</a></li>
</ul>
<h3 id="Learning_resources" name="Learning_resources">学習資料</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>
|