scispace - formally typeset
Search or ask a question
Journal ArticleDOI

Domain Specific Languages

25 Feb 2010-International Journal of Computer Applications (Foundation of Computer Science FCS)-Vol. 1, Iss: 21, pp 105-111
TL;DR: A number of DSLs spanning various phases of software development life cycle in terms of features that elucidates their advantages over general purpose languages and perform in depth study by practically applying a few open source DSLs: ‘Cascading’, Naked Objects Framework and RSpec.
Abstract: To match the needs of the fast paced generation, the speed of computing has also increased enormously. But, there is a limit to which the processor speed can be amplified. Hence in order to increase productivity, there is a need to change focus from processing time to programming time. Reduction in programming time can be achieved by identifying the domain to which the task belongs and using an appropriate Domain Specific Language (DSL). DSLs are constrained to use terms and concepts pertaining to an explicit domain making it much easier for the programmers to understand and learn, and cuts down the development time drastically. In this paper, we will understand what a DSL is; explore a number of DSLs spanning various phases of software development life cycle in terms of features that elucidates their advantages over general purpose languages and perform in depth study by practically applying a few open source DSLs: ‘Cascading’, Naked Objects Framework and RSpec.

Content maybe subject to copyright    Report

Citations
More filters
Dissertation
17 Mar 2011
TL;DR: In this paper, a framework for programmation dedie est genere dans un langage cible to guide l'implementation d'une application SCC en exposant les memes abstractions que le langage DiaSpec.
Abstract: Nombre d'applications ont pour comportement principal l'attente d'un evenement venant d'un environnement exterieur, la preparation d'un resultat et l'execution d'actions sur cet environnement. Les interfaces graphiques et les systemes avioniques en sont des exemples. Le paradigme SCC, pour Sense--Compute--Control, est particulierement adapte a la description de ces applications. Le developpement d'applications suivant ce paradigme est cependant rendu difficile par le manque de cadre conceptuel et d'outils de support. Cette these propose un cadre conceptuel dedie au paradigme SCC et se concretise par un langage de description d'architectures nomme DiaSpec. Ce langage fournit un cadre de travail pour guider le developpement d'une application SCC en assignant des roles aux membres du projet et en proposant une separation des preoccupations. En plus de fournir un cadre de conception, cette these fournit un support de programmation. En effet, a partir de descriptions ecrites en DiaSpec, un framework de programmation dedie est genere dans un langage cible. Ce framework de programmation guide l'implementation d'une application SCC en exposant les memes abstractions que le langage DiaSpec. Ce framework de programmation est concu de facon a assurer que l'implementation d'une application est conforme a l'architecture decrite en DiaSpec, en s'appuyant sur le systeme de types du langage cible. Les contributions de cette these sont evaluees suivant des criteres d'expressivite, d'utilisabilite et de productivite.

8 citations

Posted Content
TL;DR: These claims are illustrated using the domain of derivatives pricing in computational finance, with the domain metrics of workload latency and pricing accuracy, to show a latency improvement of up to 24 and 270 times over the heuristic approach.
Abstract: Users of heterogeneous computing systems face two problems: firstly, in understanding the trade-off relationships between the observable characteristics of their applications, such as latency and quality of the result, and secondly, how to exploit knowledge of these characteristics to allocate work to distributed computing platforms efficiently. A domain specific approach addresses both of these problems. By considering a subset of operations or functions, models of the observable characteristics or domain metrics may be formulated in advance, and populated at run-time for task instances. These metric models can then be used to express the allocation of work as a constrained integer program, which can be solved using heuristics, machine learning or Mixed Integer Linear Programming (MILP) frameworks. These claims are illustrated using the example domain of derivatives pricing in computational finance, with the domain metrics of workload latency or makespan and pricing accuracy. For a large, varied workload of 128 Black-Scholes and Heston model-based option pricing tasks, running upon a diverse array of 16 Multicore CPUs, GPUs and FPGAs platforms, predictions made by models of both the makespan and accuracy are generally within 10% of the run-time performance. When these models are used as inputs to machine learning and MILP-based workload allocation approaches, a latency improvement of up to 24 and 270 times over the heuristic approach is seen.

7 citations


Cites background or methods from "Domain Specific Languages"

  • ...Indeed, application domains are often identified by grouping these operations together [2]....

    [...]

  • ...We use the empirical definition of application domains as used in programming research [1], [2], [3], i....

    [...]

Journal ArticleDOI
14 Aug 2018
TL;DR: The new code generation framework Athariac is introduced, its goal is to support the quick implementation of a language processing and program optimization platform for a given DSL based on stepwise term rewriting.
Abstract: The purpose of a domain-specific language (DSL) is to enable the application programmer to specify a problem, or an abstract algorithm description, in his/her domain of expertise without being burdened by implementation details. The ideal scenario is that the implementation detail is added in an automatic process of program translation and code generation. The approach of domain-specific program generation has lately received increasing attention in the area of computational science and engineering. In this paper, we introduce the new code generation framework Athariac. Its goal is to support the quick implementation of a language processing and program optimization platform for a given DSL based on stepwise term rewriting. We demonstrate the framework’s use on our DSL ExaSlang for the specification and optimization of multigrid solvers. On this example, we provide evidence of Athariac’s potential for making domain-specific software engineering more productive.

7 citations

Journal ArticleDOI
TL;DR: The aim of this work is to identify the phases of the development cycle of eGovernment transactions and provide the support to automatize them efficiently by using a model driven engineering (MDE) and knowledge-based approach.

7 citations


Cites background from "Domain Specific Languages"

  • ...Modeling languages and domain-specific languages are two similar concepts; adapting the definition of a DSL provided by Fowler Fowler (2010), a domain specific modeling language (DSML) therefore represents a modeling language of limited expressiveness focused on a particular domain....

    [...]

Journal ArticleDOI
TL;DR: This paper describes how to use conventional compiler construction tools, and parser generators in particular, to build XML driven application generators, and illustrates the approach with an XML-driven generator of shortest-route search applications in subway networks.
Abstract: This paper describes how to use conventional compiler construction tools, and parser generators in particular, to build XML driven application generators. In our approach, the document interface is provided by a standard stream-oriented XML processing framework (e.g., SAX or StAX). This framework is used to program a generic, customizable XML scanner that transforms documents into streams of suitable tokens (opening and closing tags, character data, etc.). The next step is to characterize the syntactic structure of these streams in terms of generation-specific context-free grammars. By adding suitable semantic attributes and semantic actions to these grammars, developers obtain generation-oriented translation schemes: high-level specifications of the generation tasks. These specifications are then turned into working application generators by using standard parser generation technology. We illustrate the approach with , an XML-driven generator of shortest-route search applications in subway networks.

7 citations

References
More filters
Journal ArticleDOI
TL;DR: The literature available on the topic of domain-specific languages as used for the construction and maintenance of software systems is surveyed, and a selection of 75 key publications in the area is listed.
Abstract: We survey the literature available on the topic of domain-specific languages as used for the construction and maintenance of software systems. We list a selection of 75 key publications in the area, and provide a summary for each of the papers. Moreover, we discuss terminology, risks and benefits, example domain-specific languages, design methodologies, and implementation techniques.

1,538 citations

Book
23 Sep 2010
TL;DR: This book covers a variety of different techniques available for DSLs and can be used with whatever programming language you happen to be using, most of the examples are in Java or C#.
Abstract: Designed as a wide-ranging guide to Domain Specific Languages (DSLs) and how to approach building them, this book covers a variety of different techniques available for DSLs. The goal is to provide readers with enough information to make an informed choice about whether or not to use a DSL and what kinds of DSL techniques to employ. Part I is a 150-page narrative overview that gives you a broad understanding of general principles. The reference material in Parts II through VI provides the details and examples you willneed to get started using the various techniques discussed. Both internal and external DSL topics are covered, in addition to alternative computational models and code generation. Although the general principles and patterns presented can be used with whatever programming language you happen to be using, most of the examples are in Java or C#.

908 citations