1 / 37

Visual Programming

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?.

juana
Download Presentation

Visual Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Visual Programming Qinwei Zhu Jiunwei Chen

  2. Contents • What is a VPL? • Motivations • Examples • Advantages / Disadvantages • Brief Survey of VPLs • VPLs in Detail • Prograph, VIPR • VPL Issues and Classifications • References

  3. 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

  4. 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

  5. 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

  6. Example 1: Factorial int Factorial(int n) { if(n > 0) return (n*factorial(n-1)); else return (1); }

  7. Forms/3 Example

  8. Prograph Example

  9. 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;

  10. Advantages • Fewer programming concepts • Concreteness • Explicit depiction of relationships • Immediate visual feedback • Eliminates an intermediate step in the process of creating a program

  11. Advantages (cont’d) • A different conceptual framework for the programming process(examples) • Parallel computation is a natural consequence of many visual programming paradigms

  12. 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.

  13. Early Systems: 1966-1980 • Ambit • AutoProgrammer • Plan2D • Tinker • Grail • Query by Example • Pygmalion • Outline

  14. 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

  15. Modern Systems: 1991- • Cube • Cantata • Hence 1.4 • SchemePaint • CODE 2.0 • Iconicode • Viasvis • MViews • Forms/3 • AVS • Mondrian • ChemTrains • HyperPascal • Vampire • VIPR • SPE

  16. 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

  17. 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

  18. 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.

  19. 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

  20. Prograph Components • Sections • Analogous to Java packages • Classes • Attributes/methods • Single inheritance support

  21. Root Terminal Prograph Components • Methods • Basis for control flow • Contains the “meat” of the program • Operations • Basic executable component • Operates on input, produces output

  22. HelloWorld Example Method case Operations

  23. 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

  24. Factorial Example Revisited

  25. Prograph Users • Generally used for in-house projects or small applications • Corporate users include: • Akamai Technologies, Inc. • Boeing • Dow Chemical Company • Raytheon • Westinghouse

  26. 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++

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

More Related