feasiPLe Logo

Forschungsprojekt feasiPLe

Feature-getriebene, aspektorientierte und modellgetriebene Produktlinienentwicklung

Embedded DSLs

An Embedded Domain-Specific Language (EDSL) is a way to rapidly provide new DSLs. This special implementation technique embeds the domain-specific language into another language. By reusing the features of the host language in which the EDSL is embedded, the EDSL implementation approach promises to faster provide a powerful language than following the traditional approach of implementing DSLs. The traditional approach requires the developer to provide parsers, compilers, and development tools; in contrast, new EDSLs can partially reuse the parsers, compilers and development tools of their host languages.

Implementing EDSLs is a well-known technique in many languages, some, but not all, are Ruby, Groovy, Scala, Haskel, and ML. For example, the famous Rails Web framework strongly utilizes the EDSL approach for a family of DSLs. In general, one writes domain-specific code that conforms to the host language syntax. Domain-specific literals and operators that are not defined in the host language must be interpreted by a library that implements the domain logic.

EDSLs in the Context of Product-line Engineering

  • Using EDSLs in MDSD
  • Opportunities for EDSLs in SPL

Back to the feasiPLe Architecture