\r\n\r\n
コンパイルは、プログラム全体のスキャンを開始し、全体として機械語に翻訳する。インタープリタは、比較的少ない時間と遅い実行時間で解析作業をカバーします。一方、コンパイラは、ソースコードの評価・査定に多くの時間を要しますが、その分、実行速度は格段に向上します。このインタプリタはメモリ効率がよく、ターゲットコードの中間生成も必要ありません。コンパイラは、さらにリンクが必要な中間ターゲットコードを生成するため、メモリを移動させる必要があります。インタープリタは、最初のエラー処理を行うところまでプログラムを翻訳するので、ここでのデバッグは容易である。一方、コンパイラはプログラム全体を走査して初めてエラーメッセージを生成するため、デバッグが困難である。インタープリタは1つの命令を入力とし、コンパイラはプログラム全体を入力とする。コンパイラはプログラミング言語Python Rubyに関連し、インタプリタはCとC++を使用します。機械語は理解しにくいので、コンパイラの方が知的財産を保護できる可能性が高い。実行時にソースコードを入手する必要があるため、インタープリタの知的財産は弱い。
翻訳 | コンパイラ |
インタープリタは1つの命令を入力とする。 | コンパイラは、プログラム全体を入力とする。 |
対象コード | |
インタープリターで中間ターゲットコードは生成されません。 | コンパイラで中間ターゲットコードを生成する |
コントロールステートメント | |
インタプリタでの条件制御文の実行が遅い。 | 条件付き制御文はコンパイラで高速に実行される |
コンバージョンズ | |
高レベルのプログラムは、毎回低レベルのプログラムに変換されます。 | プログラムは、毎回コンパイラでコンパイルする必要はありません。 |
実行プログラムは、コンピュータを使って命令を直接機械語にコンパイルし、実行するものです。プログラムを実行するために、特定の技術を利用するものです。ソースコードを何らかの有効な中間表現に変換し、即座に実行するものです。インタープリタは1つの命令で入力を受け取り、中間ターゲットコードを生成しない。インタープリタは、条件付き制御文をよりゆっくりと、必要最小限のメモリで実行します。インタープリタでは、高レベルのプログラムを1つずつ低レベルのプログラムに変換していく。ここでは、各インストラクションに対してエラーが表示されます。
コンパイラは、あるプログラミング言語で書かれたソースコードを、別のコンピュータ言語に変換するコンピュータプログラムです。もともと「コンパイラ」という名称は、高級プログラミング言語のソースコードを低級言語に変換するプログラムに対して使われていた。また、コンパイラは字句解析、前処理、構文解析、意味解析、コード生成、コード最適化などの操作を行う。コンパイラは、プログラム全体を入力とし、そこで中間ターゲットコードを生成する。コンパイラでは、条件付き制御文はより高速に実行され、プログラムの各コンパイルは必要ない。エラーは、プログラム全体を評価したときに明らかになる。
コンピュータ・アーキテクチャとそれに関連する用語の理解は面倒な作業です。上記の2つの用語は似ていて、様々な点で異なっていますが、常に互いに類似しているように見えます。そこで、本稿では、両者の違いを説明し、理解を深めてもらうことを試みる。