(1)高レベルの言語文のセットを低レベルの表現に変換するソフトウェア。 たとえば、ヘルプコンパイラは、適切なコマンドが埋め込まれたテキストドキュメントをオンラインヘルプシステムに変換します。 辞書コンパイラは、用語と定義を辞書検索システムに変換します。
(2)高レベルプログラミング言語(C/C++、COBOLなど)で書かれたプログラムを翻訳するソフトウェア。)を機械語に変換します。 コンパイラは通常、最初にアセンブリ言語を生成し、次にアセンブリ言語を機械語に変換します。 “リンカ”と呼ばれるユーティリティは、必要なすべての機械語モジュールをコンピュータで実行できる実行可能プログラムに結合します。 コンパイラの最適化を参照してください。
以下は、コンパイラによってアセンブリ言語とマシンコードに変換されるソースコードの概念的な例です。

 Source Code IF COUNT=10 GOTO END-OF-JOB ELSE GOTO COMPUTE-AGAIN ENDIF Assembly Language Machine Language Compare A to B Compare 3477 2883 If equal go to C If = go to 23732 Go to D Go to 23119 Machine Code 10010101001010001010100 10101010010101001001010 10100101010001010010010

_compasm。gif

Cからアセンブリ言語へ

C/C++コンパイラは、この例に示すように、cおよびC++コードをアセンブリ言語に変換します。 赤い矢印はさまざまな関数呼び出しを指し、それらの呼び出しを実行するアセンブリコードは各ステートメントに従います。

コンパイル2。jpg

コンパイラとインタプリタ

コンパイルされたプログラム(右)は、ターゲットコンピュータの機械語に翻訳されます。 解釈されたプログラム(左と中央)は、元のソースコードに保持されるか、中間形式にプリコンパイルされます。 どちらの場合も、実行時にプログラムを機械語に翻訳するにはインタプリタが必要ですが、コンパイルされたプログラムは”準備ができています。”

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です