Design, defination og implementation af programmeringssprog

2018/2019

Forudsætninger/Anbefalede forudsætninger for at deltage i modulet

Anbefalede faglige forudsætninger:
Projekt- og kursusmodulerne på 1. – 3. semester samt at kursusmodulerne Syntaks og semantik, Sprog og oversættere og Principper for samtidighed og styresystemer 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ætterkonstruktion

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
  • 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
  • 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, der skal omfatte:

  • en analyse af en datalogisk problemstilling, hvis løsning naturligt kan beskrives I form af design af et konkret programmeringssprog
  • en formel definition af relevante, centrale dele af dette programmeringssprogs syntaks og semantik
  • i tilknytning hertil konstruktion af en oversætter/fortolker for sproget

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
VurderingskriterierSom angivet i Fakultets vurderingskriterier
http:/​/​www.tech.aau.dk/​digitalAssets/​337/​337434_vurderingskriterier.pdf

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
ModulkodeDSNSWB401
ModultypeProjekt
Varighed1 semester
SemesterForår
ECTS15
TompladsJa
UndervisningsstedCampus Aalborg
Modulansvarlig

Organisation

StudienævnStudienævnet for Datalogi
FakultetDet Tekniske Fakultet for IT og Design