Кіріспе
Түпнұсқа кодты компилятор арқылы машиналық кодқа түрлендіру және тексеруге кететін уақыт. Компьютер ғылымында компиляция уақыты (немесе компиляция уақыты) – тілдің операторлары процессор орындауы үшін екілік нұсқауларға айналатын уақыт аралығын білдіреді. Бұл термин бағдарламаны орындау (жүргізу уақыты) контексімен байланысты ұғымдарға қарағанда, бағдарламаны компиляциялау контексімен байланысты ұғымдарды сипаттау үшін қолданылады. Мысалы, компиляция уақыты талаптары – бұл бағдарламалау тілінің талаптары, оларды бастапқы код компиляциядан бұрын қанағаттандыруы керек, ал компиляция уақыты қасиеттері – бұл компиляция кезінде талдауға болатын бағдарламаның қасиеттері. Бағдарламаны компиляциялауға қажетті нақты уақыт әдетте компиляция уақыты деп аталады.
In computer science, compile time (or compile time) describes the time window during which a language's statements are converted into binary instructions for the processor to execute. The term is used as an adjective to describe concepts related to the context of program compilation, as opposed to concepts related to the context of program execution (runtime). For example, compile time requirements are programming language requirements that must be met by source code before compilation and compile time properties are properties of the program that can be reasoned about during compilation. The actual length of time it takes to compile a program is usually referred to as compilation time.
Компиляция уақыты/Елгергі байлау және орындау уақыты
Компиляция кезеңінде орындау моделінің анықталуы белгіленген. Орындалу уақытында орындау және бөлу әдісі орындалу кезінде анықталады және орындалу уақытының динамикалық сипаттамаларына негізделген.
Шолу
Көптеген компиляторларда кем дегенде келесі компиляция фазалары бар (соның салдарынан компиляция кезінде орындалады): синтаксистік талдау, семантикалық талдау және кодты генерациялау. Оптимизация фазаларында бастапқы кодтағы тұрақты өрнектер компиляция уақытында компиляция уақытында орындау арқылы бағалана алады, бұл тұрақты өрнектерді жалғыз мәнге дейін азайтады. Бұл дұрыс болуы үшін міндетті емес, бірақ бағдарламаның орындалу кезіндегі өнімділігін жақсартады. Бағдарламалау тілінің сипаттамалары әдетте бастапқы кодтың сәтті компиляциялануы үшін компиляция уақытында орындалуы тиіс талаптарды көрсетеді. Мысалы, тілдер типтер мен айнымалылар үшін қажетті жад көлемін анықтауға болатынын талап етуі мүмкін. Компиляция уақытында талдауға болатын бағдарламаның қасиеттеріне диапазондық тексерулер (мысалы, массив индексі массив шегінен аспайтынын дәлелдеу), параллель тілдердегі тұйыққа түсу қаупізсіздігі немесе уақыт өлшемдері (мысалы, кодтың тізбегі белгілі бір уақыттан аспайтынын дәлелдеу) жатады. Компиляция уақыты байланыс уақытынан (бір немесе бірнеше компиляцияланған файлдардың нәтижелері біріктірілген кезде) және орындалу уақытынан (бағдарлама орындалған кезде) бұрын жүзеге асады. Алайда, динамикалық компиляция жағдайында машина тіліне соңғы түрлендірулер орындалу уақытында болады. Компиляция уақыты мен байланыс уақыты арасындағы айырмашылықтан туындайтын мәселе бар, себебі көптеген компиляция операцияларын орындалу уақытында қосымша шығынсыз байланыс уақытына кейінге жылдыруға болады.