Una macchina virtuale è un software che emula l'hardware del computer completo. Esistono varie applicazioni che forniscono questa funzionalità. ** Nota **: per domande su Java VM, utilizzare il tag specifico [jvm] e per la macchina virtuale Android, utilizzare il tag [dalvik]. Per altre domande sui dettagli di implementazione di altri tipi di VM come interpreti, automi o macchine di Turing, utilizzare il tag [vm-implementation]. SOLO LE DOMANDE SULLA PROGRAMMAZIONE SONO IN ARGOMENTO.