2015-09-01から1ヶ月間の記事一覧

Haskell で仮想マシンを書く fetch

仮想マシンなので命令はメモリから読もう。レジスタを2つ増やして、プログラムカウンタと計算結果を保存するレジスタを持つようにしてみる。命令は停止命令とACCレジスタをインクリメントする二つだけ用意しよう。 data Reg = PC | FP | ACC deriving (Eq, …

Haskell で仮想マシンを書く

モナドの練習として仮想マシンを書く。レジスタとメモリを、キーをレジスタまたはアドレスとし値を保持できる Map で表すことにしよう。 type Regs r x = Map.Map r x type Memory p x = Map.Map p x data VM r p x = VM (Regs r x) (Memory p x) deriving (…