Enkeltfag Engelsk 5 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.

See course description in English

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

Tilmelding

Sprog

Engelsk

Varighed

13 uger

Institut

Compute

Sted

DTU Lyngby Campus

Kursus ID 02247
Kursustype Kandidat
Semesterstart Uge 6
Semester slut Uge 20
Dage tors 8-12
Pris

9.250,00 kr.

Tilmelding