Domain Specific Languages

Armed with this wide-ranging book, developers will have the knowledge they need to make important decisions about DSLs—and, where appropriate, gain the significant technical and business benefits they offer.

Author: Martin Fowler

Publisher: Pearson Education

ISBN: 0131392808

Category: Computers

Page: 640

View: 654

DOWNLOAD →

When carefully selected and used, Domain-Specific Languages (DSLs) may simplify complex code, promote effective communication with customers, improve productivity, and unclog development bottlenecks. In Domain-Specific Languages , noted software development expert Martin Fowler first provides the information software professionals need to decide if and when to utilize DSLs. Then, where DSLs prove suitable, Fowler presents effective techniques for building them, and guides software engineers in choosing the right approaches for their applications. This book’s techniques may be utilized with most modern object-oriented languages; the author provides numerous examples in Java and C#, as well as selected examples in Ruby. Wherever possible, chapters are organized to be self-standing, and most reference topics are presented in a familiar patterns format. Armed with this wide-ranging book, developers will have the knowledge they need to make important decisions about DSLs—and, where appropriate, gain the significant technical and business benefits they offer. The topics covered include: How DSLs compare to frameworks and libraries, and when those alternatives are sufficient Using parsers and parser generators, and parsing external DSLs Understanding, comparing, and choosing DSL language constructs Determining whether to use code generation, and comparing code generation strategies Previewing new language workbench tools for creating DSLs

Globalizing Domain Specific Languages

In this book, a number of articles describe the vision and the way globalized DSMLs currently assist integrated DSML support teams working on systems that span many domains and concerns to determine how their work on a particular aspect ...

Author: Benoit Combemale

Publisher: Springer

ISBN: 9783319261720

Category: Computers

Page: 89

View: 162

DOWNLOAD →

The development of modern complex software-intensive systems often involves the use of multiple DSMLs that capture different system aspects. Supporting coordinated use of DSMLs leads to what we call the globalization of modeling languages, that is, the use of multiple modeling languages to support coordinated development of diverse aspects of a system. In this book, a number of articles describe the vision and the way globalized DSMLs currently assist integrated DSML support teams working on systems that span many domains and concerns to determine how their work on a particular aspect influences work on other aspects. Globalized DSMLs offer support for communicating relevant information, and for coordinating development activities and associated technologies within and across teams, in addition to providing support for imposing control over development artifacts produced by multiple teams. DSMLs can be used to support socio-technical coordination by providing the means for stakeholders to bridge the gap between how they perceive a problem and its solution, and the programming technologies used to implement a solution. They also support coordination of work across multiple teams. DSMLs developed in an independent manner to meet the specific needs of domain experts have an associated framework that regulates interactions needed to support collaboration and work coordination across different system domains. The articles in the book describe how multiple heterogeneous modeling languages (or DSMLs) can be related to determine how different aspects of a system influence each other. The book includes a research roadmap that broadens the current DSML research focus beyond the development of independent DSMLs to one that provides support for globalized DSMLs.

DSL Engineering

This book is about creating domain-specific languages. It covers three main aspects: DSL design, DSL implementation and software engineering with DLSs. It emphasises the use of modern language work-benches.

Author: Markus Voelter

Publisher: Createspace Independent Pub

ISBN: 1481218581

Category: Computers

Page: 558

View: 168

DOWNLOAD →

The definitive resource on domain-specific languages: based on years of real-world experience, relying on modern language workbenches and full of examples. Domain-Specific Languages are programming languages specialized for a particular application domain. By incorporating knowledge about that domain, DSLs can lead to more concise and more analyzable programs, better code quality and increased development speed. This book provides a thorough introduction to DSL, relying on today's state of the art language workbenches. The book has four parts: introduction, DSL design, DSL implementation as well as the role of DSLs in various aspects of software engineering. Part I Introduction: This part introduces DSLs in general and discusses their advantages and drawbacks. It also defines important terms and concepts and introduces the case studies used in the most of the remainder of the book. Part II DSL Design: This part discusses the design of DSLs - independent of implementation techniques. It reviews seven design dimensions, explains a number of reusable language paradigms and points out a number of process-related issues. Part III DSL Implementation: This part provides details about the implementation of DSLs with lots of code. It uses three state-of-the-art but quite different language workbenches: JetBrains MPS, Eclipse Xtext and TU Delft's Spoofax. Part IV DSLs and Software Engineering: This part discusses the use of DSLs for requirements, architecture, implementation and product line engineering, as well as their roles as a developer utility and for implementing business logic. The book is available as a printed version (the one your are looking at) and as a PDF. For details see the book's companion website at http: //dslbook.org

Domain Specific Languages in R

After reading and using this book, you’ll understand how to write DSLs in R and have skills you can extrapolate to other programming languages.

Author: Thomas Mailund

Publisher: Apress

ISBN: 9781484235881

Category: Computers

Page: 257

View: 658

DOWNLOAD →

Gain an accelerated introduction to domain-specific languages in R, including coverage of regular expressions. This compact, in-depth book shows you how DSLs are programming languages specialized for a particular purpose, as opposed to general purpose programming languages. Along the way, you’ll learn to specify tasks you want to do in a precise way and achieve programming goals within a domain-specific context. Domain-Specific Languages in R includes examples of DSLs including large data sets or matrix multiplication; pattern matching DSLs for application in computer vision; and DSLs for continuous time Markov chains and their applications in data science. After reading and using this book, you’ll understand how to write DSLs in R and have skills you can extrapolate to other programming languages. What You'll Learn Program with domain-specific languages using R Discover the components of DSLs Carry out large matrix expressions and multiplications Implement metaprogramming with DSLs Parse and manipulate expressions Who This Book Is For Those with prior programming experience. R knowledge is helpful but not required.

Formal and Practical Aspects of Domain Specific Languages Recent Developments

"This book presents current research on all aspects of domain-specific language for scholars and practitioners in the software engineering fields, providing new results and answers to open problems in DSL research"--

Author: Mernik, Marjan

Publisher: IGI Global

ISBN: 9781466620933

Category: Computers

Page: 677

View: 119

DOWNLOAD →

"This book presents current research on all aspects of domain-specific language for scholars and practitioners in the software engineering fields, providing new results and answers to open problems in DSL research"--

Domain Specific Languages

This volume presents the proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages, DSL 2009 held in Oxford, UK, during July 15-17, 2009. The 18 peer-reviewed full papers were selected from a total of 48 submissions.

Author: Walid Mohamed Taha

Publisher: Springer Science & Business Media

ISBN: 9783642030338

Category: Computers

Page: 411

View: 785

DOWNLOAD →

Dijkstra once wrote that computer science is no more about computers than astronomy is about telescopes. Despite the many incredible advances in c- puter science from times that predate practical mechanical computing, there is still a myriad of fundamental questions in understanding the interface between computers and the rest of the world. Why is it still hard to mechanize many tasks that seem to be fundamentally routine, even as we see ever-increasing - pacity for raw mechanical computing? The disciplined study of domain-speci?c languages (DSLs) is an emerging area in computer science, and is one which has the potential to revolutionize the ?eld, and bring us closer to answering this question. DSLs are formalisms that have four general characteristics. – They relate to a well-de?ned domain of discourse, be it controlling tra?c lights or space ships. – They have well-de?ned notation, such as the ones that exist for prescribing music, dance routines, or strategy in a football game. – The informal or intuitive meaning of the notation is clear. This can easily be overlooked, especially since intuitive meaning can be expressed by many di?erent notations that may be received very di?erently by users. – The formal meaning is clear and mechanizable, as is, hopefully, the case for the instructions we give to our bank or to a merchant online.

Domain Specific Languages in Practice

This book covers several topics related to domain-specific language (DSL) engineering in general and how they can be handled by means of the JetBrains Meta Programming System (MPS), an open source language workbench developed by JetBrains ...

Author: Antonio Bucchiarone

Publisher: Springer

ISBN: 3030737578

Category: Computers

Page: 336

View: 859

DOWNLOAD →

This book covers several topics related to domain-specific language (DSL) engineering in general and how they can be handled by means of the JetBrains Meta Programming System (MPS), an open source language workbench developed by JetBrains over the last 15 years. The book begins with an overview of the domain of language workbenches, which provides perspectives and motivations underpinning the creation of MPS. Moreover, technical details of the language underneath MPS together with the definition of the tool’s main features are discussed. The remaining ten chapters are then organized in three parts, each dedicated to a specific aspect of the topic. Part I “MPS in Industrial Applications” deals with the challenges and inadequacies of general-purpose languages used in companies, as opposed to the reasons why DSLs are essential, together with their benefits and efficiency, and summarizes lessons learnt by using MPS. Part II about “MPS in Research Projects” covers the benefits of text-based languages, the design and development of gamification applications, and research fields with generally low expertise in language engineering. Eventually, Part III focuses on “Teaching and Learning with MPS” by discussing the organization of both commercial and academic courses on MPS. MPS is used to implement languages for real-world use. Its distinguishing feature is projectional editing, which supports practically unlimited language extension and composition possibilities as well as a flexible mix of a wide range of textual, tabular, mathematical and graphical notations. The number and diversity of the presented use-cases demonstrate the strength and malleability of the DSLs defined using MPS. The selected contributions represent the current state of the art and practice in using JetBrains MPS to implement languages for real-world applications.

Creating Domain Specific Languages With Eclipse Xtext

This guide will help you get results with Xtext 2.0 fast - whether you're just started working with DSLs or you've been pioneering them for years.

Author: Mirko Raner

Publisher: Addison-Wesley Professional

ISBN: 0321784081

Category: Computers

Page: 450

View: 562

DOWNLOAD →

Using Domain Specific Languages (DSLs), you can solve a wide spectrum of problems more rapidly and effectively than ever before. However, early adopters have struggled with the absence of sophisticated IDE tools for their new languages. Eclipse Xtext solves this problem, offering complete infrastructure for your DSLs -- from parsers, linkers, compilers, and interpreters to developer productivity features like validation and code completion. Now, for the first time, there's a comprehensive guide to developing industry-strength DSL projects with Xtext. Creating Domain-Specific Languages with Eclipse Xtext covers all you need to know to succeed with the widely-anticipated new Xtext 2 release. You'll learn: How Xtext works and how it relates to other Eclipse frameworks How to create your own DSLs with Xtext How to implement custom DSL editors that maximize user productivity How to write Xtext grammars for existing (legacy) DSLs How to integrate Xtext DSLs with other EMF models and Eclipse-based technologies How to solve "industrial-strength" problems, including scalability of large grammars and models; advanced customization; and proper build and continuous integration set-up Xtext 2.0 isn't just another DSL creation tool: it's a breakthrough enabler that will bring DSLs into far wider usage. This guide will help you get results with Xtext 2.0 fast - whether you're just started working with DSLs or you've been pioneering them for years.

Domain Specific Program Generation

This book is about domain-specific program generation; it is the outcome of a Dagstuhl seminar on the topic held in March 2003.

Author: Christian Lengauer

Publisher: Springer Science & Business Media

ISBN: 9783540221197

Category: Computers

Page: 324

View: 388

DOWNLOAD →

Program generation holds the promise of helping to bridge the gap between application-level problem solutions and efficient implementations at the level of today's source programs as written in C or Java. Thus, program generation can substantially contribute to reducing production cost and time-to-market in future software production, while improving the quality and stability of the product. This book is about domain-specific program generation; it is the outcome of a Dagstuhl seminar on the topic held in March 2003. After an introductory preface by the volume editors, the 18 carefully reviewed revised full papers presented are organized into topical sections on - surveys of domain-specific programming technologies - domain-specific programming languages - tool support for program generation - domain-specific techniques for program optimization

Groovy for Domain specific Languages

Extend and enhance your Java applications with domain-specific scripting in Groovy About This Book Build domain-specific mini languages in Groovy that integrate seamlessly with your Java apps with this hands-on guide Increase stakeholder ...

Author: Fergal Dearle

Publisher: Packt Publishing Ltd

ISBN: 9781849695411

Category: Computers

Page: 386

View: 228

DOWNLOAD →

Extend and enhance your Java applications with domain-specific scripting in Groovy About This Book Build domain-specific mini languages in Groovy that integrate seamlessly with your Java apps with this hands-on guide Increase stakeholder participation in the development process with domain-specific scripting in Groovy Get up to speed with the newest features in Groovy using this second edition and integrate Groovy-based DSLs into your existing Java applications. Who This Book Is For This book is for Java software developers who have an interest in building domain scripting into their Java applications. No knowledge of Groovy is required, although it will be helpful. This book does not teach Groovy, but quickly introduces the basic ideas of Groovy. An experienced Java developer should have no problems with these and move quickly on to the more involved aspects of creating DSLs with Groovy. No experience of creating a DSL is required. What You Will Learn Familiarize yourself with Groovy scripting and work with Groovy closures Use the meta-programming features in Groovy to build mini languages Employ Groovy mark-up and builders to simplify application development Familiarize yourself with Groovy mark-up and build your own Groovy builders Build effective DSLs with operator overloading, command chains, builders, and a host of other Groovy language features Integrate Groovy with your Java and JVM based applications In Detail The times when developing on the JVM meant you were a Java programmer have long passed. The JVM is now firmly established as a polyglot development environment with many projects opting for alternative development languages to Java such as Groovy, Scala, Clojure, and JRuby. In this pantheon of development languages, Groovy stands out for its excellent DSL enabling features which allows it to be manipulated to produce mini languages that are tailored to a project's needs. A comprehensive tutorial on designing and developing mini Groovy based Domain Specific Languages, this book will guide you through the development of several mini DSLs that will help you gain all the skills needed to develop your own Groovy based DSLs with confidence and ease. Starting with the bare basics, this book will focus on how Groovy can be used to construct domain specific mini languages, and will go through the more complex meta-programming features of Groovy, including using the Abstract Syntax Tree (AST). Practical examples are used throughout this book to de-mystify these seemingly complex language features and to show how they can be used to create simple and elegant DSLs. Packed with examples, including several fully worked DSLs, this book will serve as a springboard for developing your own DSLs. Style and approach This book is a hands-on guide that will walk you through examples for building DSLs with Groovy rather than just talking about "metaprogramming with Groovy". The examples in this book have been designed to help you gain a good working knowledge of the techniques involved and apply these to producing your own Groovy based DSLs.

Domain specific Languages for Modeling and Simulation

Simulation models and simulation experiments are increasingly complex.

Author: Tom Warnke

Publisher:

ISBN: OCLC:1240409691

Category:

Page:

View: 478

DOWNLOAD →

Simulation models and simulation experiments are increasingly complex. One way to handle this complexity is developing software languages tailored to specific application domains, so-called domain-specific languages (DSLs). This thesis explores the potential of employing DSLs in modeling and simulation. We study different DSL design and implementation techniques and illustrate their benefits for expressing simulation models as well as simulation experiments with several examples.eng

DSLs in Action

After reading this book, a programmer will be able to design APIs that make better domain models. For experienced developers, the book addresses the intricacies of domain language design without the pain of writing parsers by hand.

Author: Debasish Ghosh

Publisher: Manning Publications

ISBN: 1935182455

Category: Computers

Page: 376

View: 437

DOWNLOAD →

Your success—and sanity—are closer at hand when you work at a higher level of abstraction, allowing your attention to be on the business problem rather than the details of the programming platform. Domain Specific Languages—"little languages" implemented on top of conventional programming languages—give you a way to do this because they model the domain of your business problem. DSLs in Action introduces the concepts and definitions a developer needs to build high-quality domain specific languages. It provides a solid foundation to the usage as well as implementation aspects of a DSL, focusing on the necessity of applications speaking the language of the domain. After reading this book, a programmer will be able to design APIs that make better domain models. For experienced developers, the book addresses the intricacies of domain language design without the pain of writing parsers by hand. The book discusses DSL usage and implementations in the real world based on a suite of JVM languages like Java, Ruby, Scala, and Groovy. It contains code snippets that implement real world DSL designs and discusses the pros and cons of each implementation. Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book. What's Inside Tested, real-world examples How to find the right level of abstraction Using language features to build internal DSLs Designing parser/combinator-based little languages

Domain Specific Languages Made Easy

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

Author: Meinte Boersma

Publisher: Manning Publications

ISBN: 1617296473

Category: Computers

Page: 325

View: 254

DOWNLOAD →

Written for developers who need to create user-facing DSLs, Domain-Specific Languages Made Easy unlocks clear and practical methods to create DSLs with easy-to-use interfaces. Imagine if your non-technical clients could safely produce software without the need for anyone to manually write code. Domain-specific languages are purpose-built programming interfaces that make that possible—no programming experience required. Written for developers who need to create user-facing DSLs, Domain-Specific Languages Made Easy unlocks clear and practical methods to create DSLs with easy-to-use interfaces. Author Meinte Boersma lays out an iterative process for creating languages accessible to domain experts such as operations specialists, data analysts, and financial experts. You'll start with an overview of software language engineering before diving into the unique projectional editing paradigm that makes it easy to produce DSLs for business. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

DSLs in Boo

And if you don't know Boo, don't worry-you'll learn right here all the techniques you need. Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.

Author: Oren Eini

Publisher: Simon and Schuster

ISBN: 9781638354215

Category: Computers

Page: 352

View: 780

DOWNLOAD →

A general-purpose language like C# is designed to handle all programming tasks. By contrast, the structure and syntax of a Domain-Specific Language are designed to match a particular applications area. A DSL is designed for readability and easy programming of repeating problems. Using the innovative Boo language, it's a breeze to create a DSL for your application domain that works on .NET and does not sacrifice performance. DSLs in Boo shows you how to design, extend, and evolve DSLs for .NET by focusing on approaches and patterns. You learn to define an app in terms that match the domain, and to use Boo to build DSLs that generate efficient executables. And you won't deal with the awkward XML-laden syntax many DSLs require. The book concentrates on writing internal (textual) DSLs that allow easy extensibility of the application and framework. And if you don't know Boo, don't worry-you'll learn right here all the techniques you need. Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.

Domain Specific Languages in Practice

Efftinge, S., Eysholdt, M., Köhnlein, J., Zarnekow, S., von Massow, R., Hasselbring, W., Hanus, M.: Xbase: implementing domain-specific languages for Java, GPCE 2012, pp. 112– 121 15. Eysholdt, M., Rupprecht, J.: Migrating a large ...

Author: Antonio Bucchiarone

Publisher: Springer Nature

ISBN: 9783030737580

Category: Domain-specific programming languages

Page: 336

View: 997

DOWNLOAD →

The book begins with an overview of the domain of language workbenches, which provides perspectives and motivations underpinning the creation of MPS. Moreover, technical details of the language underneath MPS together with the definition of the tool’s main features are discussed. The remaining ten chapters are then organized in three parts, each dedicated to a specific aspect of the topic. Part I “MPS in Industrial Applications” deals with the challenges and inadequacies of general-purpose languages used in companies, as opposed to the reasons why DSLs are essential, together with their benefits and efficiency, and summarizes lessons learnt by using MPS. Part II about “MPS in Research Projects” covers the benefits of text-based languages, the design and development of gamification applications, and research fields with generally low expertise in language engineering. Eventually, Part III focuses on “Teaching and Learning with MPS” by discussing the organization of both commercial and academic courses on MPS.