Visual Programming

advertisement
Visual Programming
Nan C. Shu
IBM Los Angeles Scientific Center
Tschnische Unsversiiai Darmstadt
FACHSEREICH iNRDf^AUK
VNR
VAN NOSTRAND REINHOLD COMPANY
New York
Contents
Preface
Chapter 1.
INTRODUCTION
1
The Dual Brain
1
The Changing User Population
3
The Need for A New Style of Programming
3
Why "Visual Programming"?
6
What is Visual Programming?
9
Categorization of Visual Programming
12
A Brief Synopsis of the Coming Chapters
13
References
16
Chapter 2.
VISUALIZATION OF DATA AND INFORMATION
ABOUT DATA
17
Introduction
17
Visualization of Data / 18
Access Data Through Their Graphical Representations: SDMS
18
Generate Graphical Display in Real Time: The View System
21
A Video Graphic Query Facility: VGQF
23
Visualization of Data Structures
26
Introduction
26
Graphical Display of Pascal-like Data Structures: INCENSE
26
Graphical Display of Lisp Data Structures: K AESTLE
27
Visualization of Database Schemas
31
Introduction
31
Proposals for Presenting Schemas with Graphical Structures
32
An Interface for a Semantic Information System: ISIS
32
References
38
Chapter 3. VISUALIZATION OF PROGRAMS AND
EXECUTION
40
Introduction
40
Pretty-Printing Source Programs
41
Conventional Formatting
41
Enhanced Presentation: A SEE Compiler for C
41
viii
CONTENTS
Visualization through Diagrams
41
Introduction
41
Making Lisp Programs more Readable
44
Showing Pascal Programs in Diagrams
47
Multiple Views of a Program and its Execution States
48
Introduction
48
Exploratory Programming Environment: InterLisp
49
Structured Programming Environment: PECAN
52
Understanding through Algorithm Animation
54
Introduction ^154
Taking A First Step: Visible Pascal
55
Close Examinations and In Depth Studies: BALSA
57
References
64
Chapters VISUALIZATION OF SOFTWARE DESIGN
67
Introduction
67
Visualization tools for Programming in the Large: PV System
67
Incorporation of Formalism into Dependency Diagrams: PegaSys
72
References
78
Chapter 5. VISUAL COACHING
79
Contrasts with Visualization and Visual Languages
79
Programming by Example/Demonstration: Concepts
80
Examples of Input-Output Pairs
80
Examples of Program Traces
81
Emergence of Visual Coaching
82
Some Representative Systems
84
Pygmalion
.84
Programming by Abstract Demonstration (PAD)
84
Programming by Example on SmallStar
84
ThinkPad
85
PiP
86
Peridot
89
Focusing on Inductive Inferencing: AutoProgrammer
90
Focusing on Graphical Interaction: Programming by Rehearsal
Summary
106
References
107
Chapter 6. LANGUAGES FOR HANDLING VISUAL
INFORMATION
109
Introduction
109
Examples of Augmented Conventional Query Languages
99
110
CONTENTS
A Graphics-oriented Relational Algebraic Interpreter: GRAIN
Structured Query Language Extended to Picturial Domain: PSQL
References
121
Chapter 7.
111
116
LANGUAGES FOR SUPPORTING VISUAL
INTERACTIONS
124
Introduction
124
The Icon-Class Description Language of SDMS: ICDL
124
A Language Based on a Hierarchical Window Model: HI-VISUAL
A Language Supporting Communication with Pointing Device:
Squeak
132
References
135
Chapter 8.
ix
128
VISUAL PROGRAMMING LANGUAGES:
A PERSPECTIVE
136
Three Categories of Visual Languages
136
The First Two Categories: Languages Themselves Are Textual
136
Languages for Handling Visual Information
136
Languages for Supporting Visual Interactions
137
Visual Programming Languages: Definition
138
A Framework for Assessing Visual Programming Languages
139
Level of the Language
139
Scope of Applicability
139
Extent of Visual Expressions
139
Framework for Dimensional Analysis
140
Example—A Comparison of Three Visual Programming Languages
141
Profile of the Pict System
141
Profile of the PIGS System
142
Profile of the FORMAL System
143
A Comparison in the Three-Dimensional Framework
147
References
147
Chapter 9.
DIAGRAMMATIC SYSTEMS
148
Introduction
148
Flow charts and Rothon Diagrams as "Paper and Pencil" Tools
149
Flow Charts as Graphical Extensions to Executable Code
151
Charts that resemble "Paper and Pencil Planning": FPL
151
A Hierarchical Structured Diagram for Pascal: Pascal/HSD
155
Nassi-Shneiderman Diagrams as Graphical Extensions
157
A Graphics-Based Programming-Support System
157
An Interactive Graphical Support System: PIGS
166
x
CONTENTS
Extended to Support Concurrent Programming: Pigsty/I-PIGS
A Graphical Support System Without Pointing Device: GRASE
Data Flow Diagrams
173
State Transition Diagrams
178
Introduction
178
User Software Engineering (USE) Methodology
180
Jacob's State Transition Diagram Language
184
References
188
Chapter 10.
ICONS AND ICONIC SYSTEMS
190
Reflections on the Chinese Ideographic System
Contrast with Visual Coaching
195
VennLISP
196
TINKERTOY
197
Dialog.I
199
IDEOSY
199
PROGRAPH
200
Extended HI-VISUAL
203
The Xerox Star System
206
The Pict System
214
The Show and Tell System
222
References
237
190
Chapter 11. TABLE-AND FORM-BASED SYSTEMS
Introduction
239
QBE and its Derivations
240
Query by Example (QBE)
240
Extensions to OFFICE Activities: QBE/OBE and QBE/PC
Extension to Pictorial Data: QPE
253
FORMANAGER
259
FORMAL:
265
Summary
282
References
284
Chapter 12. FUTURE PROSPECTS
285
The Nature of Confusion
285
The Benefits of Characterization
286
A Framework for Assessments
286
High Consumption of Screen Space
288
Suitable Visual Representations
289
Balance between Concreteness and Abstraction
294
168
170
239
252
CONTENTS
The Ladders of Learning
294
The Effectiveness and Quality of Visual Expressions
Other Yardsticks
296
Approaches to Definition of Icon
297
Toward a Multimedia Approach
300
Toward Formalism
300
A Note of Hope
303
References
304
Index
307
295
xi
Download