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
Proceedings ArticleDOI
01 Jan 2015
TL;DR: To improve the design of a power control unit at Philips, two Domain Specific Languages (DSLs) have been used and one provides a concise and readable notation for the essential state transitions and a second DSL represents test traces.
Abstract: To improve the design of a power control unit at Philips, two Domain Specific Languages (DSLs) have been used. The first DSL provides a concise and readable notation for the essential state transitions. It is used to generate both configuration files and analysis models. In addition, we also generate instances of a second DSL which represents test traces. This second DSL is used to generate test cases for the power control unit. The use of DSLs not only improved productivity, but also the quality of the configuration files and the test set.

4 citations


Cites background from "Domain Specific Languages"

  • ...efficient construction of languages, editors, and transformations [2], [3]....

    [...]

Book ChapterDOI
04 Jul 2016
TL;DR: This paper explores a functional style of model transformation using Rascal, a meta-programming language, that seamlessly integrates functional programming, flexible static typing, and syntax-based analysis and transformation.
Abstract: Mainstream model transformation tools operate on graph structured models which are described by class-based meta-models. In the traditional grammarware space, transformation tools consume and produce tree structured terms, which are described by some kind of algebraic datatype or grammar. In this paper we explore a functional style of model transformation using Rascal, a meta-programming language, that seamlessly integrates functional programming, flexible static typing, and syntax-based analysis and transformation. We represent meta-models as algebraic data types ADTs, and models as immutable values conforming to those data types. Our main contributions are a REFS a simple encoding and API, to deal with cross references among model elements that are represented as ADTs; b a mapping from models to ADTs augmented with REFS; c evaluation of our encoding by implementing various well-known model transformations on state machines, meta-models, and activity diagrams. Our approach can be seen as a first step towards making existing techniques and tools from the modelware domain available for reuse within Rascal, and opening up Rascal's transformation capabilities for use in model driven engineering scenarios.

4 citations


Cites methods from "Domain Specific Languages"

  • ...Another approach is based on embedded DSLs for model transformation in Scala [6]....

    [...]

  • ...4): addResets(doors, {"reset"}) The following function addResets achieves this:9 9 The concept of reset events is inspired by Fowler’s example state machine DSL [5]....

    [...]

  • ...For various languages, embedded DSLs exist aiming at model analysis and transformation....

    [...]

  • ...9 The concept of reset events is inspired by Fowler’s example state machine DSL [5]....

    [...]

Proceedings ArticleDOI
22 Jul 2015
TL;DR: The main aim of this paper is to facilitate the integration of legacy Smart Grid applications into a model-driven engineering approach and introduces transformation rules for the conversion of applications implemented with textual programming languages into the IEC 61499 reference model.
Abstract: During the last years the increasing installation of distributed energy resources, electric vehicles bus also energy storage systems has lead to new challenges in terms of power system planning and operation New intelligent approaches turning power distribution grids into Smart Grids are necessary For their realization standardized automation, control and communication systems are essential Moreover, an integrated engineering approach for the development of Smart Grid applications using these standards is equally required Model-driven engineering methods well known from computer science together with implementation methods from automation domain have the potential to provide the basis for such a required integrated engineering concept The main aim of this paper therefore is to facilitate the integration of legacy Smart Grid applications into a model-driven engineering approach It introduces transformation rules for the conversion of applications implemented with textual programming languages into the IEC 61499 reference model A brief overview of existing model-driven approaches applied in industrial environments is provided and their applicability for Smart Grid application development is discussed The special requirements of the Smart Grid domain is taken into account by the proposed transformation approach and provided examples

4 citations


Cites methods from "Domain Specific Languages"

  • ...An overview of advanced approaches using model-driven engineering and related works applied to the domain of industrial automation and Smart Grid systems is provided below....

    [...]

Book ChapterDOI
01 Jan 2014
TL;DR: This work explores how to use a model and code library based approach to assist the developer and vision is that developers can specify the operation on a high level and the system automatically converts the model to an appropriate software pattern.
Abstract: Energy-efficiency is a critical attribute of mobile applications, but it is often difficult for the developers to optimize the energy consumption on the code level. In this work we explore how we could use a model and code library based approach to assist the developer. Our vision is that developers can specify the operation on a high level and the system automatically converts the model to an appropriate software pattern. In this way, the developer can focus on the actual functionality of the app. We exemplify our approach with several energy-efficient software patterns, which focus on wireless data communication which is one of the biggest energy hogs with typical mobile applications. We discuss the pros and cons of different implementation alternatives and suggest open questions needing further exploration.

4 citations

Proceedings ArticleDOI
04 Feb 2017
TL;DR: DEFIne is a fluent interface DSL for the specification, optimisation and evaluation of deep learning models, embedded in Python and build on top of its most popular deep learning libraries, Keras and Theano.
Abstract: Recent years have seen a surge of interest in deep learning models that outperform other machine learning algorithms on benchmarks across many disciplines. Most existing deep learning libraries facilitate the development of neural nets by providing a mathematical framework that helps users implement their models more efficiently. This still represents a substantial investment of time and effort, however, when the intention is to compare a range of competing models quickly for a specific task. We present DEFIne, a fluent interface DSL for the specification, optimisation and evaluation of deep learning models. The fluent interface is implemented through method chaining. DEFIne is embedded in Python and is build on top of its most popular deep learning libraries, Keras and Theano. It extends these with common operations for data pre-processing and representation as well as visualisation of datasets and results. We test our framework on three benchmark tasks from different domains: heart disease diagnosis, hand-written digit recognition and weather forecast generation. Results in terms of accuracy, runtime and lines of code show that our DSL achieves equivalent accuracy and runtime to state-of-the-art models, while requiring only about 10 lines of code per application.

4 citations


Cites background or methods from "Domain Specific Languages"

  • ...A relatively new technique is to create a domain-specific programming language (DSL) [19, 63, 21, 14] that provides the programmer with a very high-level vehicle to formulate application ideas....

    [...]

  • ...A fluent interface [19] is one where syntactic features of the hosting language are used to good effect to construct an internal DSL that captures the jargon, the commands and other notions of the requisite application domain....

    [...]

  • ...Spinellis [54] described some well known usage patterns of DSLs but although ideas such as language-oriented programming [66] have been reported in the programming literature since 1994, the development and deployment of DSLs is still a relatively new area with most activity reported only over the last 15 years [63, 19, 43, 39]....

    [...]

  • ...A fluent interface [19] is one where syntactic features of the hosting language are used to good effect to construct an DSL that is embedded in a host language and that captures the jargon, the commands and other notions of the requisite application domain [20, 31]....

    [...]

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