コンパイル型言語
(Compiled language から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/08/17 22:59 UTC 版)
|
|
コンパイル型言語(コンパイルがたげんご)[注釈 1]とは、標準実装、もしくは一般に利用される実装がコンパイラ(ソースコードからマシンコードを生成するトランスレータ)であり、インタプリタ(ソースコードを順次一つずつ実行し、ランタイム前の翻訳が行われない)ではないと考えられているプログラミング言語である。
この用語はかなり曖昧である。原則として、どの言語もコンパイラやインタプリタで実装できる[1]。実験的な実装まで含めればどちらもある言語が多い。たとえば、典型的なコンパイル型言語とされるC言語にもインタプリタが存在する[2]。
両方のソリューションの組み合わせも一般的である。コンパイラはソースコードを何らかの中間形式(しばしばp-codeまたはバイトコードと呼ばれる)に変換し、それを実行するインタプリタに渡す。
メリットとデメリット
コンパイル時にネイティブコードにコンパイルされるプログラムは、インタプリタで解釈実行されるプログラムよりも高速になる傾向がある。これは、解釈のオーバーヘッドがあるからである。しかし、JIT(実行時コンパイラ)のような新しい技術、および全般的な改善により、この差はある程度縮小した。バイトコードを使用した混合ソリューションは、中程度の効率になる傾向がある。
一般的にアセンブリ言語はコンパイルされる。プログラムコードとマシンコードによって実行されるハードウェア操作の間には1対1の対応があり、プログラマがCPUとメモリの使用を細かく詳細に制御できる。
従来のインタプリタ型言語でもコンパイラを作成することが可能である。たとえば、Common Lispは、Javaバイトコード(Java仮想マシンによって解釈される)、Cコード(次にネイティブマシンコードにコンパイルされる)、または直接ネイティブコードにコンパイルできる。複数のコンパイルターゲットをサポートするプログラミング言語は、実行速度またはクロスプラットフォームの互換性のいずれかを選択するために、開発者により多くの制御を提供する。
コンパイル型言語の一覧
これらは一般的にコンパイルされることが多い言語である。しかし、これをもって必ず事前コンパイルを行う言語であるとすることはできない。
- Ada
- ALGOL
- ALGOL 60
- ALGOL 68
- SMALL
- BASIC
- PowerBasic
- Visual Basic(バイトコードへ)
- PureBasic
- C言語
- C++
- C#(バイトコードへ)
- クレオ
- COBOL
- コブラ
- Crystal
- D
- eC
- Eiffel
- Sather
- Ubercode
- Erlang(バイトコードへ)
- F#(バイトコードへ)
- Factor(後のバージョン)
- Forth
- FORTRAN
- Go
- Haskell
- Haxe(バイトコードまたはC++へ)
- Java(バイトコードへ)
- JavaScript(バイトコードJITへ)
- JOVIAL
- Julia
- LabVIEW、G
- Lisp
- Lush
- Mercury
- ML
- Standard ML
- Alice
- OCaml
- Standard ML
- Nim
- Open-URQ
- Pascal
- Objective-C
- PL / I
- RPG
- Rust
- Seed7
- SPITBOL
- Swift
- Visual Foxpro
- Visual Prolog
- V(プログラミング言語)
- W
- Zig
ツール
脚注
注釈
- ↑ コンパイラ言語、コンパイル言語、コンパイラ方式言語などとも。
出典
- ↑ Ullah. “Features and Characteristics of Compiled Languages” (英語). www.sqa.org.uk. 2020年9月4日閲覧。
- ↑ 千代浩之. “【C/C++言語】おすすめのインタプリタ2選”. 元東大教員/アメリカ企業CEO兼CTO. 2026年8月18日時点のオリジナルよりアーカイブ。2026年8月18日閲覧。
関連項目
外部リンク
- コンパイル型言語のページへのリンク