Milyen nyelveken érdemes programozni?
"Mert pl a visual basichez kell fordító külön."
Mindenhez kell forditó, hacsak nem gépi kódban programozol, úgyhogy eme kritérium alapján gyakorlatilag semmilyen programnyelv nem felel meg neked, kivéve a már emlitett gépi kódot.
Pár dolgot azért tegyünk tisztába:
1. Vannak olyan programnyelvek, amelyek nativ kóddá forditódnak le. Ez azt jelenti, hogy forditó gépi kódot csinál a forráskódból. Ezt a gépi kódot a memóriába töltve a processzor közvetlenül tudja értelmezni és végrehajtani. Ilyen pl. a hagyományos C++. Vagy a C. Vagy a Pascal.
2. Vannak az olyan nyelvek, amiknek a forditója nem gépi kódot generál, hanem egy, a gépihez közeli köztes nyelvre fordit, amit aztán egy futtató környezet értelmez, és csinál belőle gépi kódot.
Ilyen pl. a JAVA, ami úgynevezett Byte Code nyelvre forditja a programodat, majd amikor futtatod a programod, azt a JAVA Virtual Machine(ami gyakorlatilag egy sima program) tölti be, értelmezi, és generálja a CPU számára végrehajtható nativ kódot.
És ilyen az összes .NET alapú nyelv, pl. C#, Visual Basic .NET, a managed C++, stbstb. A Windows-os világban a köztes nyelvet IL-nek vagy CIL-nek hivják(Intermediate language, vagy Common Intermediate Language).
Ez bináris kód, de visszafejthető egy assembly-hez hasonló nyelvre(kivéve, hogy nincsenek register-ek, csak stack)
A "virtuális gép"-et pedig, ami végrehajtja az IL kódot(azaz átforditja tényleges nativ kóddá), CLR-nek, azaz Common Language Runtime-nak nevezik.
Hogy valami kézzelfogható példa is legyen: Mondjuk,hogy a CPU egy török vendégmunkás, aki csak törökül ért, bármilyen más nyelven szólsz hozzá, nem hajtja végre az utasitásaidat, mert nem érti.
Ezért te elmagyarázod a müszakvezetőnek németül, hogy mit akarsz, és ő leforditja azt törökre.(A müszakvezető lenne tulajdonképpen a nativ forditó, aki csak németül, és törökül ért)
Ha te nem tudsz németül(ezt megfeleltethetjük a C++-nak), csak magyarul(ez legyen mondjuk a Pascal), akkor kell neked egy olyan müszakvezető(forditó), aki tud magyarról törökre forditani.
Ez kb. megfelel a nativ kódot generáló programozási nyelvek modelljének.
A virtuális gépes móka annyiban más, hogy a müszakvezető csak eszperantóul ért, viszont bármelyik vendégmunkás nyelvére le tudja azt forditani.
Innentől kezdve a müszakvezető lesz a virtuális gép, az eszperantó a köztes nyelv, az angol, német, stb. meg a magas szintü nyelvek, amik mind eszperantóra forditódnak, amit a müszakvezető fordit le az adott vendégmunkás nyelvére.
Kicsit persze sántit a dolog, de valami ilyesmi a lényeg.
"Semmilyen javás fordító nem gépi kódra fordít"
meggondolatlan kijelentés, létezhet, illetve készíthető egy olyan fordító, ami egyből gépi kódra fordít :D
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!