システム情報科学I

TM.javaの使い方

2004年度冬学期 木曜3限 担当: 増原英彦


以下では Turing 機械シミュレータのコンパイルと実行方法を説明します。 ここでは教育用計算機システムのiMac環境で実行することを前提にしています。
  1. まずTuring機械シミュレータ TM.java を自分のホームディレクトリにダウンロードします。
  2. 「Terminal」アプリケーションを起動し、TM.java をダウンロードしたディレクトリに移動します。
  3. 現在のディレクトリにTM.javaがあることを確認します。下の「ls -l TM.java」を入力して下のような表示が出れば大丈夫です。(ca12345$ という部分はログインしている機械によって変わります。また、所有者名・グループ名・サイズ・更新時刻は違うかも知れません。)
    ca12345$ ls -l TM.java
    合計 8
    -rw------- 1 masuhara teacher 8073 11 25 18:42 TM.java
    ca12345$
  4. コンパイルします。下の「javac TM.java」という部分を入力します。何も表示されずにプロンプトが表示されれば大丈夫です。
    ca12345$ javac TM.java
    ca12345$
  5. コンパイルされたクラスファイルがあることを確認します。下の「ls -l TM*」を入力して、以下の4つのファイルが表示されれば大丈夫です。
    ca12345$ ls -l TM*
    合計 20
    -rw------- 1 masuhara teacher 1046 11 25 18:44 TM$Entry.class
    -rw------- 1 masuhara teacher 1929 11 25 18:44 TM$Tape.class
    -rw------- 1 masuhara teacher 2340 11 25 18:44 TM.class
    -rw------- 1 masuhara teacher 8073 11 25 18:42 TM.java
    ca12345$
  6. コンパイルされたプログラムを実行します。下の「java TM」を入力すると、その下にあるような出力が表示されます。(実際はもっと沢山出てきます。) この表示は、「時刻・状態・ヘッドの位置」「テープの内容」「ヘッドの位置(^)」「現状の状態とテープの記号から次にテープに書かれる記号、ヘッドの移動方向、次の状態」を表わしています。
    ca12345$ java TM
    clock=0, s=0, head=0
    ()((()()))
    ^
    rule: S=0, Sigma=(, m=(, d=1, sigma=0
    clock=1, s=0, head=1
    ()((()()))
    ^
    :
  7. 自分の作ったTuring機械を実行するには、TM.javaの中身を編集して、2以降の手順を再度実行します。みようみまねでやってみましょう。
    Hidehiko Masuhara, November 2004