02247 Oversætterkonstruktion

2020/2021

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.
Alberto Lluch Lafuente , Lyngby Campus, Bygning 321, Tlf. (+45) 4525 3736 , albl@dtu.dk
Alceste Scalas (Primær kontaktperson) , 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. 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 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
  • planlægge det påkrævet forlængelser for implementering af ny funktionalitet baseret på en kravbeskrivelse;
  • udvide den formelle grammatik af et programmeringssprog for at tilføje støtte til nye funktionaliteter
  • 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;
  • forklare kompileringsprocessen for programmer
  • identificere situationer i softwareudvikling, hvor teknikker fra oversættere kan anvendes, og realisere denne anvendelse;
  • 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 programmeringsprog, og abstrakte maskiner som mål for oversættere;
(2) Intermediate representationer og deres indflydelse på oversættelsen;
(3) Lexing, parsing, kodeanalyse, kodegenerering, og optimeringer.
Projektet er baseret på en state of the art oversætterrammeværk for realistiske programmeringssprog
Sidst opdateret
06. august, 2020