最終段階で、特定の作成プログラムでは、プログラマーはコンパイラーのサービスを使用する必要があります。技術文書では、このプログラムは、コンパイルを実行するユーティリティとしてかなり控えめな定義が与えられています。コンパイルとは、人間が読める言語(高水準言語)で書かれたプログラムを機械が読める形式の命令(低水準言語)に変換するプロセスです。その結果、マシンコードに近いプログラムが得られます。オブジェクトモジュール、絶対コードのように見えるかもしれません。そのようなプログラムは、アセンブリ言語のように見えることがあります。
したがって、コンパイルは入力がアルゴリズムの説明または問題指向の言語で記述されたプログラムを表す情報(ソースコード)は、オブジェクトコード(機械指向の言語)で表されるコマンドの同等のリストに書き直されます。
定義をさらに単純化するために、コンパイルとは、マシンプログラムを問題指向の言語からマシン指向の言語に翻訳することです。
定義の透明性と単純さにもかかわらず、コンパイルはかなり多面的なプロセスです。それにはいくつかの種類があります。バッチコンパイルは、1つのジョブアイテム内の複数のソースモジュールで実行されます。行ごとのコンパイルは、解釈と同じです(後続の各ステートメントの段階的な独立したコンパイル)。条件付きコンパイルもあります。この場合、翻訳されたテキストは、コンパイラ指令によってソースプログラムで指定された条件によって異なります。
特定の定数の値を変更することにより、プログラムテキストの一部のオンまたはオフの変換を調整できます。
プログラマーの便宜のために、さまざまな問題を解決するとき、最も便利で適応されたコンパイラーが使用されます。それらを分類すると、そのようなユーティリティのいくつかのタイプを区別できます。
ベクトル化コンパイラは、ソースコードをマシンコンピュータコードに変換し、ベクトルプロセッサに合わせて調整します。
フレキシブルコンパイラは、モジュラー原理。テーブルによって管理されます。それは高級言語でプログラムされています。コンパイラコンパイラを使用して実装することもできます。
インクリメンタルコンパイラは、プログラムのフラグメントとその追加を再変換しますが、プログラム全体の再コンパイルは除外されます。
解釈型またはステップバイステップのコンパイラーは、ソース・プログラムからの個々のステートメントまたはコマンドごとに、独立したコンパイルを順次実行するという原則を使用します。
コンパイラコンパイラは、プログラミング言語の正式な記述をとるトランスレータです。特定の言語用のコンパイラを独立して生成することができます。
デバッグコンパイラは、いくつかのタイプの構文エラーを独自に修正できます。
常駐コンパイラには永続的なメモリ位置があり、さまざまなタスクで再利用できます。
自己コンパイル型コンパイラがあります。それらは放送が行われるのと同じ言語で書かれています。
ユニバーサルコンパイラは、入力言語のセマンティクスと構文の正式な記述に基づいています。これは、コア、構文、およびセマンティックローダーで構成されています。
最も一般的なタスク、ここでコンパイラーは、Linuxプラットフォーム用のカーネルをコンパイルする方法を見つけます。この操作により、機器の調整とプラットフォームの最も受け入れ可能なバージョンの設定に関連するさまざまな問題を解決できます。
Javaコンパイルは、を使用して実装されますさまざまなプラットフォームで実行されるコンパイラ。これにより、さまざまなメーカーのオペレーティングシステムのニーズに合わせてソースコードを再コンパイルできます。