2007年7月11日水曜日

「コンパイラ」第12回

  • 実施日: 2007-07-11(水) 1限
  • 講義内容: 実行時環境、目的プログラム生成
  • 配布資料7章、8章
この講義の最後として、アセンブリ言語の生成手法、プログラムの実行時環境についてお話をしました。

プログラミング言語の構文には、アセンブリ言語との対応が比較的つきやすいものと、つきにくいものがあります。ここでは簡単な代入文、if文についてアセンブリ言語との対応を示した後、数式についてコード生成の手法を述べました。数式を題材にとったのは、解析木との関連が分かりやすいためです。講義でも述べた通り、簡単な形の数式(三番地コードといいます)の並びに直してみるとアセンブリ言語との対応が容易につきます。また、三番地コードの並びは解析木と深く関連しており、これまでお話した翻訳スキームによりコード生成を行うことができます。

後半の主題は、より複雑なプログラミング言語の動作を、ハードウェアに近いコンピュータの動作に対応づけることでした。特に注意すべき動作として、変数領域の割り付け方式(大域変数、局所変数、メモリの動的割り付け)とメモリ管理との関連、関数呼び出しの動作についてお話しました。時間がなくてざっとしかお話しできなかったのですが、ハードウェアとソフトウェアの橋渡しとなる部分ですので、おおまかな内容については理解しておいてほしいと思います。

これで今年度の「コンパイラ」の講義は終わりです。

0 件のコメント: