VM差し替えていい?
Opened this issue · 4 comments
ympbyc commented
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
pasberth commented
いいよ〜
前よりいい実装になるならじゃんじゃん仕様を変えていっちゃおう。
ympbyc commented
よっしゃ。Schemeで遅延評価まで実装してみてだいたいわかったからHaskellで書き直すぞ。
ympbyc commented
pasberth commented
さらに変わって、 CEKマシン になるかも?