コンパイラ(Compiler)とは、人間が書いたプログラム(ソースコード)を、コンピュータが直接実行できる形式(機械語)にまとめて翻訳するソフトウェアのことです。C言語やJava、C#などの言語では、書いたコードをコンパイラで変換(コンパイル)してから実行します。
現実世界でいえば、「書籍の翻訳者」のようなものです。日本語の原稿(ソースコード)を、出版前にまるごと英語(機械語)に翻訳して本として完成させます。読者(コンピュータ)は完成した翻訳本を読むだけなので、スラスラと速く読めます。
コンパイラの仕事
コンパイラは、単に言葉を置き換えるだけでなく、多くの仕事をこなします。文法の誤りを見つけて指摘し(エラーチェック)、無駄のない速いコードに作り替え(最適化)、最終的に実行可能なファイルを出力します。実行前に全体をチェックするため、書き間違いの多くを動かす前に発見できるのが利点です。
インタープリタとの違い
プログラムを実行する方式には、コンパイラ方式と「インタープリタ方式」があります。
| 方式 | 特徴 | 翻訳に例えると |
|---|---|---|
| コンパイラ | 実行前にまとめて機械語へ翻訳する。実行が速く、事前にエラーを見つけやすい。 | 出版前に全文を翻訳する翻訳者 |
| インタープリタ | 実行しながら1行ずつ翻訳する。すぐ動かせるが、実行速度は遅め。 | その場で訳す同時通訳者 |
コンパイラ方式の代表はC言語やC++、インタープリタ方式の代表はPythonやPHPです。JavaやC#は、中間形式に一度コンパイルして実行時に変換する、両者の中間的な方式をとっています。
ビルドとの関係
開発の現場では「ビルド」という言葉もよく使われます。ビルドは、コンパイルに加えて、複数のファイルの結合(リンク)や必要な部品の取り込みまで含めた、実行できる状態を作る一連の工程を指します。コンパイルはビルドの中心的な一部です。Visual StudioなどのIDEでは、ボタン1つでこの一連の流れが実行されます。

コメント