Kompilatorteknik I
Från IT-Wiki
| Varning: Detta är en sida skapad av studenter från pågående/föregående kurstillfälle och speglar kursen utifrån vårt perspektiv. Observera att kursinnehållet kan skilja stort från år till år. Faktafel kan förekomma! |
|---|
Innehåll |
[redigera] Om kursen
Kompilatorteknik I är en kurs om hur det fundamentala verktyget kompilatorn fungerar i teorin och praktiken. Kursen använder mycket material från tidigare kurser: Programkonstruktion II (åk1), Diskret matematik (åk2), Operativsystem & kompilatorer (åk2). Kursen tar bland annat upp:
- Lexikalisk analys:
- Strukturera en kompilator som en sekvens av distinkta översättningsteg
- Använda reguljära språk för att beskriva ett programspråks lexikaliska element
- Implementera lexikalisk analys med en ändlig automat
- Syntaktisk analys:
- Använda kontextfria språk för att beskriva ett programspråks syntaktiska struktur
- Använda parsningsmetoderna top-down (recursive descent) och bottom-up (LR)
- Använda abstrakta syntaxträd för att representera resultatet av den syntaktiska analysen
- Programrepresentation i Abstrakta Syntax-Träd (AST)
- Symboltabeller och scoperegler för C-liknande språk
- Typcheckning för C-liknande språk
- Olika former av mellankod (intermediate code)
- Generering av mellankod
- Anropsstackar och aktiveringsposter
- Kodgenerering för RISC-liknande maskiner
- Basblock, kontrollflödesgrafer, liveness-analys och registerallokering
[redigera] Moment
- Projekt (5 st uppgifter):
- Skapa en kompilator
- Från uC (=MicroC => en delmängd av C) till maskinkod för RISC
- Valfritt programmeringsspråk får användas
- Skriftlig rapport för varje deluppgift
- Tentamen
[redigera] Annat
Lärare: Mikael Pettersson
Kurslitteratur: A. V. Aho, R. Sethi, J. D. Ullman, M. S. Lam: Compilers: Principles, Techniques and Tools
[redigera] Externa länkar
Kurshemsida 2008: http://www.it.uu.se/edu/course/homepage/komp/ht08/
