somemo programming etc.

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

Scheme処理系のインストールとデバッグトレース

SICPを買いました。Schemeをインストールしようと調べていると、Gaucheを勧めている記事が多かったのでインストールをします。

インストール

brewを使って一発でできます。

brew install gauche

slib

デバッグトレースをするためにslibをインストールします。brewで見つからなかったので、ソースコードからインストールしました。

cd 
mkdir tmp
cd tmp

curl -O 'http://groups.csail.mit.edu/mac/ftpdir/scm/slib-3b4.zip'
unzip slib-3b4.zip

mv slib /usr/local/
cd /usr/local/slib

./configure
make
sudo make install

slib

実際にトレースしました。http://d.hatena.ne.jp/mahata/20080725/1216991463のテスト用コードを用いました。

(define (inc x) (+ x 1))
(define (dec x) (- x 1))

(define (plus a b)
 (if (= a 0)
     b
     (inc (plus (dec a) b))))

; USE SLIB
(use slib)
(require 'trace)

(trace plus) ; cont-changeをtraceする

(print (plus 4 5))
CALL plus 4 5
  CALL plus 3 5
    CALL plus 2 5
      CALL plus 1 5
        CALL plus 0 5
        RETN plus 5
      RETN plus 6
    RETN plus 7
  RETN plus 8
RETN plus 9
9