When and how to develop domain-specific languages
ACM Computing Surveys (CSUR)
NixOS: a purely functional Linux distribution
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
On the impact of DSL tools on the maintainability of language implementations
Proceedings of the Tenth Workshop on Language Descriptions, Tools and Applications
Nixos: A purely functional linux distribution
Journal of Functional Programming
Hi-index | 0.00 |
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.