Kompilatorteknik I

Från IT-Wiki

Hoppa till: navigering, sök
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/