From: Brian Atkins (brian@posthuman.com)
Date: Sun Jun 13 2004 - 11:11:28 MDT
Harvey Newstrom wrote:
>
> Java is a high-level language (or a
> medium-level language according to some people). It still compiles down
> to the same machine code that C does. What this means is that the
> differences between C++ and Java are merely at the human readable
> abstraction layer. These differences do not exist in the executable
> binaries themselves. Security people often run into these "gotchas"
> where Java programmers can't understand how they are getting the same
> errors as C programmers:
We're going way offtopic here, but I have to nitpick this because it
seems wildly incorrect. Last I checked (admittedly ca. 1996...), Java is
not compiled into anything similar to the machine code a C program
compiles to. Java is compiled into "bytecode" which is then run through
the Java Virtual Machine (JVM) which is a non-physical "CPU" emulated in
software running on a real CPU. Besides being a completely different
machine language than what runs on the real CPU, the bytecode enables
various security and other features that would not otherwise be
available at runtime in a traditional CPU.
-- Brian Atkins Singularity Institute for Artificial Intelligence http://www.intelligence.org/
This archive was generated by hypermail 2.1.5 : Wed Jul 17 2013 - 04:00:47 MDT