Ohjelmointikielet kuuluvat yleensä kahteen tyyppiseen kieliin - käännetyt tai tulkittavat kielet. Ero ei kuitenkaan ole kielellä; se on toteutuksessa. Ei ole väärin sanoa, että molemmat ovat kielen toteutuksen ominaisuuksia, mutta eivät itse kielen ominaisuuksia. Ohjelmointikielen toteuttaminen tarkoittaa kuilun kaventamista ohjelmoijan korkean tason ajattelusta koneen nolla- ja nollatasoon. Jos ohjelmisto tehdään tehokkaasti, ohjelmoijat voivat keskittyä todellisiin ongelmiin koneiden yksityiskohtien sijasta. Joten ohjelmointikieli voidaan koota tai tulkita toteutuksen perusteella.
No, molemmilla ohjelmointikieleillä on vahvuutensa. Jotkut kielet vaativat koko koodisi kääntämistä, ennen kuin jokin koodi voidaan suorittaa. Muut kielet tulkitsevat jokaista käskyä koodin suorittamishetkellä. Itse asiassa ohjelmoija kokoaa yleensä käännetyt kielet ohjelmiston tietokoneelle; kun ohjelmoija jakaa ohjelmiston, hän jakaa käännetyt 0 ja 1, mutta ei lähdekoodia. Tulkkatuilla kielillä koodi tallennetaan kuitenkin samassa muodossa kuin syötit ja se on käännettävä ajon aikana. Katsotaanpa yksityiskohtaista vertailua käännettyjen ja tulkittujen kielten välillä.
Tietokoneet kykenevät suorittamaan vain konekieltä, joka on keskusyksikön (CPU) kieli ja on hyvin yksinkertainen. Minkä tahansa ohjelmointikielen toteutuksen tavoitteena on kääntää lähdeohjelma konekielelle, jotta CPU voi suorittaa sen. Kaikki kielitoteutukset kääntävät lähdeohjelman joihinkin välietappioihin ennen välituotteen kääntämistä konekielelle. Suorampaa menetelmää ohjelman kääntämiseksi konekielelle kutsutaan kokoamiseksi. Käännetyllä kielellä kirjoitettu ohjelma on muunnettava eri muotoon ennen kuin se suoritetaan. Lähdekoodi on muunnettava koneellisesti luettaviksi ohjeiksi ennen suorittamista. Lyhyesti sanottuna kieliä, joiden toteutukset ovat tyypillisesti kääntäjiä eikä tulkkeja, kutsutaan käännetyiksi kieliksi.
Tulkki on ohjelma, joka on kirjoitettu jollain muulla kielellä ja koottu koneella luettavalle kielelle. Tulkki on itse konekieliohjelma, joka on kirjoitettu lukemaan lähdeohjelmia tulkitusta kielestä ja tulkitsemaan niitä. Tulkittu kieli, päinvastoin, ei käännä lähdekoodia konekielelle ennen ohjelman suorittamista. Se vain tulkitsee koodin lennossa. Joten, et saa käännösvirheiden etuja tai haittoja. Tulkitut kielet vaativat tulkkina kutsutun ohjelmiston, joka ottaa lähdekoodin ja suorittaa yhden käskyn kerrallaan. Kun suoritat tulkittu lähdeohjelmaa, suoritat tulkin. Tulkki on konekielinen ohjelma, joka suorittaa kaikki kirjoittamasi ohjelmat tulkitsemalla kielellä.
- Käännetyllä kielellä kirjoitettu ohjelma on muunnettava eri muotoon ennen kuin se suoritetaan. Lähdekoodi on muunnettava koneellisesti luettaviksi ohjeiksi ennen suorittamista. Tulkittu kieli, päinvastoin, ei käännä lähdekoodia konekielelle ennen ohjelman suorittamista. Se vain tulkitsee koodin lennossa. Tulkitut kielet vaativat tulkkina kutsutun ohjelmiston, joka ottaa lähdekoodin ja suorittaa yhden käskyn kerrallaan.
- Käännetyillä kielillä on ainakin kaksi vaihetta siirtyäksesi lähdekoodista toteutukseen, kun taas tulkituilla kielillä on vain yksi - suorittaminen. Tulkkatuilla kielillä kirjoitettua ohjelmaa ei käännetä - toinen ohjelma tulkitsee sitä sen suorittamisen aikana. Käännetyllä kielellä kirjoitettu ohjelma käy läpi prosessin, jolla se voidaan muuttaa ihmisille luettavassa tekstimuodossa koneellisesti luettavaksi. Kääntäjäksi kutsuttu ohjelma tekee tämän muutoksen.
- Käännetyt ohjelmat ajavat nopeammin kuin tulkittavat ohjelmat, mutta tulkittuja ohjelmia voidaan muokata ohjelman ollessa käynnissä. Tämä tekee tulkituista ohjelmista ihanteellisia live-esitysohjelmistojen kirjoittamiseen. Työskentely käännettyjen kielten kanssa voi olla mukavaa, koska lähdekoodin kääntämisen yhteydessä löydetään monia virheitä. Nämä virheet, joita kutsutaan käännösvirheiksi, estävät koodia kääntämästä. Päinvastoin, tulkittuja kieliä ei käännetä, joten et saa etuja tai haittoja käännösvirheistä.
- Tulkittujen kielten kanssa kaikki virheenkorjaus tapahtuvat ajon aikana. Ei ole kokoamisvaihetta, jonka aikana voit poistaa kaikki koodisi syntaktivirheet. sen sijaan sinun on suoritettava ohjelma löytääksesi virheitä siinä. Tästä tulee ongelma, kun tulkitset ohjelmaa, joka muuttaa tiedostoja tai tekee muutoksia pysyviin resursseihin. Tämä vaikeuttaa joidenkin virheiden löytämistä, koska koodia ei tarvitse kääntää. Tulkitut kielet aiheuttavat myös joitain tietoturvaongelmia verkkoympäristössä, koska haitalliset koodit voidaan injektoida suorituksen keskellä.
Lyhyesti sanottuna, sekä käännetyillä että tulkituilla kielillä on vahvuutensa. Jotkut kielet vaativat koko koodisi kääntämistä, ennen kuin jokin koodi voidaan suorittaa. Muut kielet tulkitsevat jokaista käskyä koodin suorittamishetkellä. Tärkein ero näiden kahden välillä on, että on olemassa ainakin kaksi vaihetta siirtyäkseen lähdekoodista toteuttamiseen käännettyjen kielten avulla. Tulkkatuilla kielillä on kuitenkin vain yksi vaihe - suorittaminen. Käännetyt ohjelmat ajavat nopeammin kuin tulkittavat ohjelmat, mutta tulkittuja ohjelmia voidaan muokata ohjelman ollessa käynnissä.