Chapter 1: Introduction
1.1 Generators
1.2 Domain-Specific Languages
1.3 Reuse
I. How Generators Provide Leverage
Chapter 2: Structured Output
2.1 The Web Site Maintenance Problem
2.2 Generating the Memex Web Site Text Module
2.3 Programming the Memex Web Site Text Module
2.4 Hand Coding vs. Generation
Chapter 3: Storing Entities with Properties
3.1 The Student Data Problem
3.2 Generating a Property Storage Module
3.3 Programming a Property Storage Module
3.4 Hand Coding vs. Generation
Chapter 4: Visiting Trees
4.1 The Table Layout Problem
4.2 Generating the Table Layout Module
4.3 Programming the Table Layout Module
4.4 Hand Coding vs. Generating a Table Layout Program
Chapter 5: Names and Entities
5.1 The Structure Generator Task
5.2 Specifying Name Analysis for the Structure Generator
5.3 Programming the Name Analysis Phase
Chapter 6: Constructing Trees
6.1 The Calendar Tree Construction Problem
6.2 Generating a Calendar Structuring Program
6.3 Programming a Calendar Structuring Program
6.4 Hand Coding vs. Generation
Chapter 7: An Integrated Approach
7.1 Task Decomposition
7.2 Generation a Structure Generator
7.3 Programming a Structure Generator
7.4 Hand Coding vs. Generation
II. Support Infrastructure
Chapter 8: Execution Monitoring
8.1 Source-Level Execution Models
8.2 Specification-level Execution Models
8.3 The Noosa Execution Monitor
8.4 Debugging Situations
8.5 Implementing Execution Monitors
Chapter 9: Modularity and Generators
9.1 A File-based Module Mechanism
9.2 Literate Programming
9.3 FunnelWeb Specifications
Chapter 10: Software Manufacturing
10.1 Two Manufacturing Scenarios
10.2 Defining a Manufacturing Process
10.3 Implementing the Process
III. Complete Examples
Chapter 11: Desk Calculator
11.1 Expressions
11.2 Expression Values
11.3 Extensions
11.4 Lessons Learned
Chapter 12: Language Extensions
12.1 Extending Java with Formal Specifications
12.2 Implementing Strategy
12.3 Unparsing
12.4 Implementing the Java Extension
12.5 Lessons Learned
Chapter 13: A Pattern-Based Text Generator
13.1 Introduction
13.2 Structuring
13.3 Name Analysis
13.4 Property Analysis
13.5 Transformation
Chapter 14: A Manufacturing Problem
14.1 The Document Manufacturing Process
14.2 Automating the Process
14.3 The tex Package