Op werkdagen voor 23:00 besteld, morgen in huis Gratis verzending vanaf €20

Software Language Engineering

Creating Domain-Specific Languages Using Metamodels

Paperback Engels 2009
Verkooppositie 2841
Dit artikel is niet leverbaar.


Software practitioners are rapidly discovering the immense value of Domain-Specific Languages (DSLs) in solving problems within clearly definable problem domains. Developers are applying DSLs to improve productivity and quality in a wide range of areas, such as finance, combat simulation, macro scripting, image generation, and more. But until now, there have been few practical resources that explain how DSLs work and how to construct them for optimal use.

'Software Language Engineering' fills that need. Written by expert DSL consultant Anneke Kleppe, this is the first comprehensive guide to successful DSL design. Kleppe systematically introduces and explains every ingredient of an effective language specification, including its description of concepts, how those concepts are denoted, and what those concepts mean in relation to the problem domain. Kleppe carefully illuminates good design strategy, showing how to maximize the flexibility of the languages you create. She also demonstrates powerful techniques for creating new DSLs that cooperate well with general-purpose languages and leverage their power.

Completely tool-independent, this book can serve as the primary resource for readers using Microsoft DSL tools, the Eclipse Modeling Framework, openArchitectureWare, or any other DSL toolset. It contains multiple examples, an illustrative running case study, and insights and background information drawn from Kleppe's leading-edge work as a DSL researcher.

Specific topics covered include:
- Discovering the types of problems that DSLs can solve, and when to use them
- Comparing DSLs with general-purpose languages, frameworks, APIs, and other approaches
- Understanding the roles and tools available to language users and engineers
- Creating each component of a DSL specification
- Modeling both concrete and abstract syntax
- Understanding and describing language semantics
- Defining textual and visual languages based on object-oriented metamodeling and graph transformations
- Using metamodels and associated tools to generate grammars
- Integrating object-oriented modeling with graph theory
- Building code generators for new languages
- Supporting multilanguage models and programs

This book provides software engineers with all the guidance they need to create DSLs that solve real problems more rapidly, and with higher-quality code.


Aantal pagina's:207


Wees de eerste die een lezersrecensie schrijft!

Geef uw waardering

Zeer goed Goed Voldoende Matig Slecht


Background Information

1. Why Software Language Engineering?
1.1 An Increasing Number of Languages
1.2 Software Languages
1.3 The Changing Nature of Software Languages
1.4 The Complexity Crisis
1.5 What We Can Learn From ...
1.6 Summary

2. Roles in Language Engineering
2.1 Different Processes, Different Actors
2.2 The Language User
2.2.1 Tool Set of the Language User
2.3 The Language Engineer
2.4 Summary

3. Languages and Mograms
3.1 What Is a Language?
3.2 Abstraction Levels and Expressiveness
3.3 Domain-Specific Languages
3.4 Summary

4. Elements of a Language Specification
4.1 Language Specification
4.2 Formalisms to Specify Languages
4.3 Summary

5. Metamodeling
5.1 Foundations of Metamodeling 57
5.2 Relation with Model-Driven Approaches 69
5.3 Summary 73

6. Abstract Syntax
6.1 The Pivotal Role of Abstract Syntax
6.2 Mogram/Language Relationship
6.3 How to Create an Abstract Syntax Model
6.4 Alan: An Example Language
6.5 Alan's Abstract Syntax Model
6.6 Summary

7. Concrete Syntax
7.1 Concrete Syntax and Tool Support
7.2 Concrete Syntax Model
7.3 Summary

8. Generating Textual Concrete Syntax
8.1 The Grasland Generator
8.2 The Abstract-to-Concrete Transformation
8.3 The Model-to-BNF Grammar Algorithm
8.4 The Static Semantic Analyzer
8.5 Summary

9. Semantics: The Meaning of Language
9.1 Semantics Defined
9.2 Semantics of Software Languages
9.3 Operational Semantics Using Graphs
9.4 Summary

10. Translational Semantics: Code Generation
10.1 Code Generation and Language Design
10.2 Building a Code Generator
10.3 Code-Generation Patterns
10.4 Extension Points in the Generated Code
10.5 Other Issues in Code Generation
10.6 Summary

11. Combining Multiple Languages
11.1 Multiple Mograms for One Application
11.2 Intermogram References
11.3 Language Interfaces
11.5 Support for Language Evolution
11.6 Conclusion
11.7 Summary

Appendix A: Glossary
Appendix B: References


Managementboek TOP 5


Populaire producten



        Software Language Engineering