【コンパイル (Compile)】
プログラム言語で記述したソースプログラムを、コンピュータが実行できる機械語コード
(オブジェクトプログラム)に変換する処理。
翻訳ともいう。
コンパイルするためのプロセッサをコンパイラ(Compiler) という。
この過程は複雑で、数段階に分けて中間的なコードを作って行うのが一般的。
字句解析 → 構文解析 → 意味解析 → 最適化 → コード生成
(1)字句解析
原始プログラム(ソースプログラム)を変数名,定数,区切り文字などの字句に
分解する。
(2)構文解析
分解された字句が文法的に正しいかどうかをチェックする。
(3)意味解析
字句の構成だけでは判断できない識別子の型などを解析する。
(4)最適化
プログラムの実行時間や領域の縮小を図るための最適化を行う。
(5)コード生成
機械語命令に変換する。
【プログラム(モジュール)の生成から実行】
COBOLやCでソースプログラムを作成した後、そのプログラムを実行するまでの手順として
のソフトウェアの適切な組み合わせ。
ライブラリ
│
原始 目的 ↓ ロード
プログラム→コンパイラ→プログラム→リンカ→モジュール→ローダ
注:「リンカ」は「連係編集プログラム」と呼ばれることがある。
(1)原始プログラム(ソースプログラム)作成
コンピュータを使ってエディタなどでプログラムを記述すること。
(2)コンパイラ
原始プログラムをコンパイラでコンパイルして、機械語に翻訳する。
この時、生成されるものが目的プログラム(オブジェクトプログラム)という。
(3)リンカ(リンケージエディタ:連係編集プログラム)
生成された目的プログラムはそのままでは実行できないので、実行に必要な
モジュールをライブラリから取り出して、実行可能なロードモジュールを作成する。
(4)ローダ(loader)
ロードモジュールはローダ(loader)によって、補助記憶装置から主記憶装置に
ロードされる。
ロードされると相対アドレスで扱われていたアドレスが絶対アドレスに変わる。