Craft domain-specific languages that empower experts to create software themselves.
Domain-specific languages put business experts at the heart of software development. These purpose-built tools let your clients write down their business knowledge and have it automatically translated into working software—no dev time required. They seamlessly bridge the knowledge gap between programmers and subject experts, enabling better communication and freeing you from time-consuming code adjustments.
Inside
Building User-Friendly DSLs you’ll learn how to:
• Build a complete Domain IDE for a car rental company
• Implement a projectional editor for your DSL
• Implement content assist, type systems, expressions, and versioning language aspects
• Evaluate business rules
• Work with Abstract Syntax Trees
• Reduce notated DSL content in concrete syntax into abstract syntax
Building User-Friendly DSLs takes you on a carefully-planned journey through everything you need to create your own DSLs. It focuses on building DSLs that are easy for busy business experts to learn and master. By working through a detailed example of a car rental company, you’ll see how to create a custom DSL with a modern and intuitive UI that can replace tedious coding activities.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the technology
Here’s the central problem of software development: business users know what they need their apps to do, but they don’t know how to write the code themselves. As a developer, this means you spend a lot of time learning the same domain-specific details your user already knows. Now there’s a way to bridge this gap! You can create a Domain-Specific Language (DSL) that empowers non-technical business users to create and customize their own applications without writing any code.
About the book
Building User-Friendly DSLs teaches you how to create a complete domain-specific language that looks and works like a web application. These easy-to-use DSLs put the power to create custom software into the hands of business domain experts. As you go, you’ll cover all the essentials, from establishing structure and syntax of your DSL to implementing a user-friendly interface.
What’s inside
• Implement a projectional editor for your DSL
• Work with Abstract Syntax Trees
• Evaluate business rules
About the reader
For developers with JavaScript and web development experience.
About the author
Meinte Boersma is a senior developer and an evangelist of model-driven software development and DSLs.
Table of Contents
1 What is a domain-specific language?
2 Representing DSL content as structured data
3 Working with ASTs in code
4 Projecting the AST
5 Editing values in the projection
6 Editing objects in the projection
7 Implementing persistence and transportation of ASTs
8 Generating code from the AST
9 Preventing things from blowing up
10 Managing change
11 Implementing expressions: Binary operations
12 Implementing expressions: Order of operations
13 Implementing a type system
14 Implementing business rules
15 Some topics we didn’t cover
Review
“A great alternative to DSL implementations that not many resources out there cover.”AdhirRamjiawan “This is anice practical exploration of Domain Specific Languages using JavaScript.” GeorgeThomas “The manuscript is excellent. The content is great, the illustrations are very well done. The author has taken a very pedagogical approach to transfer practical nd rapidly exploitable knowledge in a short period of time.” Alain Lompo “AMUST-HAVE book on the topic!” Karthikeyarajan Rajendran “DSL is always considered niche area and difficult to do. This book make it easy foryou to understand with easy to understand examples. If you ever wanted to learn but never tried you now have a good reason to do so!” Kumar Unnikrishnan “Great external DSL reference. With this book you will have all you need to build your external DSL!” Julien Pohie “An interesting concept of mixing DSL design with high-level software design.” TobiasKaatz “This book is really interesting for the intended user. Easy to grasp, understand, followalong and try out the code in small incremental steps.” Satej Kumar Sahu “It’s one thing to use a DSL, it’s another to design and implement one. This book narrows the gap for anyone interested.” Burk Hufnagel
From the Back Cover
Domain-Specific Languages Made Easy shows you how to design and build modern DSLs for business users. Drawing on years of industry experience, author Meinte Boersma lays out an iterative process for creating languages accessible todomain experts such as operations specialists, data analysts, and financialexperts. 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. There are no special tools or proprietary software required–you’ll work with an open source JavaScript stack that ensures the techniques you learn are easy to port between projects.
About the Author
Meinte Boersma has been a practitioner of model-driven software development and software language engineering since 2007. He has given workshops on DSL, participated in organizing the Language Workbench Challenge, and has spoken at conferences on DSLs.