コンパイラとは? わかりやすく解説

Weblio 辞書 > 同じ種類の言葉 > 情報 > コンピュータ > コンパイラ > コンパイラの意味・解説 

コンパイラ

【英】compiler

コンパイラとは、特定のプログラミング言語記述されソースコード読み込みターゲットとなるコンピュータ、あるいは、バーチャルマシン直接実行できる命令語に変換するソフトウェアのことである。

ソフトウェア開発用いられるプログラミング言語には、アセンブラ言語のような水準のもの(低級言語)から、より人間に近い表現が可能であるFortranCOBOLC言語、C++PascalJavaC#といった高水準言語高級言語)まで多種である。高級言語プログラム作成した場合、そのソースコードは、計算機直接実行することはできないコンピュータ実行指示するためには、CPU解釈できる機械語記述され実行プログラムを、あらかじめ記憶装置格納しておいてから計算機動作開始させる必要がある。コンパイラは、あらかじめ高級言語ソースコード読み込み実行対象となる計算機CPU解釈可能な機械語へと変換するために用いられる

コンパイラを用いてソースコード機械語変換する処理そのものは、コンパイル呼ばれる

コンパイラが、最終ターゲットであるCPU固有の機械語出力する場合、そのコンパイラは特にネイティブコンパイラと呼ばれ、その処理はネイティブコンパイルと呼ばれる対してJava仮想マシンのような仮想的な論理計算機をターゲットにしてコンパイルを行うようなコンパイラは、中間言語コンパイラと呼ばれる中間言語コンパイラにより出力された、中間言語プログラム実行するのは、ネイティブ計算機ではなくJava仮想マシンのようなインタープリタということになる。インタープリタ実行時に、中間言語一部部分的にネイティブ機械語変換してから実行する場合は、動的コンパイル、あるいはジャストインタイムコンパイル呼ばれる動的コンパイルに対して通常のコンパイルは、実行先立ってあらかじめコンパイルしておくという意味で、事前コンパイルプリコンパイル)と呼ばれる

プログラミング言語のうち、高級言語用いて作成されプログラムは、特定のターゲットCPU依存しないコンパイル時にターゲットCPU向けのコンパイラを用いることにより、特定CPU向けの実行コードを得ることができるため、最終的に任意の計算機実行できることになる。なお、中間言語方式のコンパイラの場合コンパイル作業自体1回だけ行えば、同じ中間言語プログラムさまざまな計算機上で実行することができる。この場合、コンパイラは1種類で済むものの、コンパイル結果中間言語プログラム解釈実行するインタープリタ、あるいは仮想計算機が、ターゲットとなる計算機種類の分だけ用意する必要がある

ソフトウェア規模ある程度以上となる場合ソフトウェアモジュール分割してモジュールごとにコンパイルを行うこともある。この作業は、特に分割コンパイル呼ばれる分割コンパイル行った場合、その出力としてオブジェクトコード呼ばれるモジュール単位出力得られる実行に際しては、出力されオブジェクトコード一つにまとめ上げ実行形式ファイル作成する必要があるこのような操作がリンクと呼ばれる。リンクにより、モジュールごとに記述されている変数コード相互に参照できるように相対アドレスの解決を行う。

なお、世界で最初に実用化されたコンパイラは、1957年開発されFortranコンパイラである。1960年には、複数アーキテクチャ対応したCOBOLコンパイラが開発された。1962年には、LISP言語記述されLISPコンパイラで自分自身コンパイルするセルフホスティングコンパイラが初め開発されている。

プログラミングのほかの用語一覧
開発環境:  逆コンパイル  共有ライブラリ  行番号  コンパイラ  コンパイル  コンパイルエラー  クラスライブラリ

コンパイラ

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/10/15 08:56 UTC 版)

コンパイラ: compiler)は、高水準言語で書かれたコンピュータプログラムを、 コンピュータが実行や解釈できる形式に、一括して(※[1])変換するソフトウェア[2]


注釈

  1. ^ この本の表紙には赤いドラゴンの絵が描かれているのでドラゴンブックと呼ばれている。
  2. ^ オブジェクトコードの記述に使われる言語は、要は、その言語から最終的に機械語に翻訳する道筋が1筋(1本)でもあるものであればよい。理論上、機械語にたどり着くまでに途中で何種類もの言語にコンパイル(翻訳)する必要があっても、ともかく最終的に機械語に翻訳するまでの道筋が1本あれば良い。オブジェクトコードの記述に使われる言語は必ずしもアセンブリ言語や機械語でなくてもよい。たとえばC++で書かれたオブジェクトコードを出力するコンパイラやC言語で書かれたオブジェクトコードを出力するコンパイラもある。それぞれ、C++を機械語に、あるいはC言語を機械語に変換するコンパイラを別途用意すれば最終的にCPUが実行できる機械語に変換できる。よくあるのはアセンブリ言語で書かれたオブジェクトコードを出力するコンパイラである。アセンブリ言語で書かれたプログラムも通常そのままでは実行できないが、アセンブラを使ってやはりCPUが実行できる機械語に変換できる。
  3. ^ 最終的に出力されるターゲットプログラムは、機械語やアセンブリ言語で記述したものが多いが、それらに限るわけではなく、中間コードや高級言語のプログラムを出力するコンパイラもある。

出典

  1. ^ a b (※)コンパイラの定義文にわざわざ「一括して」という言葉を含めることが多いのは、インタプリタと対比するためである。「一括して」を入れないとインタプリタまで含んでしまい、定義文としては落第点ものとなる。Merriam Websterの英文の定義文でも、やはり「translates an entire set of instructions[1]と、「命令群(の一部分ではなく)全部を」と明記している。
  2. ^ コンパイラとは - IT用語辞典”. IT用語辞典 e-Words. 2023年2月22日閲覧。
  3. ^ a b c d Alfred V. Aho, Compilers, Principles, Techniques, and Tools. Reprinted with corrections March, 1988.(Copyright 1986,Bell Telephone Laboratories, Incorporated), pp.1-2. (Chapter 1.1 "COMPILERS"の節の説明)
  4. ^ ASCII.jpデジタル用語辞典,デジタル大辞泉,IT用語がわかる辞典. “オブジェクトコード(おぶじぇくとこーど)とは”. コトバンク. 2020年4月26日閲覧。
  5. ^ 例えばCPUGPUなど。
  6. ^ 分割コンパイル”. www3.nit.ac.jp. 2020年4月27日閲覧。
  7. ^ プログレッシブ英和中辞典「compile」
  8. ^ Oxford Dictionary; Produce (a list or book) by assembling information collected from other sources 「何らかの情報源から集めた情報を元にして、一覧や本を作りだす」
  9. ^ プログレッシブ英和中辞典「compiler」
  10. ^ 大辞泉「コンパイラ」
  11. ^ Oxford Dictionary; compiler: A person who produces a list or book by assembling information or written material collected from other sources.
  12. ^ bit 編集部『bit 単語帳』共立出版、1990年8月15日、82頁。ISBN 4-320-02526-1 
  13. ^ CSAIL Publications”. publications.csail.mit.edu. 2020年6月16日閲覧。
  14. ^ https://www.246.dk/” (デンマーク語). 2020年6月16日閲覧。
  15. ^ 2020年4月13日 8分. “コンパイラとインタプリタの違いは?言語の違いを分かりやすく解説!”. じゃぱざむ. 2020年4月27日閲覧。
  16. ^ インタプリタとコンパイラ”. nyumon-info.com. 2020年4月27日閲覧。
  17. ^ a b Alfred V. Aho, Compilers, Principles, Techniques, and Tools. 1988., pp.10-15. 「1.3(1章3節) THE PHASES OF A COMPILER」
  18. ^ コンパイラの構造を解説 | Shinta's Site”. www.gadgety.net. 2020年4月27日閲覧。
  19. ^ コマンド:lex: UNIX/Linuxの部屋”. x68000.q-e-d.net. 2020年4月27日閲覧。
  20. ^ パーサジェネレータとは - Weblio辞書”. www.weblio.jp. 2020年4月27日閲覧。
  21. ^ コンパイラの入り口、「字句解析」のための文字列操作 (1/3)”. @IT. 2020年4月27日閲覧。
  22. ^ a b コンパイラの構成と最適化. Nakata, Ikuo, 1935-, 中田, 育男, 1935-. Tōkyō: Asakurashoten. (2009). ISBN 978-4-254-12177-3. OCLC 675837876. https://www.worldcat.org/oclc/675837876 
  23. ^ プリプロセッサとは - IT用語辞典”. IT用語辞典 e-Words. 2020年4月27日閲覧。
  24. ^ 抽象構文木”. home.a00.itscom.net. 2020年4月27日閲覧。
  25. ^ VU - exp. - compiler-general”. www.is.s.u-tokyo.ac.jp. 2020年4月27日閲覧。
  26. ^ MaryCore. “知っておいて損はない「コンパイラ最適化」の数々”. MaryCore 言語知能総合研究所. 2020年4月27日閲覧。



「コンパイラ」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。



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


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

辞書ショートカット

すべての辞書の索引

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

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

   

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



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

   
OSS iPediaOSS iPedia
Copyright © Information-technology Promotion Agency, Japan. All rights reserved 2006-2024
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2024 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリコンパイラの記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのコンパイラ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2024 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2024 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2024 GRAS Group, Inc.RSS