De studerende lærer at forstå principperne for oversættere og virtuelle maskiner. De studerende lærer at bruge og konstruere software-værktøjer til implementering af en funktionsdygtig oversætter.
Læringsmål:
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
forklare de forskellige faser i oversættelse og kørsel
benytte udvalgte værktøjer relateret til oversættelsesfaserne (fx lexers, parsers)
forklare de forskellige elementer i beskrivelser af programmeringssprog
aflede specifikationer for oversættelsesfaserne, givet en tekstuel beskrivelse af syntaksen for et programmeringssprog
implementere en analyse og kodegenereringsfase, givet en tekstuel beskrivelse af semantikken for et programmeringssprog
udvikle en funktionsdygtig oversætter
indfri målene som led i en gruppeindsats, samtidig med bevarelse af individuelt ansvar
kommunikere løsninger til opgaver på en klar og præcis måde
Kursusindhold:
Oversætterdelen af kurset omhandler principper for virtuelle maskiner og hovedfaserne for oversættere:
(1) Leksikalsk analyse (skanning) og værktøjer til generering af skannere. (2) Syntaktisk analyse (parsing) og værktøjer til generering af parsere. (3) Semantisk analyse. (4) Kodegenerering.
Litteratur:
Andrew W. Appel: Modern Compiler Implementation in Java, Second Edition, Cambridge University Press, 2002.