Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
1. zdrojový kód: Toto je kód napísaný programátorom v programovacom jazyku na vysokej úrovni (napríklad Python, Java, C ++ atď.). Tento kód je založený na texte a používa ľudské príkazy a syntax.
2. kompilácia (alebo interpretácia): Toto je rozhodujúci krok, v ktorom sa kód čitateľný človekom prekladá do strojového kódu. Existujú dva hlavné prístupy:
* kompilácia: Kompilátor vezme celý zdrojový kód a prekladá ho do kompletnej sady pokynov stroja (kód objektu) naraz. Tento kód objektu je potom často prepojený s iným kódom objektov (napríklad knižníc) na vytvorenie spustiteľného súboru. Táto spustiteľná spôsobilosť je v podstate sekvencia binárnych pokynov. Jazyky ako C ++ a Java (pred krokom JVM) zvyčajne používajú kompilátory.
* Interpretácia: Tlmočník prekladá a vykoná riadok zdrojového kódu po riadku bez vytvorenia samostatného spustiteľného súboru. Jazyky ako Python a JavaScript používajú tlmočníkov. Aj keď priamo nevyrábajú binárny kód rovnakým spôsobom ako kompilátor, samotný tlmočník je program napísaný v zostavenom jazyku a nakoniec sa spolieha na binárne pokyny na spustenie. Interpretovaný kód sa stále vykonáva pomocou binárnych pokynov, ale preklad sa vykonáva dynamicky, jeden riadok súčasne.
3. jazyk montáže (niekedy): V niektorých prípadoch môže kompilátor generovať jazyk montáže ako prechodný krok. Jazyk montáže je programovací jazyk s nízkou úrovňou, ktorý na reprezentáciu strojových pokynov využíva Mnemonics (krátke skratky). Zostavovač potom prekladá tento zostavovací kód do strojového kódu (binárny). Tento krok je často skrytý pred programátorom.
4. strojový kód (binárny): Toto je posledná fáza. Strojový kód pozostáva zo sekvencie binárnych číslic (0S a 1S). Každá inštrukcia je reprezentovaná jedinečným binárnym vzorom, ktorému CPU môže priamo porozumieť a vykonať. Tento binárny kód predstavuje veci ako:
* opcodes: Pokyny, ktoré hovoria CPU, akú operáciu má vykonať (napr. Pridanie, odčítanie, prístup k pamäti).
* Operands: Dáta alebo pamäťové adresy, na ktorých inštrukcia pracuje.
Príklad (zjednodušený):
Povedzme, že jednoduchá inštrukcia v jazyku na vysokej úrovni je `x =y + 5;`. Po kompilácii by to mohlo preložiť (veľmi zhruba a v závislosti od architektúry) na niečo také v binárnom (toto je vysoko zjednodušená ilustrácia a skutočné binárne pokyny sú oveľa zložitejšie):
* Načítajte hodnotu `y` do registra: `0001 1010 0000 0010` (Hypotetická binárna výučba)
* Pridajte 5 do registra: `0010 0101 0000 0101` (Hypotetická binárna inštrukcia)
* Uložte výsledok v umiestnení pamäte `x`: `0011 1100 0000 0011" (Hypotetická binárna výučba)
Špecifické binárne znázornenie závisí výlučne od architektúry CPU (x86, ARM atď.) A použitého kompilátora/tlmočníka. Tento proces je zložitý, ale hlavnou myšlienkou je, že pokyny na vysokej úrovni sú rozdelené do postupnosti jednoduchých binárnych pokynov, ktorým môže CPU priamo porozumieť a vykonať.