Kursplan

Kompilatorer och interpretatorer, 7,5 högskolepoäng

Compilers and Interpreters, 7,5 Credits

Kurskod: DT125G Högskolepoäng: 7,5
Huvudområde: Datateknik Fördjupning: G1F
    Senast ändrad: 2019-03-14
Utbildningsnivå: Grundnivå Beslutad av: Prefekt
Inrättad: 2016-11-30 Litteraturlista fastställd: 2019-03-14
Giltig fr.o.m.: Höstterminen 2019 Revision: 1

Mål

Mål för utbildning på grundnivå

Utbildning på grundnivå ska utveckla studenternas

  • förmåga att göra självständiga och kritiska bedömningar,
  • förmåga att självständigt urskilja, formulera och lösa problem, och
  • beredskap att möta förändringar i arbetslivet.

Inom det område som utbildningen avser ska studenterna, utöver kunskaper och färdigheter, utveckla förmåga att

  • söka och värdera kunskap på vetenskaplig nivå,
  • följa kunskapsutvecklingen, och
  • utbyta kunskaper även med personer utan specialkunskaper inom området.

(1 kap. 8 § högskolelagen)

Kursens mål

Kursens mål är att studenten efter avslutad kurs ska ha

  • förståelse för de grundläggande principerna för hur program tolkas, översätts och exekveras,
  • kunskap om olika typer av interpretatorer och kompilatorer och deras användningsområden,
  • kunskap om kompilatorns faser,
  • kunskap om verktyg för att underlätta utvecklingen av kompilatorer och interpretatorer,
  • förståelse för hur kompilatorer och interpretatorer är uppbyggda och fungerar,
  • förståelse för hur data och minnesutrymme administreras i samband med exekvering av program,
  • förståelse för hur man i praktiken bygger en enkel interpretator eller kompilator för ett enkelt språk,
  • förmåga och praktiska färdigheter att konstruera delar av en kompilator, och andra program som använder teknik från kompilatorer, särskilt en lexikalisk analysator och en enkel syntaktisk analysator, såväl i vanlig programkod som med särskilda verktyg, och
  • ett professionellt förhållningssätt till programmering, vilket innefattar problemanalys, testning och dokumentation.

Kursens huvudsakliga innehåll

Följande moment behandlas i kursen

  • olika typer av översättare, som t ex kompilatorer och preprocessorer,
  • kompilatorns uppbyggnad och arbetssätt,
  • lexikalisk analys (scanning),
  • syntaktisk analys (parsing), metoder för syntaxspecifikation,
  • typsystem och typkontroll,
  • intern representation av program,
  • runtime-system,
  • minneshantering, skräpsamling,
  • kodgenerering och kodoptimering,
  • kompilering för fysiska och virtuella maskiner,
  • olika metoder för felhantering,
  • verktyg för att framställa och generera kompilatorer,
  • kriterier för språkkonstruktion, och
  • studenterna bygger några viktiga delar av en kompilator, både i C++ och med hjälp av olika verktyg.

Studieformer

Föreläsningar och projektuppgifter med handledning.

Den som antagits till och registrerats på en kurs har rätt att erhålla undervisning och/eller handledning under den tid som angavs för kurstillfället som den sökande blivit antagen till (se universitetets antagningsordning). Därefter upphör rätten till undervisning och/eller handledning.

Examinationsformer

Teori, 3 högskolepoäng (Provkod: A001)
Salstentamen.
Omtentamen infaller inom elva veckor efter ordinarie tentamen.

Projektuppgifter, 4,5 högskolepoäng (Provkod: A002)
Skriftlig och muntlig redovisning av projektuppgifter. Enskilt eller i grupp enligt lärarens anvisningar.


För studenter med dokumenterad funktionsnedsättning kan universitetet besluta om anpassning av examination eller annan examinationsform.

För ytterligare information se universitetets regler för examination inom utbildning på grundnivå och avancerad nivå.

Betyg

Enligt 6 kap. 18 § högskoleförordningen ska betyg sättas på en genomgången kurs om inte universitetet föreskriver något annat. Universitetet får föreskriva vilket betygssystem som ska användas. Betyget ska beslutas av en av universitetet särskilt utsedd lärare (examinator).

Enligt föreskrifter om betygssystem för utbildning på grundnivå och avancerad nivå (rektors beslut 2019-01-15, ORU 2019/00107) ska som betyg användas något av uttrycken underkänd, godkänd eller väl godkänd. Rektor eller den rektor bestämmer får besluta om undantag från denna bestämmelse för en viss kurs om det finns särskilda skäl.

Som betyg på kursen används Underkänd (U), 3, 4 eller 5.

Teori
Som betyg används Underkänd (U) eller Godkänd (G).

Projektuppgifter
Som betyg används Underkänd (U), 3, 4 eller 5.

För ytterligare information se universitetets regler för examination inom utbildning på grundnivå och avancerad nivå.

Kommentar till betyg

Som betyg på kursen ges betyget från prov A002, givet att prov A001 är godkänd.

Enligt rektorsbeslut med Dnr ORU 4.3.1-3289/2013 har avsteg medgivits från den tregradiga betygsskalan.
Kursens betyg översätts till ECTS-betygsskalan.

Särskild behörighet och andra villkor

Datastrukturer och algoritmer, 7,5 högskolepoäng och Objektorienterad programmering, 7,5 högskolepoäng.

För ytterligare information se universitetets antagningsordning.

Tillgodoräknande av tidigare utbildning

Student som tidigare genomgått utbildning eller fullgjort annan verksamhet ska enligt högskoleförordningen tillgodoräknas detta som en del av den aktuella utbildningen under förutsättning att den tidigare utbildningen eller verksamheten uppfyller vissa krav.

För ytterligare information se universitetets lokala regler för tillgodoräknanden.

Övriga föreskrifter

Kursen kan komma att ges på engelska.

Kurslitteratur och övriga läromedel

Obligatorisk litteratur
Aho, Alfred V, Lam, Monica. S, Sethi, Ravi och Ullman, Jeffery D
Compilers - Principles Techniques and Tools (senaste upplagan)
Addison-Vesley