Sammanställ tid

Inom datavetenskap beskriver kompileringstid (eller kompileringstid ) tidsfönstret under vilket ett språks påståenden omvandlas till 0:or och 1:or för att datorn ska förstå . Termen används som ett adjektiv för att beskriva begrepp relaterade till kontexten för programkompilering, i motsats till begrepp relaterade till kontexten för programexekvering ( runtime ). Till exempel är kompileringstidskrav krav på programmeringsspråk som måste uppfyllas av källkoden innan kompilering och kompileringstidsegenskaper är egenskaper hos programmet som man kan resonera kring under kompileringen. Den faktiska tid det tar att kompilera ett program brukar kallas kompileringstid .

Kompileringstid/tidig bindning vs körtid

Bestämningen av exekveringsmodellen har ställts in under kompileringstiden. Körtid - metoden för exekvering och allokering - har ställts in under körtiden och baseras på körtidsdynamiken.

Översikt

De flesta kompilatorer har åtminstone följande kompilatorfaser (som därför inträffar vid kompileringstid): syntaxanalys , semantisk analys och kodgenerering . Under optimeringsfaser kan konstanta uttryck i källkoden också utvärderas vid kompileringstid med kompileringstidsexekvering , vilket reducerar de konstanta uttrycken till ett enda värde. Detta är inte nödvändigt för korrekthet, men förbättrar programmets prestanda under körning.

Programmeringsspråksdefinitioner anger vanligtvis krav på kompileringstid som källkoden måste uppfylla för att kompileras framgångsrikt. Språk kan till exempel föreskriva att mängden lagring som krävs av typer och variabler kan härledas.

Egenskaper för ett program som man kan resonera kring vid kompilering inkluderar avståndskontroller (t.ex. att bevisa att ett arrayindex inte kommer att överskrida arraygränserna), dödlägesfrihet i samtidiga språk eller timings (t.ex. att bevisa att en kodsekvens tar inte mer än en tilldelad tid).

Kompileringstid inträffar före länktid ( när utdata från en eller flera kompilerade filer sammanfogas) och körtid (när ett program körs ). Även om i fallet med dynamisk kompilering sker de slutliga omvandlingarna till maskinspråk vid körning.

Det finns en avvägning mellan kompileringstid och länktid genom att många kompileringstidsoperationer kan skjutas upp till länktid utan att det medför löptidskostnader.

Se även