Faculty of Technical Sciences

Subject: Domain-Specific Languages (17.E2519)

Native organizations units: Sub-department for Applied Computer Science and Informatics
General information:
 
Category Theoretical-methodological
Scientific or art field Applied Computer Science and Informatics
Interdisciplinary No
ECTS 6
Educational goal:

To teach students to design and implement software languages intended to be used in the specific domains (Domain-Specific Language – DSL) by using modern methods, techniques and tools.

Educational outcome:

After successfully completing the course the student is able to: understand and effectively utilize the terminology and concepts of the subject area, apply methods and techniques for designing and implementing domain-specific languages??, identify the advantages and disadvantages of various tools for creating domain-specific languages??, analyze arbitrary domain of human activity and recognize the most important concepts and their interdependencies, based on analysis of the domain creates the abstract syntax of the DSL; utilize techniques to create different concrete syntax (graphical, textual, based on tables, dialogs, trees, etc..), identify the most appropriate syntax and implement it using the available tools, understand the impact of cultural and sociological profile of the user to the understandability of the concrete syntax, creates concrete syntaxes of a high degree of usability and readability by using knowledge about the human cognitive abilities.

Course content:

Theoretical lectures: Basic definitions and concepts; difference between a General Purpose Language (GPL) and Domain Specific Language (DSL). External and internal DSLs. DSL as a set of coordinated models. History and development of DSLs; Traditional and modern notions of DSLs; Impact of DSL usage on productivity. Language Workbenches. Examples of DSLs. Domain analisys. Communication with domain experts; Techniques of recognition of key concepts from the domain description. Techniques of detecting the concepts relations. Abstract syntaxes, abstract syntax definition techniques, meta-modeling. Languages ??for meta-models definition (MOF, ECore, GOPPRR, MoRP). Concrete syntaxes, concrete syntax definition, concrete syntaxes as the interfaces with the user, textual concrete syntaxes (EBNF, Xtext, Emfatic); graphical concrete syntaxes (GMF, Graphite, Spray, Eugenio); automated layouting; Language expressions definition using wizards; Tree-based syntaxes; table-based syntaxes; hybrid syntaxes, cultural and social aspects of creating highly usable and readable concrete syntax; framework of cognitive dimensions and impact of human cognitive abilities on the readability of language expressions. Secondary notation and its impact on the language expression comprehension. The semantics of the language; semantic constraints definition; semantic rules check. Interpreters; dynamic analysis and interpretation of language expression; optimization techniques. Translators - code generators; language expression analysis techniques and code generation for arbitrary target platform; Template engines. Coevolution of language; Horizontal and vertical coevolution; change propagation from higher to lower meta-level, propagation of changes within the same meta-level between the dependent statement. Practical classes: design and creation of DSL for a given domain. The division into project teams. Domain analysis. Extracting key concepts and their relationships. Creating language abstract sy

Teaching methods:

Lectures, Computer exercises; Consultation. Design and implementation of project assignment by working within project teams. At the end of the semester, public presentations of the most successful teams are organized with the discussion of the obtained results. The defense of project assignment is oral. The final exam is oral. Final grade is based on the score from the final exam and project defense.

Literature:
Authors Title Year Publisher Language
Kelly, S. & Tolvanen, J.-P. Domain-Specific Modeling: Enabling Full Code Generation 2008 Wiley-IEEE Computer Society Pr English
Völter, M. DSL Engineering: Designing, Implementing and Using Domain-Specific Languages 2013 Create Space Independent Publishing Platform English
Fowler, M. Domain-Specific Languages 2010 Addison-Wesley Professional English
Knowledge evaluation:
Course activity Pre-examination Obligations Number of points
Oral part of the exam No Yes 50.00
Project defence Yes Yes 50.00
Lecturers:

Asistent Mandić Nikola

Assistant - Master

Computational classes
API Image

prof. dr Dejanović Igor

Full Professor

Lectures
API Image

prof. dr Milosavljević Gordana

Full Professor

Lectures

Faculty of Technical Sciences

© 2024. Faculty of Technical Sciences.

Contact:

Address: Trg Dositeja Obradovića 6, 21102 Novi Sad

Phone:  (+381) 21 450 810
(+381) 21 6350 413

Fax : (+381) 21 458 133
Emejl: ftndean@uns.ac.rs

© 2024. Faculty of Technical Sciences.