[virtmach] Test, Hello
Stephen Pelc
sfp@mpeltd.demon.co.uk
Thu, 20 Apr 2000 11:21:54 +0100
> > Do you want to dynamically link bytecode modules?
> Yes. The VM is for an agent based system, and the agents are loaded into a
> running system, so some name resolution has to be done at load time.
See the OTA specs at www.europay.com
> > using multi-byte opcodes for infrequently-used
> > (but otherwise essential) primitives.
>
> Yes, I'm going to be doing that. I'll have a think about the hufman
> encoding, but I don't think it would be fast enough. My current plan is to
> have a look up table for the op-code implementations, something like this:
>
> while (pc!=end){
> //...
> instruction = *pc;
> (fnLookup[instruction.opcode])();
> // ...
> }
The OTA system reserves a number of single byte opcodes for the
most frequently used procedure calls. When a modules is linked
the linker/optimiser profiles the static call frequency, and
turns these procedure calls into one byte opcodes. If your
source code is well factored, and avoids the C tendency to cut
and paste programming, this can have a big impact on code
density. The use of quoting, also in OTA, will deal with cut and
paste programming by identifying repeated byte code sequences
and and replacing them by references to the original "quotation".
--
Stephen Pelc, sfp@mpeltd.demon.co.uk
MicroProcessor Engineering Ltd - More Real, Less Time
133 Hill Lane, Southampton SO15 5AF, England
tel: +44 1703 631441, fax: +44 1703 339691
web: http://www.mpeltd.demon.co.uk