SICPに取り組むための環境構築

[Mediumから移行 (Medium投稿日: Mar 21, 2018)]

2018年2月の中旬くらいから「計算機プログラムの構造と解釈」(いわゆるSICP) を読みながら、練習問題を解いていっています。 コンピュータサイエンスや低レイヤをしっかり理解しておくことがより良いソフトウェアエンジニアになるために必要だと感じており、今年はここを中心に学習していこうと決めたので、まずはSICPに取り組むことにしました。

SICPに取り組むにあたって行なった環境構築をブログに残しておこうと思い、この記事を書くことにしました。

環境構築

前提として、macOS High Sierra上に環境を構築しています。

Gaucheのインストール

SICPではSchemeの処理系を使用するため、Gaucheをインストール。

$ brew install gauche

Gauche-compat-sicpのインストール

Gaucheをそのまま使用すると、一部SICPのコードと互換性のない部分があるため、Gauche-compat-sicpを使用して解消。

$ git clone git@github.com:shirok/Gauche-compat-sicp.git
$ cd Gauche-compat-sicp
$ ./configure
$ make install

コードやREPLで (use compat.sicp)と書くと使用可能。

rlwrapのインストール

なくてもよいが、あるとREPLを使用するときに便利なのでインストール。

$ brew install rlwrap

サンプルコードの実行

ここまででコードが実行できるので、 sample.scmに適当なコードを書いて実行。

$ cat sample.scm
(use compat.sicp)
(print true)
(print "hoge")
$ gosh sample.scm

また、REPLは以下のようにして起動。

$ rlwrap gosh

その他