Kääntäjä / Compiler

Kuvauksen kirjoitti: Asko Ropponen / K1907

Lyhyt kuvaus käsitteestä tai aiheesta

Kääntäjä (eng. Compiler) on ohjelma joka muuntaa korkean tason ohjelmointikielellä (esim. ihmisen luettavissa olevalla kuten c,c++ jne...) kirjoitetun ohjelman matalamman tason kielelle, usein binääriseksi konekoodiksi.

Tämä tuotos on sitten se ohjelma itsessään.

Kääntämisprosessi tarkemmin

Kuvassa alla on kuvattu tyypillinen monikielinen, monikohteinen kääntäjä.
Lähdekoodia voidaan kääntää kahdesta eri kielestä, mutta kummallakin on omat "esityönsä", joissa ne käännetään kielelle jota kääntäjä ymmärtää (esim. assembly tms.)
Kuvassa tämä nimellä Intermediate code, eli kieli jota kääntäjä käyttää sisäisesti.
Tämä koodi sitten käännetään lopulta binäärikoodiksi, joka täytyy räätälöidä kohteen mukaan, kuvassa Target 1/2.

Compiler process

Esimerkkejä

1. Cross-compiler (ristikääntäjä)

Cross-compiler on kääntäjä joka tuottaa koodia jota ei ole tarkoitettu ajettavaksi laitteella, jolla sovellus käännetään konekiellelle.
Esim. Windows PC kääntää android sovellusta.

2. Bootstrap

Bootstrap nimitystä käytetään kääntäjästä joka on kirjoitettu samalla ohjelmointikielellä kuin mitä se kääntää.
Esim. java code -> java-written compiler -> java program

3. Decompiler

Decompiler on käänteinen kääntäjä, eli käännettyä, matalan tason kieltä käännetään takaisin ihmisen luettavaan muotoon.
Esim. program -> decompiler -> c++ code.

Lähteitä liittyen aiheeseen

Compiler - Wikipedia
Definition of: compiler, PC Encyclopedia

Linkit wikin muihin sivuihin