LEADER 03855nam 22005295 450 001 9910647785703321 005 20251202162029.0 010 $a9783031236693 010 $a3031236696 024 7 $a10.1007/978-3-031-23669-3 035 $a(MiAaPQ)EBC7190150 035 $a(Au-PeEL)EBL7190150 035 $a(CKB)26089872800041 035 $a(DE-He213)978-3-031-23669-3 035 $a(PPN)26821011X 035 $a(EXLCZ)9926089872800041 100 $a20230201d2023 u| 0 101 0 $aeng 135 $aurcnu|||||||| 181 $ctxt$2rdacontent 182 $cc$2rdamedia 183 $acr$2rdacarrier 200 10$aDomain-Specific Languages $eEffective Modeling, Automation, and Reuse /$fby Andrzej W?sowski, Thorsten Berger 205 $a1st ed. 2023. 210 1$aCham :$cSpringer International Publishing :$cImprint: Springer,$d2023. 215 $a1 online resource (494 pages) 311 08$aPrint version: W?sowski, Andrzej Domain-Specific Languages Cham : Springer International Publishing AG,c2023 9783031236686 320 $aIncludes bibliographical references. 330 $aThis textbook describes the theory and the pragmatics of using and engineering high-level software languages ? also known as modeling or domain-specific languages (DSLs) ? for creating quality software. This includes methods, design patterns, guidelines, and testing practices for defining the syntax and the semantics of languages. While remaining close to technology, the book covers multiple paradigms and solutions, avoiding a particular technological silo. It unifies the modeling, the object-oriented, and the functional-programming perspectives on DSLs. The book has 13 chapters. Chapters 1 and 2 introduce and motivate DSLs. Chapter 3 kicks off the DSL engineering lifecycle, describing how to systematically develop abstract syntax by analyzing a domain. Chapter 4 addresses the concrete syntax, including the systematic engineering of context-free grammars. Chapters 5 and 6 cover the static semantics ? with basic constraints as a starting point and type systems for advanced DSLs. Chapters 7 (Transformation), 8 (Interpretation), and 9 (Generation) describe different paradigms for designing and implementing the dynamic semantics, while covering testing and other kinds of quality assurance. Chapter 10 is devoted to internal DSLs. Chapters 11 to 13 show the application of DSLs and engage with simpler alternatives to DSLs in a highly distinguished domain: software variability. These chapters introduce the underlying notions of software product lines and feature modeling. The book has been developed based on courses on model-driven software engineering (MDSE) and DSLs held by the authors. It aims at senior undergraduate and junior graduate students in computer science or software engineering. Since it includes examples and lessons from industrial and open-source projects, as well as from industrial research, practitioners will also find it a useful reference. The numerous examples include code in Scala 3, ATL, Alloy, C#, F#, Groovy,Java, JavaScript, Kotlin, OCL, Python, QVT, Ruby, and Xtend. The book contains as many as 277 exercises. The associated code repository facilitates learning and using the examples in a course. 606 $aSoftware engineering 606 $aBusiness information services 606 $aSoftware Engineering 606 $aIT in Business 615 0$aSoftware engineering. 615 0$aBusiness information services. 615 14$aSoftware Engineering. 615 24$aIT in Business. 676 $a005.11 700 $aWa?sowski$b Andrzej$0941122 702 $aBerger$b Thorsten 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 906 $aBOOK 912 $a9910647785703321 996 $aDomain-Specific Languages$93363596 997 $aUNINA