Implementering af programmeringssprog (IPS)
Kursusindhold
Formål: At give de studerende indsigt i,
hvordan programmer skrevet i højniveausprog implementeres på en
computer.
I undervisningen gennemgås forskellige elementer af fortolkning og
oversættelse af programmeringssprog: leksikalsk analyse,
syntaksanalyse, typecheck, fortolkning, kodegenerering,
registerallokering og lagerhåndtering. De grundlæggende metoder til
implementering af disse elementer gennemgås, inklusive brug og
virkemåde af semi-automatiske værktøjer.
I forbindelse med leksikalsk analyse og syntaksanalyse vises
det, hvordan beskrivelser, der er bekvemme for mennesker (hhv.
regulære udtryk og kontekstfri grammatikker) bliver omformet til
automater, som er bekvemme for maskiner. Disse omformninger er
grundlaget for værktøjer, der automatisk kan lave leksikalske
analysatorer og syntaksanalysatorer ud fra beskrivelser.
Afgørlighed af egenskaber ved grammatikker og automater berøres.
I forbindelse med generering af mellem- og maskinkode gennemgås,
hvordan man på basis af den syntaktiske struktur af et program kan
danne maskinkode.
Der bliver vist forskellige metoder til optimering af kode.
Kurset er mest relevant for datalogistuderende, men specielt indholdet om grammatikker og automater er relevant for matematikere, og den praktiske del af kurset er relevant for alle, der vil implementere domænespecifikke programmeringssprog til brug i eget fag.
Implementation of Programming Languages (IPS)
Bacheloruddannelsen i bioinformatik
Bacheloruddannelsen i datalogi
Viden
- at redegøre for faseopdeling af oversættelses- og fortolkningsprocessen og fasernes formål;
- at anvende teoretisk indsigt om formelle sprog, regulære udtryk, kontekstfri grammatikker, afgørlighed og graffarvning;
- at forklare, hvordan oversætterværktøjer arbejder og deres begrænsninger.
Færdigheder
- at bruge værktøjer til leksikalsk og syntaktisk analyse;
- at beskrive og vurdere oversætterudvikling i skriftlig form;
- at være i stand til at arbejde med en ikke-triviel kodebase og at udvide denne væsentligt.
Kompetencer
- at designe og implementere en oversætter fra et højniveausprog til maskinkode;
- at vurdere og bruge passende værktøjer og biblioteker til oversættelsesprocessen;
- at vurdere ressourceforbrug (tid og plads) af højniveauprogrammer ud fra kendskab til deres implementering.
Undervisningen vil foregå med en kombination af forelæsninger, øvelser og et praktisk projekt (med rapport). Rapportopgaven stilles ved kursets start og afleveres to uger før eksamen, og løses i grupper på indtil tre personer. Desuden er der fem mindre, individuelle opgaver.
Se Absalon, når kurset er blevet oprettet. Forventes at være: Torben Æ. Mogensen, "Introduction to Compiler Design (3rd edition)", Springer, evt. suppleret med noter.
Kendskab til maskinkodeprogrammering, samt programmering i F#.
Kurset forudsætter desuden et grundlæggende kendskab til regulære
udtryk, automater og kontekstfri grammatikker, som kan opnås ved at
følge kurset "Databases and Information Systems (DIS)"
(2023/24-udgaven eller senere) senest samtidigt, eller ved
selvstudium.
De studerende får individuel skriftlig feedback på ugeopgaverne og gruppevis på projektet. Generel, kollektiv feedback på opgaver og projekt kan også gives ifm. øvelserne.
- ECTS
- 7,5 ECTS
- Prøveform
-
Skriftlig stedprøve, 4 timer med opsyn.
- Prøveformsdetaljer
- Den skriftlige stedprøve er en ITX-eksamen.
Se vigtig information om ITX-stedprøver på Studieinformation under punktet: Eksamen -> Eksamensform og regler -> Skriftlig stedprøve (ITX-prøve) - Krav til indstilling til eksamen
-
1. Projekt-rapporten skal være godkendt.
2. En (ved kursusstart fastsat) brøkdel af de 4-6 individuelle ugeopgaver skal være godkendt. - Hjælpemidler
- Skriftlige hjælpemidler tilladt
Noter og kursets bog.
Bøger, noter og lignende kan medbringes i papirform eller uploades før eksamen og tilgås digitalt fra ITX-computeren. Læs mere om dette på Studieinformation.
- Bedømmelsesform
- 7-trins skala
- Censurform
- Ekstern censur
- Reeksamen
-
4 timers skriftlig prøve med skriftlige hjælpemidler (som ordinær eksamen).
Krav til indstilling til re-eksamen:
Såfremt den studerende ikke blev indstillet til den ordinære eksamen, er det muligt at gen-/efteraflevere manglende opgaver og/eller projektrapport fra indeværende studieår, senest 3 uger før reeksamensdatoen.
Kriterier for bedømmelse
Se målbeskrivelse
Enkeltfag dagtimer (tompladsordning)
- Kategori
- Timer
- Forelæsninger
- 39
- Forberedelse (anslået)
- 90
- Øvelser
- 21
- Projektarbejde
- 40
- Eksamensforberedelse
- 12
- Eksamen
- 4
- Total
- 206
Kursusinformation
- Undervisningssprog
- Dansk
- Kursusnummer
- NDAB16006U
- ECTS
- 7,5 ECTS
- Niveau
- Bachelor
- Varighed
-
1 blok
- Placering
- Blok 4
- Skemagruppe
-
C
- Kapacitet
- Ingen begrænsning – medmindre du tilmelder dig i eftertilmeldingsperioden (BA og KA) eller som merit- eller enkeltfagsstuderende.
- Studienævn
- Studienævn for Matematik og Datalogi
Udbydende institut
- Datalogisk Institut
Udbydende fakultet
- Det Natur- og Biovidenskabelige Fakultet
Kursusansvarlig
- Andrzej Filinski (7-67746a78806b70466a6f34717b346a71)
Er du BA- eller KA-studerende?
Kursusinformation for indskrevne studerende