EnkeltfagEngelsk5 ECTS

Oversætterkonstruktion

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.

Se kursusbeskrivelse på engelsk

Læringsmål

  • 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.

Anbefalede forudsætninger

02141/02157, De studerende forventes at være fortrolige med grundlæggende datavidenskabelige begreber som inferensregler, regulære udtryk og kontekstfrie grammatiker. Denne baggrund kan opnås i kurset 02141. De studerende skal kunne udtrykke sig flydende i mindst et programmeringssprog; erfaring med funktionel programmering (især med F#) anbefales stærkt. Denne baggrund kan opnås i kurset 02157.

Undervisningsform

Forelæsninger, teoretiske øvelser og praktiske øvelser.

Fakultet

Se kurset i kursusbasen

Registration

Sprog

Engelsk

Varighed

13 uger

Institut

Compute

Sted

DTU Lyngby Campus

Kursus ID 02247
Kursustype Kandidat
Dage tors 8-12
Price

9.250,00 kr.

Registration