Your successand sanityare 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 and definitions a developer needs to build high-quality domain specific languages. It provides a solid foundation to the usage as well as implementation aspects of a DSL, focusing on the necessity of applications speaking the language of the domain. After reading this book, a programmer will be able to design APIs that make better domain models. For experienced developers, the book addresses the intricacies of domain language design without the pain of writing parsers by hand. The book discusses DSL usage and implementations in the real world based on a suite of JVM languages like Java, Ruby, Scala, and Groovy. It contains code snippets that implement real world DSL designs and discusses the pros and cons of each implementation. Whats Inside 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
Cited By
- Klikovits S and Buchs D (2021). Pragmatic reuse for DSML development, Software and Systems Modeling (SoSyM), 20:3, (837-866), Online publication date: 1-Jun-2021.
- Pupo A, Nicolay J and Boix E GUARDIA Proceedings of the 15th International Conference on Managed Languages & Runtimes, (1-15)
- Martini R and Henriques P (2017). Automatic generation of virtual learning spaces driven by CaVaDSL: an experience report, ACM SIGPLAN Notices, 52:12, (233-245), Online publication date: 1-Dec-2017.
- Martini R and Henriques P Automatic generation of virtual learning spaces driven by CaVaDSL: an experience report Proceedings of the 16th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, (233-245)
- Yoo H and Kim S (2016). ESOTAG, Multimedia Tools and Applications, 75:20, (12795-12813), Online publication date: 1-Oct-2016.
- Humer C, Wimmer C, Wirth C, Wöß A and Würthinger T (2014). A domain-specific language for building self-optimizing AST interpreters, ACM SIGPLAN Notices, 50:3, (123-132), Online publication date: 12-May-2015.
- Fabry J, Dinkelaker T, Noyé J and Tanter É (2015). A Taxonomy of Domain-Specific Aspect Languages, ACM Computing Surveys, 47:3, (1-44), Online publication date: 16-Apr-2015.
- Hartert R, Vissicchio S, Schaus P, Bonaventure O, Filsfils C, Telkamp T and Francois P (2015). A Declarative and Expressive Approach to Control Forwarding Paths in Carrier-Grade Networks, ACM SIGCOMM Computer Communication Review, 45:4, (15-28), Online publication date: 22-Sep-2015.
- Hartert R, Vissicchio S, Schaus P, Bonaventure O, Filsfils C, Telkamp T and Francois P A Declarative and Expressive Approach to Control Forwarding Paths in Carrier-Grade Networks Proceedings of the 2015 ACM Conference on Special Interest Group on Data Communication, (15-28)
- Humer C, Wimmer C, Wirth C, Wöß A and Würthinger T A domain-specific language for building self-optimizing AST interpreters Proceedings of the 2014 International Conference on Generative Programming: Concepts and Experiences, (123-132)
- Yue S and Gray J (2014). SPOT, Advances in Software Engineering, 2014, (9-9), Online publication date: 1-Jan-2014.
- McCormick P, Sweeney C, Moss N, Prichard D, Gutierrez S, Davis K and Mohd-Yusof J Exploring the construction of a domain-aware toolchain for high-performance computing Proceedings of the Fourth International Workshop on Domain-Specific Languages and High-Level Frameworks for High Performance Computing, (1-10)
- Efftinge S, Eysholdt M, Köhnlein J, Zarnekow S, von Massow R, Hasselbring W and Hanus M (2012). Xbase, ACM SIGPLAN Notices, 48:3, (112-121), Online publication date: 10-Apr-2013.
- Ghoting A, Gunnels J, Kambadur P, Pednault E and Squillante M (2013). Trends and outlook for the massive-scale analytics stack, IBM Journal of Research and Development, 57:3-4, (2-2), Online publication date: 1-May-2013.
- Mittal S and Martín J Model-driven systems engineering for netcentric system of systems with DEVS unified process Proceedings of the 2013 Winter Simulation Conference: Simulation: Making Decisions in a Complex World, (1140-1151)
- Efftinge S, Eysholdt M, Köhnlein J, Zarnekow S, von Massow R, Hasselbring W and Hanus M Xbase Proceedings of the 11th International Conference on Generative Programming and Component Engineering, (112-121)
- Franchi E A Domain Specific Language Approach for Agent-Based Social Network Modeling Proceedings of the 2012 International Conference on Advances in Social Networks Analysis and Mining (ASONAM 2012), (607-612)
- Matthee M and Levitt S Domain specific languages contextualized Proceedings of the South African Institute of Computer Scientists and Information Technologists Conference on Knowledge, Innovation and Leadership in a Diverse, Multidisciplinary Environment, (310-313)
- Ghosh D (2011). DSL for the Uninitiated, Queue, 9:6, (10-21), Online publication date: 1-Jun-2011.
- Ghosh D (2011). DSL for the uninitiated, Communications of the ACM, 54:7, (44-50), Online publication date: 1-Jul-2011.
Recommendations
Reusing legacy DSLs with Melange
DSM 2015: Proceedings of the Workshop on Domain-Specific ModelingThe proliferation of independently-developed and constantly-evolving domain-specific languages (DSLs) in many domains raises new challenges for the software language engineering community. Instead of starting the definition of new DSLs from scratch, ...