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
19 Jun 2014
TL;DR: This article introduces the Specification for Content Transfer Algorithms (SPECTA) language and shows how algorithms written in this language can be translated into other formalisms such as Event-B for analysis, verification or code generation.
Abstract: When data is transferred between nodes in a network, it is often transferred in-order. However, in distributed systems, such as peer-to-peer networks and cloud-based systems, transferring data out-of-order can be advantageous, for instance by improving transfer speed, availability and reliability. With the intent of creating a reusable formalism that can describe the complexities of out-of-order content transfer in a simple manner, while being powerful enough to support as large a variety of distributed content transfer algorithms as possible, we introduce the Specification for Content Transfer Algorithms (SPECTA) language. In this article, we also show how algorithms written in this language can be translated into other formalisms such as Event-B for analysis, verification or code generation.

1 citations

01 Jan 2012
TL;DR: In this keynote theory requirements are outlined and proved as necessities for a science, methods for the development of business information systems as possibilities for theories in business informatics are proposed and a method for a concept of study designs in conceptual modeling research is proposed.
Abstract: Since its existence business informatics endeavors to establish itself as a science and to create unique characteristics towards pure computer science. In this keynote theory requirements are outlined and proved as necessities for a science. Furthermore, methods for the development of business information systems as possibilities for theories in business informatics are proposed. The explication of study designs within business informatics is currently hardly practiced. Thereby, problems regarding objective, replicability and validity of research findings may occur. Those can reflect in the following questions: What is the purpose of this model? Why does the reference model looks just so? What is the aspiration of this model and how can it be verified? This keynote presumes that the reason for this insufficient explication is an inadequate assistance for the researchers task. Thus, the keynotes target is to draft a method for a concept of study designs in conceptual modeling research. Combined with this method is the hope that the researcher will be equipped with the skills to facilitate the explication of a study design.

1 citations

Journal ArticleDOI
28 Jul 2016-Symmetry
TL;DR: SCPL, a Domain Specific Language (DSL) that enables connectivity among different social networks and applications and provides a way to automate their management and is shown how SCPL can be used to specify collaborative tasks using symmetric and asymmetric social networks in a transparent way.
Abstract: In recent years, the increasing use of social networks and applications—especially those used in an asymmetric way—has significantly changed the business processes in many organizations. These applications provide new cooperative ways of performing these processes by taking advantage of the interactions among users. However, the high number of these applications has led to a lack of automation in their interactions and, thus, the need of manually connecting to these networks to perform recurrent and repetitive tasks. In order to automate these operations, this paper presents SCPL, a Domain Specific Language (DSL) that enables connectivity among different social networks and applications and provides a way to automate their management. The main contribution of this paper is showing how SCPL can be used to specify collaborative tasks using symmetric and asymmetric social networks in a transparent way.

1 citations

Proceedings ArticleDOI
01 Oct 2022
TL;DR: In this paper , the idea of pattern-based discovery of rules can be applied to annotation-based API usages, and they find that their approach mines 23 candidate rules, among which 4 are fully valid specifications and 8 are partially valid specifications.
Abstract: While Application Programming Interfaces (APIs) allow easier reuse of existing functionality, developers might make mistakes in using these APIs (a.k.a. API misuses). If an API usage specification exists, then automatically detecting such misuses becomes feasible. Since manually encoding specifications is a tedious process, there has been a lot of research regarding pattern-based specification mining. However, while annotations are widely used in Java enterprise microservices frameworks, most of these pattern-based rule discovery techniques have not considered annotation-based API usage rules. In this industrial case study of MicroProfile, an open-source Java microservices framework developed by IBM and others, we investigate whether the idea of pattern-based discovery of rules can be applied to annotation-based API usages. We find that our pattern-based approach mines 23 candidate rules, among which 4 are fully valid specifications and 8 are partially valid specifications. Overall, our technique mines 12 valid rules, 10 of which are not even documented in the official MicroProfile documentation. To evaluate the usefulness of the mined rules, we scan MicroProfile client projects for violations. We find 100 violations of 5 rules in 16 projects. Our results suggest that the mined rules can be useful in detecting and preventing annotation-based API misuses.

1 citations

Proceedings ArticleDOI
09 Jun 2022
TL;DR: This work analyzes all 28 domain-specific IRs developed as part of LLVM's MLIR project over the last two years and demonstrates how to express these IRs exclusively in IRDL while only rarely falling back to IRDL's support for generic C++ extensions.
Abstract: Designing compiler intermediate representations (IRs) is often a manual process that makes exploration and innovation in this space costly. Developers typically use general-purpose programming languages to design IRs. As a result, IR implementations are verbose, manual modifications are expensive, and designing tooling for the inspection or generation of IRs is impractical. While compilers relied historically on a few slowly evolving IRs, domain-specific optimizations and specialized hardware motivate compilers to use and evolve many IRs. We facilitate the implementation of SSA-based IRs by introducing IRDL, a domain-specific language to define IRs. We analyze all 28 domain-specific IRs developed as part of LLVM's MLIR project over the last two years and demonstrate how to express these IRs exclusively in IRDL while only rarely falling back to IRDL's support for generic C++ extensions. By enabling the concise and explicit specification of IRs, we provide foundations for developing effective tooling to automate the compiler construction process.

1 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