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
16 Nov 2016
TL;DR: This paper presents the implementation of the text-to-model (M2T) transformations to extract models from PHP code and shows the feasibility of this approach using a real example of PHP code from a CMS-based Web application implemented in Drupal.

3 citations


Cites methods from "Domain Specific Languages"

  • ...For the implementation of these modelling languages, we can opt for two approaches: using UML profiles or DSLs (Mernik, Heering, & Sloane, 2005), (Watson, 2008) and (Fowler, 2010)....

    [...]

DOI
01 Jan 2011
TL;DR: This thesis describes the ProcessJ language, as well as the implementation of a compiler that translates ProcessJ source code to Java with Java Communicating Sequential Processes (JCSP), a library that provides CSP-style communication primitives.
Abstract: Java is a general purpose object-oriented programming language that has been widely adopted. Because of its high adoption rate and its lineage as a C-style language, its syntax is familiar to many programmers. The downside is that Java is not natively concurrent. Volumes have been written about concurrent programming in Java; however, concurrent programming is difficult to reason about within an object-oriented paradigm and so is difficult to get right. occam-π is a general purpose process-oriented programming language. Concurrency is part of the theoretical underpinnings of the language. Concurrency is simple to reason about within an occam-π application because there is never any shared state; also occam-π is based on a process calculus, with algebraic laws for composing processes. It has welldefined semantics regarding how processes interact. The downside is that the syntax is foreign and even archaic to programmers who are used to the Java syntax. This thesis presents a new language, ProcessJ, which is a general purpose, processoriented programming language meant to bridge the gap between Java and occam-π. ProcessJ does this by combining the familiar syntax of Java with the process semantics of occam-π. This allows for a familiar-looking language that is easy to reason about in concurrent programs. This thesis describes the ProcessJ language, as well as the implementation of a compiler that translates ProcessJ source code to Java with Java Communicating Sequential Processes (JCSP), a library that provides CSP-style communication primitives.

3 citations


Cites background or methods from "Domain Specific Languages"

  • ...Taking the advice of Fowler [FP10], the Notification pattern, described in Section 5.8, was used to separate the error collection logic from the parser....

    [...]

  • ...The Notification pattern is from Domain Specific Languages [FP10]....

    [...]

  • ...A domain specific language (DSL) is a computer programming language of limited expressiveness that is focused on a particular domain [FP10]....

    [...]

  • ...Taking the advice of Fowler [FP10], the Notification pattern, described in Section 5....

    [...]

  • ...[FP10] M. Fowler and R. Parsons....

    [...]

01 Jan 2017
TL;DR: In this paper, a solucion for lograr estandarizar the proceso of pruebas of seguridad sobre a TOE (objective de evaluacion) is presented.
Abstract: El correcto funcionamiento de las plataformas de computo que soportan tareas industriales esenciales y actividades estrategicas de gobierno, dependen de la calidad y de la estandarizacion del proceso de prueba utilizado por los analistas de seguridad. Este proyecto propone una solucion al problema de lograr estandarizar el proceso de pruebas de seguridad sobre un TOE (“objetivo de evaluacion” o sistema sobre el cual se esta realizando la prueba). La solucion propuesta esta orientada a la realizacion de pruebas en sistemas Web por ser una necesidad comun en la industria y se considera unicamente la tecnica de pruebas de caja negra, porque este tipo de escenario es con frecuencia el unico disponible cuando el analista de seguridad no tiene acceso al codigo fuente de la aplicacion. Nuestro enfoque esta dirigido a soportar un diseno de pruebas basadas en modelos; es decir, el analista de seguridad define el modelo de la prueba y un framework ejecuta una transformacion desde el modelo para obtener un conjunto de comandos ejecutables para controlar escaneadores de vulnerabilidades que interactuaran con el TOE para encontrar sus fallos de seguridad. De esta manera, la prueba se hace reutilizable y se obtienen resultados menos dependientes de aspectos subjetivos relacionados a la persona que ejecuta la prueba. En la actualidad es dificil mejorar sistematicamente un proceso de pruebas de seguridad porque cada analista incide en gran medida en los resultados obtenidos. En cambio, cuando se tiene un proceso mas estandar, cada nueva tecnica incluida en la herramienta podra incrementar la calidad de cualquier prueba realizada posteriormente, independientemente del usuario de la herramienta. Como resultado del proyecto, realizamos un analisis comparativo de los trabajos anteriores que abordan tecnicas de “pruebas basadas en modelos” que han sido aplicadas en el contexto de la seguridad. Ademas, desarrollamos un prototipo que soporta multiples analizadores de vulnerabilidades Web y sugerimos algunas ideas que podrian mejorar su nivel de adopcion en la industria. La principal contribucion teorica es la definicion de un lenguaje visual y textual para modelar pruebas de seguridad. La especificacion precisa usando un metamodelo y una gramatica permite que los modelos expresados en este lenguaje puedan ser transformados a instrucciones especificas de ejecucion para analizadores de vulnerabilidades.

3 citations

14 Sep 2019
TL;DR: This case study is based on the multilingual tradition of the biblical book of Qohelet, which has been annotated through the annotation tool based on DSLs named Euporia, and illustrates how a Domain Specific Language (DSL) facilitates both the manual annotation of the critical apparatus and the data interchange.
Abstract: Encoding multilingual variant readings is time-consuming and error-prone. The guidelines provided by the Text Encoding Initiative (TEI) ensure data interchange, but the XML-TEI verbosity is at risk of distracting annotators with a traditional background in philological studies from their critical activity. We illustrate how a Domain Specific Language (DSL) facilitates both the manual annotation of the critical apparatus and the data interchange. Our case study is based on the multilingual tradition of the biblical book of Qohelet, which has been annotated through the annotation tool based on DSLs named Euporia.

3 citations

Journal ArticleDOI
TL;DR: This work surveys and analyzes the design and implementation of 57 JSON-style DSLs for visualization and identifies tensions throughout these areas, such as between formal and colloquial specifications, among types of users, and within the composition of languages.
Abstract: There has been substantial growth in the use of JSON-based grammars, as well as other standard data serialization languages, to create visualizations. Each of these grammars serves a purpose: some focus on particular computational tasks (such as animation), some are concerned with certain chart types (such as maps), and some target specific data domains (such as ML). Despite the prominence of this interface form, there has been little detailed analysis of the characteristics of these languages. In this study, we survey and analyze the design and implementation of 57 JSON-style DSLs for visualization. We analyze these languages supported by a collected corpus of examples for each DSL (consisting of 4395 instances) across a variety of axes organized into concerns related to domain, conceptual model, language relationships, affordances, and general practicalities. We identify tensions throughout these areas, such as between formal and colloquial specifications, among types of users, and within the composition of languages. Through this work, we seek to support language implementers by elucidating the choices, opportunities, and tradeoffs in visualization DSL design.

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