Razlike med sestavljavci in tolmači

Pred Java pojavili so se programski jeziki C #, samo računalniški programi sestavljeno ali interpretirano. Jeziki, kot so skupščina, C, C ++, Fortran, Pascal, so bili skoraj vedno sestavljeni v strojno kodo. Ponavadi so bili tolmačeni jeziki, kot so Basic, VbScript in JavaScript.

Kakšna je torej razlika med sestavljenim programom in interpretiranim programom?

Zbiranje

Če želite napisati program, naredite naslednje:

  1. Uredite program
  2. Program sestavite v datoteko strojne kode.
  3. Datoteke strojne kode povežite z uporabnim programom (znan tudi kot exe).
  4. Odpravljanje težav ali zagon programa

Z nekaterimi jeziki, kot sta Turbo Pascal in Delphi, sta koraka 2 in 3 združena.

Datoteke strojnih kod so samostojni moduli strojne kode, ki zahtevajo povezovanje skupaj, da sestavi končni program. Razlog za ločene datoteke strojne kode je učinkovitost; prevajalniki morajo samo prekomponirati izvorno kodo ki so se spremenile. Datoteke strojne kode iz nespremenjenih modulov se ponovno uporabijo. To je znano kot vloga. Če želite prekompolirati in obnoviti vso izvorno kodo, potem je to znano kot Build.

instagram viewer

Povezava je tehnično zapleten postopek, pri katerem se vsi funkcijski klici med različnimi moduli povežejo skupaj, dodeljena so pomnilniška mesta spremenljivk in vsa koda se položi v pomnilnik in nato zapiše na disk kot celoten program. To je pogosto počasnejši korak kot sestavljanje, saj je treba vse datoteke strojne kode prebrati v pomnilnik in jih povezati.

Tolmačenje

Ukrepi za zagon programa preko tolmača so

  1. Uredite program
  2. Odpravljanje težav ali zagon programa

To je precej hitrejši postopek in novomeškim programerjem pomaga hitreje urediti in preizkusiti kodo kot pri uporabi prevajalnika. Pomanjkljivost je, da interpretirani programi delujejo veliko počasneje kot sestavljeni programi. Kar 5-10 krat počasneje, kot je treba vsako vrstico kode prebrati, nato pa ponovno obdelati.

Vnesite Java in C #

Oba jezika sta napol sestavljena. Generirajo vmesno kodo, ki je optimizirana za interpretacijo. Ta vmesni jezik ni odvisen od osnovne strojne opreme, kar olajša prenos programov, napisanih v katerem koli drugem procesorju, dokler je za to napisan tolmač strojna oprema.

Java, ko se sestavi, ustvari bajt kodo, ki jo med izvajanjem interpretira Java Virtual Machine (JVM). Mnogi JVM uporabljajo prevajalnik Just-In-Time, ki pretvori bajt kodo v izvorno kodo stroja in nato zažene to kodo, da poveča hitrost interpretacije. V bistvu se izvorna koda Java pripravi v dvostopenjskem postopku.

C # je sestavljen v skupni vmesni jezik (CIL, ki je bil prej znan kot Microsoftov vmesni jezik MSIL). To vodi skupni jezik izvajanja (CLR), del okvira .NET, okolje, ki nudi podporne storitve, kot so zbiranje smeti in kompilacija Just-in-Time.

Tako Java kot C # uporabljata tehnike pospeševanja, tako da je učinkovita hitrost skoraj tako hitra kot čisto sestavljen jezik. Če aplikacija porabi veliko časa za vnos in izhod, kot je branje diskovnih datotek ali zagon baze podatkov poizvedovanja, potem je razlika v hitrosti komaj opazna.

Kaj mi to pomeni?

Če ne potrebujete zelo specifične potrebe po hitrosti in morate povečati hitrost slike za nekaj sličic na sekundo, lahko na hitrost pozabite. Vsak od C, C ++ ali C # bo zagotovil zadostno hitrost za igre, prevajalnike in operacijske sisteme.