KURSPLAN

Kompilatorteknik och formella språk 7,5 högskolepoäng

Compiler construction and formal languages
Avancerad nivå, D7050E
Version
Kursplan gäller: Höst 2019 Lp 1 - Tillsvidare
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 Jonny Johansson, HUL SRT 2019-02-15

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

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

Behörighet

Grundläggande kunskaper i matematik motsvarande M0031M. 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
Grundläggande teorier om beräkningar och om olika beräkningsmodeller. Grunderna för uppbyggnaden av en kompilator. Lexikalanalys, syntaxanalys och översättning till abstrakt syntax. Reguljära uttryck och grammatiker, sammanhangsfria språk 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.

Kursinnehåll
Grundläggande teorier om beräkningar och om olika beräkningsmodeller. Grunderna för uppbyggnaden av en kompilator. Lexikalanalys, syntaxanalys och översättning till abstrakt syntax. Reguljära uttryck och grammatiker, sammanhangsfria språk 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, inlämningsuppgifter, laborationer, och seminarier. Laborationerna redovisas skriftligt eller muntligt och kan vara försedda med sista inlämningsdag.


Examination

Seminarier och inlämningsuppgifter samt skriftliga och/eller muntliga laborationsredogörelser. Det slutgiltiga betyget baseras på prestation i samtliga moment.


Övergångsbestämmelser
Kursen ersätter kurserna D7006E  och D7011E

Examinator
Per Lindgren

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

Vetenskapliga artiklar.

Kursgivare
Institutionen för system- och rymdteknik (SRT)

Moduler
KodBenämningBetygskalaHPTillståndGäller frånTitel
0001Seminarier, inlämningsuppgifter, laborationG U 3 4 57.50ObligatoriskH19

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.