Jezici specifični za domen

Upoznavanje

Prof. dr Igor Dejanović (igord at uns ac rs)

Kreirano 2024-10-11 Fri 11:10, pritisni ESC za mapu, Ctrl+Shift+F za pretragu, ? za pomoć

1. Opšte informacije

2. Cilj predmeta

  • Osposobljavanje studenata za dizajniranje i implementaciju softverskih jezika namenjenih za uske domene ljudske delatnosti (Domain-Specific Language – DSL) uz primenu savremenih metoda, tehnika i alata.
  • Savladavanje modernih tehnologija za razvoj DSL-ova uz oslonac na programskih jezik Pyhon i alate: Arpeggio i textX.

3. Zašto koristiti jezike specifične za domen?

  • Prilagođenost domenu omogućava jednostavnije opisivanje rešenja problema. Koriste se koncepti domena.
  • Pojedine studije pokazuju da povećanje produktivnosti ide i do 1000% u poređenju sa jezicima opšte namene*.
  • Domenski eksperti mogu direktno koristiti DSL-ove jer je to jezik njihovog domena.
  • Ideal kome težimo:
    • Softver inženjeri kreiraju i evoluiraju jezike, alate i mapiranje na ciljne tehničke platforme.
    • Domenski eksperti definišu konkretna rešenja upotrebom DSL-a.

4. Tematske celine

  1. Uvod u DSL-ove (motivacija)
  2. Uvod u programski jezik Pyhon
  3. Jezičke sintakse i meta-modelovanje
  4. Tekstualne sintakse i parsiranje
  5. Arpeggio
  6. textX
  7. Podrška za Visual Studio Code textX-LS, textX alati - textX-dev
  8. Postavka projektnog zadatka - diskusija
  9. parglare
  10. Transformacije, generisanje koda i interpretiranje - Jinja2, textX-jinja
  11. Studije slučaja - DOMMLite, pyFlies
  12. Prezentacije projekata i diskusija
  13. Ograničenja, sistem tipova, scoping, linking.
  14. Koevolucija jezika

5. Struktura ocene

  • Predispitne obaveze - 70%
    • Projekat - 50%
    • textX test - 20%
  • Teorijski deo ispita (usmeni) - 30%

6. Projekat

  • Timski rad - timovi od 4±1 studenta.
  • Obavezna upotreba sistema za kontrolu verzija (Git).
  • Obavezna upotreba sistema za upravljanje projektom (GitHub).

7. Projekat - raspodela bodova

Aktivnost bodovi
Dizajn jezika 10
Implementacija jezika 20
Podrška za VS Code 12
- Osnovno (5)  
- LSP (7)  
GitHub aktivnost 8
Ukupno 50

I pored timskog rada svi bodovi se dobijaju individualno.

8. Literatura