NDAB16006U Implementering af programmeringssprog (IPS)
Implementation of Programming Languages (IPS)
Bacheloruddannelsen i datalogi
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 datamater. 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.
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.
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.
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.
Se Absalon, når kurset er blevet oprettet. Forventes at være: Torben Mogensen, "Introduction to Compiler Design", Springer, evt. suppleret med noter.
- Kategori
- Timer
- Eksamen
- 4
- Forberedelse
- 80
- Forelæsninger
- 28
- Praktiske øvelser
- 14
- Projektarbejde
- 80
- I alt
- 206
Som meritstuderende - klik her!
Som enkeltfags-studerende (efter- og videreuddannelse) - klik
her!
- Point
- 7,5 ECTS
- Prøveform
- Skriftlig prøve, 4 timer med opsyn.---
- Krav til indstilling til eksamen
1. Projekt-rapporten skal være godkendt.
2. Mindst fire ud af de fem individuelle ugeopgaver skal være godkendt. Der er mulighed for genaflevering af de fire første ugeopgaver, såfremt de ikke godkendes i første omgang.
Af hensyn til tidsrammen er det ikke muligt at genaflevere projektrapporten eller den femte ugeopgave.- Hjælpemidler
- Skriftlige hjælpemidler tilladt
Personlige noter og kursets bog.
- Bedømmelsesform
- 7-trins skala
- Censurform
- Ekstern censur
- Reeksamen
4 timers skriftlig prøve med skriftlige hjælpemidler (som ordinær eksamen). Såfremt der er 10 eller færre tilmeldte afholdes mundtlig prøve (30 min. inkl. votering) med forberedelse (30 min) med skriftlige hjælpemidler.
Krav til indstilling til re-eksamen:
Følgende kvalifikationskrav er opfyldt fra de foregående to studieår:
1. Projektrapporten skal være godkendt.
2. Mindst fire ud af de fem individuelle ugeopgaver skal være godkendt.Er kvalifikationskravene ikke opfyldte fra de foregående to studieår, skal:
1. Projektrapporten (fra indeværende studieår) genafleveres og godkendes.
2. Mindst fire ud af de fem individuelle ugeopgaver (fra indeværende studieår) skal være godkendt.
Kriterier for bedømmelse
Se målbeskrivelse.
Kursusinformation
- Sprog
- Dansk
- Kursuskode
- NDAB16006U
- Point
- 7,5 ECTS
- Niveau
- Bachelor
- Varighed
- 1 blok
- Placering
- Blok 4
- Skemagruppe
- C
- Kursuskapacitet
- Ingen begrænsning
- Efter- og videreuddannelse
- Studienævn
- Studienævn for Matematik og Datalogi
Udbydende institut
- Datalogisk Institut
Udbydende fakultet
- Det Natur- og Biovidenskabelige Fakultet
Kursusansvarlige
- Cosmin Eugen Oancea (cosmin.oancea@di.ku.dk)