Magas szintű nyelven megírt program fordítása gépi kódra hogy történik?
Hát ez nem éppen így van. Ha a processzor nem tudja végrehajtani ("mert nem ismeri az utasítást") akkor nem fog végrehajtódni. Ilyenkor jönnek a különböző hibák. Nem véletlen találták ki a "gépigényt". de a processzorok "utasítás készlete" szinte megegyezik. Úgy értem mi értelme lenne olyan processzort készíteni ami semmivel se kompatibilis? Amit írtál a renderelésről pont tudok példát mondai. A sony vegas képes kihasználni a GPU erejét de csak bizonyos videokártyáknál. A laptopomban lévőt nem míg az asztali gépben lévőt ki tudja használni.
Ez a probléma nem a fordítóprogramra van bízva hanem a programozókra, hogy építsenek a programba hiba keresést/ellenőrzést.
Az, hogy egy EXE elfut minden gépen, eleve nem igaz. Futtass egy 64-bites utasításkészletre fordított programot egy 32-bites rendszeren. Nem fog futni.
És itt jön a kérdésed, hogy mi van, ha egy proci speckó utasításkészlettel bír: hát fordítanak egy olyan speckó változatot a programról, ami arra a procira jó. Lásd 32 és 64 bites változatok: rengeteg programnak van már így 2 változata.
És igen, én is akartam írni, amit #1 írt, hogy annyira nem különbözhetnek a processzorok, hogy gondot okozzon - nem éri meg olyan procit gyártani, amin semmilyen eddigi program nem fut, mert akkor nem venné senki.
"Hogy lehet az, hogy egy gépi kódra fordított programot (pl exe fájl) mégis minden gép végre tud hajtani, függetlenül attól, milyen processzor van benne."
Vannak architektúrák, amik nagyrészt azonosak, ha általános kódot fordítasz (illetve az utolsó által felvetett alternatív végrehajtási utakat használod), akkor ugyanaz az exe fog futni az adott architektúra minden processzorán. De próbálj meg egy x86-ra fordított fájlt armon futtatni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!