Post-design Domain-Specific Language Embedding: A Case Study in the Software Engineering Domain

Anthony M. Sloane. Post-design Domain-Specific Language Embedding: A Case Study in the Software Engineering Domain. In HICSS. pages 281, 2002. [doi]

Abstract

Experiences are presented from a new case study of embedding domain-specific languages in the lazy functional language Haskell. The domain languages come from the Odin software build system. Thus, in contrast to most previous embedding projects, a design and implementation of the domain languages existed when the project began. Consequently, the design could not be varied to suit the target language and it was possible to evaluate the success or otherwise of the embedding process in more detail than if the languages were designed from scratch. Experiences were mostly positive. The embedded implementation is significantly smaller than its Odin equivalent. Many benefits are obtained from having the full power of an expressive programming language available to the domain programmer The project also demonstrates in a practical software engineering setting the utility of modern functional programming techniques such as lazy evaluation and monads for structuring programs. On the down side, the efficiency of the embedded version compares unfavourably to the original system.