Visual programming language


In computing, a visual programming language, also known as diagrammatic programming, graphical programming or block coding, is a programming language that lets users create programs by manipulating program elements rather than by specifying them. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations. VPLs are generally the basis of low-code development platforms.

Definition

VPLs may be further classified, according to the type and extent of visual expression used, into icon-based languages, form-based languages, and diagram languages. Visual programming environments provide graphical or iconic elements which can be manipulated by users in an interactive way according to some specific spatial grammar for program construction.
The general goal of VPLs is to make programming more accessible to novices and to support programmers at three different levels
;Syntax
;Semantics
;Pragmatics
As of 2005, current developments try to integrate the visual programming approach with dataflow programming languages to either have immediate access to the program state, resulting in online debugging, or automatic program generation and documentation. Dataflow languages also allow automatic parallelization, which is likely to become one of the greatest programming challenges of the future.
The Visual Basic, Visual C#, Visual J# etc. languages of the Microsoft Visual Studio integrated development environment are not visual programming languages: the representation of algorithms etc. is textual even though the IDE embellishes the editing and debugging activities with a rich user interface. A similar consideration applies to most other rapid application development environments which typically support a form designer and sometimes also have graphical tools to illustrate control flow and data dependencies.
Parsers for visual programming languages can be implemented using graph grammars.

Types of visual languages

The following list is not mutually exclusive, as some visual programming environments may incorporate elements from multiple paradigms. The choice of visual programming paradigm often depends on the specific requirements of the application or the preferences of the users or the developers.
;Block-based programming
;Flowcharts
;Drag and drop interfaces
;Node graphs
;Dataflow programming
;Iconic programming
;State machines
;Sheet-based programming
;Timeline-based programming
;Spatial programming
;'''Form-based programming'''

General-purpose visual languages

Most of the VPLs are designed for education or domain-specific usage where the target users are novice programmers. But there are some research projects try to provide a general-purpose visual programming language that can be used by mainstream programmers in any software project instead of using textual programming languages.
For example, research projects such as Envision was designed to achieve this goal.

List of visual languages

The following contains a list of notable visual programming languages.

Educational

Multimedia

Video games

Many modern video games make use of Behavior tree (artificial intelligence, [robotics and control)|behavior trees], which are in principle a family of simple programming languages designed to model behaviors for non-player characters. The behaviors are modeled as trees, and are often edited in graphical editors.

Systems / simulation

Automation

Data warehousing / business intelligence

Miscellaneous

  • Bubble, for creating production-ready web applications.
  • Cube, an esolang to emulate a 3D cube via a 2D text interface
  • Kwikpoint, an isotype visual translator created by Alan Stillman
  • Morphic (software), makes it easier to build and edit graphical objects by direct manipulation and from within programs; the whole Self (programming language) programming environment is built using Morphic
  • Piet, an esoteric language, the program is an image whose pixels are the language's elements
  • ProtoFlux, visual language used in the Resonite virtual reality system.
  • Pygmalion, a creative programming environment developed in 1975 by DARPA based on human communication and systems design
  • Shortcuts, a visual scripting language developed by Apple for creating macros on macOS, iOS, iPadOS, and watchOS.
  • StreamBase Systems, StreamBase EventFlow is a visual programming language for processing streaming events
  • WebML, is a visual language for designing complex data-intensive Web applications that can be automatically generated
  • Yahoo! Pipes is a visual data-flow programming system to process web data
  • YAWL, graphical workflow language

Legacy

Visual styles