Loading article…
コンパイル言語は、ソースコードが解釈されるのではなく、通常はコンパイルされるプログラミング言語です。
この用語は曖昧です。なぜなら、原理的にはどの言語もコンパイルまたは解釈可能であり、実際にはいくつかの言語は(異なる環境で)その両方であるためです。[1]一部の環境では、ソースコードは最初にコンパイルされ(中間形式、多くの場合バイトコードに)、次に解釈されます。
利点と欠点
ネイティブ コードにコンパイルされたプログラムは、変換のオーバーヘッドにより、解釈された場合よりも高速に実行される傾向があります。バイトコードの中間形式を持つ環境では、中間速度になる傾向があります。ジャストインタイム コンパイルにより、1 回の起動処理時間のコストでネイティブ実行速度が可能になります。
アセンブリやCなどの低レベルのプログラミング言語は、特にクロスプラットフォームのサポートよりも効率性が主な懸念事項である場合に、通常はコンパイルされます。このような言語では、ソース コードと結果として得られるマシン コードの間に 1 対 1 の対応関係がより多く存在するため、プログラマーがハードウェアの使用を制御しやすくなります。
一般的に解釈される言語に対してもコンパイラを書くことができます。たとえば、Common Lisp は、 Java バイトコード (その後Java 仮想マシンによって解釈されます)、C コード (その後ネイティブ マシン コードにコンパイルされます)、または直接ネイティブ コードにコンパイルできます。
複数のコンパイル出力言語をサポートする環境では、開発者は実行速度またはクロスプラットフォーム互換性のいずれかを選択できます。
参照
- ANTLR – パーサー生成プログラム
- Flex – 字句解析のための UNIX プログラム
- GNU bison – Yacc 互換のパーサー生成プログラム
- Lex – 標準 UNIX ユーティリティ
- コンパイル言語のリスト
- インタプリタ(コンピューティング) – 別個のコンパイルステップなしでソースコードを実行するプログラム
- スクリプト言語 – スクリプト用に設計されたプログラミング言語
- Yacc – パーサージェネレーター
参考文献
- ^ Ullah, Asmat. 「コンパイル言語の機能と特性」www.sqa.org.uk。
外部リンク
- Curlieのコンパイル言語
参照
- {{コンピュータ言語}}
- {{プログラミング言語}}
- {{プログラミングパラダイム navbox }}
