Implementing Domain Specific Languages With Xtext And Xtend


Download Implementing Domain Specific Languages With Xtext And Xtend PDF/ePub or read online books in Mobi eBooks. Click Download or Read Online button to get Implementing Domain Specific Languages With Xtext And Xtend book now. This website allows unlimited access to, at the time of writing, more than 1.5 million titles, including hundreds of thousands of titles in various foreign languages.

Download

Implementing Domain-Specific Languages with Xtext and Xtend


Implementing Domain-Specific Languages with Xtext and Xtend

Author: Lorenzo Bettini

language: en

Publisher: Packt Publishing Ltd

Release Date: 2016-08-31


DOWNLOAD





Learn how to implement a DSL with Xtext and Xtend using easy-to-understand examples and best practices About This Book Leverage the latest features of Xtext and Xtend to develop a domain-specific language. Integrate Xtext with popular third party IDEs and get the best out of both worlds. Discover how to test a DSL implementation and how to customize runtime and IDE aspects of the DSL Who This Book Is For This book is targeted at programmers and developers who want to create a domain-specific language with Xtext. They should have a basic familiarity with Eclipse and its functionality. Previous experience with compiler implementation can be helpful but is not necessary since this book will explain all the development stages of a DSL. What You Will Learn Write Xtext grammar for a DSL; Use Xtend as an alternative to Java to write cleaner, easier-to-read, and more maintainable code; Build your Xtext DSLs easily with Maven/Tycho and Gradle; Write a code generator and an interpreter for a DSL; Explore the Xtext scoping mechanism for symbol resolution; Test most aspects of the DSL implementation with JUnit; Understand best practices in DSL implementations with Xtext and Xtend; Develop your Xtext DSLs using Continuous Integration mechanisms; Use an Xtext editor in a web application In Detail Xtext is an open source Eclipse framework for implementing domain-specific languages together with IDE functionalities. It lets you implement languages really quickly; most of all, it covers all aspects of a complete language infrastructure, including the parser, code generator, interpreter, and more. This book will enable you to implement Domain Specific Languages (DSL) efficiently, together with their IDE tooling, with Xtext and Xtend. Opening with brief coverage of Xtext features involved in DSL implementation, including integration in an IDE, the book will then introduce you to Xtend as this language will be used in all the examples throughout the book. You will then explore the typical programming development workflow with Xtext when we modify the grammar of the DSL. Further, the Xtend programming language (a fully-featured Java-like language tightly integrated with Java) will be introduced. We then explain the main concepts of Xtext, such as validation, code generation, and customizations of runtime and UI aspects. You will have learned how to test a DSL implemented in Xtext with JUnit and will progress to advanced concepts such as type checking and scoping. You will then integrate the typical Continuous Integration systems built in to Xtext DSLs and familiarize yourself with Xbase. By the end of the book, you will manually maintain the EMF model for an Xtext DSL and will see how an Xtext DSL can also be used in IntelliJ. Style and approach A step-by step-tutorial with illustrative examples that will let you master using Xtext and implementing DSLs with its custom language, Xtend.

DSL Engineering


DSL Engineering

Author: Markus Voelter

language: en

Publisher: Createspace Independent Pub

Release Date: 2013


DOWNLOAD





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

Author: Andrzej Wąsowski

language: en

Publisher: Springer Nature

Release Date: 2023-02-01


DOWNLOAD





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.