Kursplan för

Kompilatorer
Compilers

EDAN65, 7,5 högskolepoäng, A (Avancerad nivå)

Gäller för: Läsåret 2021/22
Fakultet: Lunds tekniska högskola
Beslutad av: Programledning C/D
Beslutsdatum: 2021-04-20

Allmänna uppgifter

Valfri för: C4, D4-is, D4-pv, E4, E4-pv, F4, F4-pv, Pi4
Undervisningsspråk: Kursen ges på begäran på 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 studenten

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

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.

Kursens examination

Betygsskala: TH - (U,3,4,5) - (Underkänd, Tre, Fyra, Fem)
Prestationsbedömning: Skriftlig tentamen. För deltagande i tentamen fordras att laborationerna har fullgjorts. Slutbetyg i kursen bestäms av resultatet på den skriftliga tentamen.

Om så krävs för att en student med varaktig funktionsnedsättning ska ges ett likvärdigt examinationsalternativ jämfört med en student utan funktionsnedsättning, så kan examinator efter samråd med universitetets avdelning för pedagogiskt stöd fatta beslut om alternativ examinationsform för berörd student.

Delmoment
Kod: 0114. 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: Skriftlig tentamen
Kod: 0214. Benämning: Laborationer.
Antal högskolepoäng: 3. Betygsskala: UG. Prestationsbedömning: Fullgjorda laborationer. Delmomentet omfattar: Laborationer

Antagningsuppgifter

Förkunskapskrav:

Förutsatta förkunskaper: Objektorienterad programmering i Java. Grundläggande datastrukturer.
Begränsat antal platser: Nej
Kursen överlappar följande kurser: EDA200, EDA180

Kurslitteratur

Kontaktinfo och övrigt

Kursansvarig: Professor Görel Hedin, Gorel.Hedin@cs.lth.se
Hemsida: http://cs.lth.se/edan65