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