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. Nogle af de store
softwarevirksomheder som Microsoft og Google opfatter oversættere
at være så essentielt en del af deres projekter, at de endda
oversætter deres oversættere fra kildekode som del af deres build
processer.
Kurset underviser i teknikker som bruges til at effektiv
implementere moderne funktionelle og objekt-orienterede
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 de behandlede former for intermediate representation,
og vælge den passede form baseret på funktionelle krav;
forklare relationen mellem højtniveaussprog, intermediate
representation, analyser, og optimeringer;
forklare processen af code generering for moderne
processorer;
vælge det rigtige fase for implementering af ny funktionalitet
baseret på en kravbeskrivelse;
identificere situationer i softwareudvikling, hvor teknikker
fra oversættere kan anvendes, og realisere denne anvendelse;
anvende moderne værktøjer til implementering af oversættere og
forklare deres funktionalitet;
implementere en oversætter for et realistisk
programmeringssprog;
opnå ovennævnte resultater som del af et gruppe arbejde 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) Oversætter for forskellige sprogparadigmer, såsom funktionelle
og objekt-orienterede sprog, og abstrakte maskiner som
målarkitektur for oversættere;
(2) Intermediate representationer og deres indflydelse på
oversættelsen;
(3) Kodegenerering, kodeselektion, og optimeringer.
Mulighed for GRØN DYST deltagelse:
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