Hvad er en kompilator?

En kompilator er en speciel type computerprogram, der oversætter en menneskelig læsbar tekstfil til en form, som computeren lettere kan forstå. På sit mest basale niveau kan en computer kun forstå to ting, en 1 og en 0. På dette niveau vil et menneske fungere meget langsomt og finde oplysningerne i den lange streng på 1s og 0s uforståelige. En kompilator er et computerprogram, der bygger bro mellem dette hul.

I begyndelsen var compilere meget enkle programmer, der kun kunne oversætte symboler til bitene , 1'erne og 0'erne, forstået computeren. Programmer var også meget enkle, sammensat af en række trin, der oprindeligt blev oversat for hånd til data, som computeren kunne forstå. Dette var en meget tidskrævende opgave, så dele af denne opgave blev automatiseret eller programmeret, og den første compiler blev skrevet. Dette program samlet, eller kompileret, de trin, der kræves for at udføre trin for trin-programmet.

Disse enkle kompilatorer blev brugt til at skrive en mere sofistikeret kompilator. Med den nyere version kunne der tilføjes flere regler til compiler-programmet for at give en mere naturlig sprogstruktur for den menneskelige programmerer at arbejde med. Dette gjorde skriveprogrammer lettere og gjorde det muligt for flere at begynde at skrive programmer. Efterhånden som flere begyndte at skrive programmer, blev der tilbudt flere ideer om skrivningsprogrammer og brugt til at fremstille mere sofistikerede compilere. På denne måde fortsætter compiler-programmerne med at udvikle sig, forbedre dem og blive lettere at bruge.

Compiler-programmer kan også være specialiserede. Visse sprogstrukturer er bedre egnet til en bestemt opgave end andre, så der blev udviklet specifikke kompilatorer til specifikke opgaver eller sprog. Nogle compilere er multistage eller multiple pass . En første gennemgang kunne tage et meget naturligt sprog og gøre det tættere på et computerforståeligt sprog. Et andet eller endda et tredje pass kunne tage det til slutfasen, den eksekverbare fil.

Mellemoutput i en multistages kompilator kaldes normalt pseudokode , da den ikke kan bruges af computeren. Pseudokode er meget struktureret, ligesom et computerprogram, ikke frit flydende og ordret som et mere naturligt sprog. Den endelige output kaldes den eksekverbare fil , da det er det, der faktisk udføres eller køres af computeren. Opdelingen af ​​denne opgave gjorde det lettere at skrive mere sofistikerede compilere, da hver underopgave er forskellig. Det gjorde det også lettere for computeren at påpege, hvor den havde problemer med at forstå, hvad den blev bedt om at gøre.

Fejl, der begrænser kompilatoren i forståelsen af ​​et program kaldes syntaksfejl . Fejl i den måde, som programfunktionerne kaldes logiske fejl . Logikfejl er meget sværere at se og rette. Syntaksfejl er som stavefejl, hvorimod logiske fejl er lidt mere som grammatiske fejl.

Cross compiler-programmer er også udviklet. En krydskompilator gør det muligt at sammenstille et tekstfilsæt med instruktioner, der er skrevet til en computer designet af en bestemt producent, og køre til en anden computer af en anden producent. For eksempel kan et program, der blev skrevet til at køre på en Intel-computer undertiden korses sammen for at køre en on-computer udviklet af Motorola. Dette fungerer ofte ikke særlig godt. På det niveau, som computerprogrammer fungerer, kan computerhardware se meget anderledes ud, selvom de måske ligner dig.

Krydskompilering er forskellig fra at have en computer efterligne en anden computer. Hvis en computer emulerer en anden computer, foregiver den at være den anden computer. Emulering er ofte langsommere end krydskompilering, da to programmer kører på én gang, det program, der foregiver at være den anden computer, og det program, der kører. For at krydskompilering skal fungere, har du imidlertid brug for både den originale naturlige sprogtekst, der beskriver programmet og en computer, der ligner tilstrækkelig den originale computer, som programmet kan fungere på for at køre på en anden computer. Dette er ikke altid muligt, så begge teknikker er i brug.

ANDRE SPROG

Hjalp denne artikel dig? tak for tilbagemeldingen tak for tilbagemeldingen

Hvordan kan vi hjælpe? Hvordan kan vi hjælpe?