Kursplan för läsåret 2010/2011
(Genererad 2010-06-28.)
KOMPILATORTEKNIKEDA180
Compiler Construction

Antal högskolepoäng: 7,5. Betygsskala: TH. Nivå: G2 (Grundnivå, fördjupad). Huvudområde: Teknik. Undervisningsspråk: Kursen kan komma att ges på engelska. Överlappar följande kurs/kurser: EDA200. Valfri för: D4, D4is, D4pv, E4, E4pv, F4, F4pv, Pi4, Pi4pv. Kursansvarig: Univ.lektor Lennart Andersson, lennart.andersson@cs.lth.se, Inst f datavetenskap. Förkunskapskrav: EDAA01 Programmeringsteknik - fördjupningskurs eller EDA027 Algoritmer och datastrukturer. Förutsatta förkunskaper: Objektorienterad programmering i Java. Prestationsbedömning: Skriftlig tentamen. Projektrapport. För deltagande i tentamen fordras att laborationerna har fullgjorts. Projektet skall vara fullgjort senast tre månader efter föreläsningarnas slut. Slutbetyg i kursen bestäms av resultatet på den skriftliga tentamen. Poängsatta delmoment: 3. Övrigt: Kursen går över två läsperioder. Första perioden är en teori- och laborationsdel som avslutas med tentamen. I andra perioden utförs ett projekt där man definierar ett programspråk och konstruerar en kompilator för detta språk. Hemsida: http://cs.lth.se/eda180.

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 studenten

Färdighet och förmåga
För godkänd kurs skall studenten

Innehåll
I kursen ingår följande: Kompilatorns arkitektur. Definition av programspråk: reguljära uttryck, kontextfria grammatiker, abstrakta grammatiker, statisk semantik, dynamisk semantik. Metoder: scanning, parsing, statisk-semantisk analys, översättning till mellankod och exekverbar kod. Exekveringssystem: minnesallokering, automatisk minneshantering (garbage collection). Verktyg: Scanner-generatorer, parser-generatorer, generatorer för abstrakta syntaxträd. Objektorienterade tekniker: designmönster (Interpreter, Visitor), statisk aspektorienterad programmering. Tillämpningsområden för kompilatorteknik.

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

Poängsatta delmoment

Kod: 0105. Benämning: Laborationer.
Antal Högskolepoäng: 1,5. Betygsskala: UG. Prestationsbedömning: Fullgjorda laborationer. Delmomentet omfattar: Laborationer under kursens första läsperiod.

Kod: 0205. Benämning: Projekt.
Antal Högskolepoäng: 1,5. Betygsskala: UG. Prestationsbedömning: Godkänt projekt och projektrapport. Projektet skall vara fullgjort senast tre månader efter föreläsningarnas slut. Delmomentet omfattar: Ett projektarbete under kursens andra läsperiod.

Kod: 0305. Benämning: Tentamen.
Antal Högskolepoäng: 4,5. Betygsskala: TH. Prestationsbedömning: Skriftlig tentamen. Slutbetyg på hela kursen bestäms av resultatet på denna tentamen. För att få deltaga i tentamen krävs att laborationerna fullgjorts. Delmomentet omfattar: En skriftlig tentamen efter kursens första läsperiod.