Design, definition og implementering af programmeringssprog

2020/2021

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 formel 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 til formelle definition

  • 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

Fokus for projektet er 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, centrale dele af dette programmeringssprog. Centrale dele af programmeringssproget realiseres ved konstruktion af en (prototype) oversætter/fortolker for 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 implementering 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
ModulkodeDSNCSITK221
ModultypeProjekt
Varighed1 semester
SemesterForår
ECTS15
UndervisningssprogEngelsk
TompladsJa
UndervisningsstedCampus Aalborg
Modulansvarlig

Organisation

StudienævnStudienævn for Datalogi
InstitutInstitut for Datalogi
FakultetDet Tekniske Fakultet for IT og Design