• 締切済み

コンパイラー

プログラムについて、勉強し始めたのですが、コンパイラーの意味がよくわかりません。教えていただけないでしょうか?

みんなの回答

  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.4

近年では定義があいまいになりつつあります。 高級言語で記述されたソースプログラムをアセンブラに翻訳するプログラムを指します。 その後、アセンブラでアセンブルし、さらにヘッダファイルや外部ファイルなどを連結するリンカによるリンク作業と続いて実行ファイルが出来上がります。 ちなみにC++では、プリプロセスといって、C++のソースをCのソースに変換するプリプロセッサーなるものがあります。 近年、あいまいになりつつある事情としてJavaや.NETなどマルチプラットフォーム(ハードに依存しない→ちょっと疑問)対応の言語などは、中間言語に翻訳することをコンパイルと呼んでいます。 ちなみにその中間言語は各ハード上のインタープリターで翻訳実行されます。 こういうコンパイルプロセスを実際に経験するのは「LSI-C試食版」などがたいへん良い教材になりますのでお試しください。 コンパイラ → 翻訳(小説、論文) インタープリター → 同時通訳(旅行、ニュース、国際会議) と例えるとわかりやすいかと思います。

  • tom951
  • ベストアンサー率30% (29/96)
回答No.3

>しかしプログラム言語(CやJavaなど)で記述されたプログラムはコンピュータは理解できません。 Javaはコンピュータが直接理解できるコート生成しません。代わりに生成して仮想マシン(javaVM)上で動くコードを生成します。 ただしJavaをネイティブコンパイルするGCJはありますがまだまだです。 後、よく誤解されるけどコンパイラでコンパイルすれば実行ファイルができると思っている人がいますがそれは正確には間違いです。 コンパイルの後にはリンカが必要です。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2

CPUに仕事をさせるには、2進数コードで書かれた命令コードを与える必要があります。最初のころのプログラミングは、この命令コードを直接書いてプログラミングしてました。 例えば、 00010010 と書けば足し算するとかです。しかし、この記述方法だと数字が並んでいるだけなので意味を理解するだけでも一苦労ですし、高度な機能を持ったプログラミングは神の技でしか成し遂げれません。そこで生まれたのがコンパイラです。 あとは、こちらを見てもらって分からないこと補足質問してください。 http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9

  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.1

プログラムというのは、そのほとんどが人間が読める・理解できる形(プログラム言語)で記述されます。 しかしプログラム言語(CやJavaなど)で記述されたプログラムはコンピュータは理解できません。 プログラム言語で記述されたプログラムをコンピュータが理解できる形に変換することを「コンパイル」と言い、コンパイルを行ってくれるものを「コンパイラー」と言います。

関連するQ&A