プログラム実行までの過程
作成したプログラムを実行するまでの過程を整理しておきしょう。プログラムは次のような段階を得て実行されます。

原始プログラム | COBOLやcなどのプログラム言語で記述されたプログラム ソースプログラム、ソースモジュールともよぶ |
目的プログラム | 機械語に変換されたプログラム オブジェクトプログラム、オブジェクトモジュールとも呼ぶ |
ロードモジュール | 必要なプログラムがリンクされた実行形式のプログラム |
言語プロセッサの分類
言語プロセッサ | トランスレータ | アセンブラ | アセンブラ言語で記述されたプログラムを変換 |
コンパイラ | C,COBOLなどの高水準言語で記述されたプログラムを変換 | ||
ジェネレータ | RPGなどで記述されたパラメタを元に機械プログラムを作成 | ||
インタプリタ | 原始プログラムを1命令ずつ解釈して実行 |
コンパイラの特徴 | トランスレータの特徴 |
・一括して変換する(再変換不要) →プログラムの実行は高速 ・未完成プログラムは変換できない | ・1命令ずつ解釈・実行する →プログラムの実行は低速 ・未完成プログラムも部分的に実行できる |
コンパイルの過程
コンパイラは次の段階を経て機械語プログラムを作成します。
字句解析 | 原始プログラムを、変数や演算子などのトークン(意味をもつ最小単位)に分解する |
↓ | |
構文解析 | トークンの並びが、文法に合致しているかどうかを調べる |
↓ | |
意味解析 | 変数や演算子が正しく用いられているかどうかを調べる |
↓ | |
コード生成 | 目的プログラムを生成する |
最適化は、中間コードや目的プログラムに対し、「処理効率を高める」ための変更を施すことです。
連係編集プログラム
連係編集プログラム(リンカ、リンケージエディタ)は、複数の目的プログラムや必要なライブラリを組み合わせて、一つのロードモジュールを編集するソフトウェアです。
リンク(連係編集)には、実行前にすべてのプログラムをリンクしておく静的リンクと実行開始後に、必要になったプログラムをその時点でリンクする動的リンクがあります。windows 系OSでは、動的リンクするプログラムは、動的リンクライブラリ(DLL: Dynamic Link Library)とよばれる特別なライブラリに格納されています。
ローダ
ローダはロードモジュールを起動するためのソフトウェアです。具体的にはロードモジュールを主記憶に読み込むことで、実行準備を整えます。
アドレスの変換(解決)
アドレス変換の側面からコンパイラ、リンカ、ローダの機能を説明します。
コンパイラ
原始プログラムを機械語に変換します。
リンカ
実行に必要なプログラムをリンクします。
ローダ
ロードモジュールをロードする
