On Tue, May 27, 2008 at 08:51:24AM +0200, François Perrad wrote:
> FYI a recent talk
> http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike-back.html
Which ties in nicely with the announcement of SquirrelFish yesterday:
http://webkit.org/blog/189/announcing-squirrelfish/
---snip---
What Is SquirrelFish?
SquirrelFish is a register-based, direct-threaded, high-level bytecode engine,
with a sliding register window calling convention. It lazily generates
bytecodes from a syntax tree, using a simple one-pass compiler with built-in
copy propagation.
SquirrelFish owes a lot of its design to some of the latest research in the
field of efficient virtual machines, including research done by Professor M.
Anton Ertl, et al, Professor David Gregg, et al, and the developers of the Lua
programming language.
Some great introductory reading on these topics includes:
The Structure and Performance of Efficient Interpreters
http://citeseer.ist.psu.edu/cache/papers/cs/32018/http:zSzzSzwww.jilp.orgzSzvol5zSzv5paper12.pdf/ertl03structure.pdf
(Introduces the fundamentals of virtual machine design and explains the
importance of direct threading)
Virtual Machine Showdown: Stack Versus Registers
http://www.sagecertification.org/events/vee05/full_papers/p153-yunhe.pdf
(Details the benefits of register machines, and the importance of copy
propagation)
The Implementation of Lua 5.0
http://www.tecgraf.puc-rio.br/~lhf/ftp/doc/jucs05.pdf
(Outlines the implementation of a real-world register-based bytecode engine,
with a sliding register window calling consign to
---snip---
I'd guess there's some useful ideas in there.
Tim.