Jezici specifični za domen
Upoznavanje
Kreirano 2020-11-05 Thu 14:49, pritisni ESC za mapu, m za meni, Ctrl+Shift+F za pretragu
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
- Uvod u programski jezik Pyhon
- Uvod u DSL-ove (motivacija)
- Tekstualne sintakse i parsiranje - parglare, Arpeggio
- Apstraktne, konkretne sintakse i metamodelovanje
- textX
- textX alati - textX-dev
- Postavka projektnog zadatka - diskusija
- Primeri - DOMMLite i ER, pyFlies, mobl.
- Transformacije, generisanje koda i interpretiranje -
Jinja2, textX-jinja
- Podrška za Visual Studio Code - textX-LS
- Java bazirani alati - Xtext i Spoofax
- Grafičke sintakse (editori, vizualizatori, layouting, routing) - Graphviz i
dot, GMF, Graphitti, Spray
- Ograničenja, sistem tipova, scoping, linking.
- Prezentacije projekata i diskusija
- 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 |
20 |
Implementacija jezika |
20 |
Git aktivnost |
10 |
GitHub aktivnost |
10 |
Ukupno |
60 |
I pored timskog rada svi bodovi se dobijaju individualno.
8 Literatura
- textX, parglare i Arpeggio dokumentacija
- M. Völter, DSL Engineering: Designing, Implementing and Using Domain-Specific
Languages. 2013
- Federico Tomassetti, The complete guide to (external) Domain Specific
Languages, published on the author's blog, February 2017.
- S. Kelly and J.-P. Tolvanen, Domain-Specific Modeling: Enabling Full Code
Generation. Wiley-IEEE Computer Society Pr, March 2008
- I. Dejanović, Prilog metodama brzog razvoja softvera na bazi proširivih
jezičkih specifikacija. PhD thesis, Faculty of Technical Sciences, University
of Novi Sad, January 2012.