Design, definition og implementation af programmeringssprog

2024/2025

Anbefalede faglige forudsætninger for at deltage i modulet

Modulet bygger videre på viden fra projektmodulerne på 1.-3. semester. Det anbefales at modulerne syntaks og semantik, sprog og oversættere og computerarkitektur og operativsystemer følges parallelt med projektarbejdet.

Modulets indhold, forløb og pædagogik

FORMÅL          
At den studerende lærer, hvordan man kan designe og implementere et programmeringssprog og hvordan denne proces kan understøttes af formelle definitioner af sprogets syntaks og semantik og teknikker og metoder til oversætter- og/eller fortolke- konstruktion

BEGRUNDELSE    
Al software er skrevet i et programmeringssprog og oversættes eller fortolkes for at kunne eksekveres. Design, beskrivelse og konstruktion af Programmeringssprog, oversættere, fortolkere og lignende værktøjer er af den grund centrale emner i datalogi.

Projektarbejdet fokuserer derfor på at sikre, at de studerende forstår vigtige underliggende begreber i programmeringssprogenes verden, hvorfor disse begreber er opstået og hvordan de beskrives formelt og repræsenteres i en implementation.Forståelse af disse emner er fundamentale i forståelsen af nye og eksisterende programmeringssprog og deres anvendelsesmuligheder.

Ydermere anvendes mange teknikker og værktøjer, oprindeligt udviklet til sprog og oversættere, også i andre sammenhænge i programudvikling


 

Læringsmål

Viden

  • forstå og gøre rede for grundbegreberne i en definition af et programmeringssprogs syntaks og semantik  

  • dokumentere kendskab til og overblik over de berørte teknikker og begreber inden for sprogdesign og oversætterkonstruktion  

  • redegøre for de enkelte faser og sammenhængen mellem faserne i en oversætter  eller fortolker

  • redegøre for de anvendte implementationsteknikker i den konstruerede oversætter/fortolker  

  • benytte korrekt fagterminologi

Færdigheder

  • beskrive et programmeringssprogs syntaks og semantik ved brug af relevante metoder

  • implementere en oversætter eller fortolker til et konkret programmeringssprog eller til en udvidelse til et eksisterende programmeringssprog

  • afteste den implementerede oversætter eller fortolker på alle niveauer: unit, integration og acceptance test

  • redegøre for konfigurationsstyring under udviklingen af oversætter eller fortolker

  • ræsonnere datalogisk om og med de berørte begreber og teknikker

Kompetencer

  • vurdere anvendelse og anvendelighed af kendte værktøjer og teknikker til definition og implementation af programmeringssprog  

  • forstå og gøre rede for hvordan konkrete sproglige begreber repræsenteres på køretidspunkter og i formel semantik

Undervisningsform

Projektarbejde

Projektet tager udgangspunkt i en analyse af en datalogisk problemstilling, hvis løsning naturligt kan beskrives i form af design af et konkret programmeringssprog. Projektet omfatter en formel definition af relevante dele af dette programmeringssprog. Fokus for projektet er konstruktion af en robust oversætter/fortolker for centrale dele af sproget

Digital understøttelse af kompetenceudvikling inden for konfigurationsstyring

Omfang og forventet arbejdsindsats

Det forventes at den studerende bruger 30 timer per ECTS, hvilket for denne aktivitet betyder 450 timer.

Eksamen

Prøver

Prøvens navnDesign, definition og implementation af programmeringssprog
Prøveform
Mundtlig pba. projekt
ECTS15
Bedømmelsesform7-trins-skala
CensurEkstern prøve
VurderingskriterierVurderingskriterierne er angivet i Universitetets eksamensordning

Yderligere informationer

Kontakt: Studienævn for datalogi via cs-sn@cs.aau.dk eller 9940 8854

 

Fakta om modulet

Engelsk titelDesign, Definition and Implementation of Programming Languages
ModulkodeDSNSWB410
ModultypeProjekt
Varighed1 semester
SemesterForår
ECTS15
UndervisningssprogDansk og engelsk
TompladsJa
UndervisningsstedCampus Aalborg
Modulansvarlig

Organisation

UddannelsesejerBachelor (BSc) i teknisk videnskab (software)
StudienævnStudienævn for Datalogi
InstitutInstitut for Datalogi
FakultetDet Teknisk Fakultet for IT og Design