Bytecode
Bytecode is programmacode die is gecompileerd uit broncode naar code op laag niveau die is ontworpen voor een softwarematige interpreter. Deze kan worden uitgevoerd door een virtuele machine zoals een (JVM) of verder worden gecompileerd naar machinecode, die wordt herkend door de processor.
Verschillende typen bytecode gebruiken verschillende syntaxis, die door de bijbehorende virtuele machine kan worden gelezen en uitgevoerd. Een bekend voorbeeld is Java-bytecode, die wordt gecompileerd uit Java-broncode en kan worden uitgevoerd op een Java Virtual Machine (JVM). Hieronder staan voorbeelden van Java-bytecode-instructies.
- new (nieuw object maken)
- aload_0 (verwijzing laden)
- istore waarde van (integer opslaan)
- ladd waarde van het type (long optellen)
- swap (twee waarden omwisselen)
- areturn (waarde uit een functie retourneren)
Hoewel het mogelijk is om rechtstreeks bytecode te schrijven, is dit veel moeilijker dan code schrijven in een programmeertaal op hoog niveau, zoals Java. Daarom worden bytecodebestanden, zoals Java-.CLASS-bestanden, meestal uit broncode gegenereerd met behulp van een compiler, zoals javac.
Bytecode versus assembleertaal
Bytecode lijkt op assembleertaal, omdat het geen programmeertaal op hoog niveau is, maar nog wel enigszins leesbaar is, in tegenstelling tot machinetaal. Beide kunnen worden beschouwd als "tussentalen" die zich tussen broncode en machinecode bevinden. Het belangrijkste verschil tussen beide is dat bytecode wordt gegenereerd voor een virtuele machine (software), terwijl assembleertaal wordt gemaakt voor een CPU (hardware).
Test je kennis