Hoppa till innehållet


KURSPLAN

Kompilatorteknik 7,5 Högskolepoäng

Compiler Construction
Avancerad nivå, D7011E
Version
Kursplan gäller: Höst 2016 Lp 1 - Tills vidare
Vald version visar för vilken termin och läsperiod som denna kursplanen gäller för. Senaste version visas först.


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

Behörighet

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).


Urval

Urvalet grundas på 20-285 högskolepoäng



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
Per Lindgren

Litteratur. Gäller från Höst 2007 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#

Studiehandledning
Studiehandledning finns i lärplattformen Canvas före kursstart. Du som är ny student hittar all information du behöver på www.ltu.se/nystudent. Du som redan studerar vid Luleå tekniska universitet hittar information om kursstart via schema på studentwebben alternativt via kursrummet i lärplattformen. Du når lärplattformen via Mitt LTU.

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

Reviderad
av Jonny Johansson, HUL SRT 2016-02-15