コンパイル型言語

コンパイル型言語とは、その実装の主体がコンパイラソースコードからマシンコードを生成するトランスレータ )であり、 インタプリタ (ソースコードをステップバイステップで実行し、ランタイム前の翻訳が行われない)ではないプログラミング言語です。

この用語はやや曖昧です。 原則として、どの言語もコンパイラやインタプリタで実装できます。 [1] 両方のソリューションの組み合わせも一般的です。コンパイラはソースコードを何らかの中間形式(しばしばp-codeまたはバイトコードと呼ばれる)に変換し、それを実行するインタプリタに渡します。

コンパイル時にネイティブコードにコンパイルされるプログラムは、実行時に翻訳されるプログラムよりも高速になる傾向があります。翻訳プロセスのオーバーヘッドがあるからです。しかし、JIT(実行時コンパイラ)のような新しい技術、および翻訳プロセスの全般的な改善により、この差は小さくなり始めています。 バイトコードを使用した混合ソリューションは、中程度の効率になる傾向があります。

低水準プログラミング言語は、一般的にコンパイルされます。特に、 クロスプラットフォームのサポートより効率を重視する場合です。 このような言語の場合、プログラムコードとマシンコードによって実行されるハードウェア操作の間には1対1の対応があり、プログラマが中央処理装置 (CPU)とメモリの使用を細かく詳細に制御しやすくなります。

少し努力すれば、従来のインタプリタ型言語でもコンパイラを作成することが常に可能です 。 たとえば、 Common lispは、Javaバイトコード( Java仮想マシンによって解釈される)、Cコード(次にネイティブマシンコードにコンパイルされる)、または直接ネイティブコードにコンパイルできます。 複数のコンパイルターゲットをサポートするプログラミング言語は、実行速度またはクロスプラットフォームの互換性のいずれかを選択するために、開発者により多くの制御を提供します。

一般的にコンパイルされると考えられているいくつかの言語:

  1. ^ Ullah. “Features and Characteristics of Compiled Languages” (英語). www.sqa.org.uk. 2020年9月4日閲覧。

Copyright