Oversættelse
FormålDette kursus handler om oversættelse af programmer fra et sprog til et andet. De studerende skal konstruere en oversætter og en virtuel maskine som dens målplatform, og dokumentere begge i en skriftlig rapport.
Indhold:Programmer som dataobjekter:
Fortolkere, oversættere (batch, just in time), køretids-kodegenerering, bootstrapping.
Syntaksanalyse:
Konkret og abstrakt syntaks, regulære udtryk, scanning, lex-agtig scannergenerering, BNF, deterministisk parsing, yacc-agtig parsergenerering, abstrakte syntakstræer, makroer.
Semantisk analyse:
Mellemlagssprog, typetjekning, resourceallokering.
Kode generering:
Resourcer, templates, optimeringer.
Virtuelle maskiner og køretidsomgivelser:
Closures, objekter, dynamisk lagerallokering, garbage collection.
Gennemgang af:
Statisk programanalyse, platformskode-generering, interoperabilitet, mobile programmer, bevisbærende programmer.
ForelæserOlivier Danvy
LitteraturAndrew W. Appel, Modern Compiler Implementation in ML, Cambridge University Press, 1998, New York
Jeffrey D. Ullman, Elements of ML Programming (ML 97 edition), P-H, 1998
Forelæsninger:3 timer/uge
Øvelser:3 timer/uge
Projekt:Ca. 8 uger
SprogEngelsk
Forudsætninger:dIntProg, dADS, dArkOS, and dModLog
EksamensformProjektbaseret mundtlig eksamen. Evalueringen af projektet vil indgå i den samlede karakter.
ECTS10
Kvarter1+2