Windows Subsystem for Linux
Harold Abelson,Gerald J. Sussman,およびJulie Sussmanによる共著「計算機プログラムの構造と解釈」(#sicp)とBenjamin C. Pierceによる著書「型システム入門」(#tapl)を読むには,本文のコードを試しながら勉強したいということから,それぞれ関数型プログラミング言語として知られているSchemeとOCamlを実行する環境をWindows 10で構築できるようにしてみた記録です。
これらの著書でプログラミングの基礎理論(というか,哲学まで含めて)を学ぶことができそうです♪
まずは,Windows Subsystem for Linuxの機能を有効にします。
[スタートボタン]を右クリックして,「アプリと機能」から画面右側の「プログラムと機能」を開きます。
(「プログラムと機能」のリンクが見えないときは,「アプリと機能」の画面を最大化してください)
「Windowsの機能の有効化または無効化」の設定で,「Windows Subsystem for Linux」をチェックして有効化してください。
その後,Windowsの指示に従ってシステムを再起動したら,[スタート]から「Microsoft Store」を開き,右上の検索窓で「Ubuntu」と検索します。
その中から「Ubuntu」の最新版を選択して,そのままインストールしてください。
ここまでの手順は,以下のリンク先の情報が役に立ちます:
Scheme
ここからは,Ubuntuを起動してLinuxの操作で進めていきます。
次のコマンドを実行して,「計算機プログラムの構造と解釈」(#sicp)向けにSchemeをインストールします。
その際,入力を求められたタイミングで,Ubuntuの導入時に設定したパスワードを入力します。
(入力したパスワードの文字列は表示されません)
$ sudo apt install mit-scheme
インストールが終了したら,コマンド入力画面に戻ります。
「scheme」とコマンドを入力すると,Schemeのインタプリタ環境を起動することができます。
$ scheme
Scheme上のコマンドプロンプトから,Schemeの文法に沿ってコマンドを入力してください。
いろんなコードを試してみることができます。
**(exit)**と入力してschemeを終了します。
]=> (exit)
終了して良い場合は,最後に「y」と答えてください。
OCaml
次は,「型システム入門」(#tapl)向けに,OCamlをインストールします。
$ sudo apt install ocaml
$ ocaml
OCaml上のコマンドプロンプトから,OCamlの文法に沿ってコマンドを入力してください。
**exit 0;;**と入力してOCamlを終了します。
# exit 0;;
「型システム入門」に掲載されているコードを試すには,Benjamin C. PierceのWebサイトに従って必要なファイルをダウンロードしてコンパイルする必要があります。
例えば,arithの実装を試すには,以下のような手順となります。
まず,著者のWebページからarith.tar.gzをダウンロードします。
通常,ダウンロードされたファイルはWindowsのダウンロード(Downloads)フォルダに保存されますので,Ubuntuからアクセスできるホームディレクトリにコピーします。
$ cp /mnt/c/Users/KICS17/Downloads/arith.tar.gz ~
arith.tar.gzはgzipによって圧縮されたアーカイブ形式のファイルですので,tarコマンドでディレクトリ上に元のファイル群を展開します。
$ tar -xzvf arith.tar.gz
なお,cdコマンドは,指定されたディレクトリ(ここでは,arith)に移動するものです。
もし,makeコマンドがインストールされていなければ,ここで追加します。
$ sudo apt install make
makeコマンドで,必要なファイルのコンパイルやリンクをして,実行ファイルを生成します。
$ make
最後に,test.fを実行します。
$ ./f test.f
なお,test.fの内容は,以下のとおりです。
/* Examples for testing */
true;
if false then true else false;
0;
succ (pred 0);
iszero (pred (succ (succ 0)));
これで,「計算機プログラムの構造と解釈」と「型システム入門」を読み進めていく準備が整いました!