studiehandbok@lith   Länk till universitetets hemsida
 

Tekniska högskolan vid Linköpings universitet

Länk till universitetets hemsida
 
År : 2011
 
TDDB44 Kompilatorkonstruktion, 4 p / 6 hp
/Compiler Construction/

För:   C   COS   CS   D   DAV   IT   SOC  

 

Prel. schemalagd tid: 56
Rek. självstudietid: 104

  Utbildningsområde: Teknik

Ämnesgrupp: Datalogi, datateknik   Nivå (A-D):D

Huvudområde: Datavetenskap, Datateknik   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. 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: Patrick Lambrix
Examinator: Peter Fritzson
Länk till kurshemsida på kursgivande institution
Ansvarig programnämnd: Data&Medie


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 2011 enligt beslut av ansvarig programnämnd/fakultetstyrelse.

Tekniska högskolan vid Linköpings universitet

Länk till sidans topp


Informationsansvarig: TFK , val@tfk.liu.se
Senast ändrad: 03/07/2011

Sidan slutar här