Göm menyn

TDP019 Projekt: Datorspråk

Språkspecifikation


Inlämning

När du lämnar in språkspecifikationerna ska den mailas till er handledare. Det går bra att lämna in språkspecen som .txt/.md/.org eller i undantagsfall .pdf(om ni verkligen behöver det).

Språkspecifikation

Språkspecifikationen är ett projektdokument som ni kommer jobba med att ta fram under kursens period 1. Ni kan skriva språkspecifikationen som ett mer eller mindre formellt dokument eller välja att skriva den som en samling anteckningar eller idéer. Språkspecifikationen kommer inte bedömmas i slutänden, men ni kommer att utveckla innehållet i tre steg och diskutera det på handledningstillfällena under period 1.

Syftet med språkspecifikationen är att ni ska ta fram en plan för hur ert språk ska se ut och fungera. I början har ni kanske bara en enkel idé, men efterhand som ni jobbar med specifikationen kommer planen för språket ta form och bli mer och mer detaljerad. När ni ska börja implementera ert språk i period 2 är alla frågetecken runt språkets fungerande utredda, och ni kan fokusera på själva implementationen.

Om ni skriver en utförlig språkspecifikation så kommer ni att kunna använda stora delar av den när ni senare ska skriva ert språks användarhandledning och systemdokumentation.

Språkspecifikation version 1

Språkspecifikationens version 1 ska ni ha tagit fram innan kursens första handledningstillfälle. Målet med denna version är att ni ska ha ett första förslag på språk. Detta förslag behöver inte vara särskilt utvecklat, men det är bra om ni har tankar om vilket sorts språk ni vill skapa, till exempel om det ska vara interpreterat, objektorienterat eller kanske ett domänspecifikt språk för att rita grafer.

Om ni har kommit lite längre i era tankar så kan det även passa bra att visa några kodexempel för hur språket ska se ut.

Språkspecifikation version 2

Denna version ska vara klar till handledningstillfälle 2.

Dokumentet ska nu i stort beskriva det språk som ni har designat och kommer att implementera. Det är bra om ni har tänkt igenom hur olika aspekt av språket ska fungera.

Exempel på saker ni kan ta upp i version 2:

  • Ett utkast av språkets grammatik
  • Statisk vs dynamisk typning?
  • När en funktion anropas med komplexa datatyper så som strängar eller listor, blir det en kopia eller referens?
  • Om språket är objektorienterat, finns det: Public/protected/private? Arv? Osv.
  • Hur funkar scopet: Vid anrop av funktion? I blocket tillhörande en for-loop? Delar funktioner och variabler scope? Osv (OBS: scope tas upp på senare föreläsning, så ni vill kanske vänta lite med att beskriva scopet).
  • Mer detaljerade kodexempel
  • Andra relevanta detaljer

Språkspecifikation version 3

Denna version ska vara klar till handledningstillfälle 3, och kan anses vara den slutliga versionen av språkspecifikationen. Innehållet bör nu vara så komplett att ni kan lämna över det till någon annan som utifrån detta kan implementera det språk ni har sett för er.

Ni bör ha inkorporerat den feedback ni har fått på handledningstillfällena. Grammatiken bör nu vara utförlig, och alla språkets konstruktioner bör finnas med.


Sidansvarig: Pontus Haglund
Senast uppdaterad: 2024-04-11