Extensible Host Language for Domain-Specific Languages

keywords: Concept composition, domain-specific language, functional composition, generic syntax, language composition, metaprogramming
Programming languages greatly influence the way how programs are created and evolved. This means that the use of appropriate language for solved problem can greatly increase developer productivity. Composition of languages can provide great help in construction of a new language from existing components and for integration of several languages that may be needed to effectively solve a complex problem. In this paper we analyze the composition problem on the two levels: composition of languages and composition of concepts in a language. Possibilities of transition from language composition to concepts composition are also presented. Based on that, we propose a framework of languages construction based on concept composition that aims to support reusability of language elements and tools. It uses common host syntax for developed languages. Their semantics is defined in a general-purpose language. Proposed approach is demonstrated on example languages developed using prototype implementation.
reference: Vol. 35, 2016, No. 1, pp. 84–110