スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

F#で入門 コンパイラ 、インタプリタ編 チューリング・マシン(2)

 今回はチューリングマシンのWinソフト版です。 
次のようなソフトを作成します。 
 
1044-1.jpg
  
まずは使い方の説明から 
(1)プログラムを入力 
読み込み時の状態と読み込みの値から次のする動作の対応を入力します。 
前回の例なら次の様に入力します。 
 
1,0,2,_,1 
1,1,3,_,1 
2,0,4,_,1 
2,1,5,_,1 
2,_,7,_,-1 
3,0,5,_,1 
3,1,6,_,1 
3,_,7,_,-1 
4,+,2,0,1 
4,*,2,0,1 
5,+,3,1,1 
5,*,2,0,1 
6,+,2,0,1 
6,*,3,1,1 
 
これで「Set」ボタンを押します。 
 
画面はこうなります。 
 
1044-2.jpg
   
(2)テープ初期値を入力します。 
01+1*を計算させるなら次のような入力となります。 
 
 
これで「Set」ボタンを押します。 
 
画面はこうなります。 
 
1044-3.jpg 
 
(3)終了状態(accept state No.)を入力します。 
 
 
1044-4.jpg
 
 
あとは右の「OneStepExec」ボタンを押すと、一ステップごと進行します。 
 
なおテープは、位置が0以上の部分と、負の部分を分けて表示するようにしてあります。 
 
1044-5.jpg
 
なお、チューリングマシンでエラーの場合は、無限ループに陥って終了しないのが本義なのですが、このプログラムの場合は、エラー表示をして終了するようにしてあります。 
テープ初期値を色々変えて計算させてみてください。(8通りしか計算できませんが。) 
 
今回のソースは次の通りです。 

続きを読む

スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

プロフィール

T GYOUTEN

Author:T GYOUTEN
F#と英単語とフリーソフトと読書に興味があります。
ホームページでフリーソフトも公開しています。どぞ御贔屓に。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
フリーエリア
フリーエリア
blogram投票ボタン
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。