Hoppa till huvudinnehållet
Institutionen för informationsteknologi

Kompilatorteknik

Kompilatorer, en tillämpning av söndra-och-härska-metoden

En kompilator översätter program från ett språk till ett annat. Kompilatorer följer oftast ett fast mönster, som även kan tillämpas i andra översättningar, till exempel från ett XML-dokument till en datastruktur. Kompilatorn översätter ett högnivåspråk som Java eller ML till kod som kan köras på en dator. I högnivåspråk finns till exempel rekursion och objektorientering, som inte har direkta motsvarigheter i datorn. Kompilatorns uppgift är att överbrygga denna skillnad, vilket den gör genom analys och stegvis förenkling av programmet - den söndrar och härskar!Kursen går igenom de faser som krävs för att översätta ett datorprogram från t ex C till maskinkod, d v s den kod som datorn arbetar med internt.
Lexikalisk analys delar upp programmet i dess minsta beståndsdelar, ungefär som ord. Syntaktisk analys undersöker sedan hur dessa ord hänger ihop i olika strukturer. Semantisk analys kontrollerar att programmet är fritt från typfel och liknande problem. Kodgenereringen sker oftast i två steg. Först en översättning till ett mellanspråk, som sedan översätts till maskinkod. Ofta försöker man förbättra koden genom s.k kodoptimerande transformationer och registerallokering. I kursen ingår laborativa uppgifter där du bygger stora delar av en kompilator, delvis med hjälp av olika verktyg. Förkunskaper: Programmering, algoritmer och datastrukturer, automatateori. Kursmål: Praktiska kunskaper i hur programspråk definieras och kan översättas till exekverbar kod. Krav för: Kompilatorteknik II

Uppdaterad  2012-04-24 17:08:49 av Roland Bol.