Domain Specific Languages
Gebonden Engels 2010 1e druk 9780321712943Samenvatting
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 present effective techniques for building them, and guides software engineering in choosing the right approaches for their applications.
This book is actually two books in one. Martin Fowler begins with a narrative overview that offers a broad understanding of the general principles underlying DSLs. Raeders will learn how DSLs work, and when a DSL's custom syntax may be easier to work with than alternatives like XML. Next, he turns to the details and examples that developers will need to apply each implementation technique. He covers both internal and external DSL topics, as well as alternative computational models and code generation.
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 parsers 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
Specificaties
Lezersrecensies
Inhoudsopgave
Part 1: Narratives
1. An Introductory Example
2. Using Domain-Specific Languages
3. Implementing DSLs
4. Implementing an Internal DSL
5. Implementing an External DSL
6. Choosing between Internal and External DSLs
7. Alternative Computational Models
8. Code Generation
9. Language Workbenches
Part 2: Common Topics
10. A Zoo of DSLs
11. Semantic Model
12. Symbol Table
13. Context Variable
14. Construction
15. Macro
16. Notification
Part 3: External DSL Topics
17. Delimiter-Directed Translation
18. Syntax-Directed Translation
19. BNF
20. Regex Table Lexer (by Rebecca Parsons)
21. Recursive Descent Parser (by Rebecca Parsons)
22. Parser Combinator (by Rebecca Parsons:
23. Parser Generator
24. Tree Construction
25. Embedded Translation
26. Embedded Interpretation
27. Foreign Code
28. Alternative Tokenization
29. Nested Operator Expression
30. Newline Separators
31. External DSL Miscellany
Part 4: Internal DSL Topics
32. Expression Builder
33. Function Sequence
34. Nested Function
35. Method Chaining
36. Object Scoping
37. Closure
38. Nested Closure
39. Literal
40. Literal Map
41. Dynamic Reception
42. Annotation
43. Parse Tree
44. Class Symbol Table
45. Textual Polishing
46. Literal Extension
Part 5: Alternative Computational Models
47. Adaptive Model
48. Decision Table
49. Dependency Network
50. Production Rule System
51. State Machine
Part 6: Code Generation
52. Transformer Generation
53. Templated Generation
54. Embedment Helper
55. Model-Aware Generation
56. Model Ignorant Generation
57. Generation Gap
Bibliography
Index
Rubrieken
- advisering
- algemeen management
- coaching en trainen
- communicatie en media
- economie
- financieel management
- inkoop en logistiek
- internet en social media
- it-management / ict
- juridisch
- leiderschap
- marketing
- mens en maatschappij
- non-profit
- ondernemen
- organisatiekunde
- personal finance
- personeelsmanagement
- persoonlijke effectiviteit
- projectmanagement
- psychologie
- reclame en verkoop
- strategisch management
- verandermanagement
- werk en loopbaan