審判

しかし,女子の試合のタイミングがずれて,気持ち悪いね.

どうでもいいが,関東学連の規約は穴だらけだと思っていたことを,思い出した.今となってはどうでもいい問題と思い出.

あと,だれか今週の授業がどうなっているのか教えてくれ.(必死)


昨日の問題に関しては,

type token = RParenToken
           | LParenToken
           | PlusToken
           ....

みたいな型の解析と同じ問題に思えてきた.例えば昨日のnewAnimalの返り値は,

{
    { type; lionSpecificMethod }
  | { type; commonMethod }
}

みたいな感じで,オブジェクトが実装しているメソッドの集合の集合を考えれば,なんとか推論できるんじゃないかな.これは,型推論問題の勉強をしなおさないと.


パーサをどうするか.

だてさんがコメントで教えてくださったのだが,ripperというのがあるらしい.Rubyプログラムの構文木Rubyプログラムから扱えると.面白い.が,コアはOCamlで書きたいので,Rubyのオブジェクトが得られても嬉しくはないんですよね.しかも,Riteがターゲットだと(?),ちょっと嫌かなあ,と.

しかし,良く考えてみれば,Rubyオブジェクトの構文木を適当な形でテキストファイルに吐いて,そこからOCamlyaccなりなんなりでもう一回パースすればいいのか.本家Ruby*1のプログラムをハックして,構文木だけ作ってしまってから,OCamlに渡すって言う手はアリかな.

どれが面倒で,どれが楽なのか良く考える必要がある.


DBCにかんしては,ちょっと保留にします.

*1:いや,元祖Rubyでもなんでもいいんだけど