Kursplan för

Kompilatorer
Compilers

EDAN65F, 7,5 högskolepoäng

Gäller från och med: Höstterminen 2017
Beslutad av: Professor Thomas Johansson
Datum för fastställande: 2017-03-22

Allmänna uppgifter

Avdelning: Datavetenskap (LTH)
Kurstyp: Gemensam kurs, avancerad nivå och forskarnivå
Kursen ges även på avancerad nivå med kurskod: EDAN65
Undervisningsspråk: Engelska

Syfte

De grundläggande teorier och metoder som används inom kompilatorteknik är centrala för hela det datavetenskapliga ämnet och brett tillämpningsbara inom såväl forskning som mjukvaruutveckling. Kursen syftar till att ge kunskaper om den principiella uppbyggnaden av en kompilator och om de grundläggande teorier och metoder som används för implementering av kompilatorns olika delar. Målet är dessutom att få en förståelse för hur de olika teorierna och metoderna kan användas för relaterade tillämpningsområden, till exempel översättning mellan olika källspråk, analys av programegenskaper, interpretering, översättning och analys av andra artificiella språk. I kursen ingår också hur avancerade objektorienterade tekniker som designmönster och aspektorienterad programmering kan tillämpas i kompilatorkonstruktion.

Mål

Kunskap och förståelse

För godkänd kurs skall doktoranden

Färdighet och förmåga

För godkänd kurs skall doktoranden

Värderingsförmåga och förhållningssätt

För godkänd kurs skall doktoranden visa förmåga att kritiskt utvärdera olika kompileringsmetoder och deras tillämpningar på olika områden.

Kursinnehåll

I kursen ingår följande: Kompilatorns arkitektur. Definition av programspråk: reguljära uttryck, kontextfria grammatiker, abstrakta grammatiker, attributgrammatiker. Metoder: scanning, parsing, statisk-semantisk analys, kodgenerering. Exekveringssystem: minnesallokering, automatisk minneshantering (garbage collection). Verktyg: Scanner-generatorer, parser-generatorer, generatorer för abstrakta syntaxträd, generatorer för attributevaluering. Designmönster (visitor, interpreter). Tillämpningsområden för kompilatorteknik.

Kurslitteratur

Appel, A.: Modern Compiler Implementation in Java. Cambridge University Press, 2002. ISBN 052182060X.

Kursens undervisningsformer

Undervisningsformer: Föreläsningar, laborationer

Kursens examination

Examinationsform: Skriftlig tentamen
Betygsskala: Underkänd, godkänd
Examinator:

Antagningsuppgifter

Förkunskapskrav: EDAA01 Programmeringsteknik - fördjupningskurs

Kurstillfällesinformation

Kontaktinformation och övrigt

Kursansvariga:
Hemsida: http://cs.lth.se/edan65


Fullständig visning