Author_Institution :
Dept. of Comput. Sci., Yale Univ., New Haven, CT, USA
Abstract :
A domain specific language (DSL) allows one to develop software for a particular application domain quickly and effectively, yielding programs that are easy to understand, reason about, and maintain. On the other hand, there may be a significant overhead in creating the infrastructure needed to support a DSL. To solve this problem, a methodology is described for building domain specific embedded languages (DSELs), in which a DSL is designed within an existing, higher-order and typed, programming language such as Haskell or ML. In addition, techniques are described for building modular interpreters and tools for DSELs. The resulting methodology facilitates reuse of syntax semantics, implementation code, software tools, as well as look-and-feel
Keywords :
functional languages; program interpreters; software reusability; software tools; Haskell; ML; domain specific embedded languages; functional languages; higher-order typed programming language; implementation code; methodology; modular domain specific languages; modular interpreters; program understanding; semantics; software maintenance; software reuse; software tools; syntax; Application software; Buildings; Computer languages; Computer science; Costs; DSL; Domain specific languages; Hardware; Programming; Software maintenance;