Fortolket vs kompilerede programmeringssprog: Hvad er forskellen?

Hvert program er et sæt instruktioner, uanset om det er at tilføje to numre eller sende en anmodning over internettet. Compilere og tolke tager menneskelig læsbar kode og konverterer den til computerlæsbar maskinkode.

På et kompileret sprog oversætter målmaskinen programmet direkte. På et tolket sprog oversættes kildekoden ikke direkte af målmaskinen. I stedet læser og udfører et andet program, alias tolken, koden.

Okay ... men hvad betyder det egentlig ?

Forestil dig, at du har en hummusopskrift, som du vil lave, men den er skrevet på gammelgræsk. Der er to måder, du, som ikke taler antik-græsk, kan følge dens anvisninger.

Den første er, hvis nogen allerede havde oversat det til engelsk for dig. Du (og alle andre, der kan tale engelsk) kunne læse den engelske version af opskriften og lave hummus. Tænk på denne oversatte opskrift som den samlede version.

Den anden måde er, hvis du har en ven, der kender oldgræsk. Når du er klar til at lave hummus, sidder din ven ved siden af ​​dig og oversætter opskriften til engelsk, mens du går, linje for linje. I dette tilfælde er din ven tolk for den fortolkede version af opskriften.

Kompilerede sprog

Kompilerede sprog konverteres direkte til maskinkode, som processoren kan udføre. Som et resultat har de en tendens til at være hurtigere og mere effektive til at udføre end fortolkede sprog. De giver også udvikleren mere kontrol over hardwareaspekter, som hukommelsesstyring og CPU-brug.

Kompilerede sprog har brug for et "build" -trin - de skal kompileres manuelt først. Du skal “genopbygge” programmet hver gang du har brug for at foretage en ændring. I vores hummuseksempel er hele oversættelsen skrevet, før den kommer til dig. Hvis den oprindelige forfatter beslutter, at han vil bruge en anden slags olivenolie, skal hele opskriften oversættes igen og videresendes til dig.

Eksempler på rene kompilerede sprog er C, C ++, Erlang, Haskell, Rust og Go.

Fortolkede sprog

Tolke kører gennem et program linje for linje og udfører hver kommando. Her, hvis forfatteren beslutter, at han vil bruge en anden slags olivenolie, kunne han skrabe den gamle ud og tilføje den nye. Din oversætterven kan derefter formidle den ændring til dig, når det sker.

Fortolkede sprog var engang betydeligt langsommere end kompilerede sprog. Men med udviklingen af ​​just-in-time kompilering krymper dette hul.

Eksempler på almindelige fortolkede sprog er PHP, Ruby, Python og JavaScript.

En lille advarsel

De fleste programmeringssprog kan have både kompileret og fortolket implementering - selve sproget er ikke nødvendigvis kompileret eller fortolket. Men for enkelheds skyld omtales de typisk som sådan.

Python kan for eksempel udføres som enten et kompileret program eller som et fortolket sprog i interaktiv tilstand. På den anden side kan de fleste kommandolinjeværktøjer, CLI'er og skaller teoretisk klassificeres som fortolkede sprog.

Fordele og ulemper

Fordele ved kompilerede sprog

Programmer, der er sammensat til indbygget maskinkode, har tendens til at være hurtigere end fortolket kode. Dette skyldes, at processen med at oversætte kode ved kørselstid føjer til omkostningerne og kan medføre, at programmet generelt er langsommere.

Ulemper ved kompilerede sprog

De mest bemærkelsesværdige ulemper er:

  • Yderligere tid, der kræves for at gennemføre hele kompileringstrinnet før test
  • Platformafhængighed af den genererede binære kode

Fordele ved fortolkede sprog

Tolkede sprog har tendens til at være mere fleksible og tilbyder ofte funktioner som dynamisk skrivning og mindre programstørrelse. Da tolke selv udfører kildeprogrammakoden, er selve koden platformuafhængig.

Ulemper ved fortolkede sprog

Den mest bemærkelsesværdige ulempe er typisk eksekveringshastighed sammenlignet med kompilerede sprog.