file->sexp-list

gauche の file.util に file->sexp-list という便利手続きがあった。自分の書いた scheme のプログラム全体を S-式の固まりとして読み込める。この S-式のデータ=プログラムを処理してみよう。

  • 自分のコンパイラで最も使われているシンボルは?ヒストグラムを書こう。
  • 平均的なS-式の長さは?長過ぎる手続きは無いか?繰り返されているパターンは無いか?
  • file->sexp-list はそのままデータを読む。マクロ展開するとどうなるか。

まずは20回以上出現したシンボルをグラフにしてみた。いまどきの若者風?に R を使ってみた。


unquote(445回) 、quote (203回)、quasiquote(152回)が多い。 i32(331回) は LLVMコンパイラの型指定。expr(139回)は引数の名前に使っているもののようだ。うーん、これだけだとあんまり面白くはない。他の人のプログラムなどで比較してみたいが、R がまだ全く手になじんでいないので随分時間が掛かったので今日はここまで。