DM546: Oversætterkonstruktion (5 ECTS)

STADS: 15012401

Niveau
Bachelorkursus

Undervisningsperiode
Kurset er placeret i forårssemesteret.

Ansvarlige undervisere
Email: kslarsen@imada.sdu.dk

Skemaoplysninger
Hold Type Dag Tidsrum Lokale Uger Kommentar
Fælles I Tirsdag 12-14 U143 6
Fælles I Tirsdag 12-14 U142 7-8,10
Fælles I Fredag 12-14 U23A 5-10
Fælles I Fredag 12-13 U23A 11
H1 TE Torsdag 14-15 U8 6
H1 TE Torsdag 14-16 U8 7,9-11
H1 TL Torsdag 14-16 IMADA ComputerLab 8
H1 TE Fredag 08-10 U24 6
H1 TE Fredag 14-16 U23A 7,9
H1 TL Fredag 14-16 IMADA ComputerLab 8
H1 TE Fredag 13-15 U142 11
H2 TE Torsdag 08-20 IMADA semi 14
H2 TE Fredag 08-20 IMADA semi 14
Vis hele skemaet
Vis personligt skema for dette kursus.

Kommentar:
Ubegrænset deltagerantal.

Indgangskrav:
Ingen

Faglige forudsætninger:
Den studerende forventes at have kendskab til stoffet fra DM548 Computerarkitektur og systemprogrammering samt DM507 Algoritmer og datastrukturer. DM553 Kompleksitet og beregnelighed forventes fulgt senest samtidigt med kurset.

Formål
Kursets formål er at give kendskab til begreber og teknikker, der er nødvendige for at implementere en moderne compiler for et højniveau imperativt programmeringssprog.

Kurset bygger på færdigheder opnået i specielt DM546 Oversætterkonstruktion og giver kompetencer til bachelorskrivning indenfor området.

I forhold til uddannelsens kompetenceprofil har kurset fokus på:
  • et solidt kendskab til metoderne fra fagets centrale discipliner, på et niveau så de selvstændigt kan bringe disse i anvendelse i konkrete problemstillinger.
  • viden om principper for oversættelse mellem formelle sprog.


Målbeskrivelse
For at opnå kursets formål er det læringsmålet for kurset, at den studerende demonstrerer evnen til at:
  • designe scannere og parsere udfra top-down såvel som bottom-up paradigmer både med og uden brug af værktøjer og kunne opbygge abstrakte syntakstræer i forbindelse hermed.
  • designe symboltabeller og gøre rede for, hvordan disse anvendes til typecheck og andre semantiske check.
  • gøre rede for, hvordan udførbar kode kan genereres ud fra et abstrakt syntakstræ.
  • forklare om diverse former for kodeoptimering; herunder detaljer omkring, hvordan liveness analyse kan anvendes til registerallokering.
  • gøre rede for funktionaliteten af de gennemgåede algoritmer til garbage collection.
Indhold
Kurset indeholder følgende faglige hovedområder:
Scannere, parsere, oversættergenereringsværktøjer, abstrakte syntakstræer, symboltabeller, typecheck, kodegenerering, optimering, liveness analyse, registerallokering, garbage collection.
 


Litteratur
    Meddeles ved kursets start.


Kursets hjemmeside
Dette kursus benytter e-learn (blackboard).

Forudsætningsprøver
Ingen

Eksamen- og censurform:
  1. Mundtlig eksamen. Ekstern censur. Karakter efter 7-trinsskalaen (15012402).


Vejledende timetal
På naturvidenskab er undervisningen tilrettelagt efter trefasemodellen dvs. intro, trænings- og studiefasen.
Introfase: 21 timer
Træningsfase: 21 timer, heraf:
 - Eksaminatorie: 21 timer

Aktiviteter i studiefasen

Undervisningsform
I introfasen introduceres og perspektiveres begreber, teorier og modeller.
I træningsfasen træner de studerende færdigheder og trænger dybere ned i det stof. 
I studiefasen får de studerende faglige, personlige og sociale erfaringer, der sætter dem i stand til at befæste og videreudvikle deres videnskabelige kompetencer. Der er fokus på fordybelse, forståelse og udvikling af samarbejdskompetencer


Sprog
Dette kursus undervises på dansk eller engelsk, afhængigt af underviseren. Dog altid på Engelsk ved deltagelse af internationale studerende.

Kursustilmelding
Se tilmeldingsfrister.

Pris for åben uddannelse
Se priser for enkeltkurser.

Denne kursusbeskrivelse var gyldig fra 1. februar 2017 til 31. januar 2019.