5-11 開発ツールその1

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

原始プログラムCOBOLやcなどのプログラム言語で記述されたプログラム
ソースプログラム、ソースモジュールともよぶ
目的プログラム機械語に変換されたプログラム
オブジェクトプログラム、オブジェクトモジュールとも呼ぶ
ロードモジュール必要なプログラムがリンクされた実行形式のプログラム
言語プロセッサトランスレータアセンブラアセンブラ言語で記述されたプログラムを変換
コンパイラC,COBOLなどの高水準言語で記述されたプログラムを変換
ジェネレータRPGなどで記述されたパラメタを元に機械プログラムを作成
インタプリタ原始プログラムを1命令ずつ解釈して実行
トランスレータ 原子プログラムを一括して機械語に変換
コンパイラの特徴トランスレータの特徴
・一括して変換する(再変換不要)
 →プログラムの実行は高速
・未完成プログラムは変換できない
・1命令ずつ解釈・実行する
 →プログラムの実行は低速
・未完成プログラムも部分的に実行できる

コンパイラは次の段階を経て機械語プログラムを作成します。

字句解析原始プログラムを、変数や演算子などのトークン(意味をもつ最小単位)に分解する
構文解析トークンの並びが、文法に合致しているかどうかを調べる
意味解析変数や演算子が正しく用いられているかどうかを調べる
コード生成目的プログラムを生成する
実際のコンパイルでは、これらのステップのほかに最適化が行われます。(一般的に意味解析のあと)

最適化は、中間コードや目的プログラムに対し、「処理効率を高める」ための変更を施すことです。

連係編集プログラム(リンカ、リンケージエディタ)は、複数の目的プログラムや必要なライブラリを組み合わせて、一つのロードモジュールを編集するソフトウェアです。

リンク(連係編集)には、実行前にすべてのプログラムをリンクしておく静的リンクと実行開始後に、必要になったプログラムをその時点でリンクする動的リンクがあります。windows 系OSでは、動的リンクするプログラムは、動的リンクライブラリ(DLL: Dynamic Link Library)とよばれる特別なライブラリに格納されています。

ローダはロードモジュールを起動するためのソフトウェアです。具体的にはロードモジュールを主記憶に読み込むことで、実行準備を整えます。

アドレス変換の側面からコンパイラ、リンカ、ローダの機能を説明します。

コンパイラ

原始プログラムを機械語に変換します。

リンカ

実行に必要なプログラムをリンクします。

ローダ

ロードモジュールをロードする