|Re: C++ -> Java VM compiler firstname.lastname@example.org (1997-01-12)|
|Re: C++ -> Java VM compiler email@example.com (1997-01-16)|
|Re: C++ -> Java VM compiler kuznetso@MIT.EDU (1997-01-17)|
|Why Virtual Machines? (was: C++ -> Java VM compiler) firstname.lastname@example.org (1997-01-25)|
|Re: Why Virtual Machines? (was: C++ -> Java VM compiler) email@example.com (Arch Robison) (1997-01-29)|
|Re: Why Virtual Machines? (was: C++ -> Java VM compiler) firstname.lastname@example.org (1997-01-29)|
|Re: Why Virtual Machines? (was: C++ -> Java VM compiler) email@example.com (Norman Ramsey) (1997-02-02)|
|Re: Why Virtual Machines? (was: C++ -> Java VM compiler) Bronikov@srv2.ic.net (Dmitri Bronnikov) (1997-02-02)|
|Re: Why Virtual Machines? (was: C++ -> Java VM compiler) firstname.lastname@example.org (1997-02-03)|
|[6 later articles]|
|From:||kuznetso@MIT.EDU (Eugene Kuznetsov)|
|Date:||17 Jan 1997 23:22:57 -0500|
|References:||<01bbfca0$a284a6f0$041b6682@tecel> 97-01-094 97-01-120|
email@example.com (G. Herrmannsfeldt) wrote:
> I would be interested to hear from anyone else with any thoughts
> about this problem.
Many people seem to be interested in this problem, both from a
commercial and academic standpoint. In my mind most of this problem
can be condensed into the following parts:
1. Theoretically, since both Java & C++ are Turing universal, one of them
can be implemented using the other.
2. Practically, performance is a serious concern in any real application,
so some emulation techniques can be prohibitive.
3. Not all JVM's are created equal, and some may relax the spec. In
addition, some vendors are working on "unified VM's" that are similar to
the Java VM, but also include additions for executing C++ & C code more
Based solely on #1, it is clear that primitive datatype pointer casts
could be emulated using a byte output stream or similar device. Struct
access and casting can be faked with creative calls to defineClass().
Multiple inheritance can be done with tagged data and some interfaces.
The JDK 1.1 object serialization interfaces give one even more
opportunities for these sorts of perversions. On the other hand,
having a more permissive VM, as in #3, may be more efficient.
However, if the goal is to make the code more portable, it seems that
using some kind of a custom VM (which is probably available on only
one platform) is self-defeating.
If anyone is seriously considering some kind of a project (or knows of
definite commercial works in progress), please send me a note.
Return to the
Search the comp.compilers archives again.