Göm menyn

TDP007 Konstruktion av datorspråk

Kursinformation Vt1 2024


1. Syfte och mål

Det övergripande målet är att studenterna ska bli bättre på att använda olika programspråk och även konstruera egna språk. För att uppnå detta kommer vi att titta på olika typer av datorspråk, hur man definierar dem och hur man bygger verktyg för dem. Genom att studera principer för hur datorspråk är uppbyggda blir man bättre på att utnyttja de språk man redan kan, men också bättre på att i framtiden välja ett språk som passar det problem man arbetar med.


2. Innehåll

Kursen introducerar och använder det objektorienterade scriptspråket Ruby. Det är ett modernt språk som innehåller flera intressanta konstruktioner, men det ger oss också goda möjligheter att illustrera hur man kan bygga olika typer av verktyg för att hantera språk.

Kursen kan grovt delas in i fyra delar. Till varje del hör en uppsättning laborationsuppgifter som ska redovisas vid ett seminarium.

  • Den första delen behandlar programspråket Ruby och de grundläggande konstruktionerna. Genom att lösa några mindre uppgifter bekantar vi oss med språket och arbetssättet vid seminarierna.
  • Den andra delen behandlar datorspråk som inte i första hand används för program, utan mestadels för att märka upp information. Vi kommer att titta på hur man använder reguljära uttryck för att hitta information i text, samt vad XML är och hur man kan använda det.
  • Den tredje delen behandlar tekniker för att skapa så kallade domänspecifika språk (DSL) i Ruby. Vi tittar också på hur man mer generellt kan parsa språk, dvs hur man analyserar och tolkar källkod.
  • Den fjärde och sista delen behandlar olika mindre vanliga konstruktioner. Framför allt kommer vi att titta på en typ av deklarativ programmering där man arbetar med constraints.

3. Organisation

Kursen kommer löst att samordnas med TDP019 Projekt: Datorspråk, eftersom de behandlar samma område. Det kommer dock inte funka helt och hållet så att TDP007 är en teorikurs och TDP019 en kurs där man tillämpar teorin. Snarare kommer det vara så att vi i starten av båda kurserna kommer att försöka ge så mycket teori som behövs för att man inom ramen för projektkursen ska kunna börja arbeta med att utveckla ett helt eget språk. TDP007 kommer att följa ett delvis annat spår där vi tittar på olika typer av språk och aspekter av att implementera dem.

Kursen Konstruktion av datorspråk bedrivs huvudsakligen genom att studenterna i en serie laborationer får analysera och lösa problem relaterade till konstruktion av datorspråk.


4. Kurslitteratur

Som huvudbok för Ruby kommer vi att använda följande bok:

  • Thomas, Dave (2013) Programming Ruby 1.9 & 2.0: The Pragmatic Programmers' Guide The Pragmatic Bookshelf, ISBN 9781937785499

Vi kommer inte att följa boken i kursen, utan den tjänar mest som referensbok för språket Ruby. Det innebär att alternativa böcker om Ruby säkert funkar lika bra. Den föregående versionen av samma bok funkar alldeles utmärkt. Om du skaffar en äldre begagnad bok, se åtminstone till att den täcker version 1.8 av Ruby. Det finns också en digital version av första utgåvan av boken som är gratis att använda online.



Sidansvarig: Pontus Haglund
Senast uppdaterad: 2024-01-10