DD2481 Principer för programspråk 7,5 hp

Principles of Programming Languages

  • Utbildningsnivå

    Avancerad nivå
  • Huvudområde

    Datalogi och datateknik
  • Betygsskala

    A, B, C, D, E, FX, F

Kurstillfällen/kursomgångar

VT19 popl19 för programstuderande

VT20 popl20 för programstuderande

Lärandemål

Efter fullgjord kurs ska studenten kunna:

  • beskriva programspråk och programbeteende formellt,
  • resonera om tillstånd, effekter och muterbarhet i program på ett precist sätt,
  • resonera om och använda mekanismer för abstraktion och modularisering,
  • definiera typsystem formellt,
  • bevisa sundhet hos typsystem,
  • resonera om ekvivalens mellan program,
  • definiera och resonera om kontrakt,
  • diskutera öppna frågor om avancerade finesser i programspråk och reflektera kritiskt över dem,
  • skriva program som implementerar olika formalismer, mekanismer och språkfinesser

i syfte att

  • kunna föra djupare diskussioner om programspråksprinciper
  • vara förberedd för kurser i kompilatorteknik.

Kursens huvudsakliga innehåll

Formella språk, ändliga automater, kontextfria grammatiker.

Tillstånd, räckvidd, livstid, statisk och dynamisk information, effekter, muterbarhet.

Grundläggande operationell semantik.

Abstraktionsmekanismer, modularisering, kontrakt.

Typer, invarianter, programekvivalens.

Verktyg för programanalys.

Exempel på avancerade finesser i programspråk.

Behörighet

.

Rekommenderade förkunskaper

Programmeringsteknik, algoritmer och datastrukturer motsvarande någon av kurserna DD1320, DD1321, DD1325, DD1327, DD1338, DD1339, DD1340, DD1341, DD1346 eller ID1020.

Litteratur

Meddelas senast 10 veckor före kursstart på kurswebben.

Examination

  • LAB1 - Laborationsuppgifter, 3,5, betygsskala: P, F
  • TEN1 - Tentamen, 2,5, betygsskala: A, B, C, D, E, FX, F
  • UPP1 - Uppsats, 1,5, betygsskala: A, B, C, D, E, FX, F

Om särskilda skäl finns kan annan examinationsform användas.

I denna kurs tillämpas skolans hederskodex, se: http://www.kth.se/csc/student/hederskodex.

Krav för slutbetyg

Godkända laborationsuppgifter, uppsats och tentamen

Ges av

EECS/Datavetenskap

Kontaktperson

Philipp Haller (phaller@kth.se)

Examinator

Philipp Haller <phaller@kth.se>

Övrig information

Betygskriterier meddelas vid kursstart.

Påbyggnad

DD2489 Kompilatorkonstruktion

Versionsinformation

Kursplan gäller från och med VT2019.
Examinationsinformation gäller från och med VT2019.