[virtmach] Definition a virtual machine ?
Thu, 18 Nov 1999 13:06:23 -0000
> > We added direct
> > support for local variable frames in main memory, and changed
> > the encoding several times after profiling the compiler output.
> I'm not sure what you mean by "main memory". Does that mean off-stack,
> off-heap variables (like C "static" variables inside functions)?
> Or does that mean strictly framing the return stack (as opposed to
> free-form return stack in FORTH), or adding a third stack?
In a canonical stack machine, such as the one used by most Forth
systems, you cannot assume that the stacks are in the main
address space. The model used by most languages such as C
assumes that local frames are in the same address space as
globals. Consequently the SENDIT/OTA VMS provide special support
for local frames, and the data/return stacks are not
addressable. This also has security implications.
> Maybe it's simpler for you to publish a URL, if there are publicly
> available specifications for SENDIT/OTA.
See www.europay.com for the OTA specifications.
> (also, where's SENDIT/OTA within its life cycle?).
In public deployment in several countries. The banks are still
recovering from Y2K and Euro problems.
> One concern is also about certification and authentification
> of dynamically loaded code: how does SENDIT/OTA compare to embedded JVM?
OTA is used in live payment systems - smart-card and credit card
transactions. It has to be secure! Much of the security is
provided outside the VM, but there are parts of the VM design
that are they way they are for security reasons.
> What I proposed was that the latter backend be not a bundle of a
> chip+runtime+interpreter, but rather a bundle of a chip+runtime+compiler.
There is nothing in the SENDIT/OTA specs to preclude using a
compiler. We have prototyped compilers for SENDIT, but in an
environment such as OTA, programs have to be stored in their
most compact form (the byte code), and are installed when the
card is inserted in the terminal. On slow CPUs, the time taken
to compile and install can be longer than than the program
We have new designs in our current PRACTICAL project for "token
sufaces" that are tuned to larger CPUs in your sort of
environment, and the preliminary results are very encouraging,
with much less performance degradation compared to native
compilers. However, compared to SENDIT/OTA, the code density of
the distributed code is about 50% worse (1.5 times the size).
The PRACTICAL system uses the VFX compiler techniques discussed
on our web site.
Stephen Pelc, email@example.com
MicroProcessor Engineering Ltd - More Real, Less Time
133 Hill Lane, Southampton SO15 5AF, England
tel: +44 1703 631441, fax: +44 1703 339691