おすすめ 格安 レンタルサーバー 比較 星の数ほどあるレンタルサーバーから自分のサーバーを見つけよう!

コンパイラ(compiler)

コンパイラ(compiler)

  • コンパイラは人間がプログラム言語で記述したソースコードをコンピューターで実行できる形式に変換するプログラム

コンパイラ(compiler)とは、人間がプログラム言語で記述したソースコード(設計図)をコンピューターで実行できる形式(オブジェクトコード、ネイティブコード、マシン語や機械語と呼ぶ)に変換するプログラムのことです。コンパイラを使用するプログラム言語をコンパイラ型言語と言います。コンパイラ型言語は、C言語、C++、Java、などが有名です。世界で初めて実用化されたコンパイラは、1957年に開発されたFortranコンパイラです。

プログラム言語を実行処理する方式は大きく2つあります。それが、インタープリタ方式とコンパイラ方式です。プログラム言語は人間が理解できるように設計された言語です。人間にとっては都合が良いのですが、コンピューターには理解することはできません。プログラム言語で記述されたソースコードは、ソフトウェアの設計図であり、コンピューターへ命令を出す指示書でもあります。したがって、ソースコードをコンピューターでも理解できる、つまりCPU(Central Processing Unit:中央処理装置)で解釈可能な形式、所謂 マシン語や機械語と呼ばれるオブジェクトコード・ネイティブコードに変換する必要があります。そのため、インタープリタやコンパイラが変換処理を行います。結果、CPUで解釈実行され、コンピューターはソースコードに従って動作することが可能になります。

コンパイラによる変換をコンパイルと呼びます。コンパイルすることで出力されたオブジェクトコードは、そのままでは実行できません。通常、オブジェクトコードは、複数のソースコードファイルから生成され、ライブラリの形を成しています。これらを実行できるよう一繋ぎに結合しなければなりません。これをリンクと呼びます。このコンパイルとリンクの全行程をビルドと言います。ビルドが完了すると実行モジュールが生成され、実行可能な形態になります。

コンパイラには、幾つかの動作タイプがあります。コンパイラが完全にCPUで解釈できる機械語を出力するタイプをネイティブコンパイラと言います。CPUで解釈する機械語を出力せずに、中間コードを出力して別のインタープリタが最終出力を担うタイプを中間言語コンパイラ、バイトコードコンパイラと言います。また、開発環境とは別の環境で実行できるコードを出力するコンパイラをクロスコンパイラと呼び、同じ環境の場合はセルフコンパイラと呼びます。

コンパイルするタイミングでコンパイラの種類が2つに分かれます。これは、コンパイルをソフトウェアの実行時に行うタイプを動的コンパイラ、実行時コンパイラ(Just In Time Compiler:JITCompiler)と呼びます。これに対して、通常のコンパイラは、事前にコンパイルしているので、プリコンパイラ、事前コンパイラ(Ahead Of Time Compiler:AOTCompiler)と呼びます。

コンパイラ型言語は、インタープリタ型言語より性能が高く実行速度が速いという長所があります。一方で、コンパイラ型言語では、ソースコードが変更された場合、実行結果を確認するためには毎回ビルドする必要があります。ソースコードが多い場合は、ビルドの時間も長くなるのでとても非効率になります。効率化を図るため、近年のコンパイラではモジュール毎に分割してコンパイルする分割方式が採用され始めています。

コメントを残す

サブコンテンツ

最近のコメント

    このページの先頭へ