Kursplan för Kompilatorteknik I

Compiler Design I

Kursplan

  • 5.0 högskolepoäng
  • Kurskod: 1DL320
  • Utbildningsnivå: Grundnivå
  • Huvudområde(n) och successiv fördjupning: Datavetenskap G1F Teknik G1F
  • Betygskala: Underkänd (U), 3, 4, 5.
  • Inrättad: 2009-03-12
  • Inrättad av: Teknisk-naturvetenskapliga fakultetsnämnden
  • Reviderad: 2009-03-12
  • Reviderad av: Teknisk-naturvetenskapliga fakultetsnämnden
  • Gäller från: vecka 02, 2010
  • Behörighet: Matematik 10 p/15 hp inkl. Automatateori. Datavetenskap 20 p/30 hp inkl. en fortsättningskurs i programmering och Operativsystem.

Kursplanerevideringar

Mål

För godkänt betyg ska studenten förstå hur enkla imperativa programspråk kan kompileras till maskinkod för RISC-liknande maskiner.

Efter godkänd kurs ska studenterna kunna


  • 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

  • beskriva lexikalisk analys med en ändlig automat

  • 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

  • bryta ner satser och uttryck till enklare konstruktioner, och översätta syntaxträd till mellankod

  • beskriva hur rekursiva proceduranrop kan implementeras med hjälp av stackar, aktiveringsposter och maskinregister

  • översätta ett programs förenklade mellankod till maskinspecifika instruktioner

Innehåll

Lexikalisk analys (scanning).
Syntaktisk analys (parsning).
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 (IR).
Generering av mellankod.
Anropsstackar och aktiveringsposter.
Kodgenerering för RISC-liknande maskiner.
Basblock, kontrollflödesgrafer, liveness-analys, registerallokering.

Undervisning

Föreläsningar, laborationer.

Examination

Kursen examineras med skriftlig tentamen (4 hp) och uppgifter (1 hp).

Kontakt

Institutionen för informationsteknologi

ITC, hus 1,2,4 Lägerhyddsv. 2

Box 337, 751 05 UPPSALA

018-511925

info@it.uu.se

Litteratur

Gäller från: vecka 27, 2009

A.W. Appel: Modern compiler implementation in ML, Cambridge University Press, 1998.
eller
A.W. Appel: Modern compiler implementation in Java, Cambridge University Press, 1997.

Referenslitteratur

Dick Grune, Henri E. Bal, Ceriel J.H. Jacobs, and Koen G. Langendoen: Modern Compiler Design, John Wiley&Sons, Ltd, 2000.
Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques and Tools, Addison-Wesley, Reading, MA, 1986.

Skriv ut
Dela sidan på