Hva er en kompilator?
En kompilator er en spesiell type dataprogram som oversetter en menneskelig lesbar tekstfil til et skjema 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 fungere 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 , 1s og 0s, datamaskinen forsto. 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 trinnvis program.
Disse enkle kompilatorene ble brukt til å skrive enMer sofistikert kompilator. With the newer version, more rules could be added to the compiler program to allow a more natural language structure for the human programmer to operate with. Dette gjorde skriveprogrammer enklere og lot flere begynne å skrive programmer. Etter hvert som flere begynte å skrive programmer, ble flere ideer om skriveprogrammer tilbudt og brukt til å lage mer sofistikerte kompilatorer. På denne måten fortsetter kompilatorprogrammer å utvikle seg, forbedre og bli lettere å bruke.
kompilatorprogrammer kan også være spesialiserte. Certain language structures are better suited for a particular task than others, so specific compilers were developed for specific tasks or languages. Noen kompilatorer er multistage eller flere pass . Et første pass kan ta et veldig naturlig språk og gjøre det nærmere en datamaskin forståelig språk. Et sekund eller til og med et tredje pass kunne ikkeAke det til sluttfasen, den kjørbare filen.
Mellomutgangen i en multistage-kompilator kalles vanligvis pseudokode , siden den ikke er brukbar av datamaskinen. Pseudokode er veldig strukturert, som et dataprogram, ikke fritt flytende og ordentlig som et mer naturlig språk. Den endelige utgangen kalles kjørbare filen , siden det er det som faktisk utføres eller kjøres av datamaskinen. Å dele opp oppgaven slik gjorde det lettere å skrive mer sofistikerte kompilatorer, ettersom hver underoppgave 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å et program kalles syntaksfeil . Feil i måten programmet fungerer 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 Cross Compiler lar et tekstfilsett med instruksjoner som er skrevet for en datamaskin designet av en spesifikk produsent, kompileres 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 bli tverrskammet for å kjøre en på datamaskin utviklet av Motorola. Dette fungerer ofte ikke veldig bra. På det nivået som dataprogrammer fungerer, kan datamaskinvaren se veldig annerledes ut, selv om de kan se ut som deg.
Kryss -kompilering er forskjellig fra å ha en datamaskin til å emulere en annen datamaskin. Hvis en datamaskin etterligner en annen datamaskin, later det til å være den andre datamaskinen. Emulering er ofte tregere enn Cross Compilation, siden to programmer kjører på en gang, programmet som later som om det er den andre datamaskinen og programmet som kjører. For at krysssamling skal fungere, trenger du imidlertid begge delerDen originale naturlige språkteksten som beskriver programmet og en datamaskin som ligner tilstrekkelig på den originale datamaskinen som programmet kan fungere på for å kjøre på en annen datamaskin. Dette er ikke alltid mulig, så begge teknikkene er i bruk.