Abstract

Domain Specific Languages (DSLs) bridge the gap between the business model and the technical model. DSLs allow the technical developer to write programs with the business domain notations. This leads to higher productivity and better quality than General Purpose Languages (GPLs). One of the main challenges of utilizing DSLs in the current software process is how to reduce the implementation cost and the knowledge required for building and maintaining DSLs. Language workbenches are environments that provide high level tools for implementing different language aspects. The purpose of this paper is to provide a survey on the different aspects of implementing DSLs. The survey includes structure, editor, semantics, and composability language aspects. Furthermore, it overviews the approaches used for each aspect and classify the current workbenches according to these approaches.

Highlights

  • Domain Specific Languages (DSLs) [1] are languages that are designed and implemented to express and solve a specific class of problems

  • Throughout the paper, MiniIoT DSL is used to describe the different aspects of DSL implementation, it is a fake DSL for Internet of Things (IoT) domain

  • A specialized editor is often provided with the DSL to provide a specialized editor services and error messages

Read more

Summary

INTRODUCTION

Domain Specific Languages (DSLs) [1] are languages that are designed and implemented to express and solve a specific class of problems. In case of utilizing one of the GPL like Java and C, the user is forced to use concepts that are not related to his domain like classes, fields, and arrays to represent his problem The latter representation consumes more time and effort and may generate more errors than the direct MiniIoT representation. This paper discusses the different approaches for achieving the various DSL implementation aspects. It includes structure, editor, semantics, and composability language aspects. They illustrate each aspect and the main approaches, that are used in the current workbenches, to achieve these aspect.

BACKGROUND
RELATED WORK
LANGUAGE STRUCTURE ASPECT
Grammar-Driven Approach
Model-Driven Approach
LANGUAGE EDITOR ASPECT
Parser-based Editing
Projectional Editing
Language Notations
Translational Semantics
LANGUAGE SEMANTICS ASPECT
Interpretive Semantics
LANGUAGE COMPOSABILITY ASPECT
VIII. DISCUSSION
CONCLUSION
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call