Re: Why Virtual Machines? (was: C++ -> Java VM compiler)

Dmitri Bronnikov <Bronikov@srv2.ic.net>
2 Feb 1997 21:29:30 -0500

          From comp.compilers

Related articles
[3 earlier articles]
Why Virtual Machines? (was: C++ -> Java VM compiler) p.froehlich@link-m.de (1997-01-25)
Re: Why Virtual Machines? (was: C++ -> Java VM compiler) robison@kai.com (Arch Robison) (1997-01-29)
Re: Why Virtual Machines? (was: C++ -> Java VM compiler) albaugh@agames.com (1997-01-29)
Re: Why Virtual Machines? (was: C++ -> Java VM compiler) jhummel@esp.ICS.UCI.EDU (Joe Hummel) (1997-01-30)
Re: Why Virtual Machines? (was: C++ -> Java VM compiler) haahr@netcom.com (1997-02-02)
Re: Why Virtual Machines? (was: C++ -> Java VM compiler) nr@adder.cs.virginia.edu (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) apalanis@students.uwf.edu (1997-02-03)
Re: Why Virtual Machines? (was: C++ -> Java VM compiler) robison@kai.com (Arch Robison) (1997-02-03)
Re: Why Virtual Machines? (was: C++ -> Java VM compiler) bothner@cygnus.com (1997-02-07)
Re: Why Virtual Machines? (was: C++ -> Java VM compiler) haahr@netcom.com (1997-02-07)
Re: Why Virtual Machines? (was: C++ -> Java VM compiler) markt@harlequin.co.uk (1997-02-07)
Re: Why Virtual Machines? (was: C++ -> Java VM compiler) robison@kai.com (Arch Robison) (1997-02-11)
[1 later articles]
| List of all articles for this month |

From: Dmitri Bronnikov <Bronikov@srv2.ic.net>
Newsgroups: comp.compilers
Date: 2 Feb 1997 21:29:30 -0500
Organization: None
References: <01bbfca0$a284a6f0$041b6682@tecel> 97-01-094 97-01-120 97-01-139 97-01-225
Keywords: Java, architecture

Arch Robison wrote:


> ... In contrast, the Java VM bytecode is simply a compact
> representation of the source, and loses little information that
> might be useful for optimization. In traditional object code
> (virtual or not), all local variables are glommed together in one
> stack frame. Other symbolic entities that are maintained at
> symbolic level in Java bytecodes are inheritance hierarchies and
> exception handling.
>
> Perhaps a better term for Java bytecode would be "preparsed source".


Perhaps not. Java VM code is pretty much of the same level as any
other VM. If you modified JVM addressing of operands to refer to
offsets in stack, rather than bringing operands which happenned to be
not at the top using stack management instructions, then you'll get
what one used to see in other machines "virtual or not". And this I
assume was not done to enable reverse compilation, Java VM chose not
to define object reference size or representation - hence locals
generally should not be allocated by javac. Method invocation/binding
is again different due to mobility of Java.


I'm far from being a Java or JVM lawyer, I rather belong to C++
cast. I'd say that JVM is not "just VM" because it's so much Java and
not quite friendly/efficient for use with other languages. One java
lawyer posted a reply in comp.compilers (quite some time ago) to those
who requested expansion of JVM to suite C++, saying "why C++ people do
not come up with VM for C/C++?". Indeed, why not?!


--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.