370 likes | 752 Views
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?.
E N D
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); }
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 • Ambit • AutoProgrammer • Plan2D • Tinker • Grail • Query by Example • Pygmalion • Outline
ML-like VL Pict Formal SmallStar Hi-Visual PC-Titles ThingLab ARK Visual Systems: 1981-1990 • Prograph • GAL • PIGS • Show and Tell • Tinker Toy • C^2 • SunPICT • NoPumpG
Modern Systems: 1991- • Cube • Cantata • Hence 1.4 • SchemePaint • CODE 2.0 • Iconicode • Viasvis • MViews • 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 general-purpose VPLs
Input Output Transform Data Flow Model • Information flows through a system • Data is transformed at certain points in the program • 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 C Y B Z
Prograph Components • Sections • Analogous to Java packages • Classes • Attributes/methods • Single inheritance support
Root Terminal Prograph Components • Methods • Basis for control flow • Contains the “meat” of the program • Operations • Basic executable component • Operates on input, produces output
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
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 • Purely visual languages • Icons or other graphical representations are manipulated e.g. Cube, VIPR, Prograph, … • 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 • Programming-by-example systems • Teach a system how to perform a task e.g. Rehearsal World, Pygmalion • Constraint-oriented systems • 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