Domain Specific Languages PDF ´ Domain Specific ePUB

Domain Specific Languages PDF ´ Domain Specific ePUB

Domain Specific Languages ➜ [KINDLE] ❆ Domain Specific Languages By Martin Fowler ➦ – Capitalsoftworks.co.uk 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 Doma 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 techniues for building them and guides software engineers in choosing the right approaches for their applications This book's techniues may be utilized with Domain Specific ePUB ´ 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.


About the Author: Martin Fowler

ThoughtWorks and an outspoken advocate for best practices in enterprise software design particularly in regard to agile software development methodologies including extreme programming.



10 thoughts on “Domain Specific Languages

  1. Olha Olha says:

    I'm very glad to finally finish this book It's greatI started reading it to write a DSL for Autotests kind of integration tests for a very coupled architectureDuring exploring the project I've understood that in this case it's better to use the runtime features of my programming language still doing it After reading the first theoretical part of the book I was asked to write custom annotations for C code C11 standard declared attributes but compilers didn't impement itSo it was obvious to me to use smth like macros use a State Machine semantic model process the code with python script at preprocessing stepI couldnt imagine this without the book 😍 so the main power is that it gives ideasWhen reading about language workbenches I started using Graphviz mostly for visualizing State Machines 😀 Now I almost developed a habit of doing my everyday thinking on a computer instead of a paper the final product of analysisexploration can be shared and understood with a much higher probabilityThe sad moment lie in the fact that I'm almost a noob in Compilers theorylexers parsers and theoretical side of regexps So when I use a recursive regexps from Python 'regex' package I don't know the computational complexity of this nice powerful function As I've seen an ObjC wrapper for ANLTR maybe in the nearest future I'll try it Also I plan to learn basic concepts of metaprogramming with C templates


  2. David Lindelof David Lindelof says:

    Domain specific languages DSLs are small languages that programmers use to express concepts in a very specific domain They typically are far less powerful that generic programming languages but communicate their intent far betterThis book is as far as I know the first comprehensive treatment of this important topic and Martin Fowler does a very fine job of it even though some areas eg Language Workbenches are too recent to get a full coverageThe book begins with a so called narrative section that gives a broad explanation of DSLs with abundant references to detailed topics in the second half of the book Martin carefully avoids the term Patterns here but I think this is what they really are This second half of the book can safely be skipped on a first reading though I found Martin's writing to be so engaging that I had no difficulty reading the book cover to coverIf I should mention one area of improvement it would be the so called Zoo of DSLs This section gives several examples of DSLs both internal and external and I think this section couldshould have been bigger with examples and a better discussion of why this particular DSL is appropriate to that domain etcHighly recommended


  3. Joe Joe says:

    A pretty light read for those interested in creating a domain specific language but aren't versed nor want to be versed in the design of general purpose programming languages and compiler theory The book convinced me to switch from PLY to Antlr for my project which was an unforeseen conseuence Martin Fowler's genius is in his ability to organize condense and simplify a wide survey of information If anyone else had written this book I wouldn't have been able to read it in 3 days The only deduction I give is for the unnecessary self deprecating comments and apologies that were scattered throughout the book


  4. John John says:

    Summary this book is good solid trustworthy accessible advice that allows one to create professional and perfectly serviceable but ultimately uninspired and uninteresting domain specific languages If you write domain specific languages you should read it but if that's all you read I have a great pity for youThis book is successful in its project which is to introduce the implementation of computer languages as a viable tool for the computing professional or in other words to interpret the practices of language development as practices of software engineering This is by varying interpretations both a good and a bad thing Let us say what first is good about this result and this volume for there is much that is good about itFirst of all this is professional advice administered with touches of that true sign of expert knowledge self skepticism Fowler constantly warns of what he hasn't tried and of what other software communities say differently Where he does advise he looks to specific examples of code to back up what he says In ever way one feels like one is getting judgment from where it is earned This tone is leavened by whimsy but even in the fanciful examples one does not feel as though one has ever left the domain of the professional programmer The organization of the book itself shows a good deal of professional care with its division into general guidance and patterns as well as the pattern listing and cheat sheet inside the front and back covers respectively It really does earn the red ribbon bookmark which graces the hardcover edition to indicate a book of substance and solid expert guidanceHaving said this in my opinion its downfall is exactly that it brings the subject of language design to everyday professional software engineering Although it talks about communication with domain experts it brings nothing from outside domains inside the languages presented and really does nothing to extend the notion of what one can do with computers Domain specific language design is truly one of great media for expressing formal ideas of any field nearly free of existing implementations The reader will have some new tools to work on what they've worked on before but they will not see new visasSomething about this and perhaps much of software engineering makes me sad as though the experimental fun has been taken out of computing To this I should leave a uote from an early computing pioneer“I think that it’s extraordinarily important that we in computer science keep fun in computing When it started out it was an awful lot of fun Of course the paying customers got shafted every now and then and after a while we began to take their complaints seriously We began to feel as if we really were responsible for the successful error free perfect use of these machines I don’t think we are I think we’re responsible for stretching them setting them off in new directions and keeping fun in the house I hope the field of computer science never loses its sense of fun Above all I hope we don’t become missionaries Don’t feel as if you’re Bible sales men The world has too many of those already What you know about computing other people will learn Don’t feel as if the key to successful computing is only in your hands What’s in your hands I think and hope is intelligence the ability to see the machine as than when you were first led up to it; that you can make it ”― Alan J Perlis


  5. Kiril Kirilov Kiril Kirilov says:

    The DSL techniues I liked because of their usage in Rails literal extension textual polishing annotation closure dependency network production rule system state machine template generation embedment helper generation gap Rest of the book mediocre


  6. Henrik Dohlmann Henrik Dohlmann says:

    Not what I hoped Might be useful if you want to do DSL by hand though


  7. Rod Hilton Rod Hilton says:

    I loved Fowler's Refactoring and Patterns of Enterprise Application Architecture so when I saw he was working on a book about DSLs I was extremely excited I've been really into fluent interfaces for a while and I wanted to learn about some best practices patterns and other stuff to think aboutFowler's Domain Specific Languages is good but I wouldn't call it great At least not as great as Refactoring or PoEAA One problem is that it's a little disjointed DSLs are a large topic and Fowler admits in numerous places that he wasn't sure how much detail to cover on a particular topic or where that topic should go simply because of how resistant the material is to that kind of organization He admits that he didn't want to be stuck writing the book forever and wanted to release it earlier as opposed to never I think he made the right call and though he acknowledges that this decision has a downside the downside is a bit noticableThe book can also be a tad hand wavey at times Fowler repeatedly stresses the importance of building a semantic model when developing a DSL but I read the entire book from cover to cover and never felt like I got a truly good understanding of how best to do that for anything other than an extremely tiny DSLA lot of the material on External DSLs I was able to understand because of my Computer Science degree which focused on systems and stressed language design lexing parsing compilation and the like If I didn't have that background I think a lot of the External DSL content would have been over my head as it felt like very high level coverage of a very deep topic a depth without which nothing practical can be doneOverall I really enjoyed the book as I do all of Fowler's books His writing style can be a bit dry he seems to have been made aware of this criticism as this book contains a number of jokes peppered throughout its pages but it is also dense and informative I learned an awful lot and I'd recommend the book to anyone who wanted to dive deeper into DSLs That said I think the book would have been better as two smaller books one on internal DSLs and one on external DSLs and all of the language workbench crap could just be completely dropped


  8. Väinö Leppänen Väinö Leppänen says:

    This book is a nice intro into the DSLs in general and as such it's just the first step Actually learning how to create DSLs isn't something the book is good for The book focuses on introducing the wonderful world of DSLs and does it uite nicely as expectedI have come to expect a certain level of writing from Mr Fowler and he stands up to my expectations very well The text is easy to read and understand no difficult words or long sentences


  9. Yuriy Chulovskyy Yuriy Chulovskyy says:

    It should be not the first book you are reading about DSLSince it was my first book it is too abstract for me It doesn't help me to create my first DSLMaybe I'll read it again after I create a few DSLs


  10. Rejeev Divakaran Rejeev Divakaran says:

    I didn't like the book probably because I don't like the idea of DSLs


Leave a Reply

Your email address will not be published. Required fields are marked *

10 thoughts on “Domain Specific Languages

  1. Olha Olha says:

    I'm very glad to finally finish this book It's greatI started reading it to write a DSL for Autotests kind of integration tests for a very coupled architectureDuring exploring the project I've understood that in this case it's better to use the runtime features of my programming language still doing it After reading the first theoretical part of the book I was asked to write custom annotations for C code C11 standard declared attributes but compilers didn't impement itSo it was obvious to me to use smth like macros use a State Machine semantic model process the code with python script at preprocessing stepI couldnt imagine this without the book 😍 so the main power is that it gives ideasWhen reading about language workbenches I started using Graphviz mostly for visualizing State Machines 😀 Now I almost developed a habit of doing my everyday thinking on a computer instead of a paper the final product of analysisexploration can be shared and understood with a much higher probabilityThe sad moment lie in the fact that I'm almost a noob in Compilers theorylexers parsers and theoretical side of regexps So when I use a recursive regexps from Python 'regex' package I don't know the computational complexity of this nice powerful function As I've seen an ObjC wrapper for ANLTR maybe in the nearest future I'll try it Also I plan to learn basic concepts of metaprogramming with C templates

  2. David Lindelof David Lindelof says:

    Domain specific languages DSLs are small languages that programmers use to express concepts in a very specific domain They typically are far less powerful that generic programming languages but communicate their intent far betterThis book is as far as I know the first comprehensive treatment of this important topic and Martin Fowler does a very fine job of it even though some areas eg Language Workbenches are too recent to get a full coverageThe book begins with a so called narrative section that gives a broad explanation of DSLs with abundant references to detailed topics in the second half of the book Martin carefully avoids the term Patterns here but I think this is what they really are This second half of the book can safely be skipped on a first reading though I found Martin's writing to be so engaging that I had no difficulty reading the book cover to coverIf I should mention one area of improvement it would be the so called Zoo of DSLs This section gives several examples of DSLs both internal and external and I think this section couldshould have been bigger with examples and a better discussion of why this particular DSL is appropriate to that domain etcHighly recommended

  3. Joe Joe says:

    A pretty light read for those interested in creating a domain specific language but aren't versed nor want to be versed in the design of general purpose programming languages and compiler theory The book convinced me to switch from PLY to Antlr for my project which was an unforeseen conseuence Martin Fowler's genius is in his ability to organize condense and simplify a wide survey of information If anyone else had written this book I wouldn't have been able to read it in 3 days The only deduction I give is for the unnecessary self deprecating comments and apologies that were scattered throughout the book

  4. John John says:

    Summary this book is good solid trustworthy accessible advice that allows one to create professional and perfectly serviceable but ultimately uninspired and uninteresting domain specific languages If you write domain specific languages you should read it but if that's all you read I have a great pity for youThis book is successful in its project which is to introduce the implementation of computer languages as a viable tool for the computing professional or in other words to interpret the practices of language development as practices of software engineering This is by varying interpretations both a good and a bad thing Let us say what first is good about this result and this volume for there is much that is good about itFirst of all this is professional advice administered with touches of that true sign of expert knowledge self skepticism Fowler constantly warns of what he hasn't tried and of what other software communities say differently Where he does advise he looks to specific examples of code to back up what he says In ever way one feels like one is getting judgment from where it is earned This tone is leavened by whimsy but even in the fanciful examples one does not feel as though one has ever left the domain of the professional programmer The organization of the book itself shows a good deal of professional care with its division into general guidance and patterns as well as the pattern listing and cheat sheet inside the front and back covers respectively It really does earn the red ribbon bookmark which graces the hardcover edition to indicate a book of substance and solid expert guidanceHaving said this in my opinion its downfall is exactly that it brings the subject of language design to everyday professional software engineering Although it talks about communication with domain experts it brings nothing from outside domains inside the languages presented and really does nothing to extend the notion of what one can do with computers Domain specific language design is truly one of great media for expressing formal ideas of any field nearly free of existing implementations The reader will have some new tools to work on what they've worked on before but they will not see new visasSomething about this and perhaps much of software engineering makes me sad as though the experimental fun has been taken out of computing To this I should leave a uote from an early computing pioneer“I think that it’s extraordinarily important that we in computer science keep fun in computing When it started out it was an awful lot of fun Of course the paying customers got shafted every now and then and after a while we began to take their complaints seriously We began to feel as if we really were responsible for the successful error free perfect use of these machines I don’t think we are I think we’re responsible for stretching them setting them off in new directions and keeping fun in the house I hope the field of computer science never loses its sense of fun Above all I hope we don’t become missionaries Don’t feel as if you’re Bible sales men The world has too many of those already What you know about computing other people will learn Don’t feel as if the key to successful computing is only in your hands What’s in your hands I think and hope is intelligence the ability to see the machine as than when you were first led up to it; that you can make it ”― Alan J Perlis

  5. Kiril Kirilov Kiril Kirilov says:

    The DSL techniues I liked because of their usage in Rails literal extension textual polishing annotation closure dependency network production rule system state machine template generation embedment helper generation gap Rest of the book mediocre

  6. Henrik Dohlmann Henrik Dohlmann says:

    Not what I hoped Might be useful if you want to do DSL by hand though

  7. Rod Hilton Rod Hilton says:

    I loved Fowler's Refactoring and Patterns of Enterprise Application Architecture so when I saw he was working on a book about DSLs I was extremely excited I've been really into fluent interfaces for a while and I wanted to learn about some best practices patterns and other stuff to think aboutFowler's Domain Specific Languages is good but I wouldn't call it great At least not as great as Refactoring or PoEAA One problem is that it's a little disjointed DSLs are a large topic and Fowler admits in numerous places that he wasn't sure how much detail to cover on a particular topic or where that topic should go simply because of how resistant the material is to that kind of organization He admits that he didn't want to be stuck writing the book forever and wanted to release it earlier as opposed to never I think he made the right call and though he acknowledges that this decision has a downside the downside is a bit noticableThe book can also be a tad hand wavey at times Fowler repeatedly stresses the importance of building a semantic model when developing a DSL but I read the entire book from cover to cover and never felt like I got a truly good understanding of how best to do that for anything other than an extremely tiny DSLA lot of the material on External DSLs I was able to understand because of my Computer Science degree which focused on systems and stressed language design lexing parsing compilation and the like If I didn't have that background I think a lot of the External DSL content would have been over my head as it felt like very high level coverage of a very deep topic a depth without which nothing practical can be doneOverall I really enjoyed the book as I do all of Fowler's books His writing style can be a bit dry he seems to have been made aware of this criticism as this book contains a number of jokes peppered throughout its pages but it is also dense and informative I learned an awful lot and I'd recommend the book to anyone who wanted to dive deeper into DSLs That said I think the book would have been better as two smaller books one on internal DSLs and one on external DSLs and all of the language workbench crap could just be completely dropped

  8. Väinö Leppänen Väinö Leppänen says:

    This book is a nice intro into the DSLs in general and as such it's just the first step Actually learning how to create DSLs isn't something the book is good for The book focuses on introducing the wonderful world of DSLs and does it uite nicely as expectedI have come to expect a certain level of writing from Mr Fowler and he stands up to my expectations very well The text is easy to read and understand no difficult words or long sentences

  9. Yuriy Chulovskyy Yuriy Chulovskyy says:

    It should be not the first book you are reading about DSLSince it was my first book it is too abstract for me It doesn't help me to create my first DSLMaybe I'll read it again after I create a few DSLs

  10. Rejeev Divakaran Rejeev Divakaran says:

    I didn't like the book probably because I don't like the idea of DSLs

Leave a Reply

Your email address will not be published. Required fields are marked *