Abstract
This paper describes our experience using a functional language, Haskell, to build an embedded, domain-specific language (DSL) for component configuration in large-scale, real-time, embedded systems. Prior to the introduction of the DSL, engineers would describe the steps needed to configure a particular system in a handwritten XML document. In this paper, we outline the application domain, give a brief overview of the DSL that we developed, and provide concrete data to demonstrate its effectiveness. In particular, we show that the DSL has several significant benefits over the original, XML-based approach including reduced code size, increased modularity and scalability, and detection and prevention of common defects. For example, using the DSL, we were able to produce clear and intuitive descriptions of component configurations that were sometimes less than 1/30 of the size of the original XML.
Supplemental Material
Available for Download
Supplemental material for: Experience report: playing the DSL card
- Andrew P. Black, Magnus Carlsson, Mark P. Jones, Richard Kieburtz,and Johan Nordlander. Timber: A Programming Language for Real-Time Embedded Systems. Technical Report, OGI School of Science & Engineering, April, 2002. Google Scholar
Digital Library
- Paul Hudak.Building Domain-Specific Embedded Languages. In ACM Computing Surveys, 28A(4), December, 1996. Google Scholar
Digital Library
- Johan Nordlander. Reactive Objects and Functional Programming. Ph.D. thesis, Dept. of Computing Science, Chalmers University of Technology, Göteborg, Sweden, 1999.Google Scholar
- Johan Nordlander, Mark Jones, Magnus Carlsson, Dick Kieburtz, and Andrew Black. Reactive Objects. In Proceedings of the Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2002), Arlington, VA, 2002.Google Scholar
Index Terms
Experience report: playing the DSL card
Recommendations
Experience report: playing the DSL card
ICFP '08: Proceedings of the 13th ACM SIGPLAN international conference on Functional programmingThis paper describes our experience using a functional language, Haskell, to build an embedded, domain-specific language (DSL) for component configuration in large-scale, real-time, embedded systems. Prior to the introduction of the DSL, engineers would ...
Experience report: using hackage to inform language design
HASKELL '10Hackage, an online repository of Haskell applications and libraries, provides a hub for programmers to both release code to and use code from the larger Haskell community. We suggest that Hackage can also serve as a valuable resource for language ...
Experience report: using hackage to inform language design
Haskell '10: Proceedings of the third ACM Haskell symposium on HaskellHackage, an online repository of Haskell applications and libraries, provides a hub for programmers to both release code to and use code from the larger Haskell community. We suggest that Hackage can also serve as a valuable resource for language ...







Comments