pasberth/Macra

VM差し替えていい?

Opened this issue · 4 comments

SECDマシンていうのの方が使い勝手良さそうなんだけどVMとコンパイラそっちに置き換えてプルリクしていい?

メリット

インストラクションが読みやすい

`((lambda (x) x) 3)
今の

(FrameInst HaltInst (FreezeInst (ConstExpr 3.0 HaltInst) (ArgInst (CloseInst "x" (ReferInst "x" (ThawInst ReturnInst)) ApplyInst))))

SECD(例)

((FreezeInst (ConstExpr 3.0)) (CloseInst ((ReferInst 0) (ThawInst) (RestoreInst)) (ApplyInst) (HaltInst))

基本的な機能を実装するのに必要なインストラクションが少ない

今の10個
SECD8個

参考URL:
http://ja.wikipedia.org/wiki/SECD%E3%83%9E%E3%82%B7%E3%83%B3
http://www.geocities.jp/m_hiroi/func/abcscm33.html
https://github.com/cranebird/secdhs
https://gist.github.com/4126037#file_secd.scm

いいよ〜

前よりいい実装になるならじゃんじゃん仕様を変えていっちゃおう。

よっしゃ。Schemeで遅延評価まで実装してみてだいたいわかったからHaskellで書き直すぞ。

さらに変わって、 CEKマシン になるかも?