ID2202 Kompilatorer och exekveringsmiljöer 7,5 hp

Compilers and Execution Environments

Visa kursinformation utifrån vald termin och kursomgång:

Kursomgång och genomförande

Ingen kursomgång är vald

Välj termin och kursomgång ovan för att få information från rätt kursplan och kursomgång.

Kursinformation

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

  • förklara den övergripande strukturen hos en kompilator,
  • använda metoder för lexikalisk, syntaktisk och semantisk analys,
  • använda metoder för generering av maskinkod,
  • använda metoder för programoptimering,
  • förklara 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.

Kursupplägg

Ingen information tillagd

Kurslitteratur och förberedelser

Särskild behörighet *

  • Slutförd kurs i grundläggande datorteknik/arkitektur motsvarande IS1200 Datorteknik, grundkurs.
  • Slutförd kurs ID1020 Algoritmer och datastrukturer eller motsvarande.

Rekommenderade förkunskaper

Programmeringsvana i högnivåspråk som JAVA eller liknande.

ID1019 Programmering II eller motsvarande.

Utrustning

Ingen information tillagd

Kurslitteratur

Modern Compiler Implementation in Java, Andrew W. Appel

Upplaga: Second Förlag: Cambridge University Press År: 2002

ISBN:

Examination och slutförande

Betygsskala *

A, B, C, D, E, FX, F

Examination *

  • INL1 - Inlämningsuppgifter, 1,5 hp, betygsskala: P, F
  • TEN1 - Tentamen, 6,0 hp, betygsskala: A, B, C, D, E, FX, F

Examinator beslutar, baserat på rekommendation från KTH:s samordnare för 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.

Examinator beslutar, i samråd med KTH:s samordnare för funktionsnedsättning (Funka), 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

Ingen information tillagd

Möjlighet till plussning

Ingen information tillagd

Examinator

David Broman

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 ID2202

Ges av

EECS/Datavetenskap

Huvudområde *

Datalogi och datateknik

Utbildningsnivå *

Avancerad nivå

Påbyggnad

Ingen information tillagd

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.

Övrig information

I denna kurs tillämpas EECS hederskodex, se: http://www.kth.se/eecs/utbildning/hederskodex.