Vykonání programu

Z FAV wiki
Přejít na: navigace, hledání

Vykonávání programu je hlavní činnost počítače. Hlavními částmi, které se podílí na výpočtu, jsou procesor a hlavní paměť. V hlavní paměti je uložen program ve strojovém kódu jako posloupnost instrukcí a dat (von Neumannova koncepce ). V procesoru (CPU) se vykonávají instrukce, sekvenčně, pokud není pořadí změněno instrukcemi skoku. Programy lze tedy větvit na základě podmínek a pořadí vykonávání instrukcí je závislé na jejich splnění.

Drtivá většina programů napsána ve vyšších jazycích, je proto nutné je upravit tak, aby jim počítač rozuměl, tedy jednotlivé příkazy převést na instrukce procesoru. K tomu existují 2 postupy:

Kompilace: Program je přeložen najednou do strojové podoby, která je platformově závislá. Operační systém tento program nahraje do operační paměti a spustí. O překlad se stará překladač nebo kompilátor, který přeloží příkazy vstupního souboru na instrukce. Jelikož je v konvenčních pratformách použito jednoho adresního prostoru pro jednu aplikaci, některé prog. jazyky také vyžadují také linker, který převádí adresy jednotlivých funkcí a instrukcí (obsažených v jednotlivých modulech programu) z abstraktní podoby na konečnou absolutní. Kompilovaný program je platformově závislý a vyžaduje specifický překladač pro danou platformu, jeho běh je však nativní a zpravidla rychlý, a je možno využít knihoven dané platformy (například API uživatelského rozhraní WinForms). Příkladem je C, C++, Pascal

Interpretace: Program je interpretován přímo ze zdrojového kódu, příkazy jsou z kódu přečteny, interpretovány ("tlumočeny") a okamžitě provedeny. Lze interpretofat příkazy jednotlivě, nebo interpretovat celý kód najednou při spuštění. Tento přístup vyžaduje interpreter, který je shopen pro danou platformu příkazy tlumočit. Příklady: PHP, BASIC, Perl, Python

Hybridní vykonávání: Některé jazyky využívají kombinace předchozího přístupu, tedy kompilaci zdrojového kódu do univerzálního platormově nezávislého jazyka, který je poté interpretován. Příkladem je Java (překlad do byte-code (class) souborů, které jsou spouštěny na virtuálním stroji) nebo C# (překlad do nezávislého Common Intermediate Language, který je poté přeložen do nativní podoby a spuštěn, je li potřeba (JITerem))


Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje