Show-And-Tell(ID:1269/sho004)


Visual dataflow language designed for use by elementary school children.




Related languages
Show-And-Tell => Enhanced Show-and-Tell   Extension of
Show-And-Tell => Hyperflow   Evolution of

Samples:
References:
  • Choi, J. W. and T. D. Kimura "A compiled picture language on Macintosh" view details Extract: Intro and Program structure
    STL is an icon-driven visual programming language. Since both programs and data in STL are pictorial, a program can be created solely by using a pointing device such as a mouse. A keyboard is needed only for entering textual or numeric data. STL is designed for school children and novice computer users. 'Keyboardless programming' is the main goal of the language. The name 'Show and Tell' was chosen because the system can display and speak any results of computation in
    any part of a user defined program. In STL 'what you see is what it does'.
    [...]
    The language integrates three areas of computer application in the home and classroom environments, i.e., management of computation, database and communication. The integration is done with a uniform conceptual framework of dataflow plus completion. Completion refers to a problem in which the missing portions of an incomplete pattern must be filled in. A STL program is called a 'puzzle' because it defines a completion problem in the same way a jig-saw puzzle defines a completion problem. A computation in STL is defined as completion by execution of operations, a communication as completion by dataflow, and a data-query as completion by pattern matching.
    [...]
    Program Structure
    A STL program (puzzle) consists of boxes connected by arrows. Loops and cycles may not exist in a STL puzzle. A box may be empty or may contain a data value, an icon which represents an operation, or another STL puzzle. A box may be empty or may contain a data value, an icon which represents an operation, or another STL puzzle. Arrows allow data to flow from one box to another. An operation in a box will be executed when and only when all incoming values have arrived at the box.

    Except for this data dependency there is no inherent sequencing mechanism in STL. Since there is no loop in a STL program, once an operation is executed and the result is registered in an empty box, the value will never change. There are no side effects. Thus, STL is a functional parallel programming language.

    Extract: Consistency
    2.4 Consistency
    A STL puzzle is called inconsistent if two neighboring boxes contain conflicting objects. Otherwise it is consistent. There are two kinds of control mechanism for propagation of the effects of inconsistency: the closed box and the open box. When a closed box contains an inconsistent puzzle, the box confines the inconsistency within the box. No communication is possible with a box containing an
    inconsistent puzzle, i.e., the box becomes non-existent from the viewpoint of the rest of the puzzle. If a box contains a consistent puzzle, then the box has no effect on the rest of the puzzle, i.e., it becomes transparent. When an open box contains an inconsistent puzzle, the inconsistency propagates out of the open box and into the surrounding environment.

    Inconsistency propagates in the broadcasting mode within the boundary of the smallest closed box containing the inconsistent puzzle, while a data object propagates in the point-to-point mode to the neighboring boxes. When an arrow goes through an inconsistent box, data on the arrow does not reach the destination, i.e., the inconsistency of a puzzle switches off the communication path provided by the arrow. There is no explicit Boolean data type in STL. These two language constructs correspond to the block structure of traditional programming languages.
          in Proceedings of the 1986 ACM SIGSMALL/PC symposium on Small systems 1986, San Francisco, California, United States view details
  • Gillett, W.D. and T.D. Kimura. Parsing Two-Dimesional Languages. Proc. COMPSAC86, Chicago, October 1986. view details
          in Proceedings of the 1986 ACM SIGSMALL/PC symposium on Small systems 1986, San Francisco, California, United States view details
  • Kimura et al "A Visual Language for Keyless Programming," Technical Report WUCS-86-6, Dept of Computer Science, Washington University, St. Louis, June 1986. view details
          in Proceedings of the 1986 ACM SIGSMALL/PC symposium on Small systems 1986, San Francisco, California, United States view details
  • Kimura, T.D., et al "Show and Tell: A Visual Programming Language," Invited paper in the Computing Environment, E.P. Ginert (ed.) Computer Society Press Tutorial, Washington, D.C., 1990, pp397-404. view details
          in Proceedings of the 1986 ACM SIGSMALL/PC symposium on Small systems 1986, San Francisco, California, United States view details
  • Kimura, Takayuki Dan "Hyperflow: a uniform visual language for different levels of programming" view details Abstract: We propose a visual language, Hyperflow, for system programming as well as for end user'shell programming. Hyperflow is designed for a multimedia pen computer system for children. It is a dataflow-based graphical language. In order to demonstrate the capability of Hyperflow, we solve the programming problem of implementing a help command for children to telephone their instructor or parents using voice communication hardware (modem, microphone, speaker, and clock). The resulting program includes visual programs to implement device drivers for the modem and clock hardware. DOI Extract: Review
    Show and Tell was one of the first generation of visual programming languages whose semantic model was based on the concept of datatlow. It was developed on the Macintosh as a programming language for school children. We learned from tbe Show and Tell Iroject that in spite of inherent concurrency, novice users find datatlow easier to understand than control Row. We also learned that the mouse is difficult to use for children.

    In Show and Tell, a program consists of nested boxes and arrows. Each box represents either an operator (function) or an operand (variable). Each arrow represents the transfer of a data value from one box to another. An example Show and Tell program is given in Figure 1 (1). It recursively defines the factorial function. The iconic name of the program is given in the upper-left comer. Each case is represented by a separate box. A dotted box contains a predicate. The empty boxes represent formal parameters. When the user enters an argument on the Macintosh screen, (e.g.. the numeral 5, into the upper empty box) and selects the menu item solve, the result of the factorial computation, (the numeral 120,) appears in the lower box. If the User wishes to observe the dynamic inner workings of a component box, e.g., inside the body before tbe multiplication, the user can obtain a visual representation of the function in another window by double clicking the box while the program is executing. For this particular example, tbe same visual representation will be displayed witb a different argument, since the function is recursively defined. Thus for this Show and Tell program a visual program and its user interface are identical.
          in [ACM] Proceedings of the 1993 ACM Conference on Computer Science March 1993 view details