> > 
> > Why should it be so? I guess the platform dependent code 
> emission code 
> > is err ... not platform independent anyway. Also, if the reference 
> > platform is for instance LLVM, or some other, off the 
> shelf, low-level 
> > intermediate representation, then there is no more platform 
> dependence 
> > to take care of at the JVM level (I suppose)...
> 
> Andy is right: "writing in Java" *above* the JVM interface 
> means you are creating bytecode and all the portability 
> efforts were taken care for you by the JVM makers. "writing 
> in Java" *below* the JVM interface means that you have to do, 
> at some point, some native code transformations yourselfs, 
> for every single different CPU architecture.
> 

This is true, but doesn't actually seem too hard. I'm looking at the
"arch" section of the Jikes RVM
(http://cvs.sourceforge.net/viewcvs.py/jikesrvm/rvm/src/vm/) and the two
architectures there (intel & PowerPC) certianly give a good starting
point for other architectures. There appears to be an (unfinished) ARM
backend available for it, too
(http://www.cs.man.ac.uk/~jsinger/armrvm.html) 


> Writing a JVM in a compilable higher language means that the 
> compiler will do all that for you.
> 

No it doesn't (unless I'm missing something). It's true you will be able
to compile your VM on other architectures, but you still need to write
the code generator for those architectures yourself (ie, the bit that
converts bytecode into native instructions). In a C-based JVM you'd need
to write that in C whereas in Jikes RVM it is in Java.

JCVM has a nice feature in this area in that it converts bytecode to C
and then lets GCC compile that. That would appear to make it very
portable, but it isn't the way most VMs work. (Ironicaly, the C
genetation code in JC VM is written in Java - see
http://cvs.sourceforge.net/viewcvs.py/jcvm/jcvm/java/org/dellroad/jc/cge
n/)

Nick



IMPORTANT: This e-mail, including any attachments, may contain private or 
confidential information. If you think you may not be the intended recipient, 
or if you have received this e-mail in error, please contact the sender 
immediately and delete all copies of this e-mail. If you are not the intended 
recipient, you must not reproduce any part of this e-mail or disclose its 
contents to any other party.
This email represents the views of the individual sender, which do not 
necessarily reflect those of education.au limited except where the sender 
expressly states otherwise.
It is your responsibility to scan this email and any files transmitted with it 
for viruses or any other defects.
education.au limited will not be liable for any loss, damage or consequence 
caused directly or indirectly by this email. 

Reply via email to