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
o
o
o
Ambit
AutoProgrammer
Plan2D
Tinker
o Grail
o Query by
Example
o Pygmalion
o Outline
Visual Systems: 1981-1990








ML-like VL
Pict
Formal
SmallStar
Hi-Visual
PC-Titles
ThingLab
ARK
o
o
o
o
o
o
o
o
Prograph
GAL
PIGS
Show and Tell
Tinker Toy
C^2
SunPICT
NoPumpG
Modern Systems: 1991o
o
o
o
o
o
o
o
Cube
Cantata
Hence 1.4
SchemePaint
CODE 2.0
Iconicode
Viasvis
MViews
o
o
o
o
o
o
o
o
Forms/3
AVS
Mondrian
ChemTrains
HyperPascal
Vampire
VIPR
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 generalpurpose VPLs
Data Flow Model


Information flows through a system
Data is transformed at certain
points in the program
Input

Transform
Output
This model can represent the
system at any level of abstraction

Application-level, package-level, classlevel, operation-level, etc.
Data Flow Model

Little control over the order in which
sections of a program are executed

X
Operations can execute after all their
input data has arrived
A
C
Y
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


Almost completely visual


Uses a nested series of rings
Object-oriented


Developed at the University of Colorado
Inheritance, polymorphism, etc.
Semantics are similar to C++
Other VPLs

LabVIEW (National Instruments)


Cube


For development of measurement and
automation applications
First 3D VPL; almost completely visual
Forms/3


Another general-purpose VPL,
emphasizing data abstraction
Uses a spreadsheet metaphor
VPL Issues

Procedural Abstraction



Data Abstraction


High-level vs. Low-level
Levels of abstraction, granularity
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
•
4.
Teach a system how to perform a task
e.g. Rehearsal World, Pygmalion
Constraint-oriented systems
•
5.
Popular for simulation design
e.g. ThingLab, ARK
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
Descargar

Visual Programming Languages