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: 2
Dnr: BTH-4.1.14-0840-2021


Kursplan

Kompilator- och översättarteknik

Compiler Design and Translation Technique

7,5 högskolepoäng (7.5 credits)

Kurskod: DV1656
Huvudområde: Datavetenskap
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: Engelska
Gäller från: 2022-01-17
Fastställd: 2021-09-01

1. Beslut

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

2. Förkunskapskrav

För tillträde till kursen ska studenten har avklarat 22,5 högskolepoäng 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

  • Grundläggande teorier för formella språk och vanliga uttryck, språkets grammatik och översättnings teknik
  • Principer för lexikalisk, syntaktisk och semantisk analys.
  • Principer för design och implementering av mellanliggande presentation
  • Principer för design och kodgenerering
  • Principer för design och implementering av stack-baserad maskininterpretator
  • Introduktion till verktyg för kompileringsdesign och implementation

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 kunna:

  • 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.

4.2. Färdighet och förmåga

Efter genomförd kurs ska studenten kunna:

  • 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 kunna:

  • 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
2205 Projektuppgift (del 1) 3 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 DV1584