Een virtuele machine is een computerprogramma dat een computer nabootst, waar andere programma's op kunnen worden uitgevoerd.
Deze techniek wordt gebruikt om de overdraagbaarheid van programmatuur te verbeteren, en ook om het gelijktijdig gebruik van de computer door verschillende gebruikers robuuster te maken.
Virtuele machines zijn er in twee varianten: programmeertaal-specifiek of als emulator.