|DSLs in Action
Foreword by Jonas Bonér
December 2010 | 376 pages
|$44.99||pBook + eBook (includes PDF, ePub, and Kindle)|
|$35.99||eBook only (includes PDF, ePub, and Kindle)|
|Browse all our mobile format eBooks.|
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 you'll need to build high-quality domain-specific languages. It explores DSL implementation based on JVM languages like Java, Scala, Clojure, Ruby, and Groovy and contains fully explained code snippets that implement real-world DSL designs. For experienced developers, the book addresses the intricacies of DSL design without the pain of writing parsers by hand.
- 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
This book is written for developers working with JVM languages. Others will find techniques that (generally) work for them too.
About the Author
Debasish Ghosh is a senior member of the ACM and an influential blogger. He works with DSLs based on Java, Ruby, Clojure, and Scala.
WHAT REVIEWERS ARE SAYING
“Five languages with no trivial examples all in one book, highly recommended.”
“DSLs in Action is a good book for anybody that is interested in DSLs especially so if you are developing on the JVM, even more so if you develop in Scala, and should provide you a good grounding in deciding the type of DSL to implement and the tools and/or skills to do so.”
“This book does an excellent job of showing how DSLs (internal and external) can be created at used in a real world scenario.”
—Dror Helper, Software Engineer
“The book does a good job of walking you through examples of implementing DSLs in various languages and the approaches you might take. In daily development the likely DSLs to be implemented will be embedded DSLs, but the book does a good job of dealing with external DSLs and the complexity involved.”