1. An abstract machine for which an interpreter exists. Virtual machines are often used in the implementation of portable executors for high-level languages. The HLL is compiled into code for the virtual machine (an intermediate language) which is then executed by an interpreter written in assembly language or some other portable language like C.
Examples are Core War, Java Virtual Machine, OCODE, OS/2, POPLOG, Portable Scheme Interpreter, Portable Standard Lisp, Parallel Virtual Machine, Sequential Parlog Machine, SNOBOL Implementation Language, SODA, Smalltalk.
2. A software emulation of a physical computing environment.
The term gave rise to the name of IBM's VM operating system whose task is to provide one or more simultaneous execution environments in which operating systems or other programs may execute as though they were running "on the bare iron", that is, without an eveloping Control Program. A major use of VM is the running of both outdated and current versions of the same operating system on a single CPU complex for the purpose of system migration, thereby obviating the need for a second processor.