In computing, a visual programming language (visual programming system, VPL, or, VPS), also known as diagrammatic programming, [1] [2] graphical programming or block coding, is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. [3] 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.
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 [4]
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. [5]
The Visual Basic, Visual C#, Visual J# etc. languages of the Microsoft Visual Studio integrated development environment (IDE) 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 (but not define) control flow and data dependencies.
Parsers for visual programming languages can be implemented using graph grammars. [6] [7]
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.
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 (like C, C++, Java, etc.).
For example, research projects such as Envision [8] [9] and PWCT [10] are designed to achieve this goal. It's common for a VPL to be developed using a textual programming language. Developing general-purpose VPLs allows the other way around. For example, a new textual programming language Compiler and Virtual Machine is developed using visual programming in 2016. [11]
The following contains a list of notable visual programming languages.
Many modern video games make use of 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.
A graphical user interface, or GUI, is a form of user interface that allows users to interact with electronic devices through graphical icons and visual indicators such as secondary notation. In many applications, GUIs are used instead of text-based UIs, which are based on typed command labels or text navigation. GUIs were introduced in reaction to the perceived steep learning curve of command-line interfaces (CLIs), which require commands to be typed on a computer keyboard.
An integrated development environment (IDE) is a software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, and a debugger. Some IDEs, such as IntelliJ IDEA, Eclipse and Lazarus contain the necessary compiler, interpreter or both; others, such as SharpDevelop and NetBeans, do not.
Adobe Authorware was an elearning authoring tool with its own interpreted, flowchart-based, graphical programming language. Authorware was used for creating interactive elearning programs that could integrate a range of multimedia content, particularly electronic educational technology applications. The flowchart model differentiated Authorware from other authoring tools, such as Adobe Flash and Adobe Director, which rely on a visual stage, time-line and script structure.
Max, also known as Max/MSP/Jitter, is a visual programming language for music and multimedia developed and maintained by San Francisco-based software company Cycling '74. Over its more than thirty-year history, it has been used by composers, performers, software designers, researchers, and artists to create recordings, performances, and installations.
Laboratory Virtual Instrument Engineering Workbench (LabVIEW) is a graphical system design and developmentplatform produced and distributed by National Instruments, based on a programming environment that uses a visual programming language. It is widely used for data acquisition, instrument control, and industrial automation. It provides tools for designing and deploying complex test and measurement systems.
Houdini is a 3D animation software application developed by Toronto-based SideFX, who adapted it from the PRISMS suite of procedural generation software tools.
Autodesk Softimage, or simply Softimage was a 3D computer graphics application, for producing 3D computer graphics, 3D modeling, and computer animation. Now owned by Autodesk and formerly titled Softimage|XSI, the software has been predominantly used in the film, video game, and advertising industries for creating computer generated characters, objects, and environments.
Microsoft Robotics Developer Studio is a discontinued Windows-based environment for robot control and simulation that was aimed at academic, hobbyist, and commercial developers and handled a wide variety of robot hardware. It requires a Microsoft Windows 7 operating system or later.
A workflow application is a software application that automates, to at least some degree, a process or processes. The processes are usually business-related but can be any process that requires a series of steps to be automated via software. Some steps of the process may require human intervention, such as approval or the development of custom text, but functions that can be automated should be handled by the application. Advanced applications allow users to introduce new components into the operation.
Node graph architecture is a software design structured around the notion of a node graph. Both the source code and the user interface are designed around the editing and composition of atomic functional units. Node graphs are a type of visual programming language.
SIGNAL is a programming language based on synchronized dataflow : a process is a set of equations on elementary flows describing both data and control.
Pipeline Pilot is a desktop software application developed by Dassault Systèmes. Initially focused on extract, transform, and load (ETL) processes and data analytics, the software has evolved to offer broader capabilities in various scientific and industrial applications.
ASU VIPLE is a Visual IoT/Robotics Programming Language Environment developed at Arizona State University.
PWCT is a free open source visual programming language for software development. The project was founded in December 2005 as a free open-source project that supports designing applications through visual programming then generating the source code. The software supports code generation in many textual programming languages.