Obstaja veliko načinov za razlikovanje programskih jezikov. Za začetek sodijo v različne paradigme: funkcionalne, objektno usmerjene in še več.
Programski jezik lahko razvrstite tudi po njegovi metodi prevajanja, kar ima velik vpliv na zmogljivost jezika. Prevedeni programski jeziki so običajno hitrejši od interpretiranih. Torej, v situacijah, kot je razvoj iger, ki zahtevajo hitrost, razvijalci ponavadi uporabljajo prevedene jezike.
Kaj je prevajanje?
Postopek prevajanja pretvori kodo, ki jo je napisal programer, v strojno kodo, ki jo lahko izvede računalnik. Strojna koda je vrsta jezika nizke ravni, ki ima enote in ničle. Prevajalec torej pretvori kodo na visoki ravni, ki jo ustvarite v programskem jeziku, v strojno kodo.
Brez prevajalcev bi morali kodirati v strojnem jeziku. Vsak programski jezik na visoki ravni, ki ga poznate, uporablja enega od treh načinov prevajanja: prevajalnik, tolmač ali hibrid obeh.
Kaj je prevajalnik?
Prevajalnik je programska oprema, ki pretvori izvorno kodo, napisano v jeziku visoke ravni, v nizkonivojsko kodo za izvedbo.
Zgornji diagram predstavlja prevajalnik v njegovi najbolj osnovni obliki. Prevajalnik ima več faz. Vsaka faza pretvori kodo iz enega stanja v drugo. Cilj vsake faze prevajalnika je ustvariti izhod, ki ga bo naslednja faza lažje manipulirala. Splošna struktura prevajalnika je naslednja:
- Skener: ta faza vzame tok znakov in jih razvrsti v žetone, ki predstavljajo identifikatorje, literale nizov itd.
- Razčlenjevalnik: ta faza združuje žetone na podlagi slovnice izvornega programskega jezika. Ustvari abstraktno sintaktično drevo, ki je zbirka izrazov, ki sestavljajo program.
- Semantika: ta faza izvaja semantično analizo abstraktnega sintaksnega drevesa (AST). Uporablja pravila izvornega jezika, da doda pomen z dodeljevanjem tipov izrazom AST in preverjanjem njihove veljavnosti. AST nato postane vmesna predstavitev.
- Vmesna predstavitev (IR): ta faza pretvori izvorno kodo izvirnega programa v strojno kodo. Proizvaja poenostavljeno različico montažne kode. IR uporablja enega ali več optimizatorjev za izboljšanje kode IR in za zbiranje informacij za stroj, na katerem deluje. Optimizator lahko naredi program učinkovitejši, hitrejši ali celo manjši.
- Generator kode: ta faza porabi optimizirano IR kodo in jo pretvori v strojno kodo.
Kateri programski jeziki uporabljajo prevajalnike?
Nekateri priljubljeni prevedeni programski jeziki vključujejo:
- C
- C++
- Pojdi
- Ada
- Fortran
- COBOL
- Lisp
- Cilj-C
- Swift
Ena od prednosti uporabe prevedenega jezika je, da prepozna napake med prevajanjem. To vam omogoča, da odpravite takšne napake in nato znova poskusite prevesti program. Manj verjetno je, da bodo prevedeni jeziki neuspešni, ko se začnejo izvajati. Ti jeziki niti ne bodo ustvarili programa za zagon, če ima izvorna koda napake v sintaksi. Toda semantične napake in druge oblike hroščev v času izvajanja bodo to presegle.
Prevedeni jeziki se izvajajo tudi zelo hitro po prevajanju.
Kaj je tolmač?
Tolmač je program, ki prevaja in izvaja eno vrstico kode naenkrat. Ta postopek se ponavlja, dokler tolmač ne pride do zadnje vrstice kode v danem programu ali skriptu.
Kot lahko vidite iz zgornjega diagrama, tolmač sprejme dva vhoda. Najprej vzame celotno izvorno kodo (program). Nato prebere prvo vrstico programa (kot vhod), jo prevede in izvede. Če se ta vrstica pravilno izvede, se premakne na naslednjo vrstico v programu ali skriptu.
Za razliko od prevajalnika tolmač ne prevede celotnega programa v strojno kodo. Namesto tega razčleni in analizira dano vrstico kode, preden jo izvede. Tolmač bi moral začeti izvajati program – še posebej večji –, preden ga prevajalnik sploh konča s prevajanjem.
Kateri programski jeziki uporabljajo tolmače?
Nekateri priljubljeni interpretirani programski jeziki vključujejo:
- Python
- JavaScript
- Perl
- MATLAB
- OSNOVNO
Čeprav tolmač začne hitreje izvajati kodo, ne bo uspel, če naleti na napako. Kot programer bi morali odpraviti takšno napako in znova zagnati program. Ta dogodek se pojavi vsakič, ko tolmač naleti na novo napako. Nekatere napake lahko mirujejo, če se nanašajo na redek sklop okoliščin. v takih primerih, testiranje je pomembnejše kot kdaj koli prej.
Tolmače je običajno lažje razviti kot prevajalnike, njihovi programi pa so po zasnovi bolj prenosljivi.
Kaj je hibridno prevajanje?
Hibridno prevajanje uporablja prevajalnik in tolmač. Hibridni prevod prevede izvorno kodo na visoki ravni v nižjo raven, kot je bajtna koda. Nato za zagon te bajtne kode uporabi tolmač.
Hibridni prevod se lahko razlikuje od enega programskega jezika do drugega, vendar bo uporabljal to splošno strukturo. Eden izmed bolj priljubljenih programskih jezikov, ki uporabljajo hibridno prevajanje, je Java. Prevajalnik Java svojo izvorno kodo prevede v bajtna koda navideznega stroja Java (JVM).. Tolmač nato prevede bajtno kodo JVM v strojno kodo.
Kateri programski jeziki uporabljajo hibridno prevajanje?
Nekateri priljubljeni hibridni programski jeziki vključujejo:
- Java
- C#
- Visual basic
- Erlang
- F#
S hibridnim prevodom dobite najboljše iz obeh svetov. Če najprej sestavite kodo, lahko napake odpravite čim prej. Bajtno kodo, ki jo ustvarijo hibridni prevajalci, je lažje interpretirati kot izvorno kodo programa na visoki ravni.
Vrednost poznavanja različnih prevajalskih metod
Razumeti morate posebno metodo prevajanja, ki jo uporablja jezik, zlasti če jo uporabljate za nov projekt. Metoda prevajanja v jezik je pomemben del identitete programskega jezika. Lahko vpliva na to, kako distribuirate svoj program in kako ga bodo uporabniki izvajali.
Vsak prevajalski pristop ima svoje prednosti. Najboljši programski jeziki, kot so C++, Python in Java, uporabljajo različne metode prevajanja. Poleg paradigme jezika je njegova metoda prevajanja ena najpomembnejših lastnosti, ki se jih morate zavedati.
Obstaja več paradigem, ki jih lahko uporablja programski jezik. Večina najboljših programskih jezikov je večparadigmskih jezikov; podpirajo uporabo dveh ali več različnih paradigem. Tri najbolj priljubljene paradigme so imperativno, objektno usmerjeno in funkcionalno programiranje.