160 likes | 177 Views
Discover the benefits of visual programming languages for clear representation of complex programs. Visualize control flow, data flow, and rule-based programming. Learn about tools like LabView and Icon Sequences.
E N D
Programming Languages/Systems • A set of possible computations (usually infinite) • A set of primitive operations: e.g., arithmetic operations, loading, storing, branching. • A set of language primitives: e.g., identifiers, operators, etc., or menu items, components of rules, etc. • A set of combining rules (grammar) used to form larger and larger expressions, and eventually, programs. • A mapping from programs in the language to computations, usually expressed in terms of mappings from language primitives and combination schemata to primitive operations and partial computations. CSE 341 S. Tanimoto Vis Lang -
Visual Languages A visual programming language is a programming language whose language primitives and/or combining rules are expressed graphically. CSE 341 S. Tanimoto Vis Lang -
Rationale for Visual Languages Programs can be complex, and visual representations can sometimes be clearer. Programming is difficult for novices, and visual languages may be more intuitive. Visual languages can be specialized for various kinds of end-user configuration tasks. E.g., setting up a measurement apparatus or defining a spreadsheet for loan amortization. CSE 341 S. Tanimoto Vis Lang -
Categories of Visual Languages Executable flow charts (control flow). Data-flow diagrams (data flow). Visual rule languages (rule-based). Programming by demonstration (direct manipulation). Spreadsheet or form-based (spreadsheet-based). Icon sequences. CSE 341 S. Tanimoto Vis Lang -
Control Flow PICT -- Glinert and Tanimoto 1984. Intended for teaching novices about programming, as an alternative to starting with Pascal. CSE 341 S. Tanimoto Vis Lang -
Start add the blue register’s contents into the red register’s contents + display the red register’s contents Stop CSE 341 S. Tanimoto Vis Lang -
Data Flow Similar to a high-level schematic diagram for a circuit. LabView from National Instruments. Prograph from Pictorius. CSE 341 S. Tanimoto Vis Lang -
Visual Rules Visual AgenTalk (for AgentSheets, from U. of Colorado) Agent Builder (devel. at UW, also for AgentSheets). CSE 341 S. Tanimoto Vis Lang -
Before After CSE 341 S. Tanimoto Vis Lang -
CSE 341 S. Tanimoto Vis Lang -
Programming by Demonstration Gael Curry -- U of W, c1976. “Programming by Abstract Demonstration”. David Canfield Smith -- Stanford, c1976. “Pygmalion”. Xerox Parc: “Programming by Rehearsal”, c1984 CSE 341 S. Tanimoto Vis Lang -
Icon Sequences Marcia Runyan, UW. 1986. PLAY: Pictorial Language for Animation by Youngsters. CSE 341 S. Tanimoto Vis Lang -
Language Issues for VL Best paradigm: data flow? Visual representations: icon design, graph layout, chart style, metaphor (e.g. the desktop). Scaling up: information hiding, visual abstraction, when to show connections. Integration with the devel. env’t. CASE = Computer Aided Software Engineering. CSE 341 S. Tanimoto Vis Lang -
Visualization of Execution Visual highlighting of the current location in the diagram. Visual display of internal data structures: the heap, the stack, the symbol table, local variables. (visual debugging) Algorithm animation: automatic and semi-automatic. (Self-explaining programs)... BALSA, TANGO, etc. CSE 341 S. Tanimoto Vis Lang -
Visualization of Software Testing “What you see is what you test” -- project at Oregon State, under the direction of M. Burnett. Testedness is shown by coloring the cells of a spreadsheet according to the degree of testing it has undergone. CSE 341 S. Tanimoto Vis Lang -
Visual Languages for People Pre-computer visual languages: hieroglyphics, Chinese, Bliss Symbols. Post-computer visual languages: MinSpeak, Elephant memory, Vedo-Vedi. A good computer-based visual language has not only a syntax and semantics for people but for the computer as well. Rather than a set of computations, we are concerned with an “ontology” or set of possible meanings. CSE 341 S. Tanimoto Vis Lang -