Kompilering/oversetting/virtuell maskin
Som før nevnt, for å programmere en datamaskin trenger vi to
ting:
- En tekst-editor til å skrive programmer som vanlig
tekst, forståelig for mennesker (lav- eller høynivå).
- Kompilator som oversetter program-teksten til maskinkode
som prosessoren forstår.
I praksis i våre dager er teksteditor, kompilator,
feilsjekkingsverktøy ("debugger") o.s.v. samlet i et
såkalt utviklingsverktøy, altså et eget program som
har alt man trenger og mere til.
Det finnes også flere måter å oversette
program-tekst til maskinkode på:
- Kompilator (Compilator)
hvor hele programteksten
oversettes til et helt
maskinkodeprogram
- Oversetter (Interpreter)
hvor en og en linje oversettes
til maskikode av gangen.
Dette er mer tidkrevende (ca 10-50 ganger langsommere enn
ren kompilering) men har den fordelen at det gir et mer
brukervennlig utviklingsverktøy, da det er lettere å
stoppe underveis i et program.
- Kompilering til en simulert mikroprosessor, som deretter
oversetter til ren maskinkode. Simuleringen av denne
prosessoren gjøres av et eget program.
Dette er prinsippet som brukes i programmeringsspråkene
Java, C# og AS..
Dette to-trinns-prinsippet har følgende fordeler:
- Nesten like raskt som vanlig kompilering (1.5-3
ganger langsommere enn vanlig kompilering)
- Samme fordeler som ren oversetting
- Uavhengig av prosesssor/maskinplattform!