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
その他
- ちなみにエディタはVSCodeを使用しており、vscode-schemeというプラグインを入れてコードを書いています。
- コードのデバッグは以下のページなどを参考にして行っています。
- SICPの練習問題の解答はGitHubで管理。
- 作者:エイブルソン,ハロルド,サスマン,ジュリー,サスマン,ジェラルド・ジェイ
- 発売日: 2014/05/17
- メディア: 大型本