Edited at

SICPのSchemeとTAPLのOCamlを使うために


Windows Subsystem for Linux

Harold Abelson,Gerald J. Sussman,およびJulie Sussmanによる共著「計算機プログラムの構造と解釈」(#sicp)とBenjamin C. Pierceによる著書「型システム入門」(#tapl)を読むには,本文のコードを試しながら勉強したいということから,それぞれ関数型プログラミング言語として知られているSchemeとOCamlを実行する環境をWindows 10で構築できるようにしてみた記録です。

これらの著書でプログラミングの基礎理論(というか,哲学まで含めて)を学ぶことができそうです♪

まずは,Windows Subsystem for Linuxの機能を有効にします。

[スタートボタン]を右クリックして,「アプリと機能」から画面右側の「プログラムと機能」を開きます。

(「プログラムと機能」のリンクが見えないときは,「アプリと機能」の画面を最大化してください)

ファイル_001.png

「Windowsの機能の有効化または無効化」の設定で,「Windows Subsystem for Linux」をチェックして有効化してください。

ファイル_001 (1).png

その後,Windowsの指示に従ってシステムを再起動したら,[スタート]から「Microsoft Store」を開き,右上の検索窓で「Ubuntu」と検索します。

ファイル_001 (4).png

その中から「Ubuntu」の最新版を選択して,そのままインストールしてください。

ファイル_001 (5).png

ここまでの手順は,以下のリンク先の情報が役に立ちます:


Scheme

ここからは,Ubuntuを起動してLinuxの操作で進めていきます。

次のコマンドを実行して,「計算機プログラムの構造と解釈」(#sicp)向けにSchemeをインストールします。

その際,入力を求められたタイミングで,Ubuntuの導入時に設定したパスワードを入力します。

(入力したパスワードの文字列は表示されません)


Schemeのインストール

$ sudo apt install mit-scheme


mit-scheme.png

インストールが終了したら,コマンド入力画面に戻ります。

「scheme」とコマンドを入力すると,Schemeのインタプリタ環境を起動することができます。


Schemeの起動

$ scheme


scheme起動.png

Scheme上のコマンドプロンプトから,Schemeの文法に沿ってコマンドを入力してください。

いろんなコードを試してみることができます。

scheme_演算.png

(exit)と入力してschemeを終了します。


Schemeの終了

]=> (exit)


image.png

終了して良い場合は,最後に「y」と答えてください。


OCaml

次は,「型システム入門」(#tapl)向けに,OCamlをインストールします。


OCamlのインストール

$ sudo apt install ocaml


image.png


OCamlの起動

$ ocaml


image.png

OCaml上のコマンドプロンプトから,OCamlの文法に沿ってコマンドを入力してください。

exit 0;;と入力してOCamlを終了します。


OCamlの終了

# exit 0;;


image.png

「型システム入門」に掲載されているコードを試すには,Benjamin C. PierceのWebサイトに従って必要なファイルをダウンロードしてコンパイルする必要があります。

例えば,arithの実装を試すには,以下のような手順となります。

まず,著者のWebページからarith.tar.gzをダウンロードします。

通常,ダウンロードされたファイルはWindowsのダウンロード(Downloads)フォルダに保存されますので,Ubuntuからアクセスできるホームディレクトリにコピーします。


arithのコピー

$ cp /mnt/c/Users/KICS17/Downloads/arith.tar.gz ~


arith.tar.gzはgzipによって圧縮されたアーカイブ形式のファイルですので,tarコマンドでディレクトリ上に元のファイル群を展開します。


arithの展開

$ tar -xzvf arith.tar.gz


image.png

なお,cdコマンドは,指定されたディレクトリ(ここでは,arith)に移動するものです。

もし,makeコマンドがインストールされていなければ,ここで追加します。


arithの展開

$ sudo apt install make


image.png

makeコマンドで,必要なファイルのコンパイルやリンクをして,実行ファイルを生成します。


makeコマンドによるコンパイル

$ make


image.png

最後に,test.fを実行します。


test.fの実行

$ ./f test.f


image.png

なお,test.fの内容は,以下のとおりです。


test.f

/* Examples for testing */

true;
if false then true else false;

0;
succ (pred 0);
iszero (pred (succ (succ 0)));


これで,「計算機プログラムの構造と解釈」と「型システム入門」を読み進めていく準備が整いました!