Systematic Program Design Book TOC – Free Books Download PDF

Systematic Program Design Book TOC – Free Books Download PDF Book

TOC

Table of Content

1 Introduction

1.1 From clarity to efficiency: systematic program design

1.2 Iterate, incrementalize, and implement

1.3 Languages and cost models

1.4 History of this work

2 Loops: incrementalize

2.1 Loops with primitives and arrays

2.2 Incrementalize: maintain invariants

2.3 Iterate and implement: little to do

2.4 Example: hardware design

2.5 Example: image processing

2.6 Need for higher-level abstraction

3 Sets: incrementalize and implement

3.1 Set expressions—data abstraction

3.2 Iterate: compute fixed points

3.3 Incrementalize: compose incremental maintenance

3.4 Implement: design linked data structures

3.5 Example: access control

3.6 Example: query optimization

3.7 Need for control abstraction

4 Recursion: iterate and incrementalize

4.1 Recursive functions—control abstraction

4.2 Iterate: determine minimum increments, recursion into iteration

4.3 Incrementalize: derive incremental functions,

4.4 Implement: use linked and indexed data structures

4.5 Example: combinatorial optimization

4.6 Example: math and puzzles

4.7 Need for data abstraction

5 Rules: iterate, incrementalize, and implement

5.1 Logic rules—data abstraction and control abstraction

5.2 Iterate: transform to fixed points

5.3 Incrementalize: exploit high-level auxiliary maps

5.4 Implement: design linked and indexed data structures

5.5 Time and space complexity guarantees

5.6 Example: program analysis

5.7 Example: trust management

5.8 Need for module abstraction

6 Objects: incrementalize across module abstraction

6.1 Objects with fields and methods—module abstraction

6.2 Queries and updates: clarity versus efficiency

6.3 Incrementalize: develop and apply incrementalization rules

6.4 Example: health records

6.5 Example: robot games

6.6 Invariant-driven transformations: incrementalization as invariant rules

6.7 Querying complex object graphs

7 Conclusion

7.1 A deeper look at incrementalization

7.2 Example: sorting

7.3 Building up and breaking through abstractions

7.4 Implementations and experiments

7.5 Limitations and future work