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

Termin

Information för HT 2024 Start 2024-10-28 programstuderande

Studielokalisering

KTH Campus

Varaktighet
2024-10-28 - 2025-01-13
Perioder
P2 (7,5 hp)
Studietakt

50%

Anmälningskod

51087

Undervisningsform

Normal Dagtid

Undervisningsspråk

Engelska

Kurs-PM
Kurs-PM är inte publicerat
Antal platser

Ingen platsbegränsning

Målgrupp
Ingen information tillagd
Planerade schemamoduler
[object Object]
Schema
Schema är inte publicerat
Del av program
Ingen information tillagd

Kontakt

Examinator
Ingen information tillagd
Kursansvarig
Ingen information tillagd
Lärare
Ingen information tillagd
Kontaktperson

David Broman (dbro@kth.se)

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.

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