Module Eval__Vm
Virtual machine
type vm_atom
= string * link array
and vm_atom_elt
= vm_atom Util.DList.element
and link
=
|
NormalLink of int * vm_atom_elt
(port_i, atom)
|
VMIntData of int
val null_atom_elt : vm_atom_elt
レジスタを初期化するためだけのアドレス(本来はいらない)
val null_link : link
リンクを初期化するためだけのアドレス(本来はいらない)
type registers
= vm_atom_elt array
レジスタ
val init_register : int -> registers
初期状態のレジスタを確保する
val retrieve_normal_link : link -> int * vm_atom_elt
NormalLink コンストラクタを剥がす
val get_functor : ('a * 'b array) Util.DList.element array -> int -> 'a * int
ファンクタを取得する
val free_atom : (string * 'a) Util.DList.element -> (string * 'a) Util.DList.element
Free memory fragment of the given address. Possibly implemented with
option
type and assignNone
.
module AtomLists : sig ... end
アトムリストの Map.
val atom_list : vm_atom Util.DList.t
アトムリスト
val dump_link : (vm_atom * int) list -> link -> vm_dump_link
リンクの解消
val dump_atom : (vm_atom * int) list -> 'a -> ('b * link array) -> 'a * ('b * vm_dump_link list)
val dump_atom_list : vm_atom Util.DList.t AtomLists.t -> (int * (string * vm_dump_link list)) list