NDAA04011U Oversættere (OV)

Årgang 2013/2014
Engelsk titel

Introduction to Compilers (OV)

Uddannelse
Bacheloruddannelsen i datalogi
Kursusindhold
Formål: At give de studerende indsigt i, hvordan programmer skrevet i højniveausprog oversættes til kode på maskiniveau.

I undervisningen gennemgås de forskellige faser af en oversætter:
Leksikalsk analyse, syntaksanalyse, typecheck, kodegenerering samt registerallokering. De grundlæggende metoder til disse faser
gennemgås, inklusive brug og virkemåde af semi-automatiske værktøjer.  Forskelle mellem fortolkning og oversættelse beskrives.

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.

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 at
administrere lager for oversatte programmer, og hvordan det får
indflydelse på, hvilken kode man genererer. Desuden gennemgås metoder til typecheck af programmer, registerallokering og optimering.
Målbeskrivelser
Kompetencer
  • at designe og implementere en oversætter fra et højniveaussprog til maskinkod;
  • at vurdere og bruge passende værktøjer og biblioteker til oversættelsesprocessen;
  • at vurdere ressourceforbrug (tid og plads) af højniveausprogrammer fra deres oversættelse til maskinkod.
Færdigheder
  • at bruge værktøjer til leksikalsk og syntaktisk analyse kompetent;
  • at beskrive og vurdere oversætterudvikling i skriftlig form.
Viden
  • at redegøre faseopdeling af oversættelsesprocessen og deres særlige formål
  • at anvende teoretisk indsigt på: Formelle sprog, regulært udtryk, kontekstfri grammatikker, 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, 2011.
Kendskab til maskinkodeprogrammering samt programmering i Standard ML.
Undervisningen vil foregå med en kombination af forelæsninger, øvelser og praktisk rapportopgavearbejde, heriblandt en løbende godkendelsesrapportopgave, som stilles ved kursets start og som afleveres efter fem uger, og løses i grupper på maksimalt tre personer, samt fem mindre individuelle opgaver.
  • Kategori
  • Timer
  • Eksamen
  • 20
  • Forberedelse
  • 84
  • Forelæsninger
  • 28
  • Praktiske øvelser
  • 14
  • Projektarbejde
  • 60
  • I alt
  • 206
Point
7,5 ECTS
Prøveform
Skriftlig aflevering, 5 dage
Der gives en uge (fem dage) til løsning af en karaktergivende individuel rapportopgave, der bygger videre på godkendelsesrapportopgaven. Der stilles et udvalg af flere forskellige lignende opgaver. Studerende, der har været i gruppe sammen til godkendelsesopgaven, kan ikke lave samme opgave i karakteropgaven. Der trækkes indenfor hver gruppe lod om vælgerrækkefølge til opgaverne. Eksaminator forestår lodtrækningen. Aflevering på Absalon.
Krav til indstilling til eksamen
1. Godkendelsesrapportopgaven skal være godkendt.

2. Mindst fire ud af de fem 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 godkendelsesrapportopgaven eller den femte ugeopgave.
Hjælpemidler
Alle hjælpemidler tilladt
Bedømmelsesform
7-trins skala
Censurform
Ekstern censur
Reeksamen
Som ved ordinær eksamen, dog med et mindre udvalg af individuelle opgaver og med bortfald af kravet om, at medlemmer af samme gruppe ikke må løse samme opgave.
Kriterier for bedømmelse
Se målbeskrivelse.