Kodkompilator: Vad gör den i programmering

0 Shares

Vad är en kodkompilator

En kompilator är, grovt sett, en översättare . Den ansvarar för omvandla källkoden av programmet som vi har skapat (vanligtvis med ett högnivåspråk), tillsammans med alla beroenden och bibliotek som behövs för att programmet ska kunna köras och fungera utan problem, till en binär fil. Denna kompilator är ansvarig för att verifiera att det inte finns några fel i koden (för att undvika kritiska fel), samt att analysera och gruppera programmets syntax och struktur. Om allt är korrekt skickar det det till ett vanligt mellanspråk, assembler, för att senare optimera det och översätta det till binärt språk . På så sätt kan programmet via operativsystemet köras på maskinen.

Kodkompilator: Vad gör den i programmering

Kompilatorer skickar normalt inte instruktionerna från vår källkod direkt till binär kod, utan utför vanligtvis sina uppgifter i 3 faser.

Analysfas

Den första är analysfas . I denna fas ansvarar kompilatorn för att analysera att programmets struktur och semantik är korrekt för att generera en mellankod (bytekod). Lexikonet av koden analyseras för att gruppera alla komponenter som har en betydelse för programmet. Det här steget är till exempel där all onödig information, såsom kommentarer eller mellanslag, tas bort. Analysen börjar nästa. I den är de lexikaliska komponenterna grupperade hierarkiskt i grammatikfraser, som kommer att användas för att skapa utdata från programmet. Och slutligen, semantisk analys äger rum. I den, baserat på den hierarkiska strukturen ovan, letar kompilatorn efter möjliga fel i koden för att undvika kritiska fel i systemet. När allt är korrekt börjar syntesfasen.

Syntesfas

De syntesfasen är ansvarig för att generera objektkoden från källkoden. Denna fas börjar först när analysfasen inte har gett några fel, och undviker därmed möjliga problem både i kompileringen och i exekveringen av ett korrupt program. Objektkoden är nästan alltid på assemblerspråk, ett av de lägsta språken vi kan hitta. Men det är inte i binärt ännu, så ett sista steg är nödvändigt, vilket kallas optimering.

Optimeringsfas

Med utgångspunkt från objektkoden startar kompilatorn optimeringsfasen . Det du gör i den här fasen är att tolka koden och leta efter möjliga optimeringar så att instruktionerna blir så korta som möjligt och kan utföras snabbare på datorn. Olika typer av optimering kan utföras beroende på om vi vill ha ett mindre optimerat program, men som kompilerar snabbare eller mer optimerat men som tar mycket längre tid att kompilera.

Esquema jämförande program

Kompilatortyper

Alla kodkompilatorer är inte likadana. Till en början, under de tidiga decennierna av datoråldern, var kompilatorer de mest komplexa programmen vi kunde hitta. Vanligtvis använde programmerare assembler, eller direkt binär, för att skapa dessa verktyg. Nuförtiden har saker förändrats mycket och även om de fortfarande är mycket komplexa element är de inte riktigt så komplicerade att skapa eller uppdatera för att förbättra dem.

Det finns flera typer av kompilatorer. Och varje kompilator kan tillhöra en eller flera grupper:

  • Korsade : är de som är designade för att generera en kod för att köras på ett annat operativsystem än det som körs. Till exempel om vi kompilerar ett Android-program från Windows.
  • I ett enda pass : de är ansvariga för att generera maskinkoden (binär) från en enda läsning av källkoden. De använder normalt inte avancerade optimerare eller andra mellansteg.
  • Flerpass : de måste ge koden flera pass för att kontrollera att allt är korrekt och optimera det innan de producerar maskinkoden.
  • JIT (Just In Time) : kompilera koden i realtid efter behov.
  • Optimerare : gör ändringar i koden för att förbättra programmets prestanda och optimera det, men utan att förstöra originalprogrammets funktionalitet.

Hur man kompilerar ett program

Operativsystem och programmerings-IDE:er har sina egna kompilatorer. Till exempel, i Linux hittar vi ett välkänt verktyg som heter ” Göra “. som används för att kompilera kod från terminalen utan att behöva skriva långa och komplexa kommandon i systemkonsolen. När vi har ett komplext program kan det veta vilka delar av koden som har ändrats för att bara samla in det som är nödvändigt istället för hela programmet.

Om vi ​​använder en programmerings-IDE, som t.ex Visuell Studio , kommer den att ha sina egna kompilatorer för att forma programmen vi skriver i C, C ++, C # eller Visual Basic. Andra programmerings-IDE, som Android Studio, har en egen kompilator som gör att vi kan skapa körbara filer för att kunna köra appar på Android.

Sedan kan vi också hitta tredjepartskompilatorer som hjälper oss att forma program som inte innehåller sina egna kompilatorer. Detta är till exempel vanligt om vi använder Visual Studio Code, Microsofts OpenSource IDE, för att skapa program. Till skillnad från sin äldre bror kommer den här inte med sina egna kompilatorer, så vi måste ladda ner ett alternativ, som MinGW , som låter oss kompilera kod.

Felsökningskonsolen: programmerarens bästa allierade

Kompileringsprocessen är vanligtvis automatisk (vi kan inte störa den) och vanligtvis osynlig. Men både kompilatorer och IDE har felsökningsmiljöer som kan vara mycket användbara när det kommer till att upptäcka och reparera fel som vi kan ha gjort.

Tack vare dessa felsökningskonsoler vi kommer att kunna styra en efter en instruktionerna som exekveras för att generera maskinkoden för programmet. Det mest normala är att bara visa varningarna och felen, eftersom allt som kompileras korrekt inte tillför något värde. Om det finns ett fel kommer konsolen att berätta exakt var det hände (och många gånger varför) så att vi enkelt kan fixa det. Samma varje gång en varning dyker upp. Dessa behöver inte stoppa sammanställningen av programmet, men de kan hjälpa oss att optimera driften av programmet.

0 Shares