Designed as a wide-ranging guide to Domain Specific Languages (DSLs) and how to approach building them, this book covers a variety of different techniques available for DSLs. The goal is to provide readers with enough information to make an informed choice about whether or not to use a DSL and what kinds of DSL techniques to employ. Part I is a 150-page narrative overview that gives you a broad understanding of general principles. The reference material in Parts II through VI provides the details and examples you´ll need to get started using the various techniques discussed. Both internal and external DSL topics are covered, in addition to alternative computational models and code generation. Although the general principles and patterns presented can be used with whatever programming language you happen to be using, most of the examples are in Java or C#. Product Description 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 Backcover Designed as a wide-ranging guide to Domain Specific Languages (DSLs) and how to approach building them, this book covers a variety of different techniques available for DSLs. The goal is to provide readers with enough information to make an informed choice about whether or not to use a DSL and what kinds of DSL techniques to employ. Part I is a 150-page narrative overview that gives you a broad understanding of general principles. The reference material in Parts II through VI provides the details and examples you will need to get started using the various techniques discussed. Both internal and external DSL topics are covered, in addition to alternative computational models and code generation. Although the general principles and patterns presented can be used with whatever programming language you happen to be using, most of the examples are in Java or C#. Preface xix Part I: Narratives 1 Chapter 1: An Introductory Example 3 Gothic Security 3 The State Machine Model 5 Programming Miss Grant´s Controller 9 Languages and Semantic Model 16 Using Code Generation 19 Using Language Workbenches 22 Visualization 24 Chapter 2: Using Domain-Specific Languages 27 Defining Domain-Specific Languages 27 Why Use a DSL? 33 Problems with DSLs 36 Wider Language Processing 39 DSL Lifecycle 40 What Makes a Good DSL Design? 42 Chapter 3: Implementing DSLs 43 Architecture of DSL Processing 43 The Workings of a Parser 47 Grammars, Syntax, and Semantics 49 Parsing Data 50 Macros 52 Chapter 4: Implementing an Internal DSL 67 Fluent and Command-Query APIs 68 The Need for a Parsing Layer 71 Using Functions 72 Literal Collections 77 Using Grammars to Choose Internal Elements 79 Closures 80 Parse Tree Manipulation 82 Annotation 84 Literal Extension 85 Reducing the Syntactic Noise 85 Dynamic Reception 86 Providing Some Type Checking 87 Chapter 5: Implementing an External DSL 89 Syntactic Analysis Strategy 89 Output Production Strategy 92 Parsing Concepts 94 Mixing-in Another Language 100 XML DSLs 101 Chapter 6: Choosing between Internal and External DSLs 105 Learning Curve 105 Cost of Building 106 Programmer Familiarity 107
Quickly find solutions to dozens of common problems encountered while using XML and JSON features that are built into SQL Server. Content is presented in the popular problem-solution format. Look up the problem that you want to solve. Read the solution. Apply the solution directly in your own code. Problem solved! This book shows how to take advantage of XML and JSON to share data and automate tasks. JSON is commonly used to move data back and forth between the database and front-end applications, often running in a browser. This book shows all you need to know about transforming query results into JSON format, and back again. Also covered are the processes and techniques for moving data into and out of XML format for business intelligence and other purposes, such as when transferring data from a reporting system into a data warehouse, or between different database brands such as between SQL Server and Oracle. Microsoft intensively implements XML in SQL Server, and in many related products. Execution plans are generated in XML format, and this book shows you how to parse those plans and automate the detection of performance problems. The relatively new Extended Events feature writes tracing data into XML files, and the recipes in this book help in parsing those files. XML is also used in SQL Server´s BI tool set, including in SSIS, SSR, and SSAS. XML is used in many configuration files, and is even behind the construction of DDL triggers. In reading this book you´ll dive deeply into the features that allow you to build and parse XML, and also JSON, which is a specific format of XML used to transmit objects in a web-friendly format between a database and its front-end applications. What You Will Learn Build XML and JSON objects in support of automation and data transfer Import and parse XML and JSON from operating system files Build appropriate indexes on XML objects to improve query performance Move data from query result sets into JSON format, and back again Automate the detection of database performance problems by querying and parsing the database´s own execution plans Replace external and manual JSON processes with SQL Server´s internal, JSON functionality Who This Book Is For Database administrators, .NET developers, business intelligence developers, and other professionals who want a deep and detailed skill set around working with XML and JSON in a SQL Server database environment. Web developers will particularly find the book useful for its coverage of transforming database result sets into JSON text that can be transmitted to front-end web applications.
This book describes novel software architectures for the integration of deep and shallow natural language processing (NLP) components in language technology. The generic markup language XML and the XML transformation language XSLT are used for flexible combination of linguistic markup produced by multiple NLP components. Shallow NLP components such as tokenizers, part-of-speech taggers, named entity recognizers and shallow parsers are combined with a deep parser, operating grammars written in the spirit of the Head-Driven Phrase Structure Grammar (HPSG) theory. The integration paradigm enables synergy leading to more robust deep parsing with increased coverage. It also constitutes a division of labor: the deep grammar models general, correct language use, while shallow systems are responsible for domain-specific extensions. Applications are presented in question answering, information extraction, natural language understanding, ontologies and the Semantic Web. The book addresses to software engineers, computational linguists and language technology engineers.
HIGHLIGHT A Domain Specific Language lets you express the intent of a piece of code in more human-readable terms. Boo is an ideal language to create DSLs for .NET. DESCRIPTION Even good code can be tough to understand when you simply read it-even if you´re a developer and you know what it does! A Domain Specific Language (DSL) helps a developer clearly express the intent of the code, and thus make it easier to work on the core business problem. Developers who migrate to Ruby from Java love Boo´s ability to define a DSL for .NET in a just few lines of code. In Boo, the developer can define simple DSLs for .NET applications without suffering through the awkward XML usually required. Building Domain Specific Languages in Boo shows how to write DSLs for .NET. It starts by teaching what a DSL is. Then, it provides a fast-paced Boo tutorial. Readers immediately start putting this handy language to productive use as they learn how to implement DSLs in real code. The author shows how to create several types of DSLs, all with the goal of making the developer more productive. Along the way, readers learn the Boo they need techniques to scare away the evil XML. KEY POINTS . Author Ayende Rahien is world-famous as a speaker and blogger on this topic . This book covers both the theory and the practice of building DSLs . This is the only book available that teaches Boo MARKET INFORMATION Anything that makes coding faster and better is of interest to developers. Writing DSLs has the potential to improve both speed of development and quality of code! This approach is unique, in that it brings a common technique for Ruby and Java developers to the .NET platform.
The vast amounts of ontologically unstructured information on the Web, including HTML, XML and JSON documents, natural language documents, tweets, blogs, markups, and even structured documents like CSV tables, all contain useful knowledge that can present a tremendous advantage to the Artificial Intelligence community if extracted robustly, efficiently and semi-automatically as knowledge graphs . Domain-specific Knowledge Graph Construction (KGC) is an active research area that has recently witnessed impressive advances due to machine learning techniques like deep neural networks and word embeddings. This book will synthesize Knowledge Graph Construction over Web Data in an engaging and accessible manner. The book will describe a timely topic for both early -and mid-career researchers. Every year, more papers continue to be published on knowledge graph construction, especially for difficult Web domains. This work would serve as a useful reference, as well as an accessible but rigorous overview of this body of work. The book will present interdisciplinary connections when possible to engage researchers looking for new ideas or synergies. This will allow the book to be marketed in multiple venues and conferences. The book will also appeal to practitioners in industry and data scientists since it will have chapters on both data collection, as well as a chapter on querying and off-the-shelf implementations. The author has, and continues to, present on this topic at large and important conferences. He plans to make the powerpoint he presents available as a supplement to the work. This will draw a natural audience for the book. Some of the reviewers are unsure about his position in the community but that seems to be more a function of his age rather than his relative expertise. I agree with some of the reviewers that the title is a little complicated. I would recommend ´´Domain Specific Knowledge Graphs´´.
The W3C XQuery 3.1 standard provides a tool to search, extract, and manipulate content, whether it´s in XML, JSON or plain text. With this fully updated, in-depth tutorial, youll learn to program with this highly practical query language.Designed for query writers who have some knowledge of XML basics, but not necessarily advanced knowledge of XML-related technologies, this book is ideal as both a tutorial and a reference. Youll find background information for namespaces, schemas, built-in types, and regular expressions that are relevant to writing XML queries.This second edition provides:A high-level overview and quick tour of XQueryNew chapters on higher-order functions, maps, arrays, and JSONA carefully paced tutorial that teaches XQuery without being bogged down by the detailsAdvanced concepts for taking advantage of modularity, namespaces, typing, and schemasGuidelines for working with specific types of data, such as numbers, strings, dates, URIs, maps and arraysXQuerys implementation-specific features and its relationship to other standards including SQL and XSLTA complete alphabetical reference to the built-in functions, types, and error messages
ActionScript 3.0, the latest version of the Flash Platform´s scripting language, offers many new and powerful features. ActionScript is now a full-fledged programming language, with complete object-oriented capabilities, improved event handling, sound and video support, drawing capabilities, support for regular expressions, and much more. Whether you are a Flash designer wishing to add to your skill set or an experienced ActionScript developer who wants to get up to speed with the latest version, you´ll find all you need to know in Foundation ActionScript 3.0 for Flash and Flex. Starting with the fundamentals, you´ll learn how to add interactivity to your Flash movies by using ActionScript objects, manipulating sound and video, and harnessing the power of regular expressions and XML. The book concludes with two case studies to consolidate what you´ve learned and introduce some additional advanced techniques. You´ll gain a solid understanding of the new and exciting world of ActionScript 3.0 and see how everything fits together to form complete applications, so you´ll be able to build your own professional sites. The sensible layout of the book makes it easy to find information about specific techniques. It focuses on the essential skills that will enable you to get up and running quick. With this book as your guide, you´ll be creating killer Flash applications before you know it.
Are you an aspiring ABAP cook looking for professional ABAP recipes? Or are you already the executive chef in your ABAP kitchen, just looking for new ideas? Either way, you will find classic and new recipes in ABAP Objects and ABAP/4 for common and specific development tasks in this ABAP Cookbook! This book quickly provides answers to typical ABAP development problems or tasks: persistence programming, interface programming, security and tracing techniques, etc. You ll discover best practices in developing solutions, and you can use this book to broaden your skills and see how to apply ABAP to solve various types of problems. The complexity of the recipes ranges from the simple starter plates to the complex main courses and some sweet desserts, of course! Each chapter is a short tutorial in itself, all organized and consolidated into an easy-to-read format. Many code samples, screenshots, and different icons will help you to follow the best practices provided. Enjoy your ABAP meal! 1. Best Practices Learn best practices for programming and the solutions to both simple and complex programming problems. 2. Programming Techniques Discover various techniques for dynamic, database, transactional, persistence, interface, and security programming in ABAP. 3. Comprehensive Approach to Problem Solving Explore the context of a problem, solution alternatives, and the thought process involved in the development of a solution. 4. Instructive Icons Easily identify quick tips, step-by-step instructions, and warnings, thanks to the use of helpful icons throughout the text. 5. Numerous Examples and Source Codes Explore coding examples in every chapter, as well as two source code bundles that you can install on your local AS ABAP system. Highlights: String Processing Techniques Working with Numbers, Dates, and Bytes Dynamic and Reflective Programming ABAP and Unicode Working with Files Database Programming Transactional Programming XML Processing in ABAP Interacting with the ICF Web Services Sending E-Mails Using BCS Programming for Security Logging and Tracing Interacting with the Operating System Inter-process Communication Parallel and Distributed Processing with RFCs