コンパイラ 概説

コンパイラ

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/26 23:30 UTC 版)

概説

プログラミング言語(人間が理解しやすい言語や数式でプログラムを記述可能な人工言語)で書かれたプログラムを、コンピュータのプロセッサ[2]が直接的に実行できる機械語(バイナリコード)、あるいは元のプログラムよりも低いレベルのコード(例えばバイトコードなどの仮想機械向け中間言語あるいは中間表現)に変換することを、英語の動詞で"compile"(コンパイル)と呼ぶ。コンパイラとは、コンパイルを行なうコンピュータプログラムのことである。インタプリタとよく対比される。


コンパイラによって変換される前のプログラムを「ソースコード」と呼び、変換後の機械語あるいは中間言語のプログラムなどを「オブジェクトコード」と呼ぶ。[3]なお、開発環境や処理系によっては、変換することをビルド (build)と呼んでいるものもある。[要出典]ただし、厳密には「コンパイル」は「ビルド」の一工程である。直接機械語を出力する場合もあるが、コンパイラ自体はアセンブリ言語によるコードを出力するにとどまり、該当アセンブリ言語を機械語に変換する作業(アセンブル)をアセンブラに任せているものも多い。

「compile」はもともと「編集する」「編纂する」という意味の英語であり[4][5]、「compiler」というのは「編集者」という意味の英語である[6][7][8][9]。なお、日本語による解説書などには「コンパイラー(compiler)という名称は日本語では、翻訳者という意味を持ち、ソフトウェアとしてのコンパイラーは翻訳機という意味を持っている[10]」などという解説がある。

コンパイラでは、ひとつのプログラムとして動作する全てのコードをいっぺんにコンパイルするのではなく、モジュール毎などに分けてコンパイルし(「分割コンパイル」)、ライブラリなどはあらかじめコンパイルされているものと合わせて、実行するようにすることが多い[11]。この場合、コンパイラはリロケータブルバイナリを出力し、実行可能ファイルの生成にはリンケージエディタが必要であり、さらに動的リンクで実行する場合はダイナミックリンカ/ローダ(ローダの一種)も必要である。

開発環境などでは、コンパイルした後に実行するというような手続きを1コマンドで行えるものも増えている。そして、インタプリタでも実行時コンパイラなどの技術の利用がさかんになってきており、古典的な意味での「コンパイラ」と「インタプリタ」の中間的な性質のツール(プログラム)も増えてきているので、「コンパイラ言語 / インタプリタ言語」という、以前よく行われた対比は、あまり意味を持たない場合も増えてきている。


  1. ^ コンパイラとは - IT用語辞典” (日本語). IT用語辞典 e-Words. 2020年4月26日閲覧。
  2. ^ 例えばCPUGPUなど。
  3. ^ ASCII.jpデジタル用語辞典,デジタル大辞泉,IT用語がわかる辞典. “オブジェクトコード(おぶじぇくとこーど)とは” (日本語). コトバンク. 2020年4月26日閲覧。
  4. ^ プログレッシブ英和中辞典「compile」
  5. ^ Oxford Dictionary; Produce (a list or book) by assembling information collected from other sources 「何らかの情報源から集めた情報を元にして、一覧や本を作りだす」
  6. ^ プログレッシブ英和中辞典「compiler」
  7. ^ 大辞泉「コンパイラ」
  8. ^ Oxford Dictionary; compiler: A person who produces a list or book by assembling information or written material collected from other sources.
  9. ^ bit 編集部『bit 単語帳』共立出版、1990年8月15日、82頁。ISBN 4-320-02526-1
  10. ^ コンパイラ” (日本語). ITパスポート試験ドットコム. 2020年4月27日閲覧。
  11. ^ 分割コンパイル”. www3.nit.ac.jp. 2020年4月27日閲覧。
  12. ^ CSAIL Publications”. publications.csail.mit.edu. 2020年6月16日閲覧。
  13. ^ https://www.246.dk/” (デンマーク語). 2020年6月16日閲覧。
  14. ^ 【ワンパスコンパイラ】の例文集・使い方辞典 - 用例.jp”. yourei.jp. 2020年4月27日閲覧。
  15. ^ 2020年4月13日 8分. “コンパイラとインタプリタの違いは?言語の違いを分かりやすく解説!” (日本語). じゃぱざむ. 2020年4月27日閲覧。
  16. ^ インタプリタとコンパイラ”. nyumon-info.com. 2020年4月27日閲覧。
  17. ^ コンパイラの構造を解説 | Shinta's Site”. www.gadgety.net. 2020年4月27日閲覧。
  18. ^ コマンド:lex: UNIX/Linuxの部屋” (日本語). x68000.q-e-d.net. 2020年4月27日閲覧。
  19. ^ パーサジェネレータとは - Weblio辞書”. www.weblio.jp. 2020年4月27日閲覧。
  20. ^ コンパイラの入り口、「字句解析」のための文字列操作 (1/3)” (日本語). @IT. 2020年4月27日閲覧。
  21. ^ a b コンパイラの構成と最適化. Nakata, Ikuo, 1935-, 中田, 育男, 1935-. Tōkyō: Asakurashoten. (2009). ISBN 978-4-254-12177-3. OCLC 675837876. https://www.worldcat.org/oclc/675837876 
  22. ^ プリプロセッサとは - IT用語辞典” (日本語). IT用語辞典 e-Words. 2020年4月27日閲覧。
  23. ^ 抽象構文木”. home.a00.itscom.net. 2020年4月27日閲覧。
  24. ^ VU - exp. - compiler-general”. www.is.s.u-tokyo.ac.jp. 2020年4月27日閲覧。
  25. ^ MaryCore. “知っておいて損はない「コンパイラ最適化」の数々” (日本語). MaryCore 言語知能総合研究所. 2020年4月27日閲覧。






コンパイラと同じ種類の言葉


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「コンパイラ」の関連用語

コンパイラのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



コンパイラのページの著作権
Weblio 辞書情報提供元は参加元一覧にて確認できます。

  
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのコンパイラ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2021 GRAS Group, Inc.RSS