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.
Discover the essential concepts of libvirt development and see how to interface to Linux virtualization environments, such as QEMU/KVM, XEN, Virtuozzo, VMWare ESX, LXC, Bhyve, and more. This book will prepare you to set up and maintain a virtual machine environment. You´ll start by reviewing virtualization in general and then move on to libvirt-specific concepts using Python, including virtualized operating systems and networks, connections, storage pools, and event and error handling. This work concludes with a comprehensive look at the XML schema definitions for domains, networks, devices, network filtering, storage, node devices, and more. The libvirt API covers the entire life cycle of virtual objects, from creation to destruction. It contains everything needed for the management of a virtual object during that life cycle. While libvirt has APIs that support many languages, Foundations of Libvirt Development concentrates on Python exclusively, and how to use the APIs to control virtual machines under the QEMU/KVM system. and more. What You´ll Learn Interface Python to the libvirt library. Review the class layout and methods of the libvirt library. Install and manipulate virtual machines via Python/libvirt. Create XML to manipulate domains, networks, and devices. Write Python programs to perform libvirt functions without human intervention. Who This Book Is For Maintainers of virtual machines in a UNIX/Linux environment ranging from managing code on a single virtual machine through an entire installation of virtual machines.
This is the eBook version of the printed book. The print version of this title comes with a disc of companion content. As an eBook reader, you have access to these files. See the instruction in back pages of your eBook or by following the steps outlined below. ´´As Excel applications become more complex and the Windows development platform more powerful, Excel developers need books like this to help them evolve their solutions to the next level of sophistication. Professional Excel Development is a book for developers who want to build powerful, state-of-the-art Excel applications using the latest Microsoft technologies.´´ ?Gabhan Berry , Program Manager, Excel Programmability, Microsoft ´´The first edition of Professional Excel Development is my most-consulted and most-recommended book on Office development. The second edition expands both the depth and range. It shines because it takes every issue one step further than you expect. The book relies on the authors´ current, real-world experience to cover not only how a feature works, but also the practical implications of using it in professional work.´´ ?Shauna Kelly , Director, Thendara Green ´´This book illustrates techniques that will result in well-designed, robust, and maintainable Excel-based applications. The authors´ advice comes from decades of solid experience of designing and building applications. The practicality of the methods is well illustrated by the example timesheet application that is developed step-by-step through the book. Every serious Excel developer should read this and learn from it. I did.´´ ? Bill Manville , Application Developer, Bill Manville Associates The Start-to-Finish Guide to Building State-of-the-Art Solutions with Excel 2007 In this book, four world-class Microsoft® Excel developers offer start-to-finish guidance for building powerful, robust, and secure applications with Excel. The authors?three of whom have been honored by Microsoft as Excel Most Valuable Professionals (MVPs)?show how to consistently make the right design decisions and make the most of Excel´s most powerful new features. Using their techniques,you can reduce development costs, time to market, and hassle?and build more effective, successful solutions . Fully updated for Excel 2007, this book starts where other books on Excel programming leave off. Through a hands-on case study project, you´ll discover best practices for planning, architecting, and building Excel applications that are robust, secure, easy to maintain, and highly usable. If you´re a working developer, no other book on Excel programming offers you this much depth, insight, or value. ? Design worksheets that will be more useful and reliable ? Leverage built-in and application-specific add-ins ? Construct applications that behave like independent Windows programs ? Make the most of the new Ribbon user interface ? Create cross-version applications that work with legacy versions of Excel ? Utilize XML within Excel applications ? Understand and use Windows API calls ? Master VBA...
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