标签:oca 调用 com 字母 ref 数列 递归 base 常用
secd machine是一种比较基础的虚拟机设计。一般是作为函数式语言的底层虚拟机。
secd machine的“secd”四个字母分别指的是这种虚拟机的核心Stack, Environment, Control, Dump,一般也称作寄存器。
secd machine 是一种stack-based虚拟机。
Stack一般是存放运算数据和结果
Environment保存的是环境变量,一般是函数调用里的参数以及局部变量
Control保存的是虚拟机指令
Dump保存的是函数调用时的调用帧数据。
secd machine常用的指令有如下一些。
s e (NIL.c) d => (nil.s) e c d
s e (LDC x.c) d => (x.s) e c d
s e (LD [y x].c) d => (locate([y x], e).s) e c d
(x.s) e (SEL ct cf.c) d => s e c? (c.d)
where c? is (if (not= x false) ct cf)
s e (JOIN.c) (c‘.d) => s e c‘ d
s e (LDF f.c) => ([f e].s) e c d
([f e‘] v.s) e (AP.c) d => nil (v.e‘) f (s e c.d)
(x.z) e‘ (RTN.q) (s e c.d) => (x.s) e c d
s e (DUM.c) d => s (nil.e) c d
([f (nil.e)] v.s) (nil.e) (RAP.c) d
=>
nil (rplaca((nil.e), v).e) f (s e c.d)
标签:oca 调用 com 字母 ref 数列 递归 base 常用
原文地址:http://www.cnblogs.com/xundao/p/5999840.html