コンパイラ,計算モデル

スポンサーリンク

鍛錬 182

コンパイラ,計算モデル

コンパイラにおける計算モデルとは、高級言語プログラムを実行する「計算機」が仮想的に存在するものとしてみなし、数学的な意味で表現したものをいいます。
 
具体的に説明すると、高級言語プログラムには、実際にそれを実行する計算機は存在しません。それに対し、高級言語プログラムをコンパイルすることにより作成される機械語プログラムには、実際にそれを実行する計算機が存在します。

プログラムの種類 実行する計算機の存在
機械語プログラム 存在する
高級言語プログラム 存在しない

 
これを、高級言語プログラムにも、実際にそれを実行する計算機が存在すると仮定します。

プログラムの種類 実行する計算機の存在
機械語プログラム 存在する
高級言語プログラム 存在する

 
上記に示した通り、高級言語プログラムにも、それを実行する計算機が存在すると仮定した場合、コンパイラは「とある計算モデル」から「別の計算モデル」への変換系であるということになります。

高級言語プログラムを実行する
計算機
コンパイラ
(変換系)
機械語プログラムを実行する
計算機
計算モデル A 計算モデル B

 
よって、コンパイラについて考える際は、以下の 3 つが重要な要素となります。

  • 変換前・変換後の計算モデル
  • 変換前・変換後の計算モデルにおける、プログラムの表現方法
  • 「変換前の計算モデル」を「変換後の計算モデル」に変換する方法
タイトルとURLをコピーしました