• ベストアンサー

コンパイラとインタプリタの違い

コンパイラとインタプリタの違いを簡単に、かつ、解りやすく説明して頂けませんか? 詳しい方お願いします。

  • sham
  • お礼率68% (26/38)

質問者が選んだベストアンサー

  • ベストアンサー
noname#9414
noname#9414
回答No.1

コンパイラ:  高級プログラミング言語で書かれたソース  プログラムを、コンピュータが直接解読できる  目的プログラムに翻訳するプログラムをいう。 インタプリタ:  高級言語で記述されたプログラムを1行ずつ解釈  しながら実行するプログラムである。解釈と  実行が交互に行われるため、一般に処理時間が  かかり、プログラム上にバグがあった場合、その  場所でプログラムが止まってしまうことになる。  反面、デバッグ(誤りを直すこと)がやりやすい  という利点がある。 以上です。 ではでは☆

sham
質問者

お礼

早速の回答ありがとうございます。 とてもよく分かりました。 でわでわ☆

その他の回答 (1)

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.2

「機械語」と「機械語以外のプログラム言語」の違いがわかっているのが前提です。 インタプリタ: 同時通訳的に注目している行を変換しながら実行 最近では実行速度の高速化のため全体を中間コードと呼ばれる形式で保存しておいて中間コードを変換しながら実行する方式が主流 コンパイラ: (基本的にファイル単位で)一括して翻訳して実行、または翻訳後に他のプログラムと結合(リンク)して実行 C言語でもCコンパイラ(VisualC++,BolandC++,GCCなど)とCインタプリタ(cintなど)があるように両方の処理系が存在するものもある。 逆に基本的にインタプリタであるVisual Basicもコンパイルして高速に実行することが可能。

sham
質問者

お礼

回答ありがとうございます。 分かったような、分からないような・・・。 私にはちょっと難しすぎました。

関連するQ&A

  • コンパイラとインタプリタとアセンブラの違いって何?

    言語プロセッサの説明で「コンパイラ、インタプリタ、アセンブラ」などがあると書かれていたのですが、 コンパイラもインタプリタもアセンブラもどれも説明が「機械語に翻訳する」と書かれていました。 何が違うのでしょうか? 違いをわかりやすく教えてください。 いろいろなプログラミング言語があるというところまでは理解できましたが、プログラミングはわかりません。(涙) これから勉強します。

  • コンパイラ、インタプリタ、クロスコンパイラについて

    インタプリタについて質問があります。 色々と調べたところ、perl、php、rubyなど、ソースをインタプリタで実行する言語の利点は以下なのだと思います。 ソフトを作っている環境と実行環境の間でcpuやos等が異なる場合は、 ソースは互いに異なる機械語に翻訳されるので、翻訳は実行環境で行わなければならない。 その際、コンパイラの場合はわざわざ手動で翻訳を実行しなければならないが、 インタプリタの場合は勝手に実行時に翻訳してくれるので楽。 1.それで質問なのですが、 コンパイラは環境に対応した機械語を出すらしいですが、 何故そんな事ができるのでしょうか。 コンパイラが、自身が置かれた環境を分析して、それに対応した機械語を出すのでしょうか? それとも、そもそも環境毎に対応したコンパイラを使うという事でしょうか? 2.また、世の中にはクロスコンパイラというものがあると聞きました。 クロスコンパイラがあれば、ソフトを作っている環境でそのままコンパイルできるので、 インタプリタはいらないのではないでしょうか? クロスコンパイラの短所や長所などを教えてほしいです。 3.翻訳後の話として、機械語はcpuやosによって違うという話ですよね。 つまり、機械語にコンパイル済みのソフトを配布する際は環境毎に対応したソフトを それぞれ配布しなければならないのですよね。 しかし、ネット上でダウンロードできるフリーのソフトなんかは、 特定のOS向け、あるいはOS別に違うファイルを配布、というのはよく見かけますが、 cpuやその他の環境毎に配布物を分けているのは見たことがありません。 機械語は、本当にos以外にも依存するものなのでしょうか?

  • インタプリタはロードモジュールを作成する?

    情報システムを勉強し始めた初心者です。 私の持っているテキストには以下のように書いてあります。 ・「ソースプログラム」を「ロードモジュール」に変換するプログラムが「言語プロセッサ」。 ・「言語プロセッサ」には「コンパイラ」や「インタプリタ」が使われる。 つまり、コンパイラもインタプリタもロードモジュールを作成するものだと思っていました。 しかし、以下のような問題がありました。 問題: インタプリとは、高水準言語で書かれた原子プログラムを、機械語のプログラムに翻訳してロードモジュールを作成するプログラムである。 答え: 間違い。インタプリタではなく、コンパイラの説明になっている。 つまり、インタプリタはロードモジュールを作成しないということなのでしょうか? どなたかご教授お願いいたします。

  • アセンブラ、コンパイラ・・・

    質問が多くて大変申し訳ありませんが、よろしくお願いいたします。 ブートストラップローダ、アセンブラ、コンパイラ、インタプリタ、リンカ、ローダ について説明してください。 また、GUIがどのように進化したらコンピュータが使いやすくなると思いますか?

  • コンパイル言語とインタープリター言語の違いについて

    コンパイルするプログラミング言語とインタープリターする プログラミング言語の違いについて教えてください。 特に、開発上および運営上の利点・欠点についてお願いします。 また、CGIでは、PHPやPERLなどのインタープリター言語が 主流ですが、その理由とC言語などで組むのと比較して、 どのような利点があるのか教えてください。

  • GNUコンパイラとIntelコンパイラの違いについて

    今回fortranとC言語で書かれたWindows用プログラムをLinux用に移植することになりました。GNUのコンパイラを使用し無事コンパイルできたので実行したのですが"Segmentation fault"となりうまく実行できませんでした。そこで試しにIntelのコンパイラを使用しコンパイルしてみたところGNUのときとは違い"Segmentation fault"とは出ず、プログラム内のエラーチェックに引っかかり止ってしまいました。同じソースコードにもかかわらず止まる箇所が異なります。 今まで考えたことがなかったのですがGNUとIntelのコンパイラの違いはなんなのでしょうか?また、この二つ以外にいいコンパイラはあるのでしょうか?

  • C++インタプリタを探してます

    C++インタプリタ CINTがhttp://root.cern.ch/root/Cint.html からダウンロードできません。 CINTがおかれている別のサイトはありませんか? 学習用に適した別のC++インタプリタでも構いません。

  • パーサとコンパイラの違いって?

    C++を勉強中で、小さなソフトをいくつか作ったのですが、パーサという概念があることを知りました。 構文解析をするという点ではコンパイラと同じようなものに感じるのですが、パーサとコンパイラはどのように違うのでしょうか?? 詳しい方いらっしゃいましたらご教示頂けると幸いです。

  • コンパイラについて。

    言語のコンパイラって、究極のところは、人間がわかりやすい書き方を、コンピュータがわかる形に変えているだけですよね? DelphiはMacで動くソフトは作れないのですが、Mac用のコンパイラを作れば、動くのではないでしょうか? もちろん、すごい知識と技術が要求されるのはわかるんですが、理論的にはできるのかなー?と。 あと、最近は共通の動作環境を使うことが、新しい流れになりつつありますが。(.NetやJAVA。 用は、動作環境がOSの違いを吸収するんですよね? 当然、動作環境のハード側は、OSによって違うと思います。 それぞれのOSのコンパイラを作るのとでは、やはり違うのでしょうか? 動作環境がOSの対応外の事をサポートしてたりもするのかな? 詳しい方、お願いいたします。

  • コンパイラについて

    コンパイラについて プログラム初心者です。 マイクロ社のVisual C++2010Expressをインストールしたのですが、大変重いです。 父のPCなのであまり負担をかけたくないです。 言語はCを勉強中なのですが、取り合えずプログラムが書ける、軽いコンパイラってありますか? 調べてみたのですが、有料かフリーかよくわからなくて、なるべくフリーを探しています。 OSはXPです。見当違いのことを書いてるかもしれませんが、よろしくお願いしますm(__)m