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.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call