Home

Kompilointi

Kompilointi on ohjelmointikielen lähdekoodin muuntamista kohdekieliseksi, suoritettavaksi ohjelmaksi. Prosessi toteutetaan kääntäjäksi kutsutun ohjelman sekä usein linkkerin avulla. Käännöksessä korkean tason ohjeet muuttuvat konekäskyiksi tai välivälinekoodiksi, jota käytetään suorituksessa.

Käännösprosessi koostuu useista vaiheista: leksikaalinen analyysi tunnistaa merkit ja sanat, syntaktinen analyysi varmistaa rakenteen oikeellisuuden, semanttinen

Käyttötavat ja aikajärjestys vaihtelevat kielestä riippuen. Ahead‑of‑Time (AOT) -käännös tuottaa valmiin suoritettavan tiedoston etukäteen. Just‑In‑Time (JIT)

Esimerkkejä: C/C++-koodia kääneetään usein GCC:llä tai Clangilla; Rustin ohjelmistot rakennetaan Cargo‑työkalulla; Java‑koodi käännetään javacilla bytecodeiksi ja

Kompiloinnin tarkoituksena on tuottaa toimiva, tehokas ja siirrettävä suorituskelpoinen ohjelma sekä tarjota mahdollisuus virheiden varhaiseen havaitsemiseen

analyysi
tarkastaa
ohjelman
tarkoituksen
ja
viittaukset,
sekä
optimointi
parantaa
suorituskykyä
tai
tilankäyttöä.
Tämän
jälkeen
koodi
generoidaan
objekteiksi
tai
välivälinekoodiksi,
ja
lopuksi
linkkeri
yhdistää
objektit
sekä
kirjastot
yhdeksi
suorituskelpoiseksi
tiedostoksi,
kuten
ohjelmaksi
tai
kirjastoksi.
-käännös
tapahtuu
suoritushetkellä,
usein
virtuaalikoneen
tai
ympäristönsä
sisällä,
mikä
mahdollistaa
ajoaikaisen
optimoinnin.
Kielten
mukaan
kääntäminen
jakautuu
siten,
että
C,
C++,
Rust
ja
Go
käännetään
tyypillisesti
AOT‑menetelmällä,
kun
taas
Java
ja
.NET‑kielet
käyttävät
bytecodea
ja
JIT-optimointia.
ajetaan
JVM:n
kautta;
.NET‑kielet
käännetään
IL:iksi
ja
suoritetaan
CLR:n
yllä.
ja
optimointiin.