Kursplan fastställd 2021-02-26 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 - Mycket väl godkänd (5), Väl godkänd (4), Godkänd (3), Underkänd
Kurstillfälle 1
- Undervisningsspråk Engelska
- Anmälningskod 02122
- Blockschema
- Sökbar för utbytesstudenterJa
Poängfördelning
Modul | LP1 | LP2 | LP3 | LP4 | Sommar | Ej LP | Tentamensdatum |
---|---|---|---|---|---|---|---|
0112 Tentamen 6 hp Betygsskala: TH | 6 hp |
| |||||
0212 Laboration 1,5 hp Betygsskala: UG | 1,5 hp |
I program
- MPALG - DATAVETENSKAP - ALGORITMER, PROGRAMSPRÅK OCH LOGIK, MASTERPROGRAM, Årskurs 1 (obligatorisk)
- MPCSN - DATORER, NÄTVERK OCH SYSTEM, MASTERPROGRAM, Årskurs 1 (valbar)
- MPCSN - DATORER, NÄTVERK OCH SYSTEM, MASTERPROGRAM, Årskurs 2 (valbar)
- TIDAL - DATATEKNIK, HÖGSKOLEINGENJÖR - Allmän, Årskurs 3 (obligatoriskt valbar)
- TKITE - INFORMATIONSTEKNIK, CIVILINGENJÖR, Årskurs 3 (valbar)
Examinator
- Andreas Abel
- Universitetslektor, Computing Science, Data- och informationsteknik
Behörighet
Grundläggande behörighet för avancerad nivåSökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.
Särskild behörighet
Engelska 6Sö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.Kursens examinator får examinera enstaka studenter på annat sätt än vad som anges ovan om särskilda skäl föreligger, till exempel om en student har ett beslut från Chalmers om pedagogiskt stöd på grund av funktionsnedsättning.