02247 Oversætterkonstruktion

2022/2023

Kursusinformation
Compiler Construction
Engelsk
5
Kandidat
Kurset udbydes som enkeltfag
F2B (tors 8-12)
Campus Lyngby
Forelæsninger, teoretiske øvelser og praktiske øvelser.
13-uger
F2B, Yderligere dage kan være nødvendige, afhængigt af antallet af studerende
Mundtlig eksamen og bedømmelse af rapport(er)
Eksamen er baseret på rapporten om projektet de studerende har arbejdet med i kurset.
7-trins skala , ekstern censur
02141 , De studerende forventes at kende til endelige automater og kontekstfrie grammatiker. Denne baggrund kan opnås i kurset 02141. De studerende skal kunne udtrykke sig flydende i mindst et programmeringssprog.
Alceste Scalas , Tlf. (+45) 4525 3759 , alcsc@dtu.dk
01 Institut for Matematik og Computer Science
I studieplanlæggeren
Kontakt underviseren for information om hvorvidt dette kursus giver den studerende mulighed for at lave eller forberede et projekt som kan deltage i DTUs studenterkonference om bæredygtighed, klimateknologi og miljø (GRØN DYST). Se mere på http://www.groendyst.dtu.dk
Overordnede kursusmål
Oversættere bidrager til pålideligheden af softwaresystemer med hjælp af analyser og optimeringer af systemets kode, og ved at sikre egenskaber af de genererede programmer. Mange IT-virksomheder (hereunder f.eks. Google, Facebook og Microsoft) opretter og vedligeholder compilere til nye og eksisterende programmeringssprog.

Kurset underviser i teknikker som bruges til at effektiv implementere moderne programmeringssprog, og til at sikre pålideligheden af de genererede programmer. Vi behandler grundlæggende teknikker i moderne oversættere, fra implementering over optimeringer til køretids understøttelse for nye hardwarearkitekturer. I kurset arbejder de studerende i gruppe med at implementere en oversætter for et realistisk programmeringssprog.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
  • forklare oversætternes bidrag til pålidelighed af softwaresystemer;
  • forklare strukturen af optimerende oversættere og funktionaliteten af de forskellige faser;
  • forklare relationen mellem højtniveaussprog, intermediate representation, analyser, og optimeringer;
  • forklare processen af code generering for moderne computer arkitekturer, herunder virtual machines
  • udvide en compiler for at tilføje nye funktionaliteter til et programmeringssprog
  • anvende moderne værktøjer til implementering af oversættere og forklare deres funktionalitet;
  • implementere en oversætter for et realistisk programmeringssprog, eller udvide en eksisterende oversætter;
  • opnå ovennævnte resultater som del af et gruppe projekt men på en sådan måde at de individuelle bidrag kan identificeres; og
  • kommunikere de opnåede resultater på en klar og præcis måde i en standard form for teknisk rapport.
Kursusindhold
Kurset dækker tre hovedemner:
(1) Kompileringsprocessen: fra high-level programmeringssprog til hardwarearkitekturer og virtuelle maskiner;
(2) Intermediate representationer og deres indflydelse på oversættelsen;
(3) Lexing, parsing, kodeanalyse, kodegenerering, og optimeringer.
Kursusprojektet kræver at udvide en eksisterende compiler-framework for at understøtte mere avancerede programmeringssprogsfunktioner.
Sidst opdateret
29. april, 2022