2007年6月22日金曜日

「コンパイラ」第10回

  • 実施日: 2007-06-20(水) 1限
  • 内容: 記号表、翻訳スキーム
  • 配布資料あり(6章)
今回から意味解析に入ります。意味解析では、構文解析まででは検査できない制約を解析しますが、字句解析や構文解析のようにすべて数学的な背景があるわけではありません。変数の宣言に関する制約(使用される前に宣言されていなければならない)は、記号表というデータ構造を使うことで、プログラム技術として解決されることが多いです。

この講義では、記号表について簡単に触れた後、意味解析で用いられる理論的道具として翻訳スキームと呼ばれるものを紹介します。これは解析木にプログラムの断片を埋め込み、これを深さ優先に1回走査して順次実行することで、解析木に対する処理を実行しようというもので、属性文法と呼ばれる理論の特別な場合にあたります。意味解析ばかりでなく、コード生成にも用いられる技術です。

今回は翻訳スキームの応用例として、中置記法の式を後置記法の式に変換する方法を紹介しました。また、翻訳スキームで用いられる変数の制限についても紹介しました。次回は、これを基に、どのようなプログラム断片なら翻訳スキームに用いることができるのか、もう少し考察を加えます。なお、中置記法、後置記法については、コンパイラとは関係なく有用な考え方ですので、知っておいて下さい。

0 件のコメント: