Kursen är uppdelad på tre moduler, och innefattar föreläsningar, enskilda inlämningsuppgifter (både teoretiska och praktiska programmeringsuppgifter) och ett individuellt projekt.
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
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
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–)Innehåll och lärandemål
Kursupplägg
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).