Your Wish is My Command - Programming By Example

Your Wish is My Command - Programming By Example

von: Henry Lieberman

Elsevier Trade Monographs, 2001

ISBN: 9780080521459 , 440 Seiten

Format: PDF

Kopierschutz: DRM

Windows PC,Mac OSX Apple iPad, Android Tablet PC's

Preis: 50,95 EUR

Mehr zum Inhalt

Your Wish is My Command - Programming By Example


 

Front Cover

1

Your Wish Is My Command: Programming by Example

4

Copyright Page

5

Contents

10

Foreword

6

Introduction

20

Chapter 1. Novice Programming Comes of Age

26

Abstract

27

1.1 Introduction

27

1.2 Programming without a Textual Programming Language

28

1.3 Theoretical Foundations

30

1.4 Empirical Evidence

35

1.5 Conclusion

37

References

38

Chapter 2. Generalizing by Removing Detail: How Any Program Can Be Created by Working with Examples

40

Abstract

41

2.1 Introduction

41

2.2 A Brief Introduction to ToonTalk

43

2.3 An Example of Programming by Example

45

2.4 Discussion

59

2.5 Conclusion

61

Acknowledgements

62

References

62

Chapter 3. Demonstrational Interfaces: Sometimes You Need a Little Intelligence, Sometimes You Need a Lot

64

Abstract

65

3.1 Introduction

65

3.2 Our Demonstrational Systems

66

3.3 Level of Intelligence

68

3.4 Feedback

73

3.5 Conclusion

76

Acknowledgements

77

References

77

Chapter 4. Web Browsing by Example

80

Abstract

81

4.1 Introduction

81

4.2 Underlying Problems of PBE

82

4.3 Web Browsing: Good Domain for PBE

83

4.4 Internet Scrapbook

84

4.5 SmallBrowse: Web-Browsing Interface for Small-Screen Computers

92

4.6 Discussion

100

4.7 Conclusion

102

Appendix: Copying HTML Data from Web Browser to Scrapbook

103

References

104

Chapter 5. Trainable Information Agents for the Web

106

Abstract

107

5.1 Introduction

107

5.2 An Application Scenario

108

5.3 The HyQL Query Language

110

5.4 The Training Dialogue

115

5.5 Lessons Learned

123

5.6 The Communication Problem

124

5.7 Another Application Scenario

128

5.8 Related Work (Non-PBE)

129

5.9 Conclusion

131

Acknowledgements

131

References

132

Chapter 6. End Users and GIS: A Demonstration Is Worth a Thousand Words

134

Abstract

135

6.1 Introduction

135

6.2 A Story of End Users and GIS

135

6.3 Why Is GIS Software So Hard to Use?

137

6.4 Are Things Improving for GIS Users?

139

6.5 How Can Programming by Demonstration Help?

140

6.6 A Programming-by-Demonstration Approach for GIS: C-SPRL

142

6.7 Conclusion

151

Acknowledgements

151

References

151

Chapter 7. Bringing Programming by Demonstration to CAD Users

154

Abstract

155

7.1 Introduction

155

7.2 PBD and CAD

156

7.3 Toward a Complete Solution

162

7.4 True Explicit PBD Solutions

174

7.5 Conclusion

178

References

179

Chapter 8. Demonstrating the Hidden Features that Make an Application Work

182

Abstract

183

8.1 Introduction

183

8.2 The Perils of Plain Demonstration

184

8.3 Who Is Actually Programming?

185

8.4 Giving the System Hints

186

8.5 The Programming Environment Matters

190

8.6 Conclusion

191

References

193

Chapter 9. A Reporting Tool Using Programming by Example for Format Designation

194

Abstract

195

9.1 Introduction

195

9.2 System Overview

197

9.3 User Interface of Format Editor

198

9.4 Extracting Formatting Rules

201

9.5 Generating Reports

202

9.6 Example of the Process

202

9.7 Evaluation

206

9.8 Conclusion

209

References

209

Chapter 10. Composition by Example

210

Abstract

211

10.1 Introduction

211

10.2 PBE-Based Text Editing Systems

212

10.3 Dynamic Macro: A PBE-Based Text Editing System

212

10.4 POBox: A PBE-Based Text Input System

216

10.5 Conclusion

226

References

226

Chapter 11. Learning Repetitive Text-Editing Procedures with SMARTedit

228

Abstract

229

11.1 Introduction

229

11.2 The SMARTedit User Interface

231

11.3 The Smarts behind SMARTedit

234

11.4 Choosing the Most Likely Action

238

11.5 Making SMARTedit a More Intelligent Student

240

11.6 Other Directions for SMARTedit

242

11.7 Comparison with Other Text-Editing PBD Systems

242

11.8 Conclusion

243

References

244

Chapter 12. Training Agents to Recognize Text by Example

246

Abstract

247

12.1 Text Recognition Agents

247

12.2 Writing Conventional Grammars as Text

249

12.3 Programming Grammars by Example for More Accessibility

250

12.4 Grammex: A Demonstrational Interface for Grammar Definition

251

12.5 An Example: Defining a Grammar for Email Addresses

252

12.6 Rule Definitions from Multiple Examples

255

12.7 Future Work: Using Grammar Induction to Speed Up the Definition Process

260

12.8 Related Work

261

12.9 Conclusion

262

Acknowledgements

262

References

262

Chapter 13. SWYN: A Visual Representation for Regular Expressions

264

Abstract

265

13.1 Introduction

265

13.2 Other PBE Systems for Inferring Regular Expressions

269

13.3 A User Interface for Creating Regular Expressions from Examples

270

13.4 A Heuristic Algorithm for Regular Expression Inference

274

13.5 A Visual Notation for Regular Expressions

277

13.6 An Integrated Facility for Regular Expression Creation

284

13.7 Conclusion

286

Acknowledgements

287

References

287

Chapter 14. Learning Users' Habits to Automate Repetitive Tasks

290

Abstract

291

14.1 Introduction

291

14.2 Overview of APE

293

14.3 Illustrative Examples

298

14.4 Detecting Repetitive Tasks

303

14.5 Learning a User's Habits

305

14.6 Use and Experimental Results

309

14.7 Conclusion

312

References

313

Chapter 15. Domain-Independent Programming by Demonstration in Existing Applications

316

Abstract

317

15.1 Introduction

317

15.2 What Familiar Does

319

15.3 Platform Requirements

330

15.4 AppleScript: A Commercial Platform

332

15.5 Conclusion

337

References

338

Chapter 16. Stimulus-Response PBD: Demonstrating "When" as well as "What"

340

Abstract

341

16.1 Introduction

341

16.2 The Syntax of Stimulus-Response

345

16.3 The Semantics of Stimulus-Response

355

16.4 Feedback and Editing

359

16.5 Conclusion

361

References

362

Chapter 17. Pavlov: Where PBD Meets Macromedia's Director

364

Abstract

365

17.1 Introduction

365

17.2 Example

365

17.3 Objects that React Asynchronously to Events

366

17.4 Conclusion

368

References

369

Chapter 18. Programming by Analogous Examples

370

Abstract

371

18.1 Introduction

371

18.2 The GUI to Program Chasm

373

18.3 Programming by Analogous Examples

375

18.4 Discussion

379

18.5 Conclusion

386

Acknowledgements

387

References

387

Chapter 19. Visual Generalization in Programming by Example

390

Abstract

391

19.1 If You Can See It, You Should Be Able to Program It

391

19.2 What Does Visual Generalization Buy Us?

393

19.3 Low-Level Visual Generalization

395

19.4 High-Level Visual Generalization

397

19.5 Introducing Novel Generalizations: Generalizing on Grids

400

19.6 Conclusion

402

References

403

Color Plate Section

436