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.
Original language | English |
---|---|
Title of host publication | Proceedings of the 35th Annual Hawaii International Conference on System Sciences, HICSS 2002 |
Editors | Ralph H. Sprague Jr. |
Place of Publication | Los Alamitos, CA |
Publisher | Institute of Electrical and Electronics Engineers (IEEE) |
Pages | 3647-3655 |
Number of pages | 9 |
Volume | 2002-January |
ISBN (Electronic) | 0769514359 |
DOIs | |
Publication status | Published - 2002 |
Event | 35th Annual Hawaii International Conference on System Sciences, HICSS 2002 - Big Island, United States Duration: 7 Jan 2002 → 10 Jan 2002 |
Other
Other | 35th Annual Hawaii International Conference on System Sciences, HICSS 2002 |
---|---|
Country | United States |
City | Big Island |
Period | 7/01/02 → 10/01/02 |
Bibliographical note
Copyright 2002 IEEE. Reprinted from Proceedings of the 35th Annual Hawaii International Conference on System Sciences, 2002. HICSS. This material is posted here with permission of the IEEE. Such permission of the IEEE does not in any way imply IEEE endorsement of any of Macquarie University’s products or services. Internal or personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution must be obtained from the IEEE by writing to pubs-permissions@ieee.org. By choosing to view this document, you agree to all provisions of the copyright laws protecting it.Keywords
- Animation
- Computer aided software engineering
- Computer languages
- Cost accounting
- Domain specific languages
- Embedded computing
- Functional programming
- Power engineering and energy
- Programming profession
- Software engineering