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
01 Jan 2013
TL;DR: This dissertation shows that tool support can be provided for HPC programs at different levels of abstraction targeted for a specific set of users, and introduces new software engineering ideas and supporting tools to assist in the evolution of parallel programs used by HPC programmers, as well as HPC users.
Abstract: In order to harness the power of multicore CPUs and GPUs, HPC (High Performance Computing) programmers and even end-users need new tools and techniques to express their core problem, divide that core problem into sub problems, allocate computational resources for the sub problems, execute the resources, and collect results. HPC users focus more on the problem domain while HPC programmers are concerned with the code or HPC domain. However, in current practice, the distinction of programmers and users is not clearly delineated because most of the end-users (e.g., scientists who have a computational need) must create and write their own HPC code. Moreover, HPC users also have to maintain the HPC source code to keep abreast with the latest advances, techniques and platforms introduced by the HPC programming community. The specific aim of this dissertation is to introduce new software engineering ideas (e.g., Model-Driven Engineering (MDE) and Domain-Specific Languages (DSLs)) and supporting tools to assist in the evolution of parallel programs used by HPC programmers, as well as HPC users. In this dissertation, we show that tool support can be provided for HPC programs at different levels of abstraction targeted for a specific set of users. These levels of abstraction are: 1) Code-level, 2) Algorithm-level, 3) Program-level, and 4) Sub-domain-level. We designed, implemented, and evaluated DSLs at each abstraction level to support heterogeneous computing. Code-level abstraction is very general and it can be applied to any C/C++ program, while algorithm-level abstraction is only applicable for programs implementing MapReduce algorithms. Compared to code-level and algorithm-level abstraction, program-level and sub-domain-level abstractions are very specific and are only applicable to specific domains and users (e.g., Signature Discovery Intiative (SDI) project participants and Nbody solution users). We observed that if the domain is specific, less information is required from the user because the DSLs are domain-aware. If the domain is very general (e.g., in the code-level and algorithm-level abstractions), there are more application usage areas for the DSL, but adoption of the DSL at more general levels requires additional information from the end-users.

4 citations

Proceedings ArticleDOI
28 Sep 2013
TL;DR: The presented method allows one, for instance, to make the Erlang language supportive for embedding domain specific languages as well as to make its functions portable.
Abstract: In this paper, we present the idea of utilising a refactoring tool for implementing extensions to a programming language. We elaborate the correspondence between the main components of the compiler and the refactoring tool, and examine how analysis and transformation features of the tool can be exploited for turning its refactoring framework into a translation framework. The presented method allows one, for instance, to make the Erlang language supportive for embedding domain specific languages as well as to make its functions portable.

4 citations

Journal ArticleDOI
TL;DR: This article reviews the newest stable versions of four open‐source integration frameworks by analyzing how they have evolved regarding their adaptive maintainability over five years and ranks them according to their maintainability degree.
Abstract: Integration frameworks are specialized software tools built and adapted to facilitate the design and implementation of integration solutions. An integration solution allows for the reuse of applications from the software ecosystem of companies to support their business processes. There are several open‐source integration frameworks available on the market designed to operate in a business context to manipulate structured data; however, increasingly, they are required to deal with unstructured and large volumes of data, thus requiring effort to adapt these frameworks to work with unstructured and large volume of data. Choosing the framework, which is the easiest to be adapted, is not a trivial task. In this article, we review the newest stable versions of four open‐source integration frameworks by analyzing how they have evolved regarding their adaptive maintainability over five years. We rank them according to their maintainability degree and compare past and current versions of each framework. To encourage and enable researchers and developers to replicate our experiments, with the aim of verifying our findings, and to experiment with new versions of the integration frameworks analyzed, we detail the experimental protocol used while also having made all the required software involved available on the Web.

4 citations

Proceedings ArticleDOI
02 Jun 2012
TL;DR: This paper extends the beforehand-introduced process modeling approach by a notion of process pattern to capture typical situations that can be associated with risk or benefit with respect changeability and developed strategies to handle changeability risks associated to these process patterns.
Abstract: One of the multiple technical factors which affect changeability of software is model-driven engineering (MDE), where often several models and a multitude of manual as well as automated development activities have to be mastered to derive the final software product. The ability to change software with only reasonable costs, however, is of uppermost importance for the iterative and incremental development of software as well as agile development in general. Thus, the effective applicability of agile processes is influenced by the used MDE activities. However, there is currently no approach available to systematically detect and handle such risks to the changeability that result from the embedded MDE activities. In this paper we extend our beforehand-introduced process modeling approach by a notion of process pattern to capture typical situations that can be associated with risk or benefit with respect changeability. In addition, four candidates for the envisioned process patterns are presented in detail in the paper. Further, we developed strategies to handle changeability risks associated to these process patterns.

4 citations


Cites background from "Domain Specific Languages"

  • ...generation gap pattern [7] or protected regions [19]....

    [...]

  • ...by applying the generation gap pattern [7]....

    [...]

Journal Article
TL;DR: This paper describes the development of a software tool to support rich pictures creation for object-oriented analysis, useful both as an e-learning tool for bachelor-level students, as well as for practitioners working with agile methodologies.
Abstract: This paper describes the development of a software tool to support rich pictures creation for object-oriented analysis. This software is useful both as an e-learning tool for bachelor-level students, as well as for practitioners working with agile methodologies. The transposition of manual rich picture practice into software proved difficult, therefore, we decided to follow a user-centered approach: design and implement a prototype with basic functionalities, then run a usability test with a few students and professionals. The feedback collected in the test validated our hypothesis circa the need of software support for the authoring of rich pictures, but also forced us to re-consider the design of our prototype. To gain a deeper understanding of the students' working practice, we also reviewed rich pictures from past student projects. All the information gathered through our study is guiding us in the design of the tool next version. At a more general level we realized that modern object-oriented development methodologies, such as agile methods, are informed by design, hence they sometimes assume design skills that programmers do not have or do not value.

4 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