About: Language-oriented programming is a research topic. Over the lifetime, 23 publications have been published within this topic receiving 165 citations. The topic is also known as: LOP.
TL;DR: This book describes Superlanguage features and shows how XMF can be used to develop new languages and applications.
Abstract: Superlanguages offer a wide range of technologies that support application development. In particular Superlanguages support Language Oriented Programming and Domain Specific Languages through syntax extensions and meta-programming. XMF has been designed as a Superlanguage and can be downloaded from this web site. This book describes Superlanguage features and shows how XMF can be used to develop new languages and applications.
TL;DR: This paper introduces Cedalion, an LOP host language for internal DSLs, featuring static validation and projectional editing, and presents a case study in which Cedalion was used by biologists in designing a DNA microarray for molecular Biology research.
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.
TL;DR: The goal in this article is to demonstrate what the advantages of MetaMod are in terms of creating modular and reusable DSLs compared to the state-of-the-art projectional language workbench Jetbrains MPS, and underline the main advantage that MetaMod brings in the implementation of modular and reuse DSLs, that is, the possibility to create smaller, more conceptually cohesive DSLs.
TL;DR: It is argued that the two approaches to modeling and programming are conceptually indistinguishable, even though in practice they traditionally emphasize different aspects of the (conceptually indistinguishable) common approach.
Abstract: Modeling in general is of course different from programming (think: climate models). However, when we consider the role of models in the context of “model-driven”, i.e., when they are used to automatically construct software, it is much less clear that modeling is different from programming. In this paper, I argue that the two are conceptually indistinguishable, even though in practice they traditionally emphasize different aspects of the (conceptually indistinguishable) common approach. The paper discusses and illustrates language-oriented programming, the approach to {modeling|programming} we have successfully used over the last 7 years to build a range of innovative systems in domains such as insurance, healthcare, tax, engineering and consumer electronics. It relies on domain-specific languages, modular language extension, mixed notations, and in particular, the Jetbrains MPS language workbench.
TL;DR: This paper introduces DSL stacking, an efficient method for implementing Language-Oriented Programming where DSLs and general-purpose languages are incrementally developed on top of a base language.
Abstract: According to the paradigm of Language-Oriented Programming, an application for a problem should be implemented in the most appropriate domain-specific language (DSL). This paper introduces DSL stacking, an efficient method for implementing Language-Oriented Programming where DSLs and general-purpose languages are incrementally developed on top of a base language. This is demonstrated with components of a business information system that are implemented in different DSLs for Semantic Web technology in Lisp.