Kääntämisvirhe on virhe konekooditiedoston rakentamisessa tietokoneen kielelle. Monet tietokonekielet kääntävät lähdekoodin konekooditiedostoiksi ennen ohjelmien rakentamista tai suorittamista. Yleisin kääntämisvirheen tyyppi on perussyntaksivirhe; yksi pieni virhe voi aiheuttaa monia ongelmia koodissa.
Yleisimmät olio-ohjelmointikielet, C ++ ja Java®, käyttävät kääntämistä jossain muodossa. Tämä eroaa merkittävästi tulkituista kielistä, jotka käyttävät raakalähdekoodia ajon aikana ohjelman suorittamiseen. Kielen ei tarvitse olla luontaisesti olio-suuntautunut ollakseen käännettävissä; Esimerkiksi C ++ voidaan rakentaa käyttämällä objekti- tai prosessiohjelmointia.
Yleisin kokoamisvirheiden syy on syntaksivirhe. Syntaksivirheet ovat raakalähdekoodin muotoisia virheitä, jotka johtuvat yleensä tietokoneen kielen periaatteiden rikkomisesta. Nämä virheet voivat olla yhtä yksinkertaisia kuin puolipisteen unohtaminen koodirivin lopussa tai monimutkaisia kuin matriisin alustaminen väärin. Yleensä ei ole äärimmäisen vaikeaa löytää ja diagnosoida näitä virheitä; Useimmat kääntäjät näyttävät virheet, kun ne kohtaavat, eivätkä salli konekoodin muodostamista ennen kuin virheet on korjattu. Eri kielet käyttävät kuitenkin eri kääntäjiä, joten on mahdollista, että tietyntyyppinen kokoamisvirhe voi esiintyä yhdellä kielellä, mutta ei toisella.
Käytetystä kielestä ja kääntäjästä riippuen yksi kokoamisvirhe voi näyttää yhtä monta virhettä. Esimerkiksi puolipisteen unohtaminen rivin lopussa, kun kieli sitä vaatii, voi aiheuttaa jäsennysvirheitä, koska kääntäjä ei tiedä milloin tietyn rivin on määrä päättyä. Tämä jäsennysvirhe voi ilmetä niin moninaisina kokoamisvirheinä, jolloin näyttää siltä, että koodissa on yhtäkkiä kauhistuttavia ongelmia yhden pienen kirjoitusvirheen sijasta. Yleensä tietokonekielen sääntöjen noudattaminen voi estää tällaiset virheet. Samalla tavalla, jos äkillinen käännösvirheiden hyökkäys ilmestyy, kokenut ohjelmoija voi yleensä päätellä, että yksi pieni virhe aiheutti suurimman osan niistä.
Aloittelijoiden yleinen väärinkäsitys on, että kokoamisvirhe kaataa tietokoneen, eikä näin ole koskaan. Kääntämisvirheet rajoittuvat kääntäjiin, ja konekoodin luominen aiheuttaa harvoin ongelmia koko tietokonejärjestelmälle. Mikään ohjelma ei ole idioottivarma, mukaan lukien kääntäjä, mutta mahdollisuudet aiheuttaa ongelmia koko tietokoneelle vain koodaamalla koodi tai kohdata kokoamisvirhe on erittäin pieni. Kun kaikki kokoamisvirheet on korjattu, on todennäköistä, että ohjelma toimii sujuvasti, kuten sen oli tarkoitus.