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 2018
TL;DR: A compact model for blind multiparty verification of compilation results by employing a simple incentive scheme, staking a deposit value on the correctness of compiled and deployed byte code.
Abstract: We present a compact model for blind multiparty verification of compilation results. By employing a simple incentive scheme, we construct a mechanism, staking a deposit value on the correctness of compiled and deployed byte code. A blind committee of peers evaluate the authenticity of the deployed byte code by re-computing the task, hashing the source and target code into checksums, and submitting bids to the contract. If the evaluation round reveals inconsistencies in the checksums provided by the peers, the contract can be rejected and the deposit shared amongst contenders.

2 citations

Dissertation
15 Dec 2016
TL;DR: Les outils a disposition permettent chaque jour une plus grande homogeneisation dans the communication entre des capteurs toujours plus varies, avec chacun leur propre comprehension des objets connectes.
Abstract: On assiste ces dernieres annees a une explosion des usages dans l’Internet des objets. La democratisation de ce monde de capteurs est le fruit, d’une part de la baisse drastique des couts dans l’informatique embarquee, d’autre part d’un support logiciel toujours plus mature. Que ce soit au niveau des protocoles et des reseaux (CoAP, IPv6, etc) ou de la standardisation des supports de developpement, notamment sur microprocesseurs ATMEL, les outils a disposition permettent chaque jour une plus grande homogeneisation dans la communication entre des capteurs toujours plus varies. Cette diversification rassemble chaque jour des utilisateurs aux attentes et aux domaines de competence differents, avec chacun leur propre comprehension des objets connectes. La complexification des reseaux de capteurs, confrontee a cette necessite d’adresser des usages fondamentalement differents, pose probleme. Sur la base d’un meme reseau de capteurs heteroclite, il est crucial de pouvoir repondre aux besoins de chacun des utilisateurs, sans reclamer d’eux une maitrise du reseau de capteurs depassant exagerement leur domaine de competence. L’outil decrit dans ce document se propose d’adresser cette problematique au travers d’un moteur de requete dedie au traitement des donnees issus des capteurs. Pour ce faire, il repose sur une modelisation des capteurs au sein de differents contextes, chacun a meme de repondre a un besoin utilisateur precis. Sur la base de ce modele est mis a disposition un langage dedie pour le traitement des evenements complexes issus des donnees mesurees par les capteurs. L’implementation de cet outil permet en outre d’interagir avec d’eventuelles fonctionnalites d’actuation du reseau de capteurs.

2 citations

Proceedings Article
12 Jul 2011
TL;DR: This research reveals that many details of cloud configuration can be hidden from programmers in an automated and transparent manner, and increased the ease of use for implementing MapReduce algorithms by creating a lightweight domain-specific language (DSL).
Abstract: MapReduce algorithms can be difficult to write and test due to the accidental complexities involved with existing MapReduce implementations. Furthermore, the configuration details involved in running MapReduce algorithms within a cloud present a set of new challenges. Our research reveals that many details of cloud configuration can be hidden from programmers in an automated and transparent manner. Using concepts from software engineering, we have increased the ease of use for implementing MapReduce algorithms by creating a lightweight domain-specific language (DSL). Additionally, we created a plug-in for the Eclipse integrated development environment (IDE) based on this DSL to automate and hide many cloud configuration details. The goal of the combination of our IDE and DSL is to improve the efficiency and effectiveness for programmers to develop MapReduce algorithms for cloud computing.

2 citations

Proceedings Article
01 Sep 2012
TL;DR: The problem of integrating domain-specific modules to a system non-intrusively and promote loose coupling between these to allow software evolution is described and the on-going work on aspect-oriented language mechanisms for defining object selectors and object adapters is presented.
Abstract: Domain Specific Languages (DSLs) are programming languages customized for a problem/solution domain, which allow development of software modules in high-level specifications. Code generation is a common practice for making DSL programs executable: A DSL specification is transformed to a functionally equivalent GPL (general-purpose programing language) representation. Integrating the module generated from a DSL specification to a base system poses a challenge, especially in a case where the DSL and the base system are developed independently. In this paper we describe the problem of integrating domain-specific modules to a system non-intrusively and promote loose coupling between these to allow software evolution. We present our on-going work on aspect-oriented language mechanisms for defining object selectors and object adapters as a solution to this problem.

2 citations

Proceedings ArticleDOI
06 Jul 2016
TL;DR: Four patterns that discuss different kinds of configurability that can also be combined are provided that are shown to show the application of these patterns using an example the authors had to deal with in their research project.
Abstract: Nowadays, designing a domain-specific language is easier than ever before. Nevertheless, finding the right balance concerning the configurability of concepts represented by language elements is a complicated design task. With this paper we provide four patterns that discuss different kinds of configurability that can also be combined. In the end, we show the application of these patterns using an example we had to deal with in our research project.

2 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