Xtext is an open source Eclipse framework for implementing domain-specific languages together with its IDE functionalities. It lets you implement languages really quickly, and, most of all, it covers all aspects of a complete language infrastructure, starting from the parser, code generator, interpreter, and more. The chapters are like tutorials that describe the main concepts of Xtext such as grammar definition, validation, code generation, customizations, and many more, through uncomplicated and easy-to-understand examples. Starting with briefly covering the features of Xtext that are involved in a 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. We then proceed by explaining the main concepts of Xtext, such as validation, code generation, and customizations of runtime and UI aspects.
|Published (Last):||19 July 2005|
|PDF File Size:||15.37 Mb|
|ePub File Size:||17.6 Mb|
|Price:||Free* [*Free Regsitration Required]|
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.
He has been using Xtext since version 0. He has used Xtext and Xtend for implementing many domain-specific languages and Java-like programming languages.
He also contributed to Xtext, and he recently became an Xtext committer. He is also the author of about 80 papers published in international conferences and international journals. When you visit any website, it may store or retrieve information on your browser,usually in the form of cookies.
This information does not usually identify you, but it does help companies to learn how their users are interacting with the site. We respect your right to privacy, so you can choose not to accept some of these cookies.
Choose from the different category headers to find out more and change your default settings. Please note if you have arrived at our site via a cashback website, turning off targeting or performance cookies will mean we cannot verify your transaction with the referrer and you may not receive your cashback.
These cookies are essential for the website to function and they cannot be turned off. They are usually only set in response to actions made by you on our site, such as logging in, adding items to your cart or filling in forms.
If you browse our website, you accept these cookies. These cookies allow us to keep track of how many people have visited our website, how they discovered us, and how they interact with the site. All the information used is aggregated, and completely anonymous. These cookies are placed on our site by our trusted third-party providers. They help us to personalise our adverts and provide services to our customers such as live chat. If you have arrived at our site via a cashback website, turning off Targeting Cookies will mean we cannot verify your transaction with the referrer and you may not receive your cashback.
Sign In Register. Toggle Nav. Browse All. All Books. Best Sellers. Top Searches:. All Videos. Learn how to implement a DSL with Xtext and Xtend using easy-to-understand examples and best practices. Skip to the end of the images gallery. Skip to the beginning of the images gallery. Read Now Look inside. Features 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. Table of contents. Validation in Xtext Quickfixes Summary.
Introduction to code generation Writing a code generator in Xtend Integration with the Eclipse build mechanism Standalone command-line compiler Summary. Cross-reference resolution in Xtext Custom scoping Global scoping Providing a library Classes of the same package Dealing with super What to put in the index?
Additional automatic features Providing a project wizard Summary. Add to Cart. What do I get with a Packt subscription? What do I get with a Video?
Download this Video course in MP4 format DRM FREE - read and interact with your content when you want, where you want, and how you want Immediately access your video course for viewing or download through your Packt account. What do I get with an eBook? Add To Cart. Start a FREE day trial. Your Privacy 2. Strictly Necessary Cookies 3. Performance Cookies 4. Targeting Cookies Your Privacy. Strictly Necessary Cookies Always active.
Performance Cookies. Targeting Cookies. Allow all Save. Leverage the latest features of Xtext and Xtend to develop a domain-specific language. Domain-Specific Languages. Implementing a DSL. IDE integration. Enter Xtext. The aim of this book. A DSL for entities. The Xtext generator.
Improvements to the DSL. An introduction to Xtend. Xtend — a better Java with less "noise". Additional operators. Validation in Xtext. Introduction to code generation.
Writing a code generator in Xtend. Integration with the Eclipse build mechanism. Standalone command-line compiler.
Dependency injection. Google Guice in Xtext. Customizations of IDE concepts. Custom formatting. Other customizations. Introduction to testing. JUnit 4. The ISetup interface. Implementing tests for your DSL. Test suite. Testing the UI. Testing and modularity. Clean code. The Expressions DSL. The grammar for the Expressions DSL. Left recursive grammars. Forward references. Typing expressions. Writing an interpreter.
Optimizations and fine tuning. First validation rules. Type checking. Improving the UI.
Implementing Domain-Specific Languages with Xtext and Xtend - Second Edition
Previously, he was a researcher in computer science at Dipartimento di Informatica, Universita di Torino, Italy. He has been using Xtext since version 0. He has used Xtext and Xtend for implementing many domain-specific languages and Java-like programming languages. He also contributed to Xtext, and he recently became an Xtext committer. He is also the author of about 80 papers published in international conferences and international journals.
Implementing Domain-Specific Languages with Xtext and Xtend -
By Lorenzo Bettini. This book is targeted at programmers and developers who want to create a DSL with Xtext. They should have basic familiarity with Eclipse and its functionality. Previous experience with compiler implementation can be advantageous. However, this book will explain all the development stages of a DSL. All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Implementing Domain-Specific Languages with Xtext and Xtend
Specifying the requirements of a software system and converting such a specification into executable source code is difficult and error-prone. Requirements specifications written in prose are often ambiguous and hard to understand for developers. Therefore, the process of turning this documents into software is slow and prone to error. Domain-specific languages DSL challenge this problem by defining a semantically rich notation to describe domain concepts clear and concise.
So when I was contacted by the publisher to write a review of the second edition I was very happy to accept the offer. Thank you to the author, Lorenzo Bettini , for listing me as a possible reviewer of his work! In a few words: precise answers to advanced questions. The specific chapters on testing and continuos integration are also great to have in this book, in my opinion. I think this book is enough to go from knowing nothing about Xtext to build reasonably complex projects. I think that the best way to use this book for a newbie is to complement it with other books about language design or specifically on DSLs.