go to previous page   go to home page   hear noise   go to next page


Yes. Hardware Java processor chips have been created out of silicon and can execute bytecode files directly.

Java Virtual Machine

Java Virtual Machine

Usually, however, people do not have hardware Java processor chips. They have ordinary PCs and Macintoshes.

Now for the clever part: the Java processor can be implemented as software! It is implemented as a program that reads the bytecodes and performs the operations they specify. This is another type of interpreter. Some interpreters run source code written in a high level language like Basic; others (like the Java interpreter) run bytecodes.

This second type of interpreter is sometimes called an emulator because it emulates hardware, but in fact is software. A Java bytecode interpreter can be created for any computer system. Once you have a Java compiler and a Java interpreter you can run any Java program no matter what type of computer you have.

The "Java interpreter" in the picture is an executable program that is running on an ordinary computer system, such as a desktop Intel system. Each type of computer system has its own Java interpreter that can run on that system. The "Actual Processor" is the actual hardware processor chip of that computer system.

(Another) Important Idea: When the Java interpreter is running on a computer system, that system acts just like a hardware Java bytecode processor. It is a Java Virtual Machine.

Any computer system can execute a Java bytecode program by using a Java interpreter. The Java interpreter has to be specifically written for that particular computer system, but once that is done, the computer system can become a Java virtual machine. That is, it looks like a computer with a hardware Java processor chip and can run Java bytecodes.

When a Java program is translated into bytecodes, the bytecodes are the same no matter what computer system is used.

A Java source program (such as Hello.java) can be written and compiled on one computer (say a Windows computer) to produce bytecode (say Hello.class). Now that bytecode can run on any computer that has a Java interpreter.


Say that Apple has just come out with a new computer and wants this computer to run Java programs. What must Apple do?