Compiler: Forskelle mellem versioner
Content deleted Content added
MGA73bot (diskussion | bidrag) m Retter tankestreger – burde ignorere [[ ]], {{ }} og <math> samt <gallery>; kosmetiske ændringer |
Opdateret indledning |
||
Linje 1:
En '''compiler''' (også kaldet '''kompiler''' eller '''oversætter''') er et [[program]]
Processen hvorved et program oversættes mellem to formelt definerede sprog kan også kaldes en transformation. Transformationen foregår typisk fra et sprog med meget [[abstraktion (datalogi)|abstraktion]] til et med mindre. Denne skelnen kan også karakteriseres ved at kalde det ene sprog for et højniveausprog og det andet for et lavniveausprog.
Der er dog også praktiske grunde til at oversætte til andre højniveausprog eller til maskinkode til [[virtuel maskine|virtuelle maskiner]]. Hvis man oversætter til et højniveausprog, kan man afvikle sit program i de miljøer som eksisterer til det givne sprog og derved opnå fordele. For eksempel oversættes programmeringssproget [[Haskell]] til programmeringssproget [[C (programmeringssprog)|C]] før det oversættes til maskinkode.
Hvis man oversætter til en virtuel maskine, kan man afvikle sit program på alle fysiske maskiner, der understøtter en simulering af den virtuelle maskine. Eksempler på sprog som udnytter sidstnævnte er [[Java]] til [[JVM]] og [[ActionScript]] til ''AVM''.
== Teknikken ==
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, linje for linje, 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
Til nogle [[programmeringssprog]], som f.eks. [[BASIC]], findes både compiler og fortolker. Nå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.
|