Hva er en kompilator?

May 2  by Eliza

En kompilator er en spesiell type dataprogram som oversetter en lesbar tekstfil til en form som datamaskinen kan lettere forstå. På sitt mest grunnleggende nivå, kan en datamaskin bare forstå to ting, en en og en 0. På dette nivået, vil et menneske operere svært langsomt og finne den informasjonen som finnes i lang streng av 1'ere og 0'er uforståelige. En kompilator er et dataprogram som bygger bro dette gapet.

I begynnelsen, kompilatorer var svært enkle programmer som bare kunne oversette symboler i biter, de 1'ere og 0'er, datamaskinen forstått. Programmene var også veldig enkelt, består av en rekke trinn som opprinnelig ble oversatt av hånd inn data i datamaskinen kunne forstå. Dette var en meget tidkrevende oppgave, slik at partier av denne oppgave ble det automatisk eller programmert, og den første kompilatoren ble skrevet. Dette programmet satt sammen, eller samlet, trinnene som er nødvendig for å utføre den trinnvise program.

Disse enkle kompilatorer ble brukt til å skrive en mer sofistikert kompilatoren. Med den nye versjonen, kan flere regler tilsettes til kompilatoren programmet for å tillate en mer naturlig språk struktur for humant programmerer å operere med. Dette gjorde skrive programmer enklere og tillot flere folk til å begynne å skrive programmer. Ettersom flere folk begynte å skrive programmer, ble flere ideer om å skrive programmer som tilbys og brukes til å lage mer sofistikerte kompilatorer. På denne måten kompilatorprogram fortsetter å utvikle seg, forbedre og blir lettere å bruke.

Kompilatoren programmer kan også være spesialisert. Visse språkstrukturer er bedre egnet for en bestemt oppgave enn andre, så bestemte kompilatorer ble utviklet for bestemte oppgaver eller språk. Noen kompilatorer er flertrinns eller flere pass. En første pass kunne ta en meget naturlig språk og gjøre det nærmere en datamaskin forståelig språk. En andre eller tredje pass kunne ta det til den siste etappen, den kjørbare filen.

Den mellomliggende utgangs i en flertrinns-kompilatoren blir vanligvis kalt pseudokoden, siden det ikke kan brukes av datamaskinen. Pseudo-kode er veldig strukturert, som et dataprogram, ikke frittflytende og ordrik som en mer naturlig språk. Den endelige utgang er kalt den kjørbare filer, siden det er det som faktisk blir utført eller drives av maskinen. Splitte oppgaven opp som dette gjorde det lettere å skrive mer sofistikerte kompilatorer, som hver sub oppgave er forskjellig. Det gjorde det også lettere for maskinen å påpeke hvor den hadde problemer med å forstå hva det ble bedt om å gjøre.

Feil som begrenser kompilatoren i å forstå et program kalles syntaksfeil. Feil i måten programmet fungerer kalles logiske feil. Logiske feil er mye vanskeligere å få øye på og korrekt. Syntaksfeil er som stavefeil, mens logiske feil er litt mer som grammatiske feil.

Cross kompilatoren programmer har også blitt utviklet. Et kors kompilatoren gjør en tekstfil sett med instruksjoner som er skrevet for en datamaskin som er utviklet av en bestemt produsent må kompileres og kjøre for en annen datamaskin av en annen produsent. For eksempel, et program som ble skrevet for å kjøre på en Intel-maskin kan noen ganger være kryss kompilert for å kjøre en på datamaskinen utviklet av Motorola. Dette ofte ikke fungerer svært godt. På det nivået der dataprogrammer operere, kan maskinvaren se svært annerledes ut, selv om de kan ligne på deg.

Cross kompilering er forskjellig fra å ha en datamaskin etterligne en annen datamaskin. Hvis en datamaskin emulerer en annen datamaskin, er det utgir seg for å være den andre datamaskinen. Emulering er ofte tregere enn kryss kompilering, siden to programmer kjører samtidig, programmet som utgir seg for å være den andre maskinen, og det programmet som er i gang. Men for cross samling skal fungere, må du både den opprinnelige naturlig språk tekst som beskriver programmet og en datamaskin som er tilstrekkelig lik den opprinnelige datamaskinen at programmet kan fungere på å kjøre på en annen datamaskin. Dette er ikke alltid mulig, slik at begge teknikker er i bruk.