Greetings. :)

Nathan Yospe yospe at
Wed Apr 9 11:48:05 New Zealand Standard Time 1997

On Mon, 7 Apr 1997, Chris Gray wrote:

:Ok, terminology differences. I think of bytecodes as interpreted. Perhaps
:'simulated' is a better word. 'Emulated'?
:Perhaps we can come up with a gradient (I'm sure this has been done before!),
:and we can all point to where we are on it:
:1.  native machine code
:2.  threaded code
:3.  bytecode
:4.  parse tree traversal
:5.  pre-tokenized interpretation
:6.  straight text interpretation
:You're at 3? I'm at 4 in AmigaMUD, 6 in ToyMud. However, differences
:like the need for run-time symbol lookup, or type conversions, can easily
:move something up a notch in execution overhead. LP is at 3 now isn't
:it? Are MOO and ColdX at 3 as well? Let's see, REXX is 5? Tcl is 6.
:Shell scripts are 6+, Perl is 5? This is just *so* relevant to MUDs! :-/

Erm. I'm a rather strange hybrid of 1, 2, and 4. But... well, I'm not sure
what you mean by parse tree transversal... what I've got is referenced
blocks of native code getting tacked together by dereferenced function
pointers, dynamicly when needed, staticly when possible. In theory, the
whole chunk should be about 3/2 machine, but I'm coming from a PPC asm
bias, and that neglects any compiler optimizations rendered impossible by
this scheme. Its also about 3/1 machine for memory, so far... The flaw is
that it renders bootup a much longer process, as most of the work gets
done then, and is impossible to save in a reusable form, as some addresses
are locally dependent at startup time, thanks to the dynaload provisions,
in part. Any suggestions or criticisms by the more experienced?

   __    _   __  _   _   ,  ,  , ,  
  /_  / / ) /_  /_) / ) /| /| / /\            First Light of a Nova Dawn
 /   / / \ /_  /_) / \ /-|/ |/ /_/            Final Night of a World Gone
Nathan F. Yospe - University of Hawaii Dept of Physics - yospe at

More information about the MUD-Dev mailing list