#Machine-dependent compiled languages (ie.C, C++, Pascal) fall in:
#                compiler             linker                           |---------|
#    source code -------> object code ------->machine executable code  |processor|  
#                  (architecture specific)     (architecture specific) |---------|
#
#Interpreted languages (ie. Fortran77, Perl) fall in:
#                interpreter                            |---------|
#    source code -----------> machine executable code   |processor|
#                   (I think it's architecture specific)|---------|
#

The way I look at the Java, Python, and Perl runtimes is they're all
interpreters -- since they execute code on behalf of another.  Now, the
line is drawn on what code is interpreted.  With Perl, and Python the code
is either compiled, then executed everytime it is run, or is executed line
per line (much like the ol' BASIC).  With Java, the code is translated
into a machine language.  

But by default, Java programs are executed on top of a soft machine, ergo
the virtual machine.  It is worth noting that there are hardware
implementations of the Java machine.

More info..  Java's opcodes are only one-byte in size (of course operands
can be a few but are still arranged at byte bounderies -- except for
table jumps) -- this is imporatant since it takes away the endian issue
when dealing with a number of architectures.  

Also, the Java machine doesn't work with registers (actually there are no
registers) but solely with the stack.

stay cool.

jeff --
-- 
Jeff Gutierrez
Mapua Online! 
http://www.mapua.org
http://www.mapua.com
http://www.mapua.net

Pinoy Ako! May reklamo?

_
Philippine Linux Users Group. Web site and archives at http://plug.linux.org.ph
To leave: send "unsubscribe" in the body to [EMAIL PROTECTED]

To subscribe to the Linux Newbies' List: send "subscribe" in the body to 
[EMAIL PROTECTED]

Reply via email to