インタプリタとは: 定義、種類、違い

通訳者とは
基本ソース

インタプリタは、正確な文法と構文を持つ人工言語であるプログラミング言語から、コンピューターに特定のタスクを実行するように指示するコマンドを変換するソフトウェアです。 インタプリタの長所、短所、種類、使用例について詳しくは、引き続きお読みください。

通訳者とは

一種の コンピュータープログラム インタプリタとして知られるものは、プログラミング言語またはコーディング言語で表現されたコマンドを直接実行します。 機械学習用のプログラムにコンパイルする必要はありません。 コンパイルによく使用される多数の言語に対して、さまざまな種類のインタプリタが作成されています。 インタプリタは、高レベルの命令を実行前にマシンコードに変換しないソフトウェアです。 プログラミングでプログラムを実行するには XNUMX つの方法があります。 最初はコンパイルによって、その後は解釈によって行われます。 コンパイラを使用するのが一般的な方法です。

インタプリタは、いくつかのコマンドを実行できるプログラムです。 各コマンドは、データを変更するために必要な情報と、プログラマが変更したいデータで構成されます。 通訳者は、さまざまなアクティビティを実行するために調整されたさまざまな指示を持っています。 メモリ管理、算術計算、分岐などの最も一般的な命令がサポートされています。 最初にそれらをアイテムやマシンコードに変換せずに、スクリプトまたはプログラムされた命令を直接実行します。

通訳者の戦略

考えられる結果はXNUMXつあります。

  • ソース コードを直接実行して結果を生成します。
  • ソースコードを変換して作成した中間コードを実行します。
  • 内部コンパイラを使用してプリコンパイル済みコードを生成します。 その後、このプリコンパイルされたコードを実行します。

通訳の仕事

インタプリタは高レベルの変換を行います 言語コーディング マシンフレンドリーまたは適切に実行可能な中間言語に変換します。 インタプリタはコードのすべての行を読み取り、それをマシンコードに変換してから、すぐに実行します。 実行中、インタプリタは各ソース ステートメントを XNUMX 行ずつ実行します。 インタプリタは対話型のデバッグを容易にし、徹底的なエラー警告を提供します。 

翻訳者の必要性

インタプリタの主で最も重要な機能は、ソース コードを高級言語から機械語に変換することです。 幸いなことに、これに使用できるコンパイラがすでにありました。 高級言語コンパイラは非常に効果的な手段です。 ただし、コンパイラにはいくつかの欠点があります。 ソース コードが非常に大きい場合は、生成するのに数時間かかる場合があり、コンパイル プロセスが大幅に長くなる可能性があります。 インタプリタはその機能を果たします。 解釈により、この長いコンパイル時間を短縮できます。 一度に翻訳できるコマンドは XNUMX つだけですが、その指示はすぐに実行できます。 したがって、インタプリタは完全なコードを待つのではなく、単一行を理解して処理します。 

通訳者のメリット

通訳には次のような利点があります。

  • インタプリタを使用すると、プログラマーはコードを XNUMX 行ずつ実行して結果をすぐに確認できるため、対話型のデバッグが可能になります。 これにより、迅速なエラー検出とコードのデバッグが容易になります。
  • 使いやすさ: インタプリタは多くの場合、使いやすい単純なインターフェイスを備えているため、新しいプログラマでも利用できます。 プログラマはコンパイルやリンクの難しさを気にせずにコードを実行できます。
  • 言語のインタープリターをサポートする任意のシステム上でインタープリターされたコードを実行できる機能は、移植性として知られています。 これは、同じコードが多くのオペレーティング システムやハードウェア セットアップで変更なしで動作できることを示しています。
  • 開発の高速化: プログラマはインタープリタ言語を使用してコードをすぐにテストできるため、より迅速にコードを生成できます。 その結果、ソフトウェア イニシアティブの市場投入までの時間が短縮され、開発サイクルが短縮されます。
  • より詳細なエラー メッセージ: インタプリタは一度に XNUMX 行ずつコードを評価して実行するため、コンパイラよりも詳細なエラー メッセージを生成できます。 これにより、プログラマはバグを見つけて解決することが容易になります。
  • コーディングコースを検討してください。

通訳のデメリット

通訳には多くの利点がありますが、次のような欠点もあります。

  • 行ごとの変換と実行が遅い: 解釈されたコードは行ごとに変換されて実行されるため、コンパイルされたコードよりも実行が遅くなる可能性があります。 プログラムのパフォーマンスが低下する可能性があるため、高いパフォーマンスを必要とするアプリケーションではこの点に注意する必要があります。
  • セキュリティ上の危険: インタープリタ型言語では動的なコードの実行が許可されるため、インジェクション攻撃などのセキュリティ上の危険にさらされる可能性があります。 通訳者が適切に保護されていない場合、セキュリティ上の懸念が生じます。
  • 限定的な最適化: 実行前に完全なコードベースを検査する機会が与えられないため、インタプリタにはコンパイラほどコードを最適化する能力がありません。 これにより、コードの効率が低下する可能性があります。
  • スケーラビリティの問題: インタプリタは、特に場合によっては、コンパイルされた言語よりもスケーラビリティが劣る可能性があります。 これは、インタープリタ言語が実行時にコンパイル言語よりも多くのリソースを必要とする可能性があるためです。
  • メモリ消費量の増加: コード、インタープリタ、およびランタイム環境を保存するためにより多くのスペースが必要なため、インタープリタ言語はコンパイル言語よりも多くのメモリを消費する可能性があります。

通訳者の種類 

次のリストには、多くの解釈専門分野が含まれています。

#1. スレッド化されたコードインタープリター 

スレッド インタプリタはポインタを使用します。各命令は、関数または一連の命令を指す単語です。 この後にパラメータがリストされます。 ループ内の命令を繰り返した後、指定している関数を呼び出します。 各命令セットは、次の命令に進む前にフェッチで終了します。 

#2. テンプレートインタープリター

これは、重要なバイトコード レイアウトを保持するユニークな種類のインタープリタです。 一致するネイティブ機械命令は、それに直接マップされます。 これらは、キーと値のペア、つまり「テンプレート」としてホスト ハードウェアに保存されます。 特定のコード セグメントが実行されると、テンプレートは単にオペコード マッピングをロードするか、オペコード マッピングにジャンプします。 その後はハードウェア上で直接実行されます。 他のタイプのトランスレータと比較して、大幅に高速です。 これは、呼び出しを実装するのではなくハードウェアに直接転送する、テンプレートの単純なアーキテクチャによるものです。 

#3. 抽象構文ツリー インタプリタ 

これらのインタプリタを使用して、ソース コードは効率的な抽象構文ツリー (AST) に変換され、プログラムはこの構造に従って実行されます。 この場合、すべての文が一度に処理されます。 これにより、システムは実行時に効率的に分析を実行できるようになります。 バイトコード インタプリタとは異なり、グローバル プログラム構造を維持し、ステートメント間のリンクを維持します。 圧縮すると、より凝縮された表現が得られます。 

#4. バイトコードインタープリタ 

これは、最初にソース コードを中間および低レベルの表現であるバイトコードに変換することによってプログラムを実行する、特定の種類のインタープリタです。 このインタープリタは移植可能で、小さなバイナリ ファイルとして利用できます。 元のソースコードよりも効率的に実行できます。 ランタイム環境では、バイトコードはバイトコード インタプリタを介して仮想マシン上で実行されます。 ハードウェアの基礎となるバイトコードとの間に抽象化レイヤーを提供します。 

#5. スタックベースのインタープリター

このインタプリタは、汎用レジスタを使用せずにハードウェア プロセッサをシミュレートします。 バイトコード命令は、一時値を格納するためにオペランド スタックを使用する必要があります。 このインタプリタは、 スタックデータ構造。 ソース コードを XNUMX 行ずつ読み取るため、オペランドはスタックにプッシュされ、操作が実行されるたびに保持されます。 

#6. レジスタベースのインタプリタ

命令セットと引数、戻り値、ローカル変数、および一時値の位置を除いて、このインタープリターはスタックベースのインタープリターと同等です。 これらのインタープリターは、スタックベースのインタープリターとは対照的に、仮想レジスターを使用してオペランドと中間結果を保管します。 この戦略の結果、より高速な実行速度と優れたパフォーマンスが得られます。 

インタプリタの例

ステートメントの解釈は、コンピューター言語の開発において考慮されてきました。 以下にいくつかの例を示します。

#1。 Python

1991 年に開発された、非常によく知られた無料のオブジェクト指向インタプリタ言語です。 さらに、モジュール式なので、他のコンポーネントを追加して他の人が使用することもできます。 Web サーバーでは、Python がバックエンド処理言語として利用されます。

#2。 基本

インタプリタ型プログラミング言語の父は、約 1963 年前の XNUMX 年に簡単に学べる言語として作成されました。 インタラクティブ性、単純な構文、入力時のコード チェックが長所です。

#3. ジャワ

XNUMX 番目の種類のインタープリタはこれです。 ソース コードをバイトコードに変換し、その後仮想マシンがそれを実行します。 企業のビジネス アプリケーションのビジネス ロジックを作成する場合、Java がかなり一般的に選択されます。

たとえば、建築協会の Web サイトで実行されている Java サーバーは、カスタム見積もりを提供するために必要なすべての複雑なビジネス ルールを処理するオンラインの住宅ローン申請フォームに接続される可能性があります。

プログラミングとはどういう意味ですか?

プログラムの実行方法を概説する一連の命令を機械に与えるのがプログラミングのプロセスです。 コンピューター プログラムを適切に作成するには、プログラマーは生涯をかけてさまざまなプログラミング言語とツールを研究しなければなりません。

特定のコンピューティング活動および機能を可能にするロジックの適用は、プログラミングとも呼ばれます。 これは XNUMX つまたは複数の言語で使用されており、それぞれの言語で異なるプログラミング パラダイム、アプリケーション、およびドメインがあります。

プログラミングは、問題に対処するためにどのようなアクティビティを実行するかをコンピューターに指示する技術的な手順です。 プログラミングでは、人間とコンピューターが協力して、コンピューターが理解できる言語でコンピューターが従うための命令 (コード) を開発します。 

また、それは私たちの生活の中で多くのことを可能にします。 以下にいくつかの例を示します。 

  • プログラミングを使用すると、Web サイトにアクセスして情報を検索したり、サービス プロバイダーに連絡したり、購入したりするときに、サインアップまたは購入ボタン、お問い合わせフォーム、ドロップダウン メニューなどのサイトのページ上の機能を操作できるようになります。
  • スマートフォン アプリに組み込まれたプログラミングのおかげで、食べ物の注文、相乗りサービスの予約、フィットネスの測定、メディアへのアクセスなどを簡単に行うことができます。 
  • ファイル ストレージや自動化のためのさまざまなアプリケーションや、世界中の人々を接続するビデオ会議ソリューションを通じて、プログラミングはビジネスの効率化に役立ちます。 
  • 宇宙開発にはプログラミングが必要です。  

コンパイラとインタプリタの違いは何ですか?

コンパイラはプログラム全体を検査します。 コードインタープリタは一度に XNUMX 行だけを読み取ります。 コンパイラは中間マシンコードを作成します。 インタプリタは中間マシン コードを生成しません。

どちらが良いですか? インタプリタまたはコンパイラ?

必要性がどれだけ優れているかを決定します。 インタプリタはデバッグには非常に役立ちますが、一般に実行は遅くなります。 コンパイラーはソース コード全体をチェックしますが、問題を修正するのは困難な場合があります。 選考は結果のみに基づいて行われます。 

Java はインタプリタですか、それともコンパイラですか?

Java のソース コードは、まずバイナリ バイトコードにコンパイルされ、コンパイル済み言語とインタプリタ型言語の両方になります。 Java 仮想マシン (JVM) は、多くの場合ソフトウェア ベースのインタープリタであり、このバイト コードを実行します。 Java は非常に適応力があります。 

どれが一番早いですか? インタプリタまたはコンパイラ?

処理を考慮すると、コンパイラよりもインタプリタの方が高速です。 ただし、プログラムがコンパイルされると、コンパイルされたプログラムは実行時にコンパイルされていないプログラムよりも高速に実行されます。 

参照 

コメントを残す

あなたのメールアドレスは公開されません。 必須フィールドは、マークされています *

こんな商品もお勧めしています