言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

属性文法

http://d.hatena.ne.jp/squeaker/20050520

大島さんに、開発中の属性文法について見せてもらう。Smalltalk 言語を読み込むと、コンパイラはツリー状の構造を作る。これをはしからコンパイルするとスタックマシンに解釈できるコードが生成されるのだが、その前にツリー自体をもうひと工夫一味違う味付けをして、大島さんが作っているいっぺんにまとめて計算する部品に食わせるのに使うという物。こういうツリー構造の処理というのはいかにもコンピュータっぽくて面白い。

なんとなく、XSLT と言うものに似ているなあと思った。属性文法も XSLT も自分では使ったことが無いが、木に属性があって、それを関数的な記述で変換するというのは共通点があるのかな、と。