コンパイラ(Compiler)

コンパイラ(Compiler)とは、人間が書いたプログラム(ソースコード)を、コンピュータが直接実行できる形式(機械語)にまとめて翻訳するソフトウェアのことです。C言語やJava、C#などの言語では、書いたコードをコンパイラで変換(コンパイル)してから実行します。

現実世界でいえば、「書籍の翻訳者」のようなものです。日本語の原稿(ソースコード)を、出版前にまるごと英語(機械語)に翻訳して本として完成させます。読者(コンピュータ)は完成した翻訳本を読むだけなので、スラスラと速く読めます。

コンパイラの仕事

コンパイラは、単に言葉を置き換えるだけでなく、多くの仕事をこなします。文法の誤りを見つけて指摘し(エラーチェック)、無駄のない速いコードに作り替え(最適化)、最終的に実行可能なファイルを出力します。実行前に全体をチェックするため、書き間違いの多くを動かす前に発見できるのが利点です。

インタープリタとの違い

プログラムを実行する方式には、コンパイラ方式と「インタープリタ方式」があります。

方式 特徴 翻訳に例えると
コンパイラ 実行前にまとめて機械語へ翻訳する。実行が速く、事前にエラーを見つけやすい。 出版前に全文を翻訳する翻訳者
インタープリタ 実行しながら1行ずつ翻訳する。すぐ動かせるが、実行速度は遅め。 その場で訳す同時通訳者

コンパイラ方式の代表はC言語やC++、インタープリタ方式の代表はPythonやPHPです。JavaやC#は、中間形式に一度コンパイルして実行時に変換する、両者の中間的な方式をとっています。

ビルドとの関係

開発の現場では「ビルド」という言葉もよく使われます。ビルドは、コンパイルに加えて、複数のファイルの結合(リンク)や必要な部品の取り込みまで含めた、実行できる状態を作る一連の工程を指します。コンパイルはビルドの中心的な一部です。Visual StudioなどのIDEでは、ボタン1つでこの一連の流れが実行されます。

あわせて知っておきたい用語

  • ソースコード
    人間がプログラミング言語で書いたプログラムの原文です。
  • 機械語
    CPUが直接理解できるバイナリ形式の命令。コンパイラの翻訳先です。
  • IDE
    コンパイラを含む開発道具一式をまとめたソフトです。
  • バイナリ
    0と1のデータ形式。コンパイル後の実行ファイルはバイナリです。

コメント

タイトルとURLをコピーしました