DM516: Compilerteori (5 ECTS)

STADS: 15003101

Niveau
Bachelorkursus

Undervisningsperiode
Kurset er placeret i forårssemesteret.
3. kvartal.

Ansvarlige undervisere
Email: kslarsen@imada.sdu.dk

Skemaoplysninger
Hold Type Dag Tidsrum Lokale Uger Kommentar
Fælles I Mandag 10-12 U27A 05-11
Fælles I Mandag 10-12 U27A 05-11
Fælles I Mandag 10-12 U27A 05-11
Fælles I Mandag 10-12 U27A 05-11
Fælles I Mandag 10-12 U27A 05-11
Fælles I Mandag 10-12 U27A 05-11
Fælles I Mandag 10-12 U27A 05-11
Fælles I Mandag 10-12 U27A 05-11
Fælles I Torsdag 14-16 U144 05-06
Fælles I Torsdag 14-16 U144 05-06
Fælles I Torsdag 14-16 U144 05-06
Fælles I Torsdag 14-16 U144 05-06, 08, 10
Fælles I Torsdag 14-16 U144 05-06
Fælles I Torsdag 14-16 U144 05-06
Fælles I Torsdag 14-16 U144 05-06
Fælles I Torsdag 14-16 U144 05-06
Fælles I Torsdag 14-16 U144 08
Fælles I Torsdag 14-16 U144 08
Fælles I Torsdag 14-16 U144 08
Fælles I Torsdag 14-16 U144 08
Fælles I Torsdag 14-16 U144 08
Fælles I Torsdag 14-16 U144 08
Fælles I Torsdag 14-16 U144 08
Fælles I Torsdag 14-16 U144 10
Fælles I Torsdag 14-16 U144 10
Fælles I Torsdag 14-16 U144 10
Fælles I Torsdag 14-16 U144 10
Fælles I Torsdag 14-16 U144 10
Fælles I Torsdag 14-16 U144 10
Fælles I Torsdag 14-16 U144 10
S1 TE Tirsdag 08-10 U10 05-11
S1 TE Tirsdag 08-10 U10 05-11
S1 TE Tirsdag 08-10 U10 05-11
S1 TE Tirsdag 08-10 U10 05-11
S1 TE Tirsdag 08-10 U10 05-11
S1 TE Tirsdag 08-10 U10 05-11
S1 TE Tirsdag 08-10 U10 05-11
S1 TE Tirsdag 08-10 U10 05-11
S1 TE Torsdag 14-16 U144 07
S1 TE Torsdag 14-16 U144 07, 09, 11
S1 TE Torsdag 14-16 U144 07
S1 TE Torsdag 14-16 U144 07
S1 TE Torsdag 14-16 U144 07
S1 TE Torsdag 14-16 U144 07
S1 TE Torsdag 14-16 U144 07
S1 TE Torsdag 14-16 U144 07
S1 TE Torsdag 14-16 U144 09
S1 TE Torsdag 14-16 U144 09
S1 TE Torsdag 14-16 U144 09
S1 TE Torsdag 14-16 U144 09
S1 TE Torsdag 14-16 U144 09
S1 TE Torsdag 14-16 U144 09
S1 TE Torsdag 14-16 U144 09
S1 TE Torsdag 14-16 U144 11
S1 TE Torsdag 14-16 U144 11
S1 TE Torsdag 14-16 U144 11
S1 TE Torsdag 14-16 U144 11
S1 TE Torsdag 14-16 U144 11
S1 TE Torsdag 14-16 U144 11
S1 TE Torsdag 14-16 U144 11
Vis hele skemaet
Vis personligt skema for dette kursus.

Kommentar:
Ubegrænset deltagerantal. 3. kvartal.

Indgangskrav:
Ingen

Faglige forudsætninger:
Stoffet fra DM506 Maskinarkitektur, DM507 Algoritmer og datastrukturer samt DM517 Beregnelighed skal være kendt.

Kursusintroduktion
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.

Kompetencer
De studerende vil opnå detaljeret indsigt i begrebsverdenen og teknikkerne indenfor compiler-konstruktion og skal kunne anvende den opnåede viden i relevante sammenhænge til

• at konstruere scannere og parsere både med og uden brug af værktøjer og opbygge abstrakt syntakstræ

• at implementere symboltabeller og anvende disse til typecheck og andre semantiske check

• at generere assemblerkode udfra et abstrakt syntakstræ

• at foretage diverse former for kodeoptimering; bl.a. under anvendelse af liveness analyse

• at implementere garbage collection.

Forventet læringsudbytte
Ved kursets afslutning forventes den studerende at kunne:

• 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 udfra et abstrakt syntakstræ
• forklare om diverse former for kodeoptimering; herunder detaljeret omkring, hvordan liveness analyse kan anvendes til registerallokering
• gøre rede for funktionaliteten af de gennemgåede algoritmer til garbage collection

Emneoversigt
Scannere, parsere, oversættergenereringsværktøjer, abstrakte syntakstræer, symboltabeller, typecheck, kodegenerering, optimering, liveness analyse, registerallokering og garbage collection.

Litteratur
  • Meddeles ved kursets start. .


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

Forudsætningsprøver
Ingen

Eksamen- og censurform:
Mundtlig eksamen. Ekstern censur. Karakter efter 7-trinsskalaen.

Reeksamen efter 4. kvartal.

Vejledende timetal
På naturvidenskab er undervisningen tilrettelagt efter trefasemodellen dvs. intro, trænings- og studiefasen.

Forelæsninger (21 timer) og eksaminatorier/laboratorier (21 timer).
Aktiviteter i studiefasen

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.

Dette er den nyeste version af en kursusbeskrivelse, som trådte i kraft den 1. feb 2009.