Tulkitut ja käännetyt ohjelmointikielet: Mikä on ero?

Jokainen ohjelma on joukko ohjeita, riippumatta siitä, lisätäänkö kaksi numeroa vai lähetetäänkö pyyntö Internetin kautta. Kääntäjät ja tulkit ottavat ihmisen luettavissa olevan koodin ja muuntavat sen tietokoneella luettavaksi konekoodiksi.

Käännetyllä kielellä kohdekone kääntää ohjelman suoraan. Tulkitulla kielellä kohdekone ei käännä lähdekoodia suoraan. Sen sijaan eri ohjelma, eli tulkki, lukee ja suorittaa koodin.

Okei ... mutta mitä se itse asiassa tarkoittaa?

Kuvittele, että sinulla on humusresepti, jonka haluat tehdä, mutta se on kirjoitettu antiikin kreikaksi. On kaksi tapaa, jolla muinainen kuin kreikkalainen puhuja voisit seurata sen ohjeita.

Ensimmäinen on, jos joku oli jo kääntänyt sen englanniksi sinulle. Sinä (ja kuka tahansa muu, joka osaa englantia), voit lukea reseptin englanninkielisen version ja tehdä hummusta. Ajattele tätä käännettyä reseptiä käännettynä versiona.

Toinen tapa on, jos sinulla on ystävä, joka tuntee antiikin kreikan. Kun olet valmis tekemään hummusta, ystäväsi istuu vieressäsi ja kääntää reseptin englanniksi rivi riviltä. Tällöin ystäväsi on tulkin tulkinnut versio resepti.

Käännetyt kielet

Käännetyt kielet muunnetaan suoraan konekoodiksi, jonka prosessori voi suorittaa. Tämän seurauksena niiden suorittaminen on yleensä nopeampaa ja tehokkaampaa kuin tulkitut kielet. Ne antavat myös kehittäjälle paremman hallinnan laitteistokysymyksistä, kuten muistinhallinnasta ja suorittimen käytöstä.

Käännetyt kielet tarvitsevat "koontivaiheen" - ne on ensin koottava manuaalisesti. Sinun täytyy "rakentaa" ohjelma joka kerta, kun sinun on tehtävä muutos. Hummus-esimerkissämme koko käännös kirjoitetaan ennen kuin se saapuu sinulle. Jos alkuperäinen kirjoittaja päättää haluavansa käyttää erilaista oliiviöljyä, koko resepti olisi käännettävä uudelleen ja pahoitteltava sinua.

Esimerkkejä puhtaista käännetyistä kielistä ovat C, C ++, Erlang, Haskell, Rust ja Go.

Tulkitut kielet

Tulkit kulkevat ohjelman läpi rivi riviltä ja suorittavat jokaisen komennon. Jos kirjoittaja päättää haluavansa käyttää erilaista oliiviöljyä, hän voisi naarmuttaa vanhan ja lisätä uuden. Kääntäjäystäväsi voi sitten välittää muutoksen sinulle, kun se tapahtuu.

Tulkitut kielet olivat aikoinaan huomattavasti hitaampia kuin käännetyt kielet. Mutta juuri oikeaan aikaan -kokoelman kehittämisen myötä tämä kuilu pienenee.

Esimerkkejä yleisistä tulkituista kielistä ovat PHP, Ruby, Python ja JavaScript.

Pieni huomautus

Useimmilla ohjelmointikielillä voi olla sekä käännettyjä että tulkittuja toteutuksia - itse kieltä ei välttämättä käännetä tai tulkita. Kuitenkin yksinkertaisuuden vuoksi heitä kutsutaan yleensä sellaisiksi.

Esimerkiksi Python voidaan suorittaa joko käännettynä ohjelmana tai tulkittuna kielenä interaktiivisessa tilassa. Toisaalta useimmat komentorivityökalut, CLI: t ja kuoret voidaan teoriassa luokitella tulkituiksi kieliksi.

Hyödyt ja haitat

Koottujen kielten edut

Alkuperäiseen konekoodiin kootut ohjelmat ovat yleensä nopeampi kuin tulkittu koodi. Tämä johtuu siitä, että koodin kääntäminen ajon aikana lisää yleiskustannuksia ja voi aiheuttaa ohjelman hidastumisen kokonaisuudessaan.

Koottujen kielten haitat

Merkittävimmät haitat ovat:

  • Lisäaika tarvitaan koko kokoamisvaiheen suorittamiseen ennen testaamista
  • Luodun binäärikoodin riippuvuus alustasta

Tulkittujen kielten edut

Tulkitut kielet ovat yleensä joustavampia ja tarjoavat usein ominaisuuksia, kuten dynaaminen kirjoittaminen ja pienempi ohjelmakoko. Koska tulkit suorittavat lähdekoodikoodin itse, koodi itsessään on alustasta riippumaton.

Tulkittujen kielten haitat

Merkittävin haitta on tyypillinen suoritusnopeus käännettyihin kieliin verrattuna.