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:
- Szerkessze a programot
- Fordítsa le a programot gépi kód fájlokba.
- Csatlakoztassa a gépi kódfájlokat egy futtatható programhoz (más néven exe).
- 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.
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
- Szerkessze a programot
- 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.