コンパイルと解釈の違いは何ですか

青灯夜游
リリース: 2021-06-29 12:49:20
オリジナル
36607 人が閲覧しました

相違点: 1. コンパイルはソース プログラムを実行可能なターゲット コードに変換することであり、インタプリタはターゲット コードを生成しません。 2. インタプリタはプラットフォーム間で使用できますが、コンパイラはクロスプラットフォームではありません。 3. インタプリタはいつでも変更でき、すぐに有効になりますが、コンパイラは変更できません。 4. 解釈プログラムの実行効率は低いが、コンパイラの実行速度は速い。

コンパイルと解釈の違いは何ですか

このチュートリアルの動作環境: Windows 10 システム、Dell G3 コンピューター。

コンパイルはソースプログラムを実行可能なターゲットコードに変換することであり、翻訳と実行は分離されていますが、インタプリタはソースプログラムの翻訳と実行を一度に完了することであり、保存可能なターゲットコードは生成されません。これは単なる見た目であり、両者の最大の違いは、解釈と実行については、プログラム実行時の制御はユーザープログラムではなくインタプリタ側にあり、コンパイルと実行については、実行時の制御はユーザープログラムにあることです。 。

解釈は、優れた動的特性と移植性を備えています。たとえば、解釈の実行時に、変数の型を動的に変更したり、プログラムを修正したり、適切なデバッグ診断情報をプログラムに挿入したりできます。インタプリタを別のシステムに移植すると、移植したインタプリタを搭載したシステム上でプログラムをそのまま実行することができます。同時に、インタプリタには、ユーザープログラムにスペースを割り当てる必要があるだけでなく、インタプリタ自体も貴重なシステムリソースを占有するため、実行効率が低く、占有スペースが大きいなどの大きな欠点もあります。

コンパイラはソース プログラムの各ステートメントを機械語にコンパイルし、バイナリ ファイルに保存します。これにより、コンピュータは実行時にプログラムを直接機械語で実行できるため、非常に高速になります。

インタプリタはプログラムを 1 つずつ機械語に解釈してコンピュータが実行できるようにするだけなので、実行速度はコンパイルされたプログラムほど速くありません。コンパイルとインタープリタ:

1. コンピュータとの通信方法の違いインタープリタはオブジェクトコードを生成するのではなく、ソースプログラム内のステートメントを一つ一つ取り出し、解釈と実行を同時に行います。インタプリタはソース コード ファイルを機械語に解釈し、実行のために CPU に渡します。

コンパイルとは、ソースプログラムを実行可能なターゲットコードに変換し、実行可能なプログラムファイルを実行することであり、翻訳と実行は分離されています。

2. さまざまなオペレーティング環境

インタープリターは、さまざまなプラットフォームとの対話に優れた機能をすでに備えており、ユーザーが作成したソース コードは機能しないため、プラットフォーム間で使用できます。ソース コードはすべてのプラットフォームで直接実行できます。

コンパイルされたプログラムのクロスプラットフォームの性質は良くありません。オペレーティング システムが異なると、基礎となる機械命令の呼び出し方が異なるため、プラットフォームごとに異なる機械コード ファイルを生成する必要があります。

3. 開発の利便性

インタープリタはいつでも変更でき、すぐに反映されます。ソース コードを変更した後、直接実行して効果を確認してください。

コンパイラは毎回ソース コードを変更します。マシン コード ファイルを生成するにはすべて再コンパイルする必要があります。

4. 実行速度

解釈されたプログラムは実行効率が低くなります。すべてのコードを解釈して実行する必要があります。

コンパイルされたプログラムは、プログラム コードがコンピューターが理解できる機械語に翻訳されているため、高速に実行されます。

関連知識の詳細については、

FAQ

列をご覧ください。

以上がコンパイルと解釈の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート