Wat is een bytecode?
Bytecode is objectcode van softwarecomputer die alleen kan worden geïnterpreteerd door een softwareprogramma, meestal beschreven als een virtuele machine. In veel moderne software-ontwikkelplatforms heeft bytecode de voorkeur boven machinecode op laag niveau omdat het een tolk plaatst tussen het softwareprogramma en de computerhardware. Machinecode is platformafhankelijk en vereist compilatie op elk hardwareplatform om correct te kunnen worden uitgevoerd op dat specifieke platform.
Naarmate de softwareontwikkelingsparadigma's in de loop van de tijd zijn gegroeid, is ook het gebruik van externe interpretatielagen tussen de hardware van een computer en de software die op de computer draait. Aan het begin van het vroegtijdig maken van software waren ontwikkelaars afhankelijk van computerhardware, stuurprogramma's en de onderliggende besturingssystemen. Deze afhankelijkheid dwong de ontwikkelaars om veel aspecten van de specifieke computers goed te begrijpen, waardoor platformonafhankelijkheid erg moeilijk was en de groei van software nauw gekoppeld was aan specifieke leveranciers van hardware en software.
De creatie van bytecode heeft een omgeving gecreëerd van platformonafhankelijkheid in de softwareontwikkelingsgemeenschap. Met het gebruik van deze metafoor kunnen softwareontwikkelaars eenmaal schrijven en overal gebruiken. Ontwikkelaars zijn niet verplicht de native stuurprogramma's van een specifieke computer te begrijpen, noch houden ze zich bezig met het onderliggende besturingssysteem waarop de software wordt uitgevoerd.
Een virtuele machine is de term die in de Java ™ -programmeertaal wordt gebruikt om het softwareprogramma weer te geven dat de bytecode zal interpreteren. Deze virtuele machine converteert de bytecode indien nodig om te communiceren met de onderliggende hardware en het besturingssysteem binnen de computer. De machinecode die door de virtuele machine wordt gegenereerd, is verborgen voor de ontwikkelaar van het Java ™ -softwareprogramma en kan volledig werken op meerdere platforms zonder een herschrijving van de softwareapplicatie voor elk platform te vereisen.
De internals van bytecode zijn meer een vooruitstrevend onderwerp en meestal niet nodig bij de meeste ontwikkelaars om te begrijpen. Bytecode is geen door mensen leesbare taal en bestaat uit numeriek gecodeerde representaties van klassen, methoden en de reikwijdte van de objecten en hun nesting binnen klassen. Elke bytecode opcode is één byte lang.
De machinetaal die vereist is voor moderne computers om op opdrachten te werken, is eigendom van de leverancier. Elke hardware en elk besturingssysteem heeft een unieke manier om processen, geheugentoewijzing en taakgebruik te verwerken. Door het gebruik van een bytecode-softwareontwikkelingsapplicatie is de virtuele machine-interpreter verantwoordelijk voor het maken van de machinecode die nodig is om op het eigen platform te worden uitgevoerd.