ひとり勉強会

ひとり楽しく勉強会

2008-04-25から1日間の記事一覧

おまけ:LuLu (2)

LUA

というわけで、Lua VM on Lua 略して LuLu を実装するシリーズ第2回です。今日やったことの把握ということで、これ function foo(a,b,c,d) print(a,b,c,d) end function bar(a,b) return b,a end foo(1,2,bar(3,4)) を動かすことを目標にします。

luaV_execute

LUA

VMの構成はわかったのであとは各命令の実装を見るのみ!!!メインループのluaV_execute関数は、細かいところを除くと非常に素直なループです。例によって、ANSI C 互換にするためにスレッデッドコードのような最適化はしていません、とのことでした。 void …

命令フォーマット

LUA

スタックの構造の次は、Luaの仮想マシン語の命令の構造を見ていきます。命令を表す型 Instruction // llimits.h typedef lu_int32 Instruction; は、32bit整数で、命令毎に、bitの使い方は3通りあります。 ABC型 B:9bit, C:9bit, A:8bit, OpCode:6bit ABx型 …

データスタックの構造

LUA

まず、LuaのVMのスタックがどのように使われるかを調べます。前回ちょっと触れたように、LuaのVMは「レジスタマシン」といえども、スタックと別に特別な「レジスタ」があるわけではありません。ローカル変数や全てスタックに保存されて管理されます。いや、…

Luaソースコード勉強会 (2)

LUA

今回は Lua VM のメインループの実装を見ていこうと思います。思いました。まず最初に、Lua VMスタックの構造を把握してから・・・と思って始めたら長くなってしまったので、適当なところで次回に回します。^^そういえば A No-Frills Introduction to Lua 5.…