Čas kompilace - Compile time
Provádění programu |
---|
Obecné pojmy |
Druhy kódu |
Strategie kompilace |
Pozoruhodné doby běhu |
|
Pozoruhodné překladače a řetězce nástrojů |
|
Ve výpočetní technice se čas kompilace (nebo čas kompilace ) vztahuje buď na operace prováděné kompilátorem („operace kompilace“), požadavky programovacího jazyka, které musí splňovat zdrojový kód , aby mohl být úspěšně kompilován (dále jen „ požadavky na kompilaci ") nebo vlastnosti programu, o kterých lze během kompilace uvažovat. Čas kompilace označuje dobu, po kterou je programovací kód převeden na strojový kód (tj. Binární kód) a obvykle k němu dojde před spuštěním .
Čas kompilace / časná vazba vs. doba běhu
Stanovení modelu provádění bylo nastaveno během fáze kompilace. Run time - způsob provedení a alokace byl nastaven během běhu a na základě dynamiky běhu.
Přehled
Operace prováděné v době kompilace obvykle zahrnují syntaktickou analýzu , různé druhy sémantické analýzy (např. Kontroly typu a vytvoření instance šablony ) a generování kódu .
Definice programovacího jazyka obvykle specifikují požadavky na čas kompilace, které musí zdrojový kód splňovat, aby mohl být úspěšně kompilován. Jazyky mohou například stanovit, že lze odvodit velikost úložiště požadovanou typy a proměnnými.
Vlastnosti programu, o kterých lze uvažovat v době kompilace, zahrnují kontroly rozsahu (např. Prokázání, že index pole nepřekročí hranice pole), svobodu zablokování v souběžných jazycích nebo časování (např. Prokázání, že sekvence kódu trvá ne více než přidělené množství času).
Kompilace čas nastane před okamžiku propojení (když je výstup z jednoho nebo více kompilované soubory jsou spojeny dohromady) a běhu (pokud programu je spuštěn ). V některých programovacích jazycích může být nutné, aby se nějaká kompilace a propojení vyskytly za běhu. Existuje kompromis mezi časem kompilace a časem propojení v tom, že mnoho operací kompilace lze odložit na čas propojení, aniž by došlo k další době běhu.
„Čas kompilace“ může také odkazovat na čas potřebný pro kompilaci.