Tõlgendatud vs kompileeritud programmeerimiskeeled: mis vahe on?

Iga programm on juhiste kogum, olgu see siis kahe numbri lisamine või Interneti kaudu päringu saatmine. Koostajad ja tõlgid võtavad inimeselt loetava koodi ja teisendavad selle arvutilugemiseks masinakoodiks.

Koostatud keeles tõlgib sihtmasin programmi otse. Tõlgendatud keeles ei tõlgita lähtekoodi sihtmasin otseselt. Selle asemel loeb ja täidab koodi mõni teine programm ehk tõlk.

Olgu ... aga mida see tegelikult tähendab?

Kujutage ette, et teil on hummuse retsept, mida soovite teha, kuid see on kirjutatud vanakreeka keeles. On kaks võimalust, kuidas te, muinas-kreeka keelt kõnelev, võiksite selle juhiseid järgida.

Esimene on see, kui keegi oleks selle juba teie jaoks inglise keelde tõlkinud. Teie (ja kõik teised, kes oskavad inglise keelt) võiksite lugeda retsepti ingliskeelset versiooni ja teha hummust. Mõelge sellele tõlgitud retseptile kui kompileeritud versioonile.

Teine võimalus on see, kui teil on sõber, kes teab vanakreeka keelt. Kui olete valmis hummust valmistama, istub teie sõber teie kõrval ja tõlgib retsepti rida-realt inglise keelde. Sellisel juhul on teie sõber retsepti tõlgendatud versiooni tõlk .

Koostatud keeled

Koostatud keeled teisendatakse otse masinakoodiks, mida protsessor saab käivitada. Seetõttu on nende rakendamine kiirem ja tõhusam kui tõlgitud keeled. Need annavad arendajale ka suurema kontrolli riistvaraspektide üle, nagu mäluhaldus ja protsessori kasutamine.

Koostatud keeled vajavad "ehitamise" sammu - need tuleb kõigepealt käsitsi kompileerida. Iga kord, kui peate muudatusi tegema, peate programmi uuesti üles ehitama. Meie hummuse näites kirjutatakse kogu tõlge enne, kui see teieni jõuab. Kui algne autor otsustab, et soovib kasutada teistsugust oliiviõli, tuleks kogu retsept uuesti tõlkida ja teile pahaks panna.

Puhaste kompileeritud keelte näited on C, C ++, Erlang, Haskell, Rust ja Go.

Tõlgendatud keeled

Tõlgid töötavad programmi kaupa rea ​​kaupa ja täidavad iga käsu. Kui autor otsustab, et soovib kasutada teist tüüpi oliiviõli, võiks ta siin vana välja kriimustada ja uue lisada. Teie tõlk sõber saab siis selle muutuse teile edasi anda, kui see juhtub.

Tõlgendatud keeled olid kunagi oluliselt aeglasemad kui kompileeritud keeled. Kuid õigel ajal koostamise arendamisel see vahe väheneb.

Tavaliste tõlgendatud keelte näited on PHP, Ruby, Python ja JavaScript.

Väike hoiatus

Enamikul programmeerimiskeeltel võib olla nii kompileeritud kui ka tõlgendatud rakendusi - keelt ennast ei pruugi tingimata kompileerida ega tõlgendada. Kuid lihtsuse huvides nimetatakse neid tavaliselt sellistena.

Näiteks Pythoni saab käivitada kas kompileeritud programmina või interaktiivses režiimis tõlgendatud keelena. Teiselt poolt saab enamik käsurea tööriistu, CLI-sid ja kestasid teoreetiliselt klassifitseerida tõlgendatud keelteks.

Eelised ja puudused

Koostatud keelte eelised

Natiivmasinakoodiks kompileeritud programmid on tavaliselt kiiremad kui tõlgendatud kood. Seda seetõttu, et käitamise ajal koodi tõlkimise protsess lisab üldkulusid ja võib põhjustada programmi üldise aeglustumise.

Koostatud keelte puudused

Kõige tähelepanuväärsemad puudused on:

  • Enne testimist on kogu kompileerimisetapi läbimiseks vaja lisaaega
  • Loodud binaarkoodi sõltuvus platvormist

Tõlgendatud keelte eelised

Tõlgendatud keeled on tavaliselt paindlikumad ja pakuvad sageli selliseid funktsioone nagu dünaamiline tippimine ja väiksem programmi maht. Kuna tõlgid täidavad lähtekoodikoodi ise, on kood ise platvormist sõltumatu.

Tõlgendatud keelte puudused

Kõige märkimisväärsem puudus on tüüpiline täitekiirus võrreldes kompileeritud keeltega.