Formal and Practical Aspects of Domain-Specific Languages: Recent Developments

Formal and Practical Aspects of Domain-Specific Languages: Recent Developments
Author :
Publisher : IGI Global
Total Pages : 678
Release :
ISBN-10 : 9781466620933
ISBN-13 : 1466620935
Rating : 4/5 (33 Downloads)

Synopsis Formal and Practical Aspects of Domain-Specific Languages: Recent Developments by : Mernik, Marjan

"This book presents current research on all aspects of domain-specific language for scholars and practitioners in the software engineering fields, providing new results and answers to open problems in DSL research"--

Practical Aspects of Declarative Languages

Practical Aspects of Declarative Languages
Author :
Publisher : Springer Nature
Total Pages : 225
Release :
ISBN-10 : 9783030944797
ISBN-13 : 3030944794
Rating : 4/5 (97 Downloads)

Synopsis Practical Aspects of Declarative Languages by : James Cheney

This book constitutes the refereed proceedings of the 24th International Conference on Practical Aspects of Declarative Languages, PADL 2022, held in Philadelphia, PA, USA, during January 17-18, 2022. The 9 full papers and 4 short papers included in this book were carefully reviewed and selected from 22 submissions. They were organized in topical sections as follows: answer set programming; functional programming; languages, methods and tools; and declarative solutions.

Domain-Specific Languages in Practice

Domain-Specific Languages in Practice
Author :
Publisher : Springer Nature
Total Pages : 336
Release :
ISBN-10 : 9783030737580
ISBN-13 : 3030737586
Rating : 4/5 (80 Downloads)

Synopsis Domain-Specific Languages in Practice by : Antonio Bucchiarone

This book covers several topics related to domain-specific language (DSL) engineering in general and how they can be handled by means of the JetBrains Meta Programming System (MPS), an open source language workbench developed by JetBrains over the last 15 years. The book begins with an overview of the domain of language workbenches, which provides perspectives and motivations underpinning the creation of MPS. Moreover, technical details of the language underneath MPS together with the definition of the tool’s main features are discussed. The remaining ten chapters are then organized in three parts, each dedicated to a specific aspect of the topic. Part I “MPS in Industrial Applications” deals with the challenges and inadequacies of general-purpose languages used in companies, as opposed to the reasons why DSLs are essential, together with their benefits and efficiency, and summarizes lessons learnt by using MPS. Part II about “MPS in Research Projects” covers the benefits of text-based languages, the design and development of gamification applications, and research fields with generally low expertise in language engineering. Eventually, Part III focuses on “Teaching and Learning with MPS” by discussing the organization of both commercial and academic courses on MPS. MPS is used to implement languages for real-world use. Its distinguishing feature is projectional editing, which supports practically unlimited language extension and composition possibilities as well as a flexible mix of a wide range of textual, tabular, mathematical and graphical notations. The number and diversity of the presented use-cases demonstrate the strength and malleability of the DSLs defined using MPS. The selected contributions represent the current state of the art and practice in using JetBrains MPS to implement languages for real-world applications.

Domain-Specific Languages

Domain-Specific Languages
Author :
Publisher : Pearson Education
Total Pages : 796
Release :
ISBN-10 : 9780131392809
ISBN-13 : 0131392808
Rating : 4/5 (09 Downloads)

Synopsis Domain-Specific Languages by : Martin Fowler

When carefully selected and used, Domain-Specific Languages (DSLs) may simplify complex code, promote effective communication with customers, improve productivity, and unclog development bottlenecks. In Domain-Specific Languages, noted software development expert Martin Fowler first provides the information software professionals need to decide if and when to utilize DSLs. Then, where DSLs prove suitable, Fowler presents effective techniques for building them, and guides software engineers in choosing the right approaches for their applications. This book’s techniques may be utilized with most modern object-oriented languages; the author provides numerous examples in Java and C#, as well as selected examples in Ruby. Wherever possible, chapters are organized to be self-standing, and most reference topics are presented in a familiar patterns format. Armed with this wide-ranging book, developers will have the knowledge they need to make important decisions about DSLs—and, where appropriate, gain the significant technical and business benefits they offer. The topics covered include: How DSLs compare to frameworks and libraries, and when those alternatives are sufficient Using parsers and parser generators, and parsing external DSLs Understanding, comparing, and choosing DSL language constructs Determining whether to use code generation, and comparing code generation strategies Previewing new language workbench tools for creating DSLs

DSL Engineering

DSL Engineering
Author :
Publisher : Createspace Independent Pub
Total Pages : 558
Release :
ISBN-10 : 1481218581
ISBN-13 : 9781481218580
Rating : 4/5 (81 Downloads)

Synopsis DSL Engineering by : Markus Voelter

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

Implementing Domain-Specific Languages with Xtext and Xtend

Implementing Domain-Specific Languages with Xtext and Xtend
Author :
Publisher :
Total Pages : 342
Release :
ISBN-10 : 1782160302
ISBN-13 : 9781782160304
Rating : 4/5 (02 Downloads)

Synopsis Implementing Domain-Specific Languages with Xtext and Xtend by : Lorenzo Bettini

A step-by-step guide that enables you to quickly implement a DSL with Xtext and Xtend in a test-driven way with the aid of simplified examples.This book is for programmers who want to learn about Xtext and how to use it to implement a DSL (or a programming language) together with Eclipse IDE tooling. It assumes that the user is familiar with Eclipse and its functionality. Existing basic knowledge of a compiler implementation would be useful, though not strictly required, since the book will explain all the stages of the development of a DSL.

Language Implementation Patterns

Language Implementation Patterns
Author :
Publisher : Pragmatic Bookshelf
Total Pages : 456
Release :
ISBN-10 : 9781680503746
ISBN-13 : 168050374X
Rating : 4/5 (46 Downloads)

Synopsis Language Implementation Patterns by : Terence Parr

Learn to build configuration file readers, data readers, model-driven code generators, source-to-source translators, source analyzers, and interpreters. You don't need a background in computer science--ANTLR creator Terence Parr demystifies language implementation by breaking it down into the most common design patterns. Pattern by pattern, you'll learn the key skills you need to implement your own computer languages. Knowing how to create domain-specific languages (DSLs) can give you a huge productivity boost. Instead of writing code in a general-purpose programming language, you can first build a custom language tailored to make you efficient in a particular domain. The key is understanding the common patterns found across language implementations. Language Design Patterns identifies and condenses the most common design patterns, providing sample implementations of each. The pattern implementations use Java, but the patterns themselves are completely general. Some of the implementations use the well-known ANTLR parser generator, so readers will find this book an excellent source of ANTLR examples as well. But this book will benefit anyone interested in implementing languages, regardless of their tool of choice. Other language implementation books focus on compilers, which you rarely need in your daily life. Instead, Language Design Patterns shows you patterns you can use for all kinds of language applications. You'll learn to create configuration file readers, data readers, model-driven code generators, source-to-source translators, source analyzers, and interpreters. Each chapter groups related design patterns and, in each pattern, you'll get hands-on experience by building a complete sample implementation. By the time you finish the book, you'll know how to solve most common language implementation problems.

Crafting Interpreters

Crafting Interpreters
Author :
Publisher : Genever Benning
Total Pages : 1021
Release :
ISBN-10 : 9780990582946
ISBN-13 : 0990582949
Rating : 4/5 (46 Downloads)

Synopsis Crafting Interpreters by : Robert Nystrom

Despite using them every day, most software engineers know little about how programming languages are designed and implemented. For many, their only experience with that corner of computer science was a terrifying "compilers" class that they suffered through in undergrad and tried to blot from their memory as soon as they had scribbled their last NFA to DFA conversion on the final exam. That fearsome reputation belies a field that is rich with useful techniques and not so difficult as some of its practitioners might have you believe. A better understanding of how programming languages are built will make you a stronger software engineer and teach you concepts and data structures you'll use the rest of your coding days. You might even have fun. This book teaches you everything you need to know to implement a full-featured, efficient scripting language. You'll learn both high-level concepts around parsing and semantics and gritty details like bytecode representation and garbage collection. Your brain will light up with new ideas, and your hands will get dirty and calloused. Starting from main(), you will build a language that features rich syntax, dynamic typing, garbage collection, lexical scope, first-class functions, closures, classes, and inheritance. All packed into a few thousand lines of clean, fast code that you thoroughly understand because you wrote each one yourself.

Generic Tools, Specific Languages

Generic Tools, Specific Languages
Author :
Publisher : Createspace Independent Pub
Total Pages : 292
Release :
ISBN-10 : 1500359432
ISBN-13 : 9781500359430
Rating : 4/5 (32 Downloads)

Synopsis Generic Tools, Specific Languages by : Markus Voelter

Generic Tools, Specific Languages (GTSL) is an approach for developing tools and applications in a way that supports easier and more meaningful adaptation to specific domains. To achieve this goal, GTSL generalizes programming language IDEs to domains traditionally not addressed by languages and IDEs. At its core, GTSL represents applications as documents/programs/models expressed with suitable languages. Application functionality is provided through an IDE that is aware of the languages and their semantics. The IDE provides editing support, and also directly integrates domain-specific analyses and execution services. Applications and their languages can be adapted to increasingly specific domains using language engineering; this includes developing incremental extensions to existing languages or creating additional, tightly integrated languages. Language workbenches act as the foundation on which such applications are built. mbeddr is an extensible set of integrated languages for embedded software development built using the Generic Tools, Specific Languages approach.

DSLs in Action

DSLs in Action
Author :
Publisher : Simon and Schuster
Total Pages : 544
Release :
ISBN-10 : 9781638351177
ISBN-13 : 1638351171
Rating : 4/5 (77 Downloads)

Synopsis DSLs in Action by : Debasish Ghosh

Your success—and sanity—are 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. Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book. What's 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