Sie sind auf Seite 1von 37

Visual Programming

Qinwei Zhu
Jiunwei Chen
Contents
 What is a VPL?
 Motivations
 Examples
 Advantages / Disadvantages
 Brief Survey of VPLs
 VPLs in Detail
 Prograph, VIPR
 VPL Issues and Classifications
 References
What is a VPL?
 A programming language that uses a visual
representation (such as graphics, drawings,
animation or icons, partially or completely)
 A visual language manipulates visual
information or supports visual interaction, or
allows programming with visual expressions
[Golin 90]
 Any system where the user writes a program
using two or more dimensions [Myers 90]
 A visual language is a set of spatial
arrangements of text-graphic symbols with a
semantic interpretation that is used in carrying
out communication actions in the world
What are NOT VPLs?

 Visual Basic, Visual C++, Delphi,


etc.
 Still primarily textual languages with a
graphical GUI builder
 User interface portion of the language
is visual, the rest is not
Motivations
 Many people think in pictures.
 Textual programming languages have
proven to be difficult for many people to
learn to use effectively.
 Some applications are very well suited to
graphical development approaches.
 Scientific visualization
 System simulation
Example 1: Factorial
int Factorial(int n)
{
if(n > 0) return (n*factorial(n-1));
else
return (1);
}
Forms/3 Example
Prograph Example
Example 2
msc Timeout2;
instance User;
out Code to Keyboard;
endinstance;
instance Keyboard;
in Code from User; out Code to Main;
endinstance;
instance Screen;
in `Enter amount' from Main;
in `Take card' from Main;
endinstance;
instance Main;
in Code from Keyboard;
out `Enter amount' to Screen;
set Timer (10); timeout Timer; out `Take card' to Screen;
endinstance;
endmsc;
Advantages

 Fewer programming concepts


 Concreteness
 Explicit depiction of relationships
 Immediate visual feedback
 Eliminates an intermediate step in
the process of creating a program
Advantages (cont’d)

 A different conceptual framework for


the programming process(examples)
 Parallel computation is a natural
consequence of many visual
programming paradigms
Disadvantages
 Deutsch Limit
 The problem with visual programming is that you
can't have more than 50 visual primitives on the
screen at the same time.

 Some situations in which text has


superiority:
 documentation,
 naming to distinguish between elements that are of
the same kind, and
 expressing well-known and compact concepts that
are inherently textual, e.g. algebraic formulas.
Early Systems: 1966-1980

o Ambit o Grail
o AutoProgrammer o Query by
o Plan2D Example
o Tinker o Pygmalion
o Outline
Visual Systems: 1981-1990
 ML-like VL o Prograph
 Pict o GAL
 Formal o PIGS
 SmallStar o Show and Tell
 Hi-Visual o Tinker Toy
 PC-Titles o C^2
 ThingLab o SunPICT
 ARK o NoPumpG
Modern Systems: 1991-
o Cube o Forms/3
o Cantata o AVS
o Hence 1.4 o Mondrian
o SchemePaint o ChemTrains
o CODE 2.0 o HyperPascal
o Iconicode o Vampire
o Viasvis o VIPR
o MViews o SPE
VPLs in Detail

 AVS and Khoros/Cantata (Monday)


 High-level languages
 Specific towards simulation and
visualization
 Prograph, VIPR
 General-purpose VPLs
 Support for lower level features
Prograph
 General-purpose VPL
 Object-oriented
 Data-flow driven
 Designed for Rapid Application
Development (RAD)

 Developed by Pictograph Inc.


 One of the more successful general-
purpose VPLs
Data Flow Model
 Information flows through a system
 Data is transformed at certain
points in the program

Input Output
Transform

 This model can represent the


system at any level of abstraction
 Application-level, package-level, class-
level, operation-level, etc.
Data Flow Model

 Little control over the order in which


sections of a program are executed
 Operations can execute after all their
input data has arrived

X
A
Y
C
Z B
Prograph Components

 Sections
 Analogous to Java packages
 Classes
 Attributes/methods
 Single inheritance support
Prograph Components

 Methods
 Basis for control flow
 Contains the “meat” of the program
 Operations
 Basic executable component
 Operates on input, produces output

Root

Terminal
HelloWorld Example

Method
case

Operations
Controls
 Attached to operations in order to control
the flow of execution
 Contains two aspects
 The action to be taken
 Whether or not the action is a success or a
failure
 Allows the next case to be executed, or
the current case terminated, etc.

Next Case Control


Factorial Example Revisited
Prograph Users

 Generally used for in-house projects


or small applications
 Corporate users include:
 Akamai Technologies, Inc.
 Boeing
 Dow Chemical Company
 Raytheon
 Westinghouse
VIPR

 Visual Imperative Programming


 Developed at the University of Colorado
 Almost completely visual
 Uses a nested series of rings
 Object-oriented
 Inheritance, polymorphism, etc.
 Semantics are similar to C++
Other VPLs

 LabVIEW (National Instruments)


 For development of measurement and
automation applications
 Cube
 First 3D VPL; almost completely visual
 Forms/3
 Another general-purpose VPL,
emphasizing data abstraction
 Uses a spreadsheet metaphor
VPL Issues

 Procedural Abstraction
 High-level vs. Low-level
 Levels of abstraction, granularity
 Data Abstraction
 Similar to the notion of data
abstraction in conventional languages
 Control Flow
 Data-flow model
 Message passing model
 … or others
Classifications
1. Purely visual languages
• Icons or other graphical representations are
manipulated
e.g. Cube, VIPR, Prograph, …

2. Hybrid text and visual systems


• Programs are created visually and then
translated into an underlying textual language
• Usage of graphical elements in an otherwise
textual language
e.g. Rehearsal World
Classifications
3. Programming-by-example systems
• Teach a system how to perform a task
e.g. Rehearsal World, Pygmalion

4. Constraint-oriented systems
• Popular for simulation design
e.g. ThingLab, ARK

5. Form-based systems
• Uses a spreadsheet metaphor
e.g. Forms/3, NoPumpG
References
 http://www.cs.washington.edu/homes/jpower/vpl/vpl_
home.html
 http://www.wi.leidenuniv.nl/CS/SEIS/vislang/VLcourse.
html
 http://www-lsi.upc.es/~rbaeza/cursos/vp/todo.html
 http://www.cs.berkeley.edu/~maratb/cs263/
 http://www.efd.lth.se/~d87man/EXJOBB/MSC.html
 http://www.ecs.soton.ac.uk/~tal00r/vlangs.html

Das könnte Ihnen auch gefallen