MiniC 言語処理系の使い方 2009/04/27 システム起動方法: 作業用のdirectory を決めて,そこに,ファイルをコピーする. mkdir tmp cp ~kam/minic/main.cmi tmp (システム実行の際に必要) cp ~kam/minic/*.c tmp (*.c はMiniC言語のテストファイル) cd tmp そのあとで, ~kam/minic/minic として起動する. なお ~kam/minic/minic 自体を、自分の場所にコピーした方がよい と思うかもしれない。それでもよいが、サイズが,やや大きいし、 来週以降変更されるかもしれないので、コピーせずに、上の状態で 使た方がよい。 上記で起動できない場合、ls -l ~kam/minic/minic とやって ファイルが読めるかどうかチェックする。また、 ocaml コマンドがない場合も起動できないので、 ocaml というコマンドをたたいてみる。 MiniCプログラム実行方法: MiniC プログラムを、たとえば ex1.c という名前のファイルに書 ききこんで、# というシステムプロンプトの後に、 Main.run "ex1.c" ;; と入力する。ここで 最後に ;; (セミコロン2つを連続する) が 必要である。なお、ファイルは、minic 処理系を起動した 場所に置かなければならない。~kam/minic/ex1.c を実行した とき、以下の出力が得られる。 miniC interpreter starts. 55 - : unit = () 最後の行は無視してほしい、結果は 55 が印刷された、という 意味である。また,最初の手順で main.cmi というファイルを コピーし忘れていると、ここで Unbound value Main.run とい うエラーがでる。 上記を実行したあとに、続けて別のファイルを実行できる。 Main.run "ex2.c" ;; システム終了方法: C-d (control-d)を押せば、MiniC 処理系(ocaml処理系) から抜けることができる。なお、C-z (control z )で 中断したままでは、メモリをたくさん消費するので、 なるべくきちんと抜けること。 MiniC プログラム例題: ~kam/minic/ex?.c (? は 1,2,3,4,5,6,7 のいずれか) に いくつか例題ファイルが置いてある。 評価順序を変更したいとき: Main.mode n ;; とやるとよい(ただし、nは 0,1,2,3のいずれか) この n が何を意味するかは、「それを考えよ」という 課題として出題するのでここでは説明しない。 MiniC の構文、意味論: 講義時に配布した資料を参照してほしい。 MiniC のエラーメッセージ: 現状では、最小限のエラーしかださない。もし、OCaml の プログラムを理解する人がいたら、改良してください。