#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]
