Affiliation:
1. Open University of Israel, Raanana, Israel
Abstract
Language Oriented Programming (LOP) is a paradigm that puts domain specific programming languages (DSLs) at the center of the software development process. Currently, there are three main approaches to LOP: (1) the use of internal DSLs, implemented as libraries in a given host language; (2) the use of external DSLs, implemented as interpreters or compilers in an external language; and (3) the use of language workbenches, which are integrated development environments (IDEs) for defining and using external DSLs. In this paper, we contribute: (4) a novel language-oriented approach to LOP for defining and using internal DSLs. While language workbenches adapt internal DSL features to overcome some of the limitations of external DSLs, our approach adapts language workbench features to overcome some of the limitations of internal DSLs. We introduce Cedalion, an LOP host language for internal DSLs, featuring static validation and projectional editing. To validate our approach we present a case study in which Cedalion was used by biologists in designing a DNA microarray for molecular Biology research.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
6 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Deriving fluent internal domain-specific languages from grammars;Proceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering;2018-10-24
2. Exploration of modularity and reusability of domain-specific languages: an expression DSL in MetaMod;Computer Languages, Systems & Structures;2018-01
3. A domain-specific language for building self-optimizing AST interpreters;Proceedings of the 2014 International Conference on Generative Programming: Concepts and Experiences - GPCE 2014;2014
4. Graceful Dialects;ECOOP 2014 – Object-Oriented Programming;2014
5. An object-oriented approach to language compositions for software language engineering;Journal of Systems and Software;2013-09