Compiler: Forskelle mellem versioner

Content deleted Content added
TARBOT (diskussion | bidrag)
m interwiki +: ar, bs, el, eo, ta Fixed: bg, cs, he, ja, ko, ru, th, vi, zh
m stavefejl
Linje 3:
En '''compiler''' (også kaldet '''oversætter''') er et [[program]], der oversætter et andet program (kaldet kildekoden) til et tredje program. Et eksempel på en compiler er en [[Java_(programmeringssprog)|java]]-compiler, der oversætter java-[[kildekode]] til java-bytecode (.class fil), der kan udføres af en java-[[Virtuel_maskine|virtual maskine]] (som er en form for [[fortolker]]). Et andet eksempel kunne være en C-compiler, der oversætter [[C_(programmeringssprog)|C]]-kildekode til en binær fil, der kan udføres direkte.
 
En compiler oversætter typisk fra kildekode, der kan læses af et menneske, til et binært format, der kun kan læses af andre programmer. En compiler indeholder typisk kontrol af fejl i kildekoden og optimering mht. udførelsestid og lagerforbrug af den resulterende kode. Derfor kan det resulterende binæreprogram typisk udføres hurtigere og med mindre brug af plads. Dette er i modsætning til en fortolker der udføre kildekoden direkte, linielinje for linielinje, og derfor ikke kan udføre programmet så hurtigt som hvis det var compileret.
 
En anden fordel ved at compilere er at man kan nøjes med at give den binære version af programmet til andre så de kun kan udføre programmet, men ikke umiddelbart kan rette i programmet.
 
Til nogle [[programmeringssprog]], som f.eks. [[BASIC]], findes både compiler og fortolkerefortolker. nårNår man udvikler i den slags sprog bruger man typisk en fortolker, mens programmet udvikles (debugger/fejlfinder), og en compiler, når resultatet skal afleveres til kunden.
 
I [[C_(programmeringssprog)|C]]-programmering compilerer man typisk til at binært format der kaldes mellemkode. Det er "byggeklodser" der kan sættes sammen med andre stumper af mellemkode til et endeligt udførbart binært program. Til at konvertere mellemkoden til det endelige program bruges et værktøj der hedder en linker.