Compiler Construction
Om kursplanen
Betygsskala
Kursens moduler
Inplacering
Kursen ingår i Computer Science Master's programme (N2COS) vid Göteborgs universitet och ges även som fristående kurs. Kursen erbjuds dessutom som valbar kurs inom Computer Science Bachelor's Programm (N1COS).
Kursen kan ingå i följande program: 1) Datavetenskapligt program (N1COS), 2)Computer Science, Master's Programme (N2COS), 3) Software Engineering and Management masterprogram (N2SOF), 4) Applied Data Science masterprogram (N2ADS) och 5) Game Design & Technology masterprogram (N2GDT)
Huvudområde med fördjupning
Behörighetskrav
För tillträde till kursen krävs att studenten har minst 120 hp i datavetenskap eller motsvarande. Specifikt krävs följande kurs: DIT231 Programspråksteknik eller motsvarande.
Följande kunskapsnivå i Engelska krävs; Engelska 6/Engelska nivå 2 eller motsvarande från ett erkänt internationellt test, t.ex. TOELF, IELTS.
Innehåll
Syftet med kursen är att utveckla en förståelse för hela processen i en kompilator, med början i lexikalanalysen och som avslutas med maskinkodsgenerering. Laborationen i kursen består i att skriva en komplett kompilator för ett litet imperativt språk.
Kompilatorteori och -implementation, med betoning på kodgenerering och runtime-miljöer.
Mål
Kunskap och förståelse
• Vid slutförd kurs har studenter både teoretisk och praktisk insikt i hur kompletta kompilatorer ges specifikationer, designas, implementeras och testas.
Färdigheter och förmåga
• känna till grundläggande principer for runtime-miljöer, parameterskickande och minneshantering, och att implementera dessa i en kompilator;
• designa och implementera kompilatorscheman för att generera intermediärkod eller assembler från ett källprogram;
• designa och implementera utökningar för ett litet imperativs programmeringsspråk och känna till de viktigaste aspekterna av att kompilera objektorienterade A35programmeringsspråk;
• använda dataflödesanalys för att implementera registerallokering och kodoptimeringar
Värderingsförmåga och förhållningssätt
• Studenterna kommer att kunna bedöma underhållbarheten, skalbarheten och effektiviteten av olika sätt att designa, implementera och testa kompilatorer.
Hållbarhetsmärkning
Former för undervisning
Undervisningen består av föreläsningar, ett programmeringsprojekt och individuell handledning i samband med projektet. Projektet är huvuddelen i kursen och består i att implementera en komplett kompilator för ett litet imperativt programmeringsspråk.
Föreläsningarna ger den kunskap som krävs för att genomföra projektet, men även en översikt över de teoretiska grunderna och möjliga utökningar till kompilatorn.
Undervisningsspråk: engelska
Examinationsformer
Bedömningsformer: programmeringsprojekt och muntlig redovisning. Den muntliga redovisningen är godkänd eller underkänd. Studenter som underkänns i den muntliga redovisningen underkänns på kursen. Studenter som klarar den muntliga redovisning får ett betyg som direkt bestäms av omfattningen av deras inlämningar för programmeringsprojektet. Programmeringsprojektet görs i grupp, men de muntliga redovisningarna är individuella.
Om student som underkänts två gånger på samma examinerande moment önskar byte av examinator inför nästa examinationstillfälle, ska sådan begäran inlämnas skriftligt till institutionen och bifallas om det inte finns särskilda skäl däremot (HF 6 kap § 22).
I det fall en kurs har upphört eller genomgått större förändringar ska student garanteras minst tre examinationstillfällen (inklusive ordinarie examinationstillfälle) under en tid av minst ett år, dock som längst två år efter det att kursen upphört/förändrats. Vad avser praktik och VFU gäller motsvarande, men med begränsning till endast ett ytterligare
examinationstillfälle.
Betyg
På kursen ges något av betygen Mycket väl godkänd (5), Väl godkänd (4), Godkänd (3) och Underkänd (U).
Studenter som klarar den muntliga redovisning får ett betyg som direkt bestäms av omfattningen av deras inlämningar för programmeringsprojektet.
Kursvärdering
Kursen utvärderas genom möten mellan lärare och studentrepresentanter, både under kursens gång och efter avslutad kurs. Därutöver används en anonym enkät för att säkerställa att skriftliga synpunkter samlas in. Resultaten från utvärderingarna används för att utveckla och förbättra kursen genom att identifiera vilka delar som kan behöva läggas till, förbättras, förändras eller tas bort.
Övriga föreskrifter
Kursen är samläst med Chalmers och GU.
Kurslitteratur kommer att publiceras senast 8 veckor innan kursstart.
Kursen ersätter kursen DIT300, 7,5 hp. Den här kursen kan inte ingå i en examen som innehåller DIT300. Den kan inte heller ingå i en examen som bygger på en annan examen där DIT300 ingår.