studiehandbok@lith
 

Tekniska högskolan vid Linköpings universitet

 
 
År : 2016
 
TDDB44 Kompilatorkonstruktion, 6 hp
/Compiler Construction/

För:   CS   D   DAV   I   Ii   IT  


OBS!

Får ej ingå i examen samtidigt som TDDD55.


 

Prel. schemalagd tid: 48
Rek. självstudietid: 112

  Utbildningsområde: Teknik

Huvudområde: Datateknik, Datavetenskap,Informationsteknologi   Nivå (G1,G2,A): A

  Datavetenskap Datavetenskap, datalogi.

  Mål:  IUAE-matris
Målet med kursen är att ge en omfattande introduction till teoretiska och praktiska aspekter för konstruktion av kompilatorer. Efter genomgången kurs ska du kunna:
  • förklara och tillämpa grundläggande principer och metoder för kompilatorkonstruktion
  • förklara och använda metoder för lexikalisk analys, top-down och bottom-up parsning
  • förklara och använda metoder för semantisk analys, syntaxdriven översättning, kodoptimering
  • förklara metoder och teori för konstruktion av lexer- och parsergeneratorer, samt kodgeneratorgeneratorer
  • förklara metoder för generering och optimering av kod för RISC-baserade arkitekturer
  • designa och implementera en top-down parser för en given kontext-fri grammatik
  • använda generatorverktyg för att bygga en lexikalisk analysator och en parser för en riktig kompilator
  • förklara och använda metoder för maskinkodgenerering
  • designa och implementera en fullständig kompilator inkluderande: lexer, parser, minneshantering, semantisk analys, optimering, maskinkodgenerering.


  Förkunskaper: (gäller studerande antagna till program som kursen ges inom, se 'För:' ovan)
Datastrukturer och algoritmer. Formella språk och automatateori, antingen från motsvarande kurs eller läsa in lämpligt material (kontakta föreläsaren). Kunskaper i C++.

OBS! Tillträdeskrav för icke programstudenter omfattar vanligen också tillträdeskrav för programmet och ev. tröskelkrav för progression inom programmet, eller motsvarande.

  Organisation:
På föreläsningarna genomgås den teoretiska delen. Lektionerna syftar till att förbereda laborationerna. Laborationerna, där en fullständig kompilator implementeras för ett litet Pascal-liknande språk, ger en praktisk erfarenhet av kompilatorkonstruktion.

  Kursinnehåll:
Under föreläsningarna behandlas: Olika typer av översättare, som t ex kompilatorer och preprocessorer. Lexikalisk analys och metoder för syntaxspecifikation och syntaxanalys. Hantering av deklarativ information. Intern representation av program. Minneshantering och runtime-system. Kodgenerering och kodoptimering, speciellt för RISC-processorer. Olika metoder av felhantering. Teori för och praktiskt användning av verktyg för att framställa och generera kompilatorer. Kriterier för språkdesign. Kursen har en stark laborativ prägel där en hel kompilator, inklusive lexikalisk analys, parsning, semantisk analys, minneshantering, optimering, generering av maskinkod, för ett litet Pascalliknande språk skall konstrueras. Vissa moduler i denna kompilator genereras med hjälp av kompilatorverktyg medan andra delar konstrueras för hand i C++.

  Kurslitteratur:
Aho, Lam, Sethi, Ullman: Compilers Principles, techniques, and tools, Second edition, Addison-Wesley, 2006.
Kompendier, utges av institutionen för datavetenskap.


  Examination:
TEN1 LAB1
En skriftlig tentamen (U,3,4,5)
En laborationskurs (U,G)
3 hp
3 hp
 
Uppgifterna på tentamen testar hur väl studenten uppfyller kursens mål. För godkänt betyg kan brister i uppfyllande av vissa delar av målen i någon mån kompenseras med ett djupare kunnande inom andra delar.



Undervisningsspråk är Engelska.
Institution: IDA.
Studierektor: Ahmed Rezine
Examinator: Peter Fritzon
Länk till kurshemsida på kursgivande institution
Ansvarig programnämnd: Data&Medie

Engelsk kursplan

Kursen bedrivs på ett sådant sätt att både mäns och kvinnors erfarenhet och kunskaper synliggörs och utvecklas.

Planering och genomförande av kurs skall utgå från kursplanens formuleringar. Den kursvärdering som ingår i kursen skall därför genomföras med kursplanen som utgångspunkt.

Om inget annat anges ovan gäller betygsskala enligt avsnitt a8.5 i de gemensamma bestämmelserna.

Kursplanen gäller för 2016 enligt beslut av ansvarig programnämnd/fakultetstyrelse.

Tekniska högskolan vid Linköpings universitet


Informationsansvarig: TFK , val@tfk.liu.se
Senast ändrad: 03/23/2015