Det er en stor fordel at kende mere end ét programmeringssprog på forhånd. Det er en fordel men ingen forudsætning at have fulgt kurset Funktionelt Design og Programmering.
Der findes forskellige slags programmeringssprog: imperative sprog (f.eks. C), objekt-orienterede sprog (f.eks. Java, Smalltalk), og funktionssprog (f.eks. Lisp, Scheme, Standard ML); statisk typede sprog (Java, Standard ML) og dynamisk typede sprog (Lisp, Scheme). Kursets andet hovedemne er at belyse de forskellige slags sprog ved hjælp af fortolkere, dvs. programmer der udfører andre programmer.
Et program skrevet i f.eks. C, Java eller Standard ML skal oversættes til maskinkode før det kan udføres på datamaskinen. Oversættelsen sker typisk i faser: syntaksanalyse, statiske tjek (typetjek), og generering af maskinkode. Kursets tredje hovedemne er statiske tjek og generering af maskinkode til (abstrakte) maskiner, herunder Java Virtual Machine eller Microsoft Intermediate Language (en del af .NET platformen).
Kurset bruger funktionssproget Standard ML til at præsentere de forskellige emner, da det er særlig velegnet til dette formål. Du skal altså også lære Standard ML i dette kursus.
Forelæsninger, ugentlige opgaver, øvelser med øvelsesvejleder.Det er muligt efter kurset at lave et fireugersprojekt, for eksempel omkonstruktion af en oversætter for et model-programmeringssprog.
Lecture notes: Basics of Compiler Design, by Torben Mogensen, DIKU 2002.
En god introducerende bog om Standard ML er Hansen og Rischel, Introduction to Programming Using SML, Addison-Wesley 1999.