意味解析は話が形式的過ぎ

岩波講座 ソフトウェア科学〈〔環境〕5〉プログラミング言語処理系」、第5章「意味解析」へ進む。話があまりに形式的で面食らうものの、読み進むにつれ少しずつ「実際にやるとこういうこと」というのが見えてくる。

意味解析を確固とした1つのフェーズとして捉えると、ちょっとわかりにくいかも知れない。実際には(手書きのコンパイラの場合)、構文解析器のプログラムに埋め込む形で、構文解析と同時に行っていることが多い。

いまどきのプログラム言語の作り方」では再帰降下構文解析を行いつつ、名前の宣言と使用の妥当性やらメソッドに渡す引数の数などをチェックしていたが、あれが意味解析に相当する部分だ。あれを形式的には、

再帰降下構文解析器に埋め込まれた SL属性文法に基づく属性評価器

というのだと思うのだが、いまいち自信はない(笑)

意味解析って、それに関する形式的なお話はあんまり知ってなくても、(その形式的な記述で説明されるところの)意味解析を、知らず知らずやっちゃってる、というようなもんじゃないのかなー。