Разлике између преводилаца и преводилаца

Пре Јава и Ц # програмски језици су се појавили, рачунарски програми су били само састављено или интерпретирано. Језици као што су скупштински језик, Ц, Ц ++, Фортран, Пасцал готово су увек компилирани у машински код. Језици попут Басиц, ВбСцрипт и ЈаваСцрипт се обично тумаче.

Па, која је разлика између састављеног програма и интерпретираног програма?

Компајлирање

Да бисте написали програм, подузмите следеће кораке:

  1. Уредите програм
  2. Саставите програм у датотеке са машинским кодом.
  3. Повежите датотеке машинског кода у програм који се може покренути (такође познат као еке).
  4. Отклањање грешке или покретање програма

Са неким језицима као што су Турбо Пасцал и Делпхи кораци 2 и 3 су комбинирани.

Датотеке машинског кода су самостални модули машинског кода за које је потребно повезивање да би се саставио завршни програм. Разлог за постојање засебних датотека са машинским кодом је ефикасност; преводиоци морају само да прекомпонују изворни код које су се промениле. Датотеке машинског кода из непромењених модула поново се користе. То је познато као подношење апликације. Ако желите да прекомпилирате и обновите сав изворни код, тада је то познато и као Буилд.

instagram viewer

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

Тумачење

Кораци за покретање програма путем тумача су

  1. Уредите програм
  2. Отклањање грешке или покретање програма

Ово је далеко бржи процес и помаже почетницима који брже уређују и тестирају свој код брже од коришћења компајлера. Недостатак је што интерпретирани програми раде много спорије од састављених програма. Онолико 5-10 пута спорије него што сваки ред кода треба поново прочитати, а затим поново обрадити.

Унесите Јава и Ц #

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

Јава, када је компајлирана, производи бајт код који током извођења интерпретира Јава виртуелна машина (ЈВМ). Многи ЈВМ-ови користе Јуст-ин-Тиме компајлер који претвара бајт код у изворни машински код и затим покреће тај код да би повећао брзину интерпретације. Заправо, Јава изворни код је састављен у двостепеном процесу.

Ц # се компајлира у заједнички средњи језик (ЦИЛ, који је претходно био познат као Мицрософт средњи језик МСИЛ). Овим управља Заједнички Рунтиме Лангуаге (ЦЛР), део .НЕТ оквира окружења које пружа услуге подршке као што су прикупљање смећа и компилација Јуст-ин-Тиме.

И Јава и Ц # користе технике убрзавања, тако да је ефективна брзина готово брза као и чисти компајлирани језик. Ако апликација проводи пуно времена радећи на уносу и излазу, попут читања датотека са диском или покретања база података упита, разлика брзине је једва приметна.

Шта ми то значи?

Ако немате баш специфичну потребу за брзином и морате повећати брзину кадра за пар сличица у секунди, можете заборавити на брзину. Било који од Ц, Ц ++ или Ц # обезбедиће довољну брзину за игре, преводиоце и оперативне системе.