A course on Domain-Specific Languages
Base information
- Professor: dr Igor Dejanović (igord at uns ac rs)
- Both practical and theoretical parts of the course are handled by the course professor.
- Consultations may be scheduled via e-mail.
Introduction to the field of DSLs
The best place to start is to read the blog post of Federico Tomassetti.
- The complete guide to (external) Domain Specific Languages, published on the author's blog, February 2017.
Course project
- Practical part of the course is fulfilled by implementing a DSL for the domain of student's choosing.
- The language must be implemented in textX using Python.
- It must have a code generator or interpreter.
- Optionally a Visual Studio Code plugin may be developed to make using the language easier. See the textX-LS project.
Theoretical part of the exam
Is fulfilled by oral exam. The student must show the basic knowledge of the DSL field.
The examination is based on the Markus Völter's book (see the last slide). Relevant chapters are:
- Introduction to DSLs
- Conceptual Foundations
- Concrete and Abstract Syntax
- Scoping and Linking
- Constraints
- Type Systems
- Transformation and Generation
Literature and resources
-
- Völter, [[http://dslbook.org/][/DSL Engineering: Designing, Implementing and Using Domain-Specific
Languages/]]. 2013 (the book is a donationware)
- Federico Tomassetti, The complete guide to (external) Domain Specific Languages, published on the author's blog, February 2017. (this post is the place to start if you don't know anything about DSLs).
- textX documentation and tutorials. Be sure to check two youtube videos.
- pyFlies is a more complex example of DSL in the field of psychological experiments.