中間言語とは何ですか?
コンピュータープログラミングでは、人間が読み取れるソースコードがコンパイラーによって解析されると、コンパイラーはソースコマンドを、ネイティブマシンコードではないがコンパイラーまたは他のソフトウェアによってさらに処理、最適化、またはコンパイルできる一連の命令に変換することがよくありますツール。 生成されるファイルには、中間言語であると言われる命令が含まれています。これは、コンパイラーが使用する言語は、大規模なオペレーティングシステムにとっても、プログラマーが最初にコードを記述するために使用する言語にとっても意味がなく、代わりには、プログラムの作成と実行の間のブリッジとして機能する言語です。 中間言語は、コンパイラが非常に正確な最適化を行ってプログラムをより効率的に実行するために使用されることがありますが、異なる互換性のないシステム間で移植可能な出力ファイルを生成するためにも使用できます。 言語の実際の構文は、マシンコードまたは他の種類の人間が読み取れないバイトコードに似ている場合があります。または、言語は既存のクロスプラットフォームのコンピュータープログラミング言語である場合もあります。
コンパイラの最適化に使用される場合、言語コンパイラはソースコードファイルの各ステートメントを取得し、コマンドを中間言語に分解します。 単一の人間が読めるプログラミング文は数十の機械語命令に分解できるため、中間言語は、コンパイラが最初にコードをバインドすることなく最適化が可能なコードの領域を識別するために使用できるレベルの抽象化を作成しますネイティブ実装またはライブラリ。 完了したら、中間コードファイルをさらにコンパイルしてネイティブバイナリファイルを作成するか、必要に応じてネイティブ命令にコンパイルしてコードを実行するインタープリターと呼ばれる別のプログラムで実行できます。
Java®などの一部の言語は、中間言語を使用して、最適化されているが他のコンピューターシステムに移植可能なコンパイル済みファイルを作成します。 このタイプのコードはバイトコードと呼ばれることもあり、マシンコードまたはアセンブリ言語に似ています。 バイトコードは、プラットフォームに依存しない方法でファイルに保存されます。つまり、インタープリターを実行できるコンピューターシステムまたはデバイスに転送できます。 バイトコードがシステムに配置されると、インタープリタープログラムとして実行されるか、ターゲットシステムでネイティブに実行されるようにコンパイルされます。
場合によっては、コンピューター言語は、対話型Webアプリケーションなど、特定の目的に向けて簡単にプログラミングできるように設計されていますが、デザイナーは、異なるシステムのカスタムコンパイラー、インタープリター、またはプラグインを含めたくない場合があります。 このような場合、コンパイラの中間言語は、クロスプラットフォームインタープリターを既に確立している既存の言語にすることができます。 この場合の中間言語は、人間が読むことができます。 中間言語としても使用されるコンピュータープログラミング言語の一例としてJavaScript®があります。これは、2011年現在、あらゆるプラットフォームのほぼすべてのWebブラウザーで実行できるという利点があります。