DSL Engineering

DSL Engineering PDF Author: Markus Voelter
Publisher: Createspace Independent Pub
ISBN: 9781481218580
Category : Computers
Languages : en
Pages : 558

Get Book Here

Book Description
The definitive resource on domain-specific languages: based on years of real-world experience, relying on modern language workbenches and full of examples. Domain-Specific Languages are programming languages specialized for a particular application domain. By incorporating knowledge about that domain, DSLs can lead to more concise and more analyzable programs, better code quality and increased development speed. This book provides a thorough introduction to DSL, relying on today's state of the art language workbenches. The book has four parts: introduction, DSL design, DSL implementation as well as the role of DSLs in various aspects of software engineering. Part I Introduction: This part introduces DSLs in general and discusses their advantages and drawbacks. It also defines important terms and concepts and introduces the case studies used in the most of the remainder of the book. Part II DSL Design: This part discusses the design of DSLs - independent of implementation techniques. It reviews seven design dimensions, explains a number of reusable language paradigms and points out a number of process-related issues. Part III DSL Implementation: This part provides details about the implementation of DSLs with lots of code. It uses three state-of-the-art but quite different language workbenches: JetBrains MPS, Eclipse Xtext and TU Delft's Spoofax. Part IV DSLs and Software Engineering: This part discusses the use of DSLs for requirements, architecture, implementation and product line engineering, as well as their roles as a developer utility and for implementing business logic. The book is available as a printed version (the one your are looking at) and as a PDF. For details see the book's companion website at http: //dslbook.org

DSL Engineering

DSL Engineering PDF Author: Markus Voelter
Publisher: Createspace Independent Pub
ISBN: 9781481218580
Category : Computers
Languages : en
Pages : 558

Get Book Here

Book Description
The definitive resource on domain-specific languages: based on years of real-world experience, relying on modern language workbenches and full of examples. Domain-Specific Languages are programming languages specialized for a particular application domain. By incorporating knowledge about that domain, DSLs can lead to more concise and more analyzable programs, better code quality and increased development speed. This book provides a thorough introduction to DSL, relying on today's state of the art language workbenches. The book has four parts: introduction, DSL design, DSL implementation as well as the role of DSLs in various aspects of software engineering. Part I Introduction: This part introduces DSLs in general and discusses their advantages and drawbacks. It also defines important terms and concepts and introduces the case studies used in the most of the remainder of the book. Part II DSL Design: This part discusses the design of DSLs - independent of implementation techniques. It reviews seven design dimensions, explains a number of reusable language paradigms and points out a number of process-related issues. Part III DSL Implementation: This part provides details about the implementation of DSLs with lots of code. It uses three state-of-the-art but quite different language workbenches: JetBrains MPS, Eclipse Xtext and TU Delft's Spoofax. Part IV DSLs and Software Engineering: This part discusses the use of DSLs for requirements, architecture, implementation and product line engineering, as well as their roles as a developer utility and for implementing business logic. The book is available as a printed version (the one your are looking at) and as a PDF. For details see the book's companion website at http: //dslbook.org

Domain-Specific Languages

Domain-Specific Languages PDF Author: Andrzej Wąsowski
Publisher: Springer Nature
ISBN: 3031236696
Category : Computers
Languages : en
Pages : 494

Get Book Here

Book Description
This 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.

Software Language Engineering

Software Language Engineering PDF Author: Anthony Sloane
Publisher: Springer
ISBN: 3642288308
Category : Computers
Languages : en
Pages : 398

Get Book Here

Book Description
This book constitutes the thoroughly refereed post-proceedings of the 4th International Conference on Software Language Engineering, SLE 2011, held in Braga, Portugal, in July 2011. The 18 papers presented together with 4 tool/language demonstration papers were carefully reviewed and selected from numerous submissions. SLE’s foremost mission is to encourage and organize communication between communities that have traditionally looked at software languages from different, more specialized, and yet complementary perspectives. SLE emphasizes the fundamental notion of languages as opposed to any realization in specific technical spaces.

Software Engineering for Science

Software Engineering for Science PDF Author: Jeffrey C. Carver
Publisher: CRC Press
ISBN: 1498743862
Category : Computers
Languages : en
Pages : 311

Get Book Here

Book Description
Software Engineering for Science provides an in-depth collection of peer-reviewed chapters that describe experiences with applying software engineering practices to the development of scientific software. It provides a better understanding of how software engineering is and should be practiced, and which software engineering practices are effective for scientific software. The book starts with a detailed overview of the Scientific Software Lifecycle, and a general overview of the scientific software development process. It highlights key issues commonly arising during scientific software development, as well as solutions to these problems. The second part of the book provides examples of the use of testing in scientific software development, including key issues and challenges. The chapters then describe solutions and case studies aimed at applying testing to scientific software development efforts. The final part of the book provides examples of applying software engineering techniques to scientific software, including not only computational modeling, but also software for data management and analysis. The authors describe their experiences and lessons learned from developing complex scientific software in different domains. About the Editors Jeffrey Carver is an Associate Professor in the Department of Computer Science at the University of Alabama. He is one of the primary organizers of the workshop series on Software Engineering for Science (http://www.SE4Science.org/workshops). Neil P. Chue Hong is Director of the Software Sustainability Institute at the University of Edinburgh. His research interests include barriers and incentives in research software ecosystems and the role of software as a research object. George K. Thiruvathukal is Professor of Computer Science at Loyola University Chicago and Visiting Faculty at Argonne National Laboratory. His current research is focused on software metrics in open source mathematical and scientific software.

Multicarrier Modulation with Low PAR

Multicarrier Modulation with Low PAR PDF Author: Jose Tellado
Publisher: Springer Science & Business Media
ISBN: 030647039X
Category : Technology & Engineering
Languages : en
Pages : 166

Get Book Here

Book Description
Multicarrier Modulation with Low PAR: Applications to DSL and Wireless provides the first comprehensive formulation of the PAR problem for multicarrier modulation and proposes three new methods for PAR reduction. The information in this book will be vital to practicing engineers, industrial researchers, scientists, graduate and postgraduate researchers, and others working in multicarrier transmission and communication theory. Multicarrier Modulation with Low PAR: Applications to DSL and Wireless serves as a valuable reference to both design engineers and communications theorists, and can also be used for advanced courses on the subject.

Variable Domain-specific Software Languages with DjDSL

Variable Domain-specific Software Languages with DjDSL PDF Author: Stefan Sobernig
Publisher: Springer Nature
ISBN: 303042152X
Category : Computers
Languages : en
Pages : 314

Get Book Here

Book Description
This book details the conceptual foundations, design and implementation of the domain-specific language (DSL) development system DjDSL. DjDSL facilitates design-decision-making on and implementation of reusable DSL and DSL-product lines, and represents the state-of-the-art in language-based and composition-based DSL development. As such, it unites elements at the crossroads between software-language engineering, model-driven software engineering, and feature-oriented software engineering. The book is divided into six chapters. Chapter 1 (“DSL as Variable Software”) explains the notion of DSL as variable software in greater detail and introduces readers to the idea of software-product line engineering for DSL-based software systems. Chapter 2 (“Variability Support in DSL Development”) sheds light on a number of interrelated dimensions of DSL variability: variable development processes, variable design-decisions, and variability-implementation techniques for DSL. The three subsequent chapters are devoted to the key conceptual and technical contributions of DjDSL: Chapter 3 (“Variable Language Models”) explains how to design and implement the abstract syntax of a DSL in a variable manner. Chapter 4 (“Variable Context Conditions”) then provides the means to refine an abstract syntax (language model) by using composable context conditions (invariants). Next, Chapter 5 (“Variable Textual Syntaxes”) details solutions to implementing variable textual syntaxes for different types of DSL. In closing, Chapter 6 (“A Story of a DSL Family”) shows how to develop a mixed DSL in a step-by-step manner, demonstrating how the previously introduced techniques can be employed in an advanced example of developing a DSL family. The book is intended for readers interested in language-oriented as well as model-driven software development, including software-engineering researchers and advanced software developers alike. An understanding of software-engineering basics (architecture, design, implementation, testing) and software patterns is essential. Readers should especially be familiar with the basics of object-oriented modelling (UML, MOF, Ecore) and programming (e.g., Java).

Reasoning Web. Semantic Technologies for Software Engineering

Reasoning Web. Semantic Technologies for Software Engineering PDF Author: Uwe Aßmann
Publisher: Springer
ISBN: 364215543X
Category : Computers
Languages : en
Pages : 190

Get Book Here

Book Description
This book provides a coherent introduction to semantic web methods and research issues with a particular emphasis on reasoning. It is based on a collection of six thoroughly revised tutorial papers culled from lectures given by leading researchers.

Software Quality: Methods and Tools for Better Software and Systems

Software Quality: Methods and Tools for Better Software and Systems PDF Author: Dietmar Winkler
Publisher: Springer
ISBN: 3319714406
Category : Computers
Languages : en
Pages : 193

Get Book Here

Book Description
This book constitutes the refereed proceedings of the 10th Software Quality Days Conference, SWQD 2018, held in Vienna, Austria, in January 2018. The Software Quality Days (SWQD) conference started in 2009 and has grown to the biggest conferences on software quality in Europe with a strong community. The program of the SWQD conference is designed to encompass a stimulating mixture of practical presentations and new research topics in scientific presentations. The guiding conference topic of the SWQD 2018 is “Software Quality 4.0: Methods and Tools for better Software and Systems”, as novel technologies include new challenges and might require new and adapted methods and tools to support quality assurance activities early. The 6 full papers and 2 short papers presented in this volume were carefully reviewed and selected from 16 submissions. The volume also contains 2 invited talks. The contributions were organized in topical sections named: safety and security; requirements engineering and requirements-based testing; crowdsourcing in software engineering; software and systems architecture; experimentation in software engineering; and smart environments.

Fundamentals of DSL Technology

Fundamentals of DSL Technology PDF Author: Philip Golden
Publisher: CRC Press
ISBN: 1135495203
Category : Technology & Engineering
Languages : en
Pages : 472

Get Book Here

Book Description
The DSL arena is expanding rapidly, making it highly unlikely that any single author can adequately address the breadth and depth of the subject. Responding to the demand of designers worldwide, Fundamentals of DSL Technology combines the strengths of the field's most renowned DSL experts, providing a foundation of all aspects of DSL system design. The volume begins with an introductory three-chapter examination of DSL copper transmission channels, reviewing the basic telephone environment, the physical-layer twisted pair, and the noise environment in the twisted pair channel. The book then explores line codes - laying the foundation for later chapters about other aspects of DSL design - and discusses the basic objectives of DSL service, comparing DSL to other broadband delivery methods. The book concludes with a description of other basic aspects of DSL transmission, covering topics such as trellis codes, Reed-Solomon codes and interleaving, turbo and LDPC codes, basic equalization theory, synchronization, and more.

Building User-Friendly DSLs

Building User-Friendly DSLs PDF Author: Meinte Boersma
Publisher: Simon and Schuster
ISBN: 1617296473
Category : Computers
Languages : en
Pages : 502

Get Book Here

Book Description
Craft domain-specific languages that empower experts to create software themselves. Domain-specific languages put business experts at the heart of software development. These purpose-built tools let your clients write down their business knowledge and have it automatically translated into working software—no dev time required. They seamlessly bridge the knowledge gap between programmers and subject experts, enabling better communication and freeing you from time-consuming code adjustments. Inside Building User-Friendly DSLs you’ll learn how to: • Build a complete Domain IDE for a car rental company • Implement a projectional editor for your DSL • Implement content assist, type systems, expressions, and versioning language aspects • Evaluate business rules • Work with Abstract Syntax Trees • Reduce notated DSL content in concrete syntax into abstract syntax Building User-Friendly DSLs takes you on a carefully-planned journey through everything you need to create your own DSLs. It focuses on building DSLs that are easy for busy business experts to learn and master. By working through a detailed example of a car rental company, you'll see how to create a custom DSL with a modern and intuitive UI that can replace tedious coding activities. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the technology Here’s the central problem of software development: business users know what they need their apps to do, but they don’t know how to write the code themselves. As a developer, this means you spend a lot of time learning the same domain-specific details your user already knows. Now there’s a way to bridge this gap! You can create a Domain-Specific Language (DSL) that empowers non-technical business users to create and customize their own applications without writing any code. About the book Building User-Friendly DSLs teaches you how to create a complete domain-specific language that looks and works like a web application. These easy-to-use DSLs put the power to create custom software into the hands of business domain experts. As you go, you’ll cover all the essentials, from establishing structure and syntax of your DSL to implementing a user-friendly interface. What's inside • Implement a projectional editor for your DSL • Work with Abstract Syntax Trees • Evaluate business rules About the reader For developers with JavaScript and web development experience. About the author Meinte Boersma is a senior developer and an evangelist of model-driven software development and DSLs. Table of Contents 1 What is a domain-specific language? 2 Representing DSL content as structured data 3 Working with ASTs in code 4 Projecting the AST 5 Editing values in the projection 6 Editing objects in the projection 7 Implementing persistence and transportation of ASTs 8 Generating code from the AST 9 Preventing things from blowing up 10 Managing change 11 Implementing expressions: Binary operations 12 Implementing expressions: Order of operations 13 Implementing a type system 14 Implementing business rules 15 Some topics we didn’t cover