開発。 コンパイル言語とインタプリタ言語

インタプリタ言語とコンパイル言語の違いは、インタプリタまたはコンパイルというプロセスの結果にある。 インタープリタはプログラムから結果を出すが、コンパイラはアセンブリ言語で書かれたプログラムを出す。 1315>

コンパイルされたプログラムは人間が読めるものではなく、代わりにアーキテクチャ固有の機械語になっている。 それは、一度コンパイルされたプログラムが、ターゲットとなるマシンの命令で表現されるものである。 たとえば、ソース コードの加算「+」演算は、マシン コードの「ADD」命令に直接翻訳することができます。

コンパイルされたプログラムを作成するには、いくつかのステップが必要です。 まず、プログラマーは開発ツールや簡単なテキストエディターを使って、選択したコンピュータ言語でソースコードを記述する。 プログラムが複雑な場合、その断片は複数のファイルにまたがるかもしれません。 最近のIDE(Interface Development Environment)では、コンパイルのステップは、数回クリックするだけで、非常に簡単かつシームレスに行われる。 しばしばスクリプトとして知られ、インタープリタを必要とし、インタープリタはプログラム中のコマンドを解析して、それを実行する。 スクリプトの利点は、移植性が高いことです。 命令を直接ターゲットマシーンに実行させるのではなく、他のプログラムが読み取って実行する。 先の足し算の例に倣って、この種の言語では同じ「+」演算でも、実行時にインタプリタが認識し、適切な引数を与えて独自の「add(a,b)」関数を呼び出し、機械語の「ADD」命令を実行することになる。 適切なインタプリタがインストールされているコンピュータであれば、多かれ少なかれプログラムを変更せずに実行することができます。 これは欠点でもあり、インタープリタがない場合はプログラムが全く実行されないからである。 一般に、インタープリタ型プログラムはコンパイル型プログラムより遅いが、デバッグや修正が容易である。

インタープリタ型言語でできることはすべてコンパイル型言語でもでき、その逆はどちらもチューリング完全である。

コンパイル言語の利点

コンパイル時にネイティブコードにコンパイルされたプログラムは、翻訳プロセスのオーバーヘッドにより、通常、実行時に翻訳されたプログラムよりも高速になる傾向があります。

  • テスト前にすべてのコンパイル手順を完了するために必要な追加時間。
  • 生成されたバイナリ コードのプラットフォーム依存性。 インタープリタはソース・プログラム・コード自体を実行するため、コード自体はプラットフォームに依存しない。 その他の利点としては、動的型付け、実行可能なプログラムサイズの縮小などがあります。

    インタプリタ言語の欠点

    • インタプリタは、コードインジェクション攻撃の影響を受けやすいことがあります。 パフォーマンスを向上させるために使用されるテクニックは、頻繁に実行されるインタプリタ命令のシーケンスをホストマシンコードに変換するジャストインタイムコンパイルです。
    • 知的財産が商業的優位性を持つアプリケーションでは、ソースコードは読み込まれてコピーされたり、反射によってより簡単にリバースエンジニアリングされる可能性があります。 このような場合、難読化はこれに対する部分的な防御として使用されます。

    ウィキペディアには、コンパイル言語:

    解釈言語:

    Via:

    のリストも掲載されています。

コメントする