Visual%20Programming - PowerPoint PPT Presentation

About This Presentation
Title:

Visual%20Programming

Description:

A programming language that uses a visual representation (such as ... Tinker. Grail. Query by Example. Pygmalion. Outline. Early Systems: 1966-1980. ML-like VL ... – PowerPoint PPT presentation

Number of Views:78
Avg rating:3.0/5.0
Slides: 38
Provided by: q396
Category:

less

Transcript and Presenter's Notes

Title: Visual%20Programming


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 gt 0) return (nfactorial(n-1))
  • else
  • return (1)

7
(No Transcript)
8
(No Transcript)
9
Forms/3 Example
10
Prograph Example
11
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


12
(No Transcript)
13
Advantages
  • Fewer programming concepts
  • Concreteness
  • Explicit depiction of relationships
  • Immediate visual feedback
  • Eliminates an intermediate step in the process of
    creating a program

14
Advantages (contd)
  • A different conceptual framework for the
    programming process(examples)
  • Parallel computation is a natural consequence of
    many visual programming paradigms

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

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

17
Visual Systems 1981-1990
  • ML-like VL
  • Pict
  • Formal
  • SmallStar
  • Hi-Visual
  • PC-Titles
  • ThingLab
  • ARK
  • Prograph
  • GAL
  • PIGS
  • Show and Tell
  • Tinker Toy
  • C2
  • SunPICT
  • NoPumpG

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

19
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

20
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

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

22
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
23
Prograph Components
  • Sections
  • Analogous to Java packages
  • Classes
  • Attributes/methods
  • Single inheritance support

24
Prograph Components
  • Methods
  • Basis for control flow
  • Contains the meat of the program
  • Operations
  • Basic executable component
  • Operates on input, produces output

25
HelloWorld Example
Method case
Operations
26
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
27
Factorial Example Revisited
28
Prograph Users
  • Generally used for in-house projects or small
    applications
  • Corporate users include
  • Akamai Technologies, Inc.
  • Boeing
  • Dow Chemical Company
  • Raytheon
  • Westinghouse

29
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

30
(No Transcript)
31
(No Transcript)
32
(No Transcript)
33
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

34
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

35
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

36
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

37
References
  • http//www.cs.washington.edu/homes/jpower/vpl/vpl_
    home.html
  • http//www.wi.leidenuniv.nl/CS/SEIS/vislang/VLcour
    se.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
Write a Comment
User Comments (0)
About PowerShow.com