Kompilatorteknik I
Kursplan, Grundnivå, 1DL321
- Kod
- 1DL321
- Utbildningsnivå
- Grundnivå
- Huvudområde(n) med fördjupning
- Datavetenskap G2F, Teknik G2F
- Betygsskala
- Med beröm godkänd (5), Icke utan beröm godkänd (4), Godkänd (3), Underkänd (U)
- Fastställd av
- Teknisk-naturvetenskapliga fakultetsnämnden, 13 oktober 2023
- Ansvarig institution
- Institutionen för informationsteknologi
Behörighetskrav
60 hp varav 15 hp matematik och 30 hp datavetenskap inklusive Operativsystem och en fortsättningskurs i programmering.
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 studenten 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).
Om särskilda skäl finns får examinator göra undantag från det angivna examinationssättet och medge att en enskild student examineras på annat sätt. Särskilda skäl kan t.ex. vara besked om särskilt pedagogiskt stöd från universitetets samordnare för studenter med funktionsnedsättning.