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
17 Dec 2015
TL;DR: The principles behind automatic reversal of robotic assembly operations are described, and the use of a domain-specific language that supports automatic error handling through reverse execution is experimentally demonstrated.
Abstract: Robotic assembly tasks are in general difficult to program and require a high degree of precision. As the complexity of the task increases it becomes increasingly unlikely that tasks can always be executed without errors. Preventing errors beyond a certain point is economically infeasible, in particular for small-batch productions. As an alternative, we propose a system for automatically handling certain classes of errors instead of preventing them. Specifically, we show that many operations can be automatically reversed. Errors can be handled through automatic reverse execution of the control program to a safe point, from which forward execution can be resumed. This paper describes the principles behind automatic reversal of robotic assembly operations, and experimentally demonstrates the use of a domain-specific language that supports automatic error handling through reverse execution. Our contribution represents the first experimental demonstration of reversible computing principles applied to industrial robotics.

41 citations


Cites background from "Domain Specific Languages"

  • ...In contrast to general purpose languages such as Java and C++, domain specific languages (DSLs) are designed to facilitate programming in a specific domain and/or given a particular set of conditions [8]....

    [...]

  • ...a standard method chaining approach [8]....

    [...]

Journal ArticleDOI
TL;DR: A proposal called Guarana, which provides explicit support to devise EAI solutions using enterprise integration patterns by means of a graphical model, and its DSL enables software engineers to have not only the view of a process, but also a view of the whole set of processes of which an EAI solution is composed.
Abstract: Enterprise Application Integration (EAI) solutions cope with two kinds of problems within software ecosystems, namely: keeping a number of application's data in synchrony or creating new functionality on top of them. Enterprise Service Bus (ESB) provides the technology required to implement a variety of EAI solutions at sensible costs, but they are still far from negligible. It is not surprising then that many authors are working on proposals to endow them with domain-specific tools to help software engineers reduce integration costs. In this article, we introduce a proposal called Guarana. Its key features are as follows: it provides explicit support to devise EAI solutions using enterprise integration patterns by means of a graphical model; its DSL enables software engineers to have not only the view of a process, but also a view of the whole set of processes of which an EAI solution is composed; both processes and tasks can have multiple inputs and multiple outputs; and, finally, its runtime system provides a task-based execution model that is usually more efficient than the process-based execution models in current use. We have also implemented a graphical editor for our DSL and a set of scripts to transform our models into Java code ready to be compiled and executed. To set up a solution from this code, a software engineer only needs to configure a number of adapters to communicate with the applications being integrated.

39 citations

Journal ArticleDOI
TL;DR: This work proposes a framework for developing domain-specific debuggers, called the Moldable Debugger, that enables debugging at the level of the application domain, and motivates the need fordomain-specific debugging, and identifies a set of key requirements.

38 citations


Cites methods from "Domain Specific Languages"

  • ...One can also argue that important concepts from object-oriented applications should be encoded using external DSLs that have an explicit grammar (i.e., meta-model)....

    [...]

  • ...To improve development and evolution, these object models take advantage of internal DSLs [23] (e....

    [...]

  • ...Addressing domain-specific debugging problems295 To demonstrate that the Moldable Debugger addresses the requirements identified in Section 2 we have instantiated it for six different domains: testing, synchronous events, parsing, internal DSLs, profiling and bytecode interpretation....

    [...]

  • ...To improve development and evolution, these object models take advantage of internal DSLs [23] (e.g., APIs) instead of encoding domain concepts through external DSLs that require a grammar specification....

    [...]

Proceedings ArticleDOI
02 Sep 2012
TL;DR: It is argued that a systematic approach based on User Interface experimental validation techniques should be used to assess the impact of new DSLs, and it is proposed to merge common Usability evaluation processes with the DSL development process.
Abstract: Domain-Specific Languages (DSLs) are claimed to bring important productivity improvements to developers, when compared to General-Purpose Languages (GPLs). The increased Usability is regarded as one of the key benefits of DSLs when compared to GPLs, and has an important impact on the achieved productivity of the DSL users. So, it is essential to build in good usability while developing the DSL. The purpose of this proposal is to contribute to the systematic activity of Software Language Engineering by focusing on the issue of the Usability evaluation of DSLs. Usability evaluation is often skipped, relaxed, or at least omitted from papers reporting development of DSLs. We argue that a systematic approach based on User Interface experimental validation techniques should be used to assess the impact of new DSLs. For that purpose, we propose to merge common Usability evaluation processes with the DSL development process. In order to provide reliable metrics and tools we should reuse and identify good practices that exist in Human-Computer Interaction community.

37 citations

Journal ArticleDOI
TL;DR: Light is shed on the advances of modeling language engineering that facilitate reuse, modularity, compositionality, and derivation of new languages based on language components to design, combine, and derive modeling languages in all their relevant aspects.

36 citations


Cites background from "Domain Specific Languages"

  • ...As a result, Domain-Specific Languages (DSLs) and Domain-Specific Modeling Languages (DSMLs) [7, 8, 9, 10] were created to meet domain-specific needs....

    [...]

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