• DocumentCode
    2748880
  • Title

    Agile Engineering of Internal Domain-Specific Languages with Dynamic Programming Languages

  • Author

    Günther, Sebastian ; Haupt, Maximilian ; Splieth, Matthias

  • Author_Institution
    Sch. of Comput. Sci., Univ. of Magdeburg, Magdeburg, Germany
  • fYear
    2010
  • fDate
    22-27 Aug. 2010
  • Firstpage
    162
  • Lastpage
    168
  • 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.
  • Keywords
    high level languages; software engineering; Python; Ruby; agile engineering; agile process; compiler; domain entities; domain knowledge; dynamic programming languages; editors; executable language; internal domain-specific languages; interpreter; reusable knowledge; software development; software product line configuration DSL; Concrete; Context; DSL; Semantics; Software; Unified modeling language; domain-specific-languages;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering Advances (ICSEA), 2010 Fifth International Conference on
  • Conference_Location
    Nice
  • Print_ISBN
    978-1-4244-7788-3
  • Electronic_ISBN
    978-0-7695-4144-0
  • Type

    conf

  • DOI
    10.1109/ICSEA.2010.32
  • Filename
    5615143