The pages grouped under this category provide information about Virtual Machines used in academic or professional environments as the target of some compilers.
A Virtual Machine (VM) is a program that simulates the behavior of a real CPU.
The program uses data structures to implement the blocks that compose the machine architecture like the decoder, the controller, the registers, the stack, the data and program memories, the input/output ports, etc.
It accepts as input a list of instructions (the machine code), written in the style of an Assembly language (operator followed by zero or more operands), and interprets (recognizes and executes) them sequentially from the first to the last or until finding one that halts the execution.
In this way, the VM simulates the execution of the program (defined by that list of instructions) on a real CPU.
The biggest advantage of using a VM as the target of a Compiler is the possibility to run a program independently of the hardware. The most famous example is JVM, Java Virtual Machine, used by the Java Compiler -- in this way the same java byte-code can be executed in any hardware platform where a JVM is installed.
Click here to download this selection of articles as a PDF book.