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
Book ChapterDOI
20 Jun 2018
TL;DR: Athos is presented, the domain specific language Athos with which network based traffic simulations can be created declaratively and platform independent and executable code can be generated for two popular multi-agent platforms.
Abstract: Creating multi-agent simulations is a challenging task often requiring programming skills at the professional software developer level. Model driven methods of software development are an appropriate tool for reducing the complexity of the development process of such simulations. The modeller is relieved from implementing time consuming programming details and can concentrate on the application itself. We present the domain specific language Athos with which network based traffic simulations can be created declaratively. The models are platform independent and executable code can be generated for two popular multi-agent platforms. We use a simple yet illustrative example to show how Athos can be applied.

3 citations


Cites methods from "Domain Specific Languages"

  • ...When constructing models, a DSL allows a stronger focus on the model and domain issues rather than on lower-level programming issues ( [10] and [7])....

    [...]

Proceedings ArticleDOI
24 Oct 2018
TL;DR: The language platform Storm is created, which aims to make the creation and usage of multiple extensible languages easy and seamless, and gives Storm a high degree of extensibility, making it possible to extend or replace the built-in languages at will.
Abstract: The ability to extend programming languages with domain-specific concepts is becoming an essential technology for developing complex software. However, many domain-specific languages are implemented in a way that interact poorly with the host language. There are a number of tools that aim to improve the situation by simplifying the creation of domain-specific languages, and allow easier interactions between the host language and the domain-specific language. However, many of these tools are limited to a single host language, and rarely allow extending the language used for language creation. To improve the situation, we created the language platform Storm, which aims to make the creation and usage of multiple extensible languages easy and seamless. This is accomplished by means of a shared, standardized namespace and in-process code generation, which gives Storm a high degree of extensibility, making it possible to extend or replace the built-in languages at will.

3 citations

Dissertation
01 Jan 2008
TL;DR: The WARP project studies current techniques and tools associated with three activities that improve communication: business modeling, object-relational mapping and prototyping user interfaces, choosing an approach to be integrated in current software development processes.
Abstract: Nowadays business operations happen very fast and they are really complex, so almost every organization supports its activities using information systems and other technological instruments. Because sometimes there are no final products that fit their needs, it is common that companies are enrolled in software development activities. The complexity and abstract character of software implies new challenges for these enterprises. The success of software development process is determined by several factors, for example the value created by the product, technical difficulties, team skills or communication between stakeholders. If the organization adopts an organized process, choosing the correct methodologies and tools to support it, we can speed up it and, at the same time improve its quality. This project is all about improving the software development process, looking for three activities that improve communication: business modeling, object-relational mapping and prototyping user interfaces. Business modeling is a complex activity, involving the knowledge of problem domain and some technological background. However their common outputs, texts and visual diagrams, are usually informal and ambiguous. WARP solution proposes developing formal and executable business models, using an object-oriented programming language. These models are testable and can be reused in following development stages. Most of business entities have a long life, requiring that their knowledge and data must be safely saved. Object-relational mapping software helps the developer in the implementation of persistency concerns, decreasing the effort to connect relational schemas and objects. Prototyping user interfaces provides earlier discussion with clients about concrete things, which would detect fails on requirements or on system design. Moreover, nowadays there are methods for automatic generation of user interfaces from models, which increase significantly the developer’s productivity. The WARP project studies current techniques and tools associated with these three activities, choosing an approach to be integrated in current software development processes. Finally this approach is applied in the development of Equipment Database, a product that solves a Qimonda’s specific problem, to evaluate its applicability in real projects.

3 citations


Cites background from "Domain Specific Languages"

  • ...This section is a short summary about domain specific languages, more details about them could be found in [2] and [90]....

    [...]

Proceedings ArticleDOI
01 May 2016
TL;DR: An operational pattern based code generation approach is proposed for rapid development of domain-specific management information system and preliminary findings show that the software development based on this approach yields a nearly 30% higher productivity as compared to traditional software development.
Abstract: Code generation technology can significantly improve productivity and software quality. However, due to limited financial and human resources in most of small and medium software enterprises, there are many challenges when leveraging code generation approaches to large-scale software development. In this paper, an operational pattern based code generation approach is proposed for rapid development of domain-specific management information system. We demonstrate the approach with details: (I) semi-automatically extracting operational patterns from requirement documents, (II) building feature models to manage the commonalities and variability of each operational pattern, (III) mapping operational patterns into skeleton code with a template-based code generation technique, etc. Then we conduct an industrial case study in asset information management domain at CancoSoft Company for about 2 years, to analyze its feasibility and efficiency. 14 operational patterns are successfully extracted from 355 initial key phrases, and a code generator is implemented and applied to develop new Web applications. Preliminary findings show that the software development based on our approach yields a nearly 30% higher productivity as compared to traditional software development. Through code analysis, we find that around 70% of code can be automatically generated, and the generated code is also effective.

3 citations

Proceedings ArticleDOI
19 Aug 2013
TL;DR: This work considers the automatic deduction of migration rule schemes from given meta-model evolution rules, which form the basis for user customizations on a high abstraction level.
Abstract: Model-driven engineering (MDE) is a software engineering discipline focusing on models as the primary artifacts in the software development process while programs are mainly generated by means of model-to-code transformations. In particular, modeling languages tailored to specific application domains promise to increase the productivity and quality of software development. Nevertheless due to e.g. evolving requirements, modeling languages and their meta-models evolve which means that existing models have to be migrated correspondingly. In our approach, such co-evolutions are specified as related graph transformations ensuring well-typed model migration results. Based on our earlier work on co-transformations, we now consider the automatic deduction of migration rule schemes from given meta-model evolution rules. Rule schemes form the basis for user customizations on a high abstraction level. A rule scheme deduction algorithm is presented and several customized migration schemes for different co-evolution examples are discussed.

3 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