新しく発言する  EXIT  インデックスへ

Brainf*ckインタプリタをつくる


  Brainf*ckインタプリタをつくる 山中和義 2008/08/26 19:19:08 
  プログラム例(DATA文の差し替え) 山中和義 2008/08/26 19:19:34 
  参考.チューリングマシンのシミュレータ 山中和義 2008/08/27 19:45:29  (修正1回)
   └サンプル(DATA文差し替え) 山中和義 2008/08/29 22:01:20 
Re: 参考.チューリングマシンのシミュレータ  返事を書く  ノートメニュー
山中和義 <drdlxujciw> 2008/08/29 22:01:20
サンプル(DATA文差し替え)


!※1進法による数の加算

100 DATA 0,1, 1,R,1
DATA 0,_, _,R,0
DATA 1,1, 1,R,1
DATA 1,_, 1,x,2
DATA 2,1, 1,R,2
DATA 2,_, _,L,3
DATA 3,1, _,x,3

!初期値
LET q=0 !状態q0
LET tp$="11_1111_" !テープの値
LET p=1 !ヘッダ位置






!※パリティチェック

100 DATA 0,0,_,R,0
DATA 0,1,_,R,1
DATA 1,0,_,R,1
DATA 1,1,_,R,0
DATA 0,_,0,R,99
DATA 1,_,1,R,99

!初期値
LET q=0 !状態q0
LET tp$="010110_" !テープの値
LET p=1 !ヘッダ位置







!※2進法による数のビット反転(NOT演算)

100 DATA 0,_, _,R,99
DATA 0,1, 0,R,0
DATA 0,0, 1,R,0

!初期値
LET q=0 !状態q0
LET tp$="100110_" !テープの値
LET p=1 !ヘッダ位置






!※2進法による数のインクリメント

100 DATA 0,_, _,L,1
DATA 0,1, 1,R,0
DATA 0,0, 0,R,0
DATA 1,1, 0,L,1
DATA 1,0, 1,x,99

!初期値
LET q=0 !状態q0
LET tp$="01011_" !テープの値 ※桁上げ用に最上位を0とする
LET p=1 !ヘッダ位置






!※2進法による数のディクリメント

100 DATA 0,_, _,L,1
DATA 0,1, 1,R,0
DATA 0,0, 0,R,0
DATA 1,1, 0,x,99
DATA 1,0, 1,L,1

!初期値
LET q=0 !状態q0
LET tp$="1010100_" !テープの値 ※桁上げ用に最上位を1とする
LET p=1 !ヘッダ位置






!※2の補数

100 DATA 0,1,0,R,0
DATA 0,0,1,R,0
DATA 0,_,_,L,1
DATA 1,0,1,R,99
DATA 1,1,0,L,1
DATA 1,_,1,R,99

!初期値
LET q=0 !状態q0
LET tp$="1101101_" !テープの値
LET p=1 !ヘッダ位置






!※2進法による数の加算 1011+101

100 DATA 0,1,1,r,0
DATA 0,0,0,r,0
DATA 0,_,_,r,1
DATA 1,0,0,r,1
DATA 1,1,1,r,1
DATA 1,_,_,l,2
DATA 2,0,1,l,2
DATA 2,1,0,l,4
DATA 2,_,_,r,3
DATA 3,1,_,r,3
DATA 3,0,_,r,3
DATA 4,1,1,l,4
DATA 4,0,0,l,4
DATA 4,_,_,l,5
DATA 5,1,0,l,5
DATA 5,_,1,r,0
DATA 5,0,1,r,0

!初期値
LET q=0 !状態q0
LET tp$="01011_101_" !テープの値 01011+101 ※桁上げ用に最上位を0とする
LET p=1 !ヘッダ位置

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。