Skriv ut som pdf om du vill ha en pdf! Om du vill ha en snyggare utskrift, klicka bort webbläsarens automatiskt tillagda sidhuvud och sidfot.

Blekinge Tekniska Högskola
Institutionen för datavetenskap

Revision: 4
Dnr: BTH-4.1.14-0194-2023


Kursplan

Kompilator- och översättarteknik

Compiler Design and Translation Technique

6 högskolepoäng (6 credits)

Kurskod: DV1655
Huvudområde: Datavetenskap, Teknik
Utbildningsområde: Tekniska området
Utbildningsnivå: Grundnivå
Fördjupning: G1F - Grundnivå, har mindre än 60 hp kurs/er på grundnivå som förkunskapskrav

Undervisningsspråk: Undervisningen ges i normalfallet på svenska, men undervisning på engelska kan förekomma
Gäller från: 2023-01-30
Fastställd: 2023-01-30

1. Beslut

Denna kurs är inrättad av dekan 2021-04-16. Kursplanen är fastställd av prefekten vid institutionen för datavetenskap 2023-01-30 och gäller från 2023-01-30.

2. Förkunskapskrav

För tillträde till kursen krävs 18 hp avklarade i programmering inklusive datastrukturer och algoritmer.

3. Syfte och innehåll

3.1 Syfte

Kompilator och översättarteknik används vanligtvis under mjukvaru-utvecklingen. Eftersom på ena sidan är de flesta program som vi skriver i högnivåspråk, och på andra sidan förstår hårdvaran endast lågnivåspråk (binära instruktioner). Kompilatorer används huvudsakligen för att översätta dessa program som är skrivna i högnivåspråk till lågnivåspråk (såsom assembler). Assembler är ansvarig för att generera binär kod från en assembler fil. Förstå kompilatorteknik är grundläggande kunskaper hos den avancerade programmeraren som kommer att uppdatera existerande programspråk eller optimera existerande kompilatorer. Dessutom kommer det att behövas designa nya domänspecifika programmeringsspråk och utveckla deras kompilatorer. Dessutom är tekniken som används vid översättning och kompilering också användbar inom många andra områden, där kunskap om detta området är särskilt användbart.

3.2 Innehåll

Kursen består av följande:

  • Grundläggande teorier för formella språk, språkets grammatik och översättningstekniker
  • Principer för lexikalisk, syntaktisk (parsing topp-down och bottom-up) och semantisk analys (typkontroll)
  • Introduktion till olika verktyg för att designa och implementera olika kompilatorfaser inklusive lexikalisk analysator och syntax analysator
  • Design och implementering av grafbaserade mellanpresentation och graftraverseringstekniker
  • Principer för utformning av kodgenerering och tolkning
  • Designa och implementera alla faser av kompilatorn, inklusive lexer, parser, typkontroll, mellanrepresentation, kodgenerering och tolkning

4. Lärandemål

Följande lärandemål examineras i kursen:

4.1. Kunskap och förståelse

Efter genomförd kurs ska studenten:

  • Förstå, beskriva och använda grundläggande teorier för formella språk, språkets grammatik, och översättarteknik
  • Förstå och använda principer för lexikalisk, syntaktisk och semantisk analys
  • Förstå och använda principer för representation, codegenerering, och interpretation på en mellanliggande nivå

4.2. Färdighet och förmåga

Efter genomförd kurs ska studenten:

  • Designa och utveckla olika faser av kompliering, inkluderat
  • Scanner (Lexical analys)
  • Parser ( Syntax Analys)
  • Typkontroll (Semantisk analys)
  • Mellanliggande presentation
  • Code generator
  • Interpretator
  • Designa och utveckla testpaket som garanterar språktäckning

4.3. Värderingsförmåga och förhållningssätt

Efter genomförd kurs ska studenten:

  • Bedöma effekterna av val i representation och algoritmer på implementeringen av kompilatorn

5. Läraktiviteter

Undervisningen består av föreläsningar, handleda laborationer och projektarbete. Föreläsningarna introducerar det teoretiska materialet, laborationerna har handledning som stöd inför projektet. Projektet är uppdelat i tre delar för att kunna erbjuda omfattande stöd i början av processen.

6. Bedömning och examination

Examinationsmoment för kursen

Kod Benämning Omf. Betyg
2206 Projektuppgift (del 1) 1,5 hp AF
2215 Projektuppgift (del 2) 2 hp AF
2225 Projektuppgift (del 3) 2,5 hp AF

Kursen bedöms med betygen A Utmärkt, B Mycket bra, C Bra, D Tillfredställande, E Tillräckligt, FX Underkänd, något mer arbete krävs, F Underkänd.

I kurstillfällets information inför kursstart framgår i vilka examinationsmoment som kursens lärandemål examineras samt gällande bedömningsgrunder.

Examinator kan, efter samråd med högskolans FUNKA-samordnare, fatta beslut om anpassad examinationsform för att en student med varaktig funktionsvariation ska ges en likvärdig examination jämfört med en student utan funktionsvariation.

7. Kursvärdering

Kursvärdering ska göras i enlighet med BTH:s beslut om frågeställning i kursvärderingar och beslut om process för hantering och uppföljning av kursvärderingar.

8. Begränsningar i examen

Kursen kan ingå i examen men inte tillsammans med annan kurs vars innehåll, helt eller delvis, överensstämmer med innehållet i denna kurs.

9. Kurslitteratur och övriga lärresurser

Huvudlitteratur: Lam, M., Sethi, R., Ullman, J. D., & Aho, A. (2006). Compilers: Principles, techniques, and tools. Pearson Education.

Övrig kurslitteratur: Levine, John. Flex & Bison: Text Processing Tools. " O'Reilly Media, Inc.", 2009.

10. Övrigt

Denna kurs ersätter kursen DV1585