Hoppa till huvudinnehållet
Till KTH:s startsida

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.

Information per kursomgång

Kursomgångar saknas för aktuella eller kommande terminer.

Kursplan som PDF

Notera: all information från kursplanen visas i tillgängligt format på denna sida.

Kursplan FID3006 (HT 2021–)
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.

Kurslitteratur

Du hittar information om kurslitteratur antingen i kursomgångens kurs-PM eller i kursomgångens kursrum i Canvas.

Examination och slutförande

Betygsskala

P, F

Examination

    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.

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

    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.

    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

    Utbildningsnivå

    Forskarnivå

    Ö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