|
コンパイラ(英:compiler)とは、人間が理解しやすい言語や数式で記述されたプログラムを、機械語に(あるいは、元のプログラムよりも低いレベルのコードに)変換するプログラムのこと。 == 概説 == コンパイラとは、いわゆる「プログラミング言語」(=人間が理解しやすい言語や数式でプログラムを記述可能な人工言語)で書かれたプログラムを、コンピュータ(のCPU)が直接的に実行できる機械語(あるいは、元のプログラムよりも低いレベルのコード。たとえばバイトコードなどの中間言語)に変換するプログラムのことである。 もともとは、コンパイラはしばしばインタープリタ(=プログラミング言語で書かれたプログラムを、逐次、機械語などに変換してはそれを実行するプログラム)と対比されてきたものである。この対比で明らかになることは、コンパイラは変換は行うが、(それで作業は止め)変換(生成)された機械語プログラムなどの実行は行わない、ということである。 コンパイラによって変換される前のプログラムを「ソースコード」を呼び、変換後の機械語(や中間言語のプログラム)などを「オブジェクトコード」と呼ぶ。 コンパイラによる変換することを動詞で「compile コンパイル」と呼ぶ。(なお、コンパイラによっては、変換することを「build ビルド」と呼んでいるものもある。ただし、厳密には「コンパイル」は「ビルド」の一工程である。)。直接 バイナリコード(2進数で記述されたコード)を出力するものもあるが、コンパイラ自体はアセンブリ言語によるコードを出力するにとどまり、その先、それをバイナリに変換する作業はアセンブラに任せているものも多い。 「compile」はもともと「編集する」「編纂する」という意味の英語であり〔プログレッシブ英和中辞典「compile」〕〔Oxford Dictionary:「Produce (a list or book) by assembling information collected from other sources 何らかの情報源から集めた情報を元にして、一覧や本を作りだす」〕、「compiler」というのは「編集者」という意味の英語である〔プログレッシブ英和中辞典「compiler」〕〔大辞泉「コンパイラ」〕〔Oxford Dictionary 「compiler」。「A person who produces a list or book by assembling information or written material collected from other sources. 」〕。 〔「」などという解説がよくある。〕 近年のコンパイラでは、ひとつのプログラムとして動作する全てのコードをいっぺんにコンパイルするのではなく、モジュール毎などに分けてコンパイルし(「分割コンパイル」)、ライブラリなどはあらかじめコンパイルされているものと合わせて、実行するようにすることが多い。この場合、コンパイラはリロケータブルバイナリを出力し、実行可能ファイルの生成にはリンケージエディタが必要であり、さらに動的リンクで実行する場合はダイナミックリンカローダ(ローダの一種)も必要である。 近年の開発環境などでは、コンパイル(ビルド)して実行、というような手続きを1命令で行えるものも増えている。そして、インタプリタでも実行時コンパイラなどの技術の利用がさかんになってきており、古典的な意味での「コンパイラ」と「インタプリタ」の中間的な性質のツール(プログラム)も増えてきているので、「コンパイラ言語 / インタプリタ言語」という、以前よく行われた対比は、あまり意味を持たない場合も増えてきている。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「コンパイラ」の詳細全文を読む スポンサード リンク
|