001454602 000__ 03999cam\a2200493\i\4500 001454602 001__ 1454602 001454602 003__ OCoLC 001454602 005__ 20230314003220.0 001454602 006__ m\\\\\o\\d\\\\\\\\ 001454602 007__ cr\cn\nnnunnun 001454602 008__ 230213s2023\\\\sz\\\\\\ob\\\\000\0\eng\d 001454602 019__ $$a1368403353$$a1369643052$$a1369651098 001454602 020__ $$a9783031236693$$q(electronic bk.) 001454602 020__ $$a3031236696$$q(electronic bk.) 001454602 020__ $$z3031236688 001454602 020__ $$z9783031236686 001454602 0247_ $$a10.1007/978-3-031-23669-3$$2doi 001454602 035__ $$aSP(OCoLC)1369803929 001454602 040__ $$aGW5XE$$beng$$erda$$epn$$cGW5XE$$dYDX$$dEBLCP 001454602 049__ $$aISEA 001454602 050_4 $$aQA76.7 001454602 08204 $$a005.13/3$$223/eng/20230213 001454602 1001_ $$aWąsowski, Andrzej$$c(Professor in computer science),$$eauthor. 001454602 24510 $$aDomain-specific languages :$$beffective modeling, automation, and reuse /$$cAndrzej Wąsowski, Thorsten Berger. 001454602 264_1 $$aCham :$$bSpringer,$$c[2023] 001454602 264_4 $$c©2023 001454602 300__ $$a1 online resource (xix, 485 pages) 001454602 336__ $$atext$$btxt$$2rdacontent 001454602 337__ $$acomputer$$bc$$2rdamedia 001454602 338__ $$aonline resource$$bcr$$2rdacarrier 001454602 504__ $$aIncludes bibliographical references. 001454602 506__ $$aAccess limited to authorized users. 001454602 520__ $$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. 001454602 588__ $$aDescription based on print version record. 001454602 650_0 $$aDomain-specific programming languages. 001454602 655_0 $$aElectronic books. 001454602 7001_ $$aBerger, Thorsten,$$eauthor. 001454602 77608 $$iPrint version:$$aWASOWSKI, ANDRZEJ. BERGER, THORSTEN.$$tDOMAIN-SPECIFIC LANGUAGES.$$d[Place of publication not identified] : SPRINGER INTERNATIONAL PU, 2023$$z3031236688$$w(OCoLC)1353950127 001454602 852__ $$bebk 001454602 85640 $$3Springer Nature$$uhttps://univsouthin.idm.oclc.org/login?url=https://link.springer.com/10.1007/978-3-031-23669-3$$zOnline Access$$91397441.1 001454602 909CO $$ooai:library.usi.edu:1454602$$pGLOBAL_SET 001454602 980__ $$aBIB 001454602 980__ $$aEBOOK 001454602 982__ $$aEbook 001454602 983__ $$aOnline 001454602 994__ $$a92$$bISE