Jezici specifični za domen

Upoznavanje

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

Kreirano 2021-10-30 Sat 20:56, pritisni ESC za mapu, m za meni, Ctrl+Shift+F za pretragu

Sadržaj

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 - 60%
  • Teorijski deo ispita - 40%

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 10
Git aktivnost 10
GitHub aktivnost 10
Ukupno 60

I pored timskog rada svi bodovi se dobijaju individualno.

8. Literatura