Programming Books C Java PHP Python Learn more Browse Programming Books
Domain-Specific Languages (Addison-Wesley Signature Series and over one million other books are available for Amazon Kindle. Learn more

Sorry, this item is not available in
Image not available for
Image not available

To view this video download Flash Player


Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $13.19 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Start reading Domain-Specific Languages on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Domain-Specific Languages (Addison-Wesley Signature Series (Fowler)) [Hardcover]

by Martin Fowler
4.0 out of 5 stars  See all reviews (14 customer reviews)

List Price: $59.99
Price: $40.44 & FREE Shipping. Details
You Save: $19.55 (33%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 18 left in stock (more on the way).
Ships from and sold by Gift-wrap available.
Want it tomorrow, April 25? Choose One-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student


Amazon Price New from Used from
Kindle Edition $27.49  
Hardcover $40.44  
Sell Us Your Books
Get up to 80% back when you sell us your books, even if you didn't buy them at Amazon. Learn more

Book Description

October 3, 2010 0321712943 978-0321712943 1
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

Frequently Bought Together

Domain-Specific Languages (Addison-Wesley Signature Series (Fowler)) + Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages (Pragmatic Programmers)
Price for both: $64.40

Buy the selected items together

Editorial Reviews

About the Author

Martin Fowler is Chief Scientist at ThoughtWorks. He describes himself as “an author, speaker, consultant, and general loudmouth on software development. I concentrate on designing enterprise software—looking at what makes a good design and what practices are needed to come up with good design.” Fowler’s books include Patterns of Enterprise Application Architecture; UML Distilled, Third Edition; and (with Kent Beck, John Brant, and William Opdyke) Refactoring: Improving the Design of Existing Code. All are published by Addison-Wesley.

Product Details

  • Series: Addison-Wesley Signature Series (Fowler)
  • Hardcover: 640 pages
  • Publisher: Addison-Wesley Professional; 1 edition (October 3, 2010)
  • Language: English
  • ISBN-10: 0321712943
  • ISBN-13: 978-0321712943
  • Product Dimensions: 9.5 x 7.2 x 1.4 inches
  • Shipping Weight: 2.5 pounds (View shipping rates and policies)
  • Average Customer Review: 4.0 out of 5 stars  See all reviews (14 customer reviews)
  • Amazon Best Sellers Rank: #346,508 in Books (See Top 100 in Books)

More About the Author

For all of my career I've been interested in the design and architecture of software systems, particularly those loosely classed as Enterprise Applications. I firmly believe that poor software design leads to software that is difficult to change in response to growing needs, and encourages buggy software that saps the productivity of computer users everywhere.
I'm always trying to find out what designs are effective, what approaches lead people into trouble, how we can organize our work to do better designs, and how to communicate what I've learned to more people. My books and website are all ways in which I can share what I learn and I'm glad I've found a way to make a living doing this.

Customer Reviews

Most Helpful Customer Reviews
40 of 46 people found the following review helpful
3.0 out of 5 stars Well written but not comprehensive July 9, 2011
Format:Hardcover|Verified Purchase
As usual, Fowler delivers a very well structured book, easy to both read and use as reference material. He is a very able and pragmatic writer and that shows in this book.

However, I can't consider this book a good text because of the things it omits. This is a book about designing DSLs and this task is one of the things functional languages excel at, but Fowler establishes in the introduction that he is going to happily ignore all things related to functional programming and never looks back. Anyone interested in designing DSLs owes it to himself to research Haskell, Scala and F# as they are vastly superior to Java in this respect.

Fowler has been one of the best at writing about OO design and approaches this book in the same way, sadly he hasn't upgraded his knowledge to include other paradigms that in this case address the problem at hand better.
Was this review helpful to you?
60 of 95 people found the following review helpful
2.0 out of 5 stars Bad kindle conversion November 8, 2010
Format:Kindle Edition|Verified Purchase
This excellent information in the book is locked behind a lazy kindle conversion. References within the book are not hyper-lined, and, much worse, reference page numbers of the physical edition instead of kindle "locations," making them extra useless. All for a price approaching the physical edition.
Was this review helpful to you?
0 of 1 people found the following review helpful
1.0 out of 5 stars Lacks depth and focus February 12, 2014
Format:Hardcover|Verified Purchase
The book uses mostly incomplete code samples in three languages (Java, Ruby, C#) as if a reader knows these languages well enough to fill in the many gaps. Virtually all topics are sketchily covered, all definitions are vague, and the prose is generally verbose and undisciplined. If a reader is expecting to read this book to learn enough to be able to write a small interpreter, for instance, he should look elsewhere. The book would have been much less annoying and much more useful if it used a single language, covered topics like tokenization and parsing in enough detail to handle practical difficulties and provided complete, compilable code samples. I am sure there are programmers who may find it useful, but I think they would be professionals with considerable experience who are just looking for a high-level sketchy description of DSL and who will be able to turn such descriptions into actual programs on their own. If the author were to turn this book in as a Master's thesis in a Computer Science Department, he should be handed an F.
Comment | 
Was this review helpful to you?
6 of 11 people found the following review helpful
Format:Hardcover|Verified Purchase
I no longer write programs, I help people design systems, through sensible design and architecture, but I have never forgotten my assembler roots. The author has produced an important book, as significant as when he created the refactoring book and analysis patterns, and for the same reason.
Fowler took concepts that good professionals understand almost implicitly by working through these difficult ideas and places them in context that can be used as a communication tool. He has put a name and a face to a set of memes.
Fowlers critical examination of the importance of the semantic model and the way it needs to be constructed apart from syntax, the separation of the state machine model, and the illustrative programming ideas as exemplified by spreadsheets, provide PERSPECTIVE that is so sorely needed. He links these concepts together in a way that is vital for architects and programmers.
Comment | 
Was this review helpful to you?
0 of 2 people found the following review helpful
4.0 out of 5 stars A domain-specific book February 23, 2013
By Jake
Format:Kindle Edition|Verified Purchase
I picked this up with only a mild curiosity into DSL's, and more interested i Martin Fowler's usual anecdotes and pearls of wisdom that apply more generally to the software industry. This book has much more of the former than the latter. If you're specifically interested in DSL's then this book is great, but if you're looking for more broad-based appeal, Fowler's other works (e.g. Refactoring) are better starts.
Comment | 
Was this review helpful to you?
3 of 8 people found the following review helpful
By ws__
Fowler wrote a beautiful, humorous and accessible introduction to the extremely rich field of domain specific languages. I could immediately put the knowledge into quite impressive action on a little project. Thank you for that.

After a general introduction in the first part (143 pages) more detailed knowledge can be found in another five parts. Those parts are written in a pattern style. This leads to advantages for systematic comparison and reference type usage. Actually reading through the quite heavy book from cover to cover lets one suffer a little from the high amount of redundancy.

I do like the deep thinking and clear style of Martin Fowler. Fowler has an independent and great mind: Fowler does not hesitate to make style recommendations for DSLs that are opposite to a good style within a normal programming language.

The examples are easily accessible. The languages are mostly Java, C# and Ruby.

I do highly recommend this thorough introduction to a very different approach to programming.
Comment | 
Was this review helpful to you?
4 of 10 people found the following review helpful
4.0 out of 5 stars Kindle edition a no brainer buy July 18, 2011
Format:Hardcover|Verified Purchase
The Kindle edition seems okay to me: hyperlinks work, there's a good table of contents, and the diagrams and code samples render fine. You cannot copy and paste code from the Kindle version - by design. Style is a occasionally self-conscious and discursive, you know - the regular grey-haired guru affectation. It's long, but not exactly terse or concise. But there are some rich veins of tremendously precious material in this book. It's accessible too. I am getting a lot of value from it without a comp sci background. A bargain.
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
Search Customer Reviews
Only search this product's reviews

What Other Items Do Customers Buy After Viewing This Item?


Have something you'd like to share about this product?
Start a new discussion
First post:
Prompts for sign-in

Search Customer Discussions
Search all Amazon discussions

Look for Similar Items by Category