Syllabus
Unit I
Introduction to DSL
An introductory example. Introduction to DSLs -Terminologies – General Purpose language to DSL – Modelling & Model-driven development – Benefits of using DSL – Challenges – Applications of DSLs. Using Domain-Specific Languages – Defining DSL – DSL Lifecycle – What Makes a Good DSL Design – Differentiation from other approaches.
Unit II
DSL Design
Conceptual Foundations – Program, Language and Domains – Model Purpose – Structure of Program and Languages – Parsing vs Projection. Design dimensions – Expressivity – Coverage – Semantics and Execution – Separation of Concerns – Completeness – Language Modularity Concrete Syntax. Fundamental Paradigms – Structure – Behavior – Combinations. Process issues – DSL Developments – Using DSLs. Concrete and Abstract syntax.
Unit III
DSL Implementation
Implementing DSLs – Architecture of DSL Processing – The Workings of a Parser – Grammars, Syntax, and Semantics – Parsing Data – Macros – Testing – Handling Errors – Migrating DSLs. Internal DSL and External DSL implementation. Choosing between internal and external DSL. Alternative computational models – Decision Table – Production Rule System – State Machine – Dependency Network – Choosing a Model. Code generation. A Zoo of DSLs.
Objectives and Outcomes
Course Objectives
- The main objective of the course is to impart a solid overview of the state of the art of today’s domain specific languages (DSLs).
- This includes introduction to some existing domain specific languages, their design and implementation.
Course Outcomes
CO1: To understand the basic concepts of Domain specific languages.
CO2: To understand the conceptual foundations of designing Domain specific Languages.
CO3: To understand the implementation of internal and external DSLs.
CO4: Explore some existing DSLs.
CO-PO Mapping
PO/PSO
|
PO1
|
PO2
|
PO3
|
PO4
|
PO5
|
PO6
|
PO7
|
PO8
|
PO9
|
PO10
|
PO11
|
PO12
|
PSO1
|
PSO2
|
CO
|
CO1
|
3
|
3
|
–
|
–
|
–
|
–
|
–
|
–
|
–
|
–
|
–
|
2
|
2
|
2
|
CO2
|
3
|
3
|
3
|
3
|
–
|
3
|
–
|
–
|
–
|
2
|
–
|
2
|
2
|
2
|
CO3
|
3
|
3
|
3
|
3
|
–
|
3
|
–
|
–
|
–
|
3
|
–
|
2
|
2
|
2
|
CO4
|
3
|
3
|
3
|
3
|
–
|
3
|
–
|
–
|
–
|
3
|
–
|
2
|
2
|
2
|
Evaluation Pattern
Evaluation Pattern: 70:30
Assessment
|
Internal
|
End Semester
|
MidTerm Exam
|
20
|
|
Continuous Assessment – Theory (*CAT)
|
10
|
|
Continuous Assessment – Lab (*CAL)
|
40
|
|
**End Semester
|
|
30 (50 Marks; 2 hours exam)
|
*CAT – Can be Quizzes, Assignments, and Reports
*CAL – Can be Lab Assessments, Project, and Report
**End Semester can be theory examination/ lab-based examination/ project presentation
Text Books / References
Reference(s)
Lorenzo Bettini, “Implementing Domain-Specific Languages with Xtext and Xtend”2nd edition, 2016.
Debasish Ghosh, “DSL in Action”, Foreword by Jonas Boner,2010.
Markus Voelter, “DSL Engineering- Designing, Implementing and Using Domain-Specific Languages”,2013.