Search for contacts, projects,
courses and publications

Engineering of Domain Specific Languages

Description


COURSE OBJECTIVES

  • Learn what a Domain-Specific language (DSL) is and what are the pros and cons of using them
  • Learn the difference between internal and external DSLs;
  • Learn how to build DSLs in Scala and Kotlin
  • Learn how to use DSLs for specific software engineering tasks like testing and modeling.

 

COURSE DESCRIPTION
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.

 

LEARNING METHODS

  • 50% lectures on concepts, 50% labs with coding on the IDE
  • Assignments.


 

EXAMINATION INFORMATION
The examination will be performed through the evaluation of 5 assignments, each one of 2 weeks duration, on the topics of the course. An optional final exam can be performed to improve the grade of the two lowest-graded assignments.

 

REFERENCES

  • DSL Engineering: Designing, Implementing and Using Domain-Specific Languages. Markus Voelter. 2013 (dslbook.org)
  • Domain-Specific Languages. Martin Fowler. Addison Wesley 2013.

People

 

Mocci A.

Course director

Raglianti M.

Assistant

Additional information

Semester
Fall
Academic year
2020-2021
ECTS
3
Language
English
Education
Master of Science in Software & Data Engineering, Core course, Lecture and Laboratory, 1st year
PhD programme of the Faculty of Informatics, Elective course, Lecture and Laboratory, 1st year (2 ECTS)
PhD programme of the Faculty of Informatics, Elective course, Lecture and Laboratory, 2nd year (2 ECTS)