Тумачени и компајлирани програмски језици: у чему је разлика?

Сваки програм је скуп упутстава, било да се ради о додавању два броја или о слању захтева путем Интернета. Састављачи и тумачи узимају човеку читљив код и претварају га у рачунарски читљив машински код.

У компајлираном језику, циљна машина директно преводи програм. У интерпретираном језику, циљни рачунар не преводи директно изворни код. Уместо тога, други програм, зван тумач, чита и извршава код.

Добро ... али шта то заправо значи?

Замислите да имате рецепт за хумус који желите да направите, али он је написан на старогрчком. Постоје два начина на која бисте, говорник који није антички грчки, могли да следите његова упутства.

Прво је ако вам га је неко већ превео на енглески. Ви (и било ко други ко зна енглески) могли сте да прочитате енглеску верзију рецепта и направите хумус. Замислите овај преведени рецепт као састављену верзију.

Други начин је ако имате пријатеља који зна старогрчки. Када сте спремни да направите хумус, ваш пријатељ седи поред вас и редом преводи рецепт на енглески. У овом случају, ваш пријатељ је тумач протумачене верзије рецепта.

Састављени језици

Састављени језици претварају се директно у машински код који процесор може извршити. Као резултат тога, они имају тенденцију да буду бржи и ефикаснији у извршавању од тумачених језика. Такође програмеру дају већу контролу над хардверским аспектима, попут управљања меморијом и употребе процесора.

Састављени језици требају корак „изградње“ - прво их треба ручно компајлирати. Морате да „обновите“ програм сваки пут када требате да промените. У нашем примеру хумуса, цео превод је написан пре него што дође до вас. Ако оригинални аутор одлучи да жели да користи другу врсту маслиновог уља, цео рецепт треба поново превести и замерити вам.

Примери чисто компајлираних језика су Ц, Ц ++, Ерланг, Хаскелл, Руст и Го.

Тумачени језици

Тумачи пролазе кроз програм ред по ред и извршавају сваку наредбу. Овде, ако аутор одлучи да жели да користи другу врсту маслиновог уља, могао би да огребе старо и дода ново. Ваш пријатељ преводилац вам тада може пренијети ту промену како се догоди.

Тумачени језици некада су били знатно спорији од компајлираних језика. Али, развојем компилације тачне на време, тај јаз се смањује.

Примери уобичајених тумачених језика су ПХП, Руби, Питхон и ЈаваСцрипт.

Мали упозорење

Већина програмских језика може имати компајлиране и интерпретиране имплементације - сам језик није нужно компајлиран или интерпретиран. Међутим, ради једноставности, они се обично називају таквим.

На пример, Питхон се може извршити или као компајлирани програм или као интерпретирани језик у интерактивном режиму. С друге стране, већина алата за командну линију, ЦЛИ и шкољке могу се теоретски класификовати као интерпретирани језици.

Предности и мане

Предности компајлираних језика

Програми који се компајлирају у изворни машински код имају тенденцију да буду бржи од интерпретираних кодова. То је зато што се процес превођења кода у време извођења увећава и може довести до тога да је програм у целини спорији.

Мане компајлираних језика

Најзначајнији недостаци су:

  • Додатно време потребно за завршетак читавог корака компилације пре тестирања
  • Зависност платформе генерисаног бинарног кода

Предности тумачених језика

Тумачени језици имају тенденцију да буду флексибилнији и често нуде функције попут динамичког куцања и мање величине програма. Такође, с обзиром да тумачи сами извршавају изворни програмски код, сам код је неовисан о платформи.

Мане тумачених језика

Најуочљивији недостатак је типична брзина извршавања у поређењу са компајлираним језицима.