Virtuele machine: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
k -cat
+link
Regel 11:
Wanneer voor een bepaald platform ([[hardware]] en eventueel [[besturingssysteem]]) een virtuele machine gemaakt is, kan elk programma dat voor deze virtuele machine geschreven is, worden uitgevoerd. De implementatie van een virtuele machine kan in elke andere programmeertaal gebeuren. Op deze manier wordt platform-onafhankelijkheid bereikt: programma's kunnen worden uitgevoerd op elk systeem waarvoor de virtuele machine is geïmplementeerd. Overdraagbaarheid wordt een kwestie van het implementeren van een virtuele machine, in plaats van een probleem dat voor elk programma afzonderlijk moet worden opgelost.
 
Een voorbeeld van een programmeertaal-specifieke virtuele machine is de [[Java Virtual Machine]] (JVM). Het resultaat van de compilatie van een Javaprogramma wordt [[byte-code|bytecode]] genoemd. Een JVM kan dan deze bytecode-instructies één voor één interpreteren door ze te vertalen naar één of meerdere echte machine-instructies. Ook zijn er JVM's die de bytecode [[just-in-time compilatie|''just-in-time'' (JIT) compileren]] naar de instructies van het platform. Dit levert uiteraard prestatiewinst op in vergelijking met interpretatie.
 
Het idee van bytecode is niet recent. Sommige varianten van de programmeertaal [[programmeertaal Pascal|Pascal]] hadden dit concept reeds; hier heette dit p-code of pseudocode.