Különbségek a fordítók és a tolmácsok között

Előtte Jáva Megjelent a C # programozási nyelv, csak a számítógépes programok voltak összeállított vagy értelmezhető. Az olyan nyelveket, mint a Assembly Language, C, C ++, Fortran, Pascal, szinte mindig gépi kódba fordították. Az olyan nyelveket, mint az Alap, a VbScript és a JavaScript, általában értelmezték.

Tehát mi a különbség az összeállított és az értelmezett program között?

összeállítása

Program írásához tegye a következőket:

  1. Szerkessze a programot
  2. Fordítsa le a programot gépi kód fájlokba.
  3. Csatlakoztassa a gépi kódfájlokat egy futtatható programhoz (más néven exe).
  4. Debug vagy futtassa a programot

Néhány nyelven, például a Turbo Pascal és a Delphi, a 2. és a 3. lépést kombinálják.

A gépi kód fájlok a gépi kód önálló moduljai, amelyek összekapcsolást igényelnek a végső program létrehozásához. Külön gépi kódfájlok létrehozásának oka a hatékonyság; A fordítóknak csak újra kell fordítaniuk forráskód amelyek megváltoztak. A változatlan modulok gépi kódfájljait újra felhasználják. Ez az alkalmazás elkészítése. Ha újra szeretné fordítani és újraépíteni az összes forráskódot, akkor ezt Build néven hívják.

instagram viewer

Az összekapcsolás technikailag bonyolult folyamat, ahol a különféle modulok közötti összes funkcióhívást összekapcsolják, és a memóriahelyeket felosztják változók és az összes kódot a memóriába helyezzük, majd teljes programként lemezre írjuk. Ez gyakran lassabb lépés, mint a fordítás, mivel az összes gépi kód fájlt be kell olvasni a memóriába és össze kell kapcsolni.

Tolmácsok

A program tolmácson keresztül történő futtatásának lépései a következők

  1. Szerkessze a programot
  2. Debug vagy futtassa a programot

Ez egy sokkal gyorsabb folyamat, és elősegíti a kezdő programozók számára, hogy gyorsabban szerkesszék és teszteljék kódjukat, mint egy fordító használata. Hátránya, hogy az értelmezett programok sokkal lassabban futnak, mint a fordított programok. A kód minden sorát 5-10-szer lassabban kell újraolvasni, majd újra feldolgozni.

Írja be a Java és a C #

Mindkét nyelv félig fordított. Egy közbenső kódot állítanak elő, amelyet optimalizáltak az értelmezésre. Ez a közbenső nyelv független az alapul szolgáló hardvertől, és ez megkönnyíti a portolást programokat írtak be más processzorokra, mindaddig, amíg egy tolmácsot erre felírták hardver.

A Java, fordítva, bájtkódot állít elő, amelyet futás közben egy Java virtuális gép (JVM) értelmez. Sok JVM egy Just-In-Time fordítót használ, amely átalakítja a bájtkódot natív gépi kódra, majd futtatja ezt a kódot, hogy növelje az értelmezési sebességet. Valójában a Java forráskódját kétlépcsős folyamatban állítják össze.

A C # a közös köztes nyelvre (CIL, korábban Microsoft Intermediate Language MSIL) volt fordítva. Ezt a Common Language Runtime (CLR), a .NET-keretrendszer része, egy olyan környezet, amely támogató szolgáltatásokat nyújt, mint például a szemétgyűjtés és a Just-In-Time összeállítás.

Mind a Java, mind a C # gyorsítási technikákat alkalmaz, tehát a tényleges sebesség szinte olyan gyors, mint a tiszta fordított nyelv. Ha az alkalmazás sok időt vesz igénybe be- és kimeneten, például lemezes fájlok olvasása vagy futtatása adatbázis kérdezi, akkor a sebességkülönbség alig észlelhető.

Mit jelent ez számomra?

Hacsak nincs kifejezetten szükség a sebességre, és másodpercenként néhány képkockával kell növelnie a képsebességet, elfelejtheti a sebességet. Bármelyik C, C ++ vagy C # megfelelő sebességet biztosít a játékokhoz, fordítókhoz és operációs rendszerekhez.