Programspråksteknik
Programming Language Technology
Om kursplanen
Betygsskala
Kursens moduler
Inplacering
Kursen kan ingå i följande program:
- Datavetenskap, kandidatprogram (N1COS)
- Computer Science, masterprogram (N2COS)
- Applied Data Science, masterprogram (N2ADS)
Kursen ges även som fristående kurs vid Göteborgs Universitet.
Huvudområde med fördjupning
Behörighetskrav
Förkunskapskrav till kursen är avslutade kurser om 60 hp i ämnet Datavetenskap inklusive:
- 7,5 hp programmering (till exempel DIT143 Functional Programming, DIT953 Objektorienterad programmering och design eller motsvarande)
- 7,5 hp datastrukturer (till exempel DIT961 Datastrukturer, DIT725 Logik, algoritmer och datastrukturer eller motsvarande)
Följande kunskapsnivå i Engelska krävs: Engelska 6/Engelska nivå 2 eller motsvarande från ett erkänt internationellt test, t.ex. TOEFL, IELTS.
Innehåll
Syftet med kursen är att skapa förståelse för hur programmeringsspråk utformas, dokumenteras och implementeras. Kursen behandlar grundläggande tekniker och verktyg som behövs för att implementera interpretatorer (tolkar), och ger dessutom en introduktion till kompilatorer.
Studenterna kommer att lära sig programspråkens grammatik när de implementerar syntaxanalys och om typsystem vid implementering av typkontrollerare. Genom att implementera interpretatorer och kompilatorer lär sig studenten att lösa praktiska implementeringsproblem liksom teori för formell semantik.
Mål
Efter avslutad kurs ska studenten kunna:
Kunskap och förståelse
- förklara grundläggande implementationsproblematik för både imperativa och funktionella språk,
- förklara principerna för LL- och LR-parsning,
- förklara hur ändliga automater fungerar,
Färdigheter och förmåga
- definiera och implementera abstrakt syntax,
- definiera syntaxen för programmeringsspråk med hjälp av kontextfria grammatiker samt implementera parsrar med hjälp av standardverktyg,
- utforma regler för operativ semantik och implementera interpretatorer för både imperativa och funktionella språk,
- skriva enkla kodgeneratorer,
- tillämpa tekniken för syntaxstyrd översättning och hur man implementerar för ett valfritt programmeringsspråk,
- formulera typinferensregler och implementera typkontrollerare för funktionella och imperativa programmeringsspråk,
- utforma regler för operativ semantisk och implementera interpretatorer för funktionella och imperativa programmeringsspråk,
Värderingsförmåga och förhållningssätt
- resonera kring programspråksdesign och göra avvägningar till exempel med avseende på effektivitet och användbarhet.
Hållbarhetsmärkning
Former för undervisning
Undervisning ges i form av föreläsningar, övningar och laborationer med individuell handledning.
Undervisningsspråk: engelska
Examinationsformer
Kursen examineras genom en individuell skriftlig salstentamen i slutet av kursen och laborationer som genomförs individuellt eller i par.
Om en student som har underkänts två gånger på samma examinerande moment önskar byta examinator inför nästa examinationstillfälle ska en sådan begäran bifallas om det inte finns särskilda skäl däremot (6 kap. 22 § HF).
Om en student har fått besked om pedagogiskt stöd från Göteborgs universitet med rekommendation om anpassad examination och/eller anpassad examinationsform kan examinator, i det fall det är förenligt med kursens lärandemål och förutsatt att inte orimliga resurser krävs, besluta att bevilja studenten anpassad examination och/eller anpassad examinationsform.
Om en kurs har avvecklats eller genomgått en större förändring ska studenten erbjudas minst två examinationstillfällen, utöver ordinarie examinationstillfälle. Dessa tillfällen fördelas under en tid av minst ett år, dock som längst två år efter det att kursen avvecklats/förändrats. Vad gäller praktik och verksamhetsförlagd utbildning (VFU) gäller motsvarande, men med begränsning till endast ett ytterligare examinationstillfälle.
Om en student har fått besked om att denne uppfyller kraven för att vara student vid Riksidrottsuniversitetet (RIU-student) har examinator rätt att besluta om anpassning vid examination, om detta görs i enlighet med Lokala regler gällande RIU-studenter vid Göteborgs universitet
Betyg
Delkurser
- Tentamen, 6 hp
Betygsskala: Väl godkänd (VG), Godkänd (G) och Underkänd (U) - Labborationer, 1,5 hp
Betygsskala: Godkänd (G) och Underkänd (U)
På kursen ges något av betygen Väl godkänd (VG), Godkänd (G) och Underkänd (U).
För att erhålla Väl godkänd (VG) för hela kursen ska studenten blivit godkänd på delmomentet laborationer och fått betyget Väl godkänd på delmomentet Skriftlig tentamen.
Kursvärdering
Kursen utvärderas genom möten, både under och efter kursen, mellan lärare och studentrepresentanter. Ett anonymt skriftligt frågeformulär skickas även ut till studenterna efter kursens slut. Resultaten av utvärderingarna används för att förbättra kursinnehållet och som indikation till vilka delar som skulle kunna läggas till, tas bort, förbättras eller ändras.
Övriga föreskrifter
Kursen är samläst med Chalmers.
Kursen ersätter DIT230 Programming Languages. Kursen kan inte ingå i en examen som innehåller DIT230. Inte heller kan kursen inkluderas i en examen som baseras på en annan examen där DIT230 ingår.
Kursen kan inte ingå i en examen som innehåller DIT229. Inte heller kan kursen ingå i en examen som baseras på en annan examen där kursen DIT229 ingår.