知識ベース

コンパイルされた言語

コンパイルされた言語は、その実装が通常コンパイラー(ソースコードからマシンコードを生成するトランスレーター)であり、インタープリター(実行前の変換が行われないソースコードの段階的なエグゼキューター)ではないプログラミング言語です。

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

利点と欠点

翻訳プロセスのオーバーヘッドにより、コンパイル時にネイティブコードにコンパイルされたプログラムは、実行時に翻訳されたプログラムよりも高速になる傾向があります。ただし、ジャストインタイムコンパイルなどの新しいテクノロジーや、翻訳プロセスの全般的な改善により、このギャップが狭まり始めています。バイトコードを使用した混合ソリューションは、効率が中程度になりがちです。

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

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

言語

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

  • エイダ
  • アルゴール
    • ALGOL 60
    • アルゴル68
    • 小さい
  • ベーシック
    • Visual Basic
    • PureBasic
  • C
    • C ++
    • Objective-C
      • 迅速
    • D
    • C#(バイトコードへ)
    • Java(バイトコードへ)
  • クレオ
  • COBOL
  • コブラ
  • 結晶
  • eC
  • エッフェル
    • サザー
    • Ubercode
  • Erlang(バイトコードへ)
  • F#(バイトコードへ)
  • ファクター(最新バージョン)
  • 前方へ
  • Fortran
  • 行く
  • ハスケル
  • Haxe(バイトコードまたはC ++へ)
  • 陽気な
  • ジュリア
  • LabVIEW、G
  • 舌足らずの発音
    • Common Lisp
  • 緑豊かな
  • 水星
  • ML
    • 標準ML
      • アリス
    • OCaml
  • Nim(C、C ++、またはObjective-Cへ)
  • Open-URQ
  • パスカル
    • Object Pascal
      • デルファイ
      • FreePascal / Lazarus
    • Modula-2
    • Modula-3
    • オベロン
  • PL / I
  • RPG
  • さび
  • Seed7
  • スピトール
  • ビジュアルフォックスプロ
  • ビジュアルプロローグ
  • W
  • ジグ

道具

  • ANTLR
  • CodeWorker
  • レックス
  • フレックス
  • GNUバイソン
  • ヤック