Hva er en kompilator?
En kompilator er en spesiell type dataprogram som oversetter en menneskelig lesbar tekstfil til en form som datamaskinen lettere kan forstå. På det mest grunnleggende nivået kan en datamaskin bare forstå to ting, en 1 og en 0. På dette nivået vil et menneske operere veldig sakte og finne informasjonen i den lange strengen på 1s og 0s uforståelig. En kompilator er et dataprogram som bygger bro mellom dette gapet.
I begynnelsen var kompilatorene veldig enkle programmer som bare kunne oversette symboler til bitene , 1'ene og 0'ene, forstått datamaskinen. Programmer var også veldig enkle, sammensatt av en serie trinn som opprinnelig ble oversatt for hånd til data datamaskinen kunne forstå. Dette var en veldig tidkrevende oppgave, så deler av denne oppgaven ble automatisert eller programmert, og den første kompilatoren ble skrevet. Dette programmet samlet, eller kompilert, trinnene som kreves for å utføre trinn for trinn-program.
Disse enkle kompilatorene ble brukt til å skrive en mer sofistikert kompilator. Med den nyere versjonen kan flere regler legges til i kompilatorprogrammet for å tillate en mer naturlig språkstruktur for den menneskelige programmereren å operere med. Dette gjorde skriveprogrammene lettere og gjorde at flere kunne begynne å skrive programmer. Etter hvert som flere begynte å skrive programmer, ble flere ideer om å skrive programmer tilbudt og brukt til å lage mer sofistikerte kompilatorer. På denne måten fortsetter kompilatorprogrammer å utvikle seg, forbedre seg og bli enklere å bruke.
Kompilatorprogrammer kan også være spesialiserte. Enkelte språkstrukturer er bedre egnet for en bestemt oppgave enn andre, så spesifikke kompilatorer ble utviklet for spesifikke oppgaver eller språk. Noen kompilatorer er flertrinns eller flere passeringer . En første passering kan ta et veldig naturlig språk og gjøre det nærmere et datamaskin forståelig språk. En andre eller til og med en tredje passering kan ta den til sluttfasen, den kjørbare filen.
Mellomutgangen i en multistages kompilator kalles vanligvis pseudokode , siden den ikke er brukbar av datamaskinen. Pseudokode er veldig strukturert, som et dataprogram, ikke frittflytende og ordformet som et mer naturlig språk. Den endelige utgaven kalles den kjørbare filen , siden det er det som faktisk kjøres eller kjøres av datamaskinen. Å dele oppgaven slik, gjorde det lettere å skrive mer sofistikerte kompilatorer, ettersom hver deloppgave er forskjellig. Det gjorde det også lettere for datamaskinen å påpeke hvor den hadde problemer med å forstå hva den ble bedt om å gjøre.
Feil som begrenser kompilatoren i forståelsen av et program kalles syntaksfeil . Feil i måten programfunksjonene kalles logiske feil . Logiske feil er mye vanskeligere å oppdage og rette. Syntaksfeil er som stavefeil, mens logiske feil er litt mer som grammatiske feil.
Cross compiler-programmer er også utviklet. En tverrkompilator lar et tekstfilsett med instruksjoner som er skrevet for en datamaskin designet av en bestemt produsent, sammenstilles og kjøres for en annen datamaskin av en annen produsent. For eksempel kan et program som ble skrevet for å kjøre på en Intel-datamaskin noen ganger korskompileres for å kjøre en på datamaskin utviklet av Motorola. Dette fungerer ofte ikke veldig bra. På det nivået som dataprogrammer fungerer, kan maskinvaren se veldig annerledes ut, selv om de kan se ut som deg.
Korssamling er forskjellig fra å ha en datamaskin som etterligger en annen datamaskin. Hvis en datamaskin emulerer en annen datamaskin, later den til å være den andre datamaskinen. Emulering er ofte tregere enn korssamling, siden to programmer kjører samtidig, programmet som later som om den er den andre datamaskinen og programmet som kjører. For at korssamling skal fungere, trenger du imidlertid både den originale naturlige språkteksten som beskriver programmet og en datamaskin som er tilstrekkelig lik den originale datamaskinen som programmet kan fungere på for å kunne kjøres på en annen datamaskin. Dette er ikke alltid mulig, så begge teknikkene er i bruk.