Kursplan - Kompilatorteori
Omfattning
7.5 hp
Kurskod
CDT301
Giltig från
Hösttermin 2013
Utbildningsnivå
Grundnivå
Successiv fördjupning
G2F (Grundnivå, har minst 60 hp kurs/er på grundnivå som förkunskapskrav).
Huvudområde(n)
Datavetenskap
Akademi
Akademin för innovation, design och teknik
Fastställd
2013-01-29
Status
Denna kursplan är inte aktuell och ges inte längre
Litteraturlistor
Kurslitteraturen är preliminär till 8 veckor innan kursstart. Kurslitteratur kan vara giltig över flera terminer.
-
Böcker
Compilers : principles, techniques, and tools
Reading, Mass. : Addison-Wesley, cop. 1986 - x, 796 s.
ISBN: 0-201-10088-6 LIBRIS-ID: 8279527
Syfte
Kursen ska ge praktiskt användbara kunskaper i hur språk kan definieras samt hur data kan behandlas. Den ska dessutom ge kunskaper i teorier för konstruktion av olika typer av kompilatorer.
Lärandemål
Studenten ska efter kursen kunna konstruera kompilatorer som översätter program skrivna i ett högnivåspråk till assemblerprogram.
Detta innebär att studenten specifikt ska kunna:
- Formulera en sammanhangsfri grammatik utifrån en informell beskrivning av ett sammanhangsfritt språk, med hjälp av BNF.
- Skapa en rekursiv top-down kompilator utifrån en sammanhangsfri grammatik.
- Använda verktyg för automatgenererade kompilatorer. Detta inkluderar att kunna tolka felmeddelanden från verktyget.
- Hantera syntaxdriven översättning för typanalys.
- Visa vilken roll en aktiveringspost har under körning av ett program som består av fler än en funktion.
Innehåll
Syntaktisk och semantisk definition av språk. Lexikalisk analys. LL och LR- metoderna för syntaktisk analys. Syntaxdriven översättning. Exekveringsomgivning. Intermediär representation av program. Automatgenererade översättare.
Undervisning
Lektioner med inslag av både föreläsningar och övningar samt laborationsprojekt med tillgång till handledning vid behov.
Särskild behörighet
Programmeringskunskaper i ett högnivåspråk, kunskaper i begreppen finita automater, reguljära språk och reguljära uttryck, kunskaper i datastrukturer och algoritmer samt erfarenhet av problemlösning i ett programmeringsprojekt. Detta kan uppnås genom att ha avslutat kurserna Programmeringsteknik med C# 7,5 hp, Diskret matematik 7,5 hp, Datastrukturer, algoritmer och programkonstruktion 7,5 hp samt Funktionell programmering med F# 7,5 hp eller Operativsystem 7,5 hp eller Datakommunikation 7,5 hp eller motsvarande.
Examination
Laboration (LAB1), Två laborationsprojekt genomförs under kursen, 4 högskolepoäng, betyg Godkänd (G)
Tentamen (TEN1), 4 skriftliga prov fördelade över kurstiden, eller lämna in dagbok med individuella handledarträffar. Omprövning av detta moment sker genom ett skriftligt salsprov i omtentamensveckor, 3,5 högskolepoäng, betyg 3, 4 eller 5
En student som har ett intyg från MDU avseende sin funktionsnedsättning har möjlighet att anmäla önskemål om anpassning vid salstentamina eller annan examinationsform i enlighet med Regler och anvisningar för examination på grundnivå och avancerad nivå vid Mälardalens högskola (2020/1655). Det är examinator som, utifrån det intyg som utfärdats, beslutar om eventuell anpassning och i så fall vilken anpassning som ska gälla.
Misstankar om vilseledande vid examination (fusk) anmäls, enligt högskoleförordningen, till universitetets rektor och prövas av universitetets disciplinnämnd. Om disciplinnämnden anser att en student gjort sig skyldig till en disciplinförseelse fattar nämnden beslut om en disciplinär åtgärd, vilket är varning eller avstängning.
Betyg
Med beröm godkänd, icke utan beröm godkänd, godkänd, underkänd
Övergångsbestämmelser och övriga föreskrifter
Kursen överlappar hetl med CD5110.