Hoppa till huvudinnehållet

FID3006 Kompilatorer och exekveringsmiljöer 7,5 hp

I denna kurs kommer du att lära dig om kompilatorteori, som t.ex. reguljära uttryck, parsningsteori, optimeringsalgoritmer, kodgenereringsstrategier, skräpsamlare, med mera. Du kommer även erhålla signifikant erfarenhet i att designa och implementera en minimal men fullständig kompilator från grunden. I denna doktorandkurs kommer du även genomföra ett mindre självständigt projekt relaterat till nuvarande forskning inom området.

Välj termin och kursomgång

Välj termin och kursomgång för att se aktuell information och mer om kursen, såsom kursplan, studieperiod och anmälningsinformation.

Kursval

Gäller för kursomgång

HT 2023 Start 2023-10-30 programstuderande

Anmälningskod

51258

Rubriker med innehåll från kursplan FID3006 (HT 2021–) är markerade med en asterisk ( )

Innehåll och lärandemål

Kursupplägg

Kursen är uppdelad på tre moduler, och innefattar föreläsningar, enskilda inlämningsuppgifter (både teoretiska och praktiska programmeringsuppgifter) och ett individuellt projekt.

Kursinnehåll

Kursen behandlar tekniker för implementation av programspråk med hjälp av kompilatorer, både för verkliga och virtuella exekveringsmiljöer, tekniker för att läsa, förstå, översätta, förbättra samt exekvera program:

  • Att läsa program: lexikalanalys och syntaxanalys. Ändliga tillståndsmaskiner, reguljära uttryck, kontext-fria grammatiker, LL- och LR-parsning.
  • Att förstå program: semantisk analys, typkontroll.
  • Att översätta program: maskiner och instruktioner.
  • Intermediärkod, instruktionsval, konventioner för proceduranrop.
  • Att förbättra program: maskinoberoende optimeringar; maskinnära optimeringar (registerallokering, schemaläggning av instruktioner).
  • Att exekvera program: virtuella exekveringsmiljöer och run-timesystem. Minneshantering, skräpsamling, att ladda och länka program, just-in-timekompilering.
  • Att tillämpa och resonera kring forskning inom kompilatorer och programmeringsspråk: genomföra ett mindre individuellt projekt där aktuella forskningsartiklar inom området används, där projektet kan (men behöver inte) vara relaterat till doktorandens egen forskning.

Lärandemål

Efter godkänd kurs ska doktoranden kunna

  • designa och implementera program med lexikalisk, syntaktisk och semantisk analys
  • konstruera programkod för generering av maskinkod för icke-triviala högnivåprogram
  • testa, utvärdera, och implementera metoder för programoptimering
  • tillämpa och resonera kring nuvarnde forskning inom området

Kurslitteratur och förberedelser

Särskild behörighet

Ingen information tillagd

Rekommenderade förkunskaper

Kunskaper i grundläggande datorteknik/arkitektur, algoritmer och datastrukturer. Mycket god programmeringsvana i ett eller flera högnivåspråk.

Utrustning

Ingen information tillagd

Kurslitteratur

 Uppgift om kurslitteratur meddelas i kurs-PM.

Examination och slutförande

När kurs inte längre ges har student möjlighet att examineras under ytterligare två läsår.

Betygsskala

P, F

Examination

  • EXA1 - Examination, 7,5 hp, betygsskala: P, F

Examinator beslutar, baserat på rekommendation från KTH:s handläggare av stöd till studenter med funktionsnedsättning, om eventuell anpassad examination för studenter med dokumenterad, varaktig funktionsnedsättning.

Examinator får medge annan examinationsform vid omexamination av enstaka studenter.

Kursen examineras genom inlämningsuppgifter, seminarier, peer reviewing-uppgifter, samt en slutlig projektuppgift.

Övriga krav för slutbetyg

Doktoranden erhåller betyg godkänt (P) på kursen FID3006 om hen avslutar examinationen (kriterier för godkänt anges i kurs-PM för FID3006), samt att hen genomför och presenterar (skriftligt och muntligt) ett mindre avslutande enskilt projekt.

Möjlighet till komplettering

Ingen information tillagd

Möjlighet till plussning

Ingen information tillagd

Examinator

Etiskt förhållningssätt

  • Vid grupparbete har alla i gruppen ansvar för gruppens arbete.
  • Vid examination ska varje student ärligt redovisa hjälp som erhållits och källor som använts.
  • Vid muntlig examination ska varje student kunna redogöra för hela uppgiften och hela lösningen.

Ytterligare information

Kursrum i Canvas

Registrerade studenter hittar information för genomförande av kursen i kursrummet i Canvas. En länk till kursrummet finns under fliken Studier i Personliga menyn vid kursstart.

Ges av

Huvudområde

Denna kurs tillhör inget huvudområde.

Utbildningsnivå

Forskarnivå

Påbyggnad

Ingen information tillagd

Kontaktperson

David Broman (dbro@kth.se)

Övrig information

Denna kurs följer samma struktur som masterskursen ID2202, men där doktorandkursen också innehåller en enskild forskningsrelaterad projektuppgift och har högre krav för godkänt på kursmoduler (detaljerna specifieras i kurs-PM:et för FID3006).

Forskarkurs

Forskarkurser på EECS/Programvaruteknik och datorsystem