Engineering of Domain Specific Languages
Persone
Docente titolare del corso
Assistente
Descrizione
Domain-Specific Languages (DSLs) are programming languages that are tailored to a particular application domain. This essential focus of DSLs allows to write more concise and understandable programs, with a tight stakeholder integration, and when done properly, to improve code quality. The course will feature the current state-of-the-art on both the design and implementation of DSLs. The course will emphasize the different design dimensions of DSLs, the involved language paradigms and features, and the drawbacks with respect to simple API modeling.
Obiettivi
- Learn what a Domain-Specific language (DSL) is and what are the pros and cons of using them;
- Learn how to model domains, both conceptually and by using a functional programming language;
- Learn the difference between internal and external DSLs;
- Learn how to build DSLs in Scala;
- Learn how to provide support for DSLs in the IDE;
- Learn how to use DSLs for specific software engineering tasks like testing and modeling.
Modalità di insegnamento
In presenza
Impostazione pedagogico-didattica
- 50% lectures on concepts
- 50% labs with coding on the IDE
- Assignments.
Modalità d’esame
The examination will be performed through the evaluation of 4 assignments, each one of 2 weeks duration, on the topics of the course. An optional final oral exam can be performed to improve the grade of the two lowest-graded assignments.
Bibliografia
Offerta formativa
- Master of Science in Software & Data Engineering, Lezione, 1° anno
- Dottorato in Scienze informatiche, Lezione, A scelta, 1° anno (2.0 ECTS)