1 What is a Domain-Specific Language?

 

This chapter covers

  • What is a Domain-Specific Language (DSL)
  • What does (adopting) a DSL(-based approach) do for an organization
  • When (not) to use a DSL
  • What are the key aspects of a DSL

If you’re reading this book, you’ve probably already heard about DSLs. You might even have realized that you may need to use one. But do you really? And what is a DSL, and how would you build one?

The tricky thing with teaching about DSLs is that it’s a very broad topic, with many interconnections to other topics in both software development, and computer science. It’s also a topic that can be -and is- looked at from many different angles. Don’t worry: this book will not try to teach you everything about DSLs, or overwhelm you with unnecessary details. Instead, it’ll take you on a carefully-planned route that walks you through a set of connected topics that cover all the basics and skills that you need to craft your own DSLs. This learning path will be example-driven, quite literally going from the concrete to the abstract.

It will also focus on DSLs for business-purposes, that aim to empower domain experts that are first and foremost business stakeholders—that explains the “business-friendly” part of the title of this book. To that end, we’ll start with sketching out an example business case for which we’ll build a complete DSL throughout the book.

1.1 A business case: a car rental company

 
 
 

1.2 Using a DSL-based approach for software development

 
 
 

1.2.1 The design of the Domain IDE

 
 

1.2.2 The architecture of the Domain IDE

 
 

1.2.3 What we’ll be doing in this book

 
 
 
 

1.3 Why use a DSL-based approach for software development?

 
 
 
 

1.3.1 Empowering the domain experts

 
 
 

1.3.2 Improving efficiency of the software development process

 
 

1.3.3 New possibilities

 
 

1.3.4 When (not) to use a DSL-based approach?

 
 
 

1.4 What is a DSL?

 
 

1.4.1 Key aspects

 
 

1.5 Summary

 
 
sitemap

Unable to load book!

The book could not be loaded.

(try again in a couple of minutes)

manning.com homepage
test yourself with a liveTest