Kursplan för Programspråk

Kursplanen innehåller ändringar
Se ändringar

Kursplan fastställd 2019-02-07 av programansvarig (eller motsvarande).

Kursöversikt

  • Engelskt namnProgramming language technology
  • KurskodDAT151
  • Omfattning7,5 Högskolepoäng
  • ÄgareMPALG
  • UtbildningsnivåAvancerad nivå
  • HuvudområdeDatateknik, Informationsteknik
  • InstitutionDATA- OCH INFORMATIONSTEKNIK
  • BetygsskalaTH - Fem, Fyra, Tre, Underkänd

Kurstillfälle 1

  • Undervisningsspråk Engelska
  • Anmälningskod 02136
  • Blockschema
  • Sökbar för utbytesstudenterJa

Poängfördelning

0112 Tentamen 6 hp
Betygsskala: TH
0 hp6 hp0 hp0 hp0 hp0 hp
  • 13 Jan 2020 fm H
  • 07 Apr 2020 fm DIST
  • 27 Aug 2020 em J
0212 Laboration 1,5 hp
Betygsskala: UG
0 hp1,5 hp0 hp0 hp0 hp0 hp

I program

Examinator

Gå till kurshemsidan (Öppnas i ny flik)

Ersätter

  • DAT150 Programming language technology

Behörighet

Information saknas

Särskild behörighet

För kurser på avancerad nivå gäller samma grundläggande och särskilda behörighetskrav som till det kursägande programmet. (När kursen är på avancerad nivå men ägs av ett grundnivåprogram gäller dock tillträdeskrav för avancerad nivå.)
Undantag från tillträdeskraven: Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

Kursspecifika förkunskaper

Kursen kräver:
- Goda programmeringskunskaper i Haskell, Java, C eller C ++
- God kännedom om något av programspråken Java, C eller C ++
- Grundläggande färdigheter i Unix programmering (Shell-programmering)
- Grundläggande kunskaper i datastrukturer och algoritmer

Följande rekommenderas också:
- Grundläggande kunskaper i logik (booleska operatorer, inferensregler)
- Kännedom om funktionell programmering
- Grundläggande kunskaper i assemblerprogrammering

Syfte

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.

Lärandemål (efter fullgjord kurs ska studenten kunna)

  • Använda reguljära uttryck för att definiera ett programmeringsspråks lexikala struktur, förklara hur ändliga automata fungerar, och implementera lexikala analysverktyg;
  • definiera syntaxen för programmeringsspråk med hjälp av kontextfria grammatiker, förklara principerna för LL och LR-parsning, samt implementera parsers med hjälp av standardverktyg;
  • definiera och implementera abstrakt syntax;
  • behärska tekniken för syntaxstyrd översättning och hur man implementerar för ett valfritt programmeringsspråk;
  • formulera typinferensregler och implementera typkontrollerare;
  • utforma regler för operativ semantisk och implementera interpreters (tolkar);
  • skriva enkla kodgeneratorer;
  • känna till grundläggande implementationsproblematik för både imperativa och funktionella språk;
  • Implementera polymorfa typkontroll med hjälp av unifiering;
  • Använda "closures" för att implementera funktionella programmeringsspråk.

Innehåll

Genom att implementera interpretatorer och kompilatorer lär du dig lösa praktiska implementationsproblem men även teori för formell semantik.
Du kommer att lära dig om programspråkens grammatik när du implementerar syntaxanalys och om typsystem vid implementering av typkontrollerare.
Genom att experimentera med språkutvidgningar får du en inblick i bra och dåliga sätt att konstruera programmeringsspråk.

Organisation

Undervisning ges i form av föreläsningar, övningar och laborationer med individuell handledning.

Litteratur

Information om litteratur ges på kursens hemsida före kursstart.

Examination inklusive obligatoriska moment

För att bli godkänd på kursen krävs godkänd skriftlig tentamen samt godkända laborationer. Baserat på tentamensresultatet ges betygen U,3,4 eller 5.

Kursplanen innehåller ändringar

  • Ändring gjord på tentamen:
    • 2020-01-08: Plats Plats ändrat från M till Hörsalar på hörsalsvägen av annbe
      [2020-01-13 6,0 hp, 0112]
    • 2019-12-03: Plats Plats ändrat från Johanneberg till M av grunnet
      [2020-01-13 6,0 hp, 0112]