Vad är en kompilator?
En kompilator är en speciell typ av datorprogram som översätter en mänsklig läsbar textfil till en form som datorn lättare kan förstå. På sin mest grundläggande nivå kan en dator bara förstå två saker, en 1 och en 0. På denna nivå kommer en människa att fungera mycket långsamt och hitta informationen i den långa strängen på 1s och 0s obegriplig. En kompilator är ett datorprogram som överbryggar detta gap.
I början var kompilatorerna väldigt enkla program som bara kunde översätta symboler till bitarna , 1s och 0s, förstå datorn. Program var också mycket enkla, sammansatta av en serie steg som ursprungligen översattes för hand till data som datorn kunde förstå. Detta var en mycket tidskrävande uppgift, så delar av denna uppgift automatiserades eller programmerades, och den första kompilatorn skrevs. Detta program monterade, eller kompilerade, stegen som krävs för att utföra steg för steg-programmet.
Dessa enkla kompilatorer användes för att skriva en mer sofistikerad kompilator. Med den nyare versionen kunde fler regler läggas till i kompilatorprogrammet för att möjliggöra en mer naturlig språkstruktur för den mänskliga programmeraren att arbeta med. Detta underlättade skrivprogrammen och gjorde att fler kunde börja skriva program. I takt med att fler började skriva program erbjöds fler idéer om att skriva program och användes för att göra mer sofistikerade kompilatorer. På detta sätt fortsätter kompilatorprogrammen att utvecklas, förbättras och bli lättare att använda.
Kompilatorprogram kan också specialiseras. Vissa språkstrukturer passar bättre för en viss uppgift än andra, så specifika kompilatorer utvecklades för specifika uppgifter eller språk. Vissa kompilatorer är flerstegs eller flera pass . Ett första pass kunde ta ett mycket naturligt språk och göra det närmare ett datorförståeligt språk. Ett andra eller till och med ett tredje pass kan ta det till slutfasen, den körbara filen.
Mellanutgången i en multistegskompilator kallas vanligtvis pseudokod , eftersom den inte kan användas av datorn. Pseudokod är väldigt strukturerad, som ett datorprogram, inte fritt flöde och ordaligt som ett mer naturligt språk. Den slutliga utgången kallas den körbara filen , eftersom det är det som verkligen körs eller körs av datorn. Att dela uppgiften så här gjorde det lättare att skriva mer sofistikerade kompilatorer, eftersom varje deluppgift är annorlunda. Det gjorde det också lättare för datorn att påpeka var den hade problem att förstå vad den ombads att göra.
Fel som begränsar kompilatorn för att förstå ett program kallas syntaxfel . Fel i hur programfunktionerna kallas logikfel . Logikfel är mycket svårare att upptäcka och korrigera. Syntaxfel är som stavfel, medan logikfel är lite mer som grammatiska fel.
Cross compiler-program har också utvecklats. En tvärkompilerare gör det möjligt att sammanställa en textfilsuppsättning av instruktioner som är skrivna för en dator designad av en specifik tillverkare och köras för en annan dator av en annan tillverkare. Till exempel kan ett program som har skrivits för att köra på en Intel-dator ibland korskompileras för att köra en på dator utvecklad av Motorola. Detta fungerar ofta inte så bra. På den nivå som datorprogram fungerar kan datormaskinvaran se mycket annorlunda ut, även om de kan se ut som dig.
Cross compilation skiljer sig från att ha en dator att emulera en annan dator. Om en dator emulerar en annan dator, låtsas den vara den andra datorn. Emulering är ofta långsammare än korssammanställning, eftersom två program körs samtidigt, programmet som låtsas vara den andra datorn och programmet som körs. Men för att korskompilering ska fungera behöver du både den ursprungliga naturliga språkteksten som beskriver programmet och en dator som är tillräckligt lik den ursprungliga datorn som programmet kan fungera för att köra på en annan dator. Detta är inte alltid möjligt, så båda teknikerna används.