Kursplan för Kompilatorkonstruktion

Kursplan fastställd 2021-02-26 av programansvarig (eller motsvarande).

Kursöversikt

  • Engelskt namnCompiler construction
  • KurskodTDA283
  • Omfattning7,5 Högskolepoäng
  • ÄgareMPALG
  • UtbildningsnivåAvancerad nivå
  • HuvudområdeDatateknik, Informationsteknik
  • InstitutionDATA- OCH INFORMATIONSTEKNIK
  • BetygsskalaTH - Mycket väl godkänd (5), Väl godkänd (4), Godkänd (3), Underkänd

Kurstillfälle 1

  • Undervisningsspråk Engelska
  • Anmälningskod 02130
  • Sökbar för utbytesstudenterJa

Poängfördelning

0114 Projekt 7,5 hp
Betygsskala: TH
7,5 hp

I program

Examinator

Gå till kurshemsidan (Öppnas i ny flik)

Behörighet

Grundläggande behörighet för avancerad nivå
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

Särskild behörighet

Engelska 6
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

Kursspecifika förkunskaper

Två år av studier inom datavetenskap eller motsvarande. Kursen DAT151 Programming language technology eller någon motsvarande. 

Syfte

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.

Lärandemål (efter fullgjord kurs ska studenten kunna)

  • 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;
  • använda dataflödesanalys för att implementera registerallokering och kodoptimeringar;
  • designa och implementera utökningar för ett litet imperativs programmeringsspråk och känna till de viktigaste aspekterna av att kompilera objektorienterade programmeringsspråk.

Innehåll

Kompilatorteori och -implementation, med tonvikten på kodgenerering och runtime-miljöer.

Organisation

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 projektetet, men äver en översikt över de teoretiska grunderna och möjliga utökningar till kompilatorn.

Litteratur

Se separat litteraturlista.

Examination inklusive obligatoriska moment

Programmeringsprojekt och muntlig redovisning. Betygsskala U, 3, 4, 5.

Kursens examinator får examinera enstaka studenter på annat sätt än vad som anges ovan om särskilda skäl föreligger, till exempel om en student har ett beslut från Chalmers om pedagogiskt stöd på grund av funktionsnedsättning.