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.

Engelsk titel

Implementation of Programming Languages (IPS)

Uddannelse

Bacheloruddannelsen i datalogi

Målbeskrivelse

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.

 

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 (2nd 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.

Skriftlig
Mundtlig
Individuel
Kollektiv
Løbende feedback i undervisningsforløbet

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 prøve, 4 timer med opsyn.
Prøveformsdetaljer
Kurset er udtaget til 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. 67% af de 5 individuelle ugeopgaver skal være godkendt.

Der kan være begrænsninger på hvor mange ugeopgaver der kan genafleveres. Af hensyn til tidsrammen er det ikke muligt at genaflevere projektrapporten eller den sidste ugeopgave.

Hjælpemidler
Skriftlige hjælpemidler tilladt

Noter og kursets bog.

Da eksamen afholdes som ITX-eksamen, stiller KU’s eksamenshus computere til rådighed. Egen computer, tablet, lommeregner eller mobiltelefon må IKKE medbringes.

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 reeksamen som en mundtlig prøve (30 min. inkl. votering) med forberedelse (30 min) med skriftlige hjælpemidler.

 

Krav til indstilling til re-eksamen:

Som for ordinær eksamen.  Såfremt den studerende ikke allerede blev indstillet til den ordinære eksamen, er det muligt at gen-/efteraflevere opgaver og/eller projektrapport, senest 3 uger før reeksamensdatoen; ved denne mulighed kan enkelte delopgaver være erstattet med lignende opgaver af samme sværhedsgrad. Begge delkrav skal være opfyldt i det samme, indeværende eller umiddelbart foregående studieår.

Kriterier for bedømmelse

Se målbeskrivelse.

Enkeltfag dagtimer (tompladsordning)

  • Kategori
  • Timer
  • Forelæsninger
  • 28
  • Forberedelse (anslået)
  • 100
  • Praktiske øvelser
  • 21
  • Projektarbejde
  • 50
  • Eksamensforberedelse
  • 3
  • 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
Der kan være færre pladser i eftertilmeldingsperioden
Studienævn
Studienævn for Matematik og Datalogi
Udbydende institut
  • Datalogisk Institut
Udbydende fakultet
  • Det Natur- og Biovidenskabelige Fakultet
Kursusansvarlig
  • Andrzej Filinski   (7-647167757d686d43676c316e7831676e)
Gemt den 15-11-2023

Are you BA- or KA-student?

Are you bachelor- or kandidat-student, then find the course in the course catalog for students:

Courseinformation of students