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
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
Rekommenderade förkunskaper
Kunskaper i grundläggande datorteknik/arkitektur, algoritmer och datastrukturer. Mycket god programmeringsvana i ett eller flera högnivåspråk.
Utrustning
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
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
Möjlighet till plussning
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
Ges av
Huvudområde
Utbildningsnivå
Påbyggnad
Kontaktperson
Ö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).