KURSPLAN

D7011E Kompilatorteknik, 7.5 Högskolepoäng
Compiler Construction

Gäller för perioden
Vald version visar för vilken termin och läsperiod som denna kursplanen gäller för. Senaste version visas först.

Kursplanen fastställd
av Institutionen för systemteknik 2007-02-28

Reviderad
av Jonny Johansson, HUL SRT 2012-03-13

Utbildningsnivå
Avancerad nivå
Fördjupningskod
A1N
Betygskala
G U 3 4 5
Ämne
Datalogi
Ämnesgrupp (SCB)
Datateknik

Behörighet

Grundläggande behörighet, avancerad nivå

Särskild behörighet

Kurser om minst 90 hp på grundnivå varav följande kunskaper/kurser ingår. Goda kunskaper i imperativ programmering (D0009E) samt objekt-orienterade programmering och design (D0010E). Funktioner och relationer, mängdlära, tillståndsautomater (M0009M). Sökning och sortering, vanligt förkommande datastrukturer som köer, stackar, listor, träd och grafer (D0012E). Stackbaserad assemblerprogrammering (D0013E).


Mål/Förväntat studieresultat

Studenten ska kunna

-       Visa förmåga att identifiera och formulera kompilering av ett högnivåspråk till exekverbar maskinkod som en översättningsprocess i flera steg.

-       Visa förmåga att med adekvata metoder implementera en kompilator för ett icke-trivialt språk.

-       Visa förmåga att skriftligt och på engelska klart redogöra för de tekniska lösningar som valts för en sådan implementation.

-       Visa fördjupade kunskaper inom de teoretiska grunderna för kompilatortekniken.

-       Visa färdighet och förmåga att systematiskt använda beprövade verktyg för kompilatorkonstruktion.

-       Analysera och kritisktutvärdera olika aspekterav moderna högnivåspråkutifrån deras underliggandeimplementationsteknik.


Kursinnehåll

Grunderna för uppbyggnaden av en kompilator som en översättningsprocess i flera steg. Lexikalanalys, syntaxanalys och översättning till abstrakt syntax. Reguljära uttryck och grammatiker, lexikalanalys- och parser-generatorer. Hantering av identifierare och utformning av symboltabeller. Typkontroll, logiska inferenssystem. Intermediära representationer och transformationer för olika språk. Kodoptimering och registerallokering. Generering av maskinkod för vanliga datorarkitekturer.


Genomförande

Undervisningen består av föreläsningar, lektioner och laborationer. Laborationerna redovisas skriftligt eller muntligt och kan vara försedda med sista inlämningsdag. Under tiden kursen ges kan det också förekomma hemuppgifter som ger bonuspoäng på den tentamen som följer direkt efter kursen.


Examination

Skriftlig tentamen samt skriftliga eller muntliga laborationsredogörelser. För godkänt på kurserns laborationsdel krävs att alla laborationer redovisats med godkänt resultat.


Övrigt

Kursen kan ej ingå i examen tillsammans med SMD002.


Examinator
Johan Nordlander - Universitetslektor

Litteratur. Gäller från Höst 2012 Lp 1 (Kan ändras fram till 10 veckor innan studiestart)
Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman. Compilers: principles, techniques and tools (2nd ed.), Addison Wesley, 2007, ISBN: 0321486811.

Kursgivare
Institutionen för system- och rymdteknik

Prov
ProvnrTypHpBetyg
0001Tentamen4.5G U 3 4 5
0002Laboration3.0U G#

Vill du veta mer om utbildningens innehåll?
Johan Nordlander, johan.nordlander@ltu.se,



 
Luleå tekniska universitet