Kursplan för vårterminen 2007
KOMPILATORTEKNIKEDA180
Compiler Construction

Antal poäng: 5. Betygskala: TH. Valfri för: D3, E4, F4. Kursansvarig: Univ.lektor Görel Hedin, Gorel.Hedin@cs.lth.se, Inst f datavetenskap. Förkunskapskrav: EDA027 Algoritmer och datastrukturer. 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. Hemsida: http://www.cs.lth.se/EDA180.

Mål
Kursen syftar till att ge grundläggande kunskaper om den principiella uppbyggnaden av en kompilator och om de grundläggande teorier och metoder som används för implementation 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 etc. I kursen ingår också hur avancerade objektorienterade tekniker som design patterns och aspektorienterad programmering kan tillämpas i kompilatorkonstruktion.

Innehåll
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), aspektorienterad programmering. Tillämpningsområden för kompilatorteknik.

Litteratur
Appel, A W: Modern Compiler Implementation in Java. Cambridge University Press 2002. ISBN: 052182060X. Kan komma att ändras.

Poängsatta delmoment

Kod: 0105. Benämning: Laborationer.
Antal poäng: 1. Betygskala: UG. Prestationsbedömning: Fullgjorda laborationer. Delmomentet omfattar: Laborationer under kursens första läsperiod.

Kod: 0205. Benämning: Projekt.
Antal poäng: 1. Betygskala: 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 poäng: 3. Betygskala: 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 har fullgjorts. Delmomentet omfattar: En skriftlig tentamen efter kursens första läsperiod.