ID2202 Kompilatorer och exekveringsmiljöer 7,5 hp

Välkommen till kompilatorkursen ID2202. Kursen ges på engelska. Se kurshemsida: https://canvas.kth.se/courses/36207
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.
Innehåll och lärandemål
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.
Lärandemål
Efter godkänd kurs ska studenten kunna
- använda metoder för lexikalisk, syntaktisk och semantisk analys
- använda metoder för generering av maskinkod
- använda metoder för programoptimering
- redogöra för vanliga komponenter i exekveringsmiljöer
i syfte att
- få en förståelse för hur ett programspråk implementeras samt för de allmänna teorier som används och hur dessa kan appliceras.
För högre betyg ska studenten konstruera mer komplexa komponenter av en kompilator. Detaljerna är specificerade i kurs-PM.
Kursupplägg
Kurslitteratur och förberedelser
Särskild behörighet
Kunskaper i grundläggande datorteknik/arkitektur, 7,5 hp, motsvarande slutförd kurs IS1200/IS1500.
Kunskaper i algoritmer och datastrukturer, 7,5 hp, motsvarande slutförd kurs ID1020/ID1021.
Aktivt deltagande i kursomgång vars slutexamination ännu inte är Ladokrapporterad jämställs med slutförd kurs. Den som är registrerad anses vara aktivt deltagande. Med slutexamination avses både ordinarie examination och det första omexaminationstillfället.
Rekommenderade förkunskaper
Mycket god programmeringsvana i ett eller flera högnivåspråk.
ID1019 Programmering II eller motsvarande.
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
- DAT1 - Datorprov, 7,5 hp, betygsskala: A, B, C, D, E, FX, 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.
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
Kurswebb
Ytterligare information om kursen kan hittas på kurswebben via länken nedan. Information på kurswebben kommer framöver flyttas till denna sida.
Kurswebb ID2202Ges av
Huvudområde
Utbildningsnivå
Påbyggnad
Övergångsbestämmelser
För studenter som registrerats på kursen under HT 2019 eller tidigare och har antingen TEN1 eller INL1 rapporterat i LADOK erbjuds muntlig examination av det andra kursmomentet (antingen TEN1 eller INL1) fram till och med VT2021. Om studenten önskar en sådan examination måste hen kontakta examinatorn via e-post senast sista maj 2021. Muntlig examination erbjuds ej för studenter som varit registrerade på kursen under 2019 eller tidigare, och som inte har något av momenten rapporterade i LADOK.
Övrig information
I denna kurs tillämpas EECS hederskodex, se: http://www.kth.se/eecs/utbildning/hederskodex.