Title
Agile Engineering of Internal Domain-Specific Languages with Dynamic Programming Languages
Abstract
Domain-Specific Languages (DSL) abstract from the domain entities and operations to represent domain knowledge in the form of an executable language. While they solve many of the current software development challenges, related literature claims that DSLs usually have a flaw: The high effort required to implement and use them. However, internal DSLs are developed with less effort because they are built on top of an existing programming language and can use the whole language infrastructure consisting of interpreter, compiler, or editors. This article presents an engineering process for internal DSLs. An agile process leads from analysis to design and implementation. Expressions and language capabilities are implemented using tests and a set of patterns, which provide reusable knowledge how to properly structure and design the DSL implementation. As a case study, we show how to implement a software product line configuration DSL using Ruby and Python as host languages. In summary, the proposed process and patterns facilitate the successful planning and developing of internal DSLs using dynamic programming languages as the host.
Year
DOI
Venue
2010
10.1109/ICSEA.2010.32
Software Engineering Advances
Keywords
Field
DocType
dynamic programming languages,internal domain-specific languages,dsl implementation,existing programming language,dynamic programming language,engineering process,agile process,whole language infrastructure,executable language,language capability,agile engineering,internal dsls,host language,domain specific language,high level languages,dsl,domain specific languages,domain knowledge,concrete,unified modeling language,software development,compiler,semantics,software engineering,interpreter,python,programming language
Domain-specific language,Fifth-generation programming language,Second-generation programming language,Programming language,Software engineering,Computer science,Fourth-generation programming language,Compiler,High-level programming language,Third-generation programming language,Software development
Conference
ISBN
Citations 
PageRank 
978-0-7695-4144-0
2
0.35
References 
Authors
13
3
Name
Order
Citations
PageRank
Sebastian Günther18413.27
Maximilian Haupt220.35
Matthias Splieth3102.53