Hva er en Bytecode?
Bytecode er datamaskinens objektkode som bare kan tolkes av et program, vanligvis beskrevet som virtuell maskin. I mange moderne programvareutviklingsplattformer foretrekkes bytekode fremfor lavt nivå maskinkode da den plasserer en tolk mellom programvaren og datamaskinens maskinvare. Maskinkode er plattformavhengig som krever kompilering på hver maskinvareplattform for å kunne utføres riktig på den spesifikke plattformen.
Ettersom programvareutviklingsparadigmene har modnet over tid, har også bruken av eksterne lag av tolkning mellom maskinvaren til en datamaskin og programvaren som kjører på datamaskinen. I begynnelsen av tidlig programvareoppretting var utviklere avhengige av datamaskinvare, drivere og de underliggende operativsystemene. Denne avhengigheten tvang utviklerne til å forstå intimt mange aspekter av de spesifikke datamaskinene, noe som gjorde plattformuavhengighet veldig vanskelig og programvareveksten tett koblet til spesifikke leverandører av maskinvare og programvare.
Opprettelsen av bytecode har skapt et miljø med plattformuavhengighet i programvareutviklingssamfunnet. Med bruk av denne metaforen kan programvareutviklere skrive en gang og bruke overalt. Utviklere er ikke tvunget til å forstå de innfødte driverne til en spesifikk datamaskin, og er heller ikke opptatt av det underliggende operativsystemet programvaren skal kjøre på.
En virtuell maskin er betegnelsen som brukes i Java ™ -programmeringsspråk for å representere programvaren som vil tolke bytekoden. Denne virtuelle maskinen konverterer bytekoden etter behov for å samhandle med den underliggende maskinvaren og operativsystemet i datamaskinen. Maskinkoden som genereres av den virtuelle maskinen, er skjult for utvikleren av Java ™ -programmet og kan fungere fullt ut på flere plattformer uten å kreve omskriving av programvaren for hver plattform.
Internt i bytecode er mer et emne på forhånd og er vanligvis ikke nødvendig fra de fleste utviklere for å forstå. Bytecode er ikke et menneskelig lesbart språk og består av numerisk kodede representasjoner av klasser, metoder og omfanget av objektene og deres hekkende klasser. Hver bytecode opcode er en enkelt byte i lengde.
Maskinspråket som kreves for at moderne datamaskiner skal fungere på kommandoer, er egenutviklet av leverandøren. Hver maskinvare og operativsystem har en unik måte å håndtere prosesser, hukommelsesallokering og oppgavebruk. Ved å bruke en bytecode-programvareutviklingsapplikasjon er den virtuelle maskintolkeren ansvarlig for å lage maskinkoden som vil være nødvendig for å kunne kjøres på den egenutviklede plattformen.