soraなりの日々 - fc2 -

こころにひっかかったもの

[sicp]行くぜ!トレース。(gauche)

この前参加させていただいた福岡の sicp の勉強会で
教えて貰ったものの一つ。

「トレースできないとツラいですよ。
 必須です。」

そら、確かに。
なので、入れた。

このエントリーをはてなブックマークに追加
前回 sicp を勉強するため、mac に入れた gauche
トレース機能が入っていなく、別途ライブラリを追加しなきゃいけない。

検索したら、意外にあっけなく見つかった。
結城さんの記事:

[[gauche]トレース]
http://sicp.g.hatena.ne.jp/hyuki/20060507/trace

この記事で ggc (gauche garbage collection project )なるものを知る。
これからは、コレを使ってトレースすることにする。

[ggc: Gauche Garbage Collection Project]
http://homepage.mac.com/skimu/ggc/


インストール方法:
 今回入れるのは、トレース機能だけなので、"ggc/trace" に
 移動して、make install。

 $ cd ggc/trace
 $ make install


使い方:

 $ gosh

 gosh> (use ggc.debug.trace)
 #

 gosh> (define (factorial n)
       (if (= n 1)
        1
        (* n (factorial (- n 1)))))
 factorial

 gosh> (factorial 6) ←普通に表示
 720

 gosh> (trace factorial) ←トレースさせる
 #

 gosh> (factorial 6)
 0:(factorial 6)
 1: (factorial 5)
 2: (factorial 4)
 3: (factorial 3)
 4: (factorial 2)
 5: (factorial 1)
  ->1
  ->2
  ->6
  ->24
  ->120
  ->720
 ; trace: factorial has been called 6 times.
 720



トレース機能入れたんだけど、ぜんぜん勉強はできていない罠。
このエントリーをはてなブックマークに追加

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://sora2hs.blog70.fc2.com/tb.php/310-40b22017
この記事にトラックバックする(FC2ブログユーザー)