In
computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, e ...
, a visual programming language (visual programming system, VPL, or, VPS) is any
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
that lets users create
programs by manipulating program elements ''graphically'' rather than by specifying them ''textually''. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of
syntax
In linguistics, syntax () is the study of how words and morphemes combine to form larger units such as phrases and sentences. Central concerns of syntax include word order, grammatical relations, hierarchical sentence structure ( constituency) ...
or
secondary notation
Secondary notation is the set of visual cues used to improve the readability of a formal notation. Examples of secondary notation include the syntax highlighting of computer source code, sizes and color codes for easy recognition of consumer sym ...
. For example, many VPLs (known as ''dataflow'' or ''diagrammatic programming'') 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.
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'': VPLs use icons/blocks, forms and diagrams trying to reduce or even eliminate the potential of syntactic errors helping with the arrangement of programming primitives to create well-formed programs.
* ''Semantics'': VPLs may provide some mechanisms to disclose the meaning of programming primitives. This could include help functions providing documentation functions built-in to programming languages.
* ''Pragmatics'': VPLs support the study of what programs mean in particular situations. This level of support allows users to put artifacts created with a VPL into a certain state in order to explore how the program will react to that state. Examples: In
AgentSheets
AgentSheets was one of the first modern block-based programming language for kids. The idea of AgentSheets was to overcome syntactic challenges found in common text-based programming languages by using drag and drop mechanisms conceptualizing com ...
or
AgentCubes
AgentCubes is an educational programming language for children to create 3D and 2D online games and simulations. The main application of AgentCubes is as computational thinking tool teaching children computational thinking through game and simul ...
users can set games or simulations into a particular state in order to see how program would react. With the
Thymio
Thymio II is an educational robot in the 100 Euros price range. The robot was developed at the EPFL in collaboration with ECAL, both in Lausanne, Switzerland. A purely-visual programming language was developed at ETH Zurich
. All components, both ...
programming language users can bring a robot into a certain state in order to see how it will react, i.e., which sensors will be activated.
Current developments try to integrate the visual programming approach with
dataflow programming
In computer programming, dataflow programming is a programming paradigm that models a program as a directed graph of the data flowing between operations, thus implementing dataflow principles and architecture. Dataflow programming languages share ...
languages to either have immediate access to the
program state
In information technology and computer science, a system is described as stateful if it is designed to remember preceding events or user interactions; the remembered information is called the state of the system.
The set of states a system can oc ...
, resulting in online debugging, or automatic program generation and documentation. Dataflow languages also allow
automatic parallelization
Automatic may refer to:
Music Bands
* Automatic (band), Australian rock band
* Automatic (American band), American rock band
* The Automatic, a Welsh alternative rock band
Albums
* Automatic (Jack Bruce album), ''Automatic'' (Jack Bruce a ...
, which is likely to become one of the greatest programming challenges of the future.
The
Visual Basic Visual Basic is a name for a family of programming languages from Microsoft. It may refer to:
* Visual Basic .NET (now simply referred to as "Visual Basic"), the current version of Visual Basic launched in 2002 which runs on .NET
* Visual Basic (cl ...
,
Visual C#,
Visual J# etc. languages of the
Microsoft Visual Studio
Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms such a ...
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
Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to ...
environments which typically support a
form designer
A graphical user interface builder (or GUI builder), also known as GUI designer or sometimes RAD IDE, is a software development tool that simplifies the creation of GUIs by allowing the designer to arrange graphical control elements (often calle ...
and sometimes also have graphical tools to illustrate (but not define) control flow and data dependencies.
Parser
Parsing, syntax analysis, or syntactic analysis is the process of analyzing a string of symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal grammar. The term ''parsing'' comes from Lati ...
s for visual programming languages can be implemented using
graph grammar
In computer science, graph transformation, or graph rewriting, concerns the technique of creating a new graph out of an original graph algorithmically. It has numerous applications, ranging from software engineering (software construction and also ...
s.
List of visual languages
The following contains a list of notable visual programming languages.
Educational
*
AgentCubes
AgentCubes is an educational programming language for children to create 3D and 2D online games and simulations. The main application of AgentCubes is as computational thinking tool teaching children computational thinking through game and simul ...
, 3D and 2D game design and simulation design computational thinking tools.
*
AgentSheets
AgentSheets was one of the first modern block-based programming language for kids. The idea of AgentSheets was to overcome syntactic challenges found in common text-based programming languages by using drag and drop mechanisms conceptualizing com ...
, game authoring and computational science authoring tool.
*
Alice
Alice may refer to:
* Alice (name), most often a feminine given name, but also used as a surname
Literature
* Alice (''Alice's Adventures in Wonderland''), a character in books by Lewis Carroll
* ''Alice'' series, children's and teen books by ...
, an object based language used to program 3D environments.
*
Analytica, for building and analyzing quantitative models for decision and risk analysis.
*
App Inventor for Android
MIT App Inventor is a web application integrated development environment originally provided by Google, and now maintained by the Massachusetts Institute of Technology (MIT). It allows newcomers to computer programming to create application softw ...
, a tool for creating
Android
Android may refer to:
Science and technology
* Android (robot), a humanoid robot or synthetic organism designed to imitate a human
* Android (operating system), Google's mobile operating system
** Bugdroid, a Google mascot sometimes referred to ...
applications, based on
Blockly
Blockly is a client-side library for the programming language JavaScript for creating block-based visual programming languages (VPLs) and editors. A project of Google, it is free and open-source software released under the Apache License 2.0. It ...
and
Kawa.
*
Blockly
Blockly is a client-side library for the programming language JavaScript for creating block-based visual programming languages (VPLs) and editors. A project of Google, it is free and open-source software released under the Apache License 2.0. It ...
, a client-side library for the programming language
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
for creating block-based visual programming languages (VPLs) and editors
*
Bubble
Bubble, Bubbles or The Bubble may refer to:
Common uses
* Bubble (physics), a globule of one substance in another, usually gas in a liquid
** Soap bubble
* Economic bubble, a situation where asset prices are much higher than underlying fundame ...
, for creating production-ready
web application
A web application (or web app) is application software that is accessed using a web browser. Web applications are delivered on the World Wide Web to users with an active network connection.
History
In earlier computing models like client-serve ...
s.
*
Catrobat
Catrobat is a block-based visual programming language and Open Source Software non-profit project. The first release dates back to 2010 and was initiated by Wolfgang Slany from the Technical University Graz in Austria. The multidisciplinary team ...
, block-based visual programming language for animations, apps and games
*
Flowgorithm
Flowgorithm is a graphical authoring tool which allows users to write and execute programs using flowcharts. The approach is designed to emphasize the algorithm rather than the syntax of a specific programming language. The flowchart can be conve ...
, creates executable flowcharts which can be converted to several languages.
*
Hopscotch
Hopscotch is a popular playground game in which players toss a small object, called a lagger, into numbered triangles or a pattern of rectangles outlined on the ground and then hop or jump through the spaces and retrieve the object. It is a ch ...
, an
iPad
The iPad is a brand of iOS and iPadOS-based tablet computers that are developed by Apple Inc. The iPad was conceived before the related iPhone but the iPhone was developed and released first. Speculation about the development, operating s ...
app, and visual programming language for creating touchscreen-oriented mobile applications.
*
Kodu
Kodu Game Lab, originally named ''Boku'', is a programming integrated development environment (IDE) by Microsoft's FUSE Labs. It runs on Xbox 360 and Microsoft Windows
Windows is a group of several proprietary graphical operating system fa ...
, a visual programming tool for
Logo
A logo (abbreviation of logotype; ) is a graphic mark, emblem, or symbol used to aid and promote public identification and recognition. It may be of an abstract or figurative design or include the text of the name it represents as in a wordma ...
.
*
Kojo Kojo may refer to:
* ''King Kojo'', a novel by Ruth Plumly Thompson
* KOJO (company), Australian entertainment company which supported the Adelaide Film Festival#Indigenous Feature Documentary Initiative
* KOJO (FM), a radio station (91.1 FM) lice ...
, a programming language,
IDE, and learning environment.
*
mBlock, an extension of Scratch for
Arduino
Arduino () is an open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardware products are licensed unde ...
hardware interfaces. Developed by
Makeblock.
*
Open Roberta, online programming environment from
Fraunhofer IAIS, designed for children.
*
Raptor
Raptor or RAPTOR may refer to:
Animals
The word "raptor" refers to several groups of bird-like dinosaurs which primarily capture and subdue/kill prey with their talons.
* Raptor (bird) or bird of prey, a bird that primarily hunts and feeds on v ...
, a product of the
USAF
The United States Air Force (USAF) is the air service branch of the United States Armed Forces, and is one of the eight uniformed services of the United States. Originally created on 1 August 1907, as a part of the United States Army Sign ...
, for drawing executable flowcharts.
*
Scratch, a product of
MIT
The Massachusetts Institute of Technology (MIT) is a private land-grant research university in Cambridge, Massachusetts. Established in 1861, MIT has played a key role in the development of modern technology and science, and is one of the mo ...
, designed for children in K-12 and after-school programs.
*
ScratchJr, an interpretation of Scratch designed primarily for younger audiences (5-7-year-old children).
*
Snap!
Snap! is a German Eurodance group formed in 1989 by Record producer, producers Michael Münzing and Luca Anzilotti. The act has been through a number of line-up changes over the years, including American singers, songwriters and rappers Thea A ...
, a browser-based reimplementation of
BYOB
BYOB or BYO is an initialism and acronym concerning alcohol that means "bring your own bottle" or "bring your own booze" or "bring your own beer".
BYOB is stated on an invitation to indicate that the host will not be providing alcohol and that gu ...
, and extension of
Scratch, with first class procedures and lists. Used for teaching at
UC Berkeley
The University of California, Berkeley (UC Berkeley, Berkeley, Cal, or California) is a public university, public land-grant university, land-grant research university in Berkeley, California. Established in 1868 as the University of Californi ...
.
*
Stagecast Creator
Stagecast Creator is a visual programming language intended for use in teaching programming to children. It is based on the programming by demonstration
concept, where rules are created by giving examples of what actions should take place in a giv ...
, a Java-based teaching system.
*
StarLogo
StarLogo is an agent-based simulation language developed by Mitchel Resnick, Eric Klopfer, and others at the Massachusetts Institute of Technology (MIT) Media Lab and Scheller Teacher Education Program in Massachusetts. It is an extension of the ...
, an
agent-based
An agent-based model (ABM) is a computational model for simulating the actions and interactions of autonomous agents (both individual or collective entities such as organizations or groups) in order to understand the behavior of a system and wha ...
simulation language
A computer simulation language is used to describe the operation of a simulation on a computer.Fritzson, Peter, and Vadim Engelson.Modelica—A unified object-oriented language for system modeling and simulation" European Conference on Object-Orie ...
developed by
Mitchel Resnick
Mitchel Resnick (born June 12, 1956) is Lego Papert Professor of Learning Research, Director of the Okawa Center, and Director of the Lifelong Kindergarten group at the Massachusetts Institute of Technology (MIT) Media Lab. , Resnick serves as h ...
,
Eric Klopfer
Eric Klopfer (born October 8, 1970) is a professor and Director of thScheller Teacher Education Program and the Education Arcadeat MIT. Klopfer's research explores how educational technology, games, and computer simulations can be tools for teachi ...
, and others at
MIT Media Lab
The MIT Media Lab is a research laboratory at the Massachusetts Institute of Technology, growing out of MIT's Architecture Machine Group in the School of Architecture. Its research does not restrict to fixed academic disciplines, but draws from ...
. An extension of the
Logo
A logo (abbreviation of logotype; ) is a graphic mark, emblem, or symbol used to aid and promote public identification and recognition. It may be of an abstract or figurative design or include the text of the name it represents as in a wordma ...
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
(a
dialect
The term dialect (from Latin , , from the Ancient Greek word , 'discourse', from , 'through' and , 'I speak') can refer to either of two distinctly different types of Linguistics, linguistic phenomena:
One usage refers to a variety (linguisti ...
of
Lisp
A lisp is a speech impairment in which a person misarticulates sibilants (, , , , , , , ). These misarticulations often result in unclear speech.
Types
* A frontal lisp occurs when the tongue is placed anterior to the target. Interdental lisping ...
).
*
ToonTalk
ToonTalk is a computer programming system intended to be programmed by children. The "Toon" part stands for cartoon. The system's presentation is in the form of animated characters, including robots that can be trained by example. It is one of ...
, programming system for children.
*
Visual Logic
Visual Logic is a graphical authoring tool which allows students to write and execute programs using flowcharts. It is typically used in an academic setting to teach introductory programming concepts.
See also
* Alice
* Flowgorithm
* Raptor
Ra ...
, for creating executable flowcharts.
*
VIPLE
ASU VIPLE is a Visual IoT/Robotics Programming Language Environment developed at Arizona State University.
ASU VIPLE is an educational platform designed with a focus on computational thinking, namely on learning how algorithms work without focusi ...
Visual IoT/Robotics Programming Language Environment
Multimedia
*
AudioMulch
AudioMulch is modular audio software for making music and processing sound. The software can synthesize sound and process live and pre-recorded sound in real-time.
AudioMulch has a patcher-style graphical user interface, in which modules calle ...
, an audio signal flow based sound and music creation environment
*
Bidule
Bidule is a commercial software application for the creation of interactive computer music and multimedia produced by the Canadian company Plogue Arts and Technology. It runs on both Windows and Mac computers.
Bidule uses a modular structure ...
, a modular node and patch cord environment for the creation of interactive computer music and multimedia (Windows, MacOS).
*
Blender (software)
Blender is a free and open-source 3D computer graphics software tool set used for creating animated films, visual effects, art, 3D-printed models, motion graphics, interactive 3D applications, virtual reality, and, formerly, video games. Blend ...
, the
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
3D graphics
3D computer graphics, or “3D graphics,” sometimes called CGI, 3D-CGI or three-dimensional computer graphics are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for the ...
package, includes
node graphs for building
shader
In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene - a process known as ''shading''. Shaders have evolved to perform a variety of spec ...
s,
composites and
textures,
non-destructive geometry.
*
Cameleon, graphical functional language
*
Clickteam
Clickteam is a French software development company based in Boulogne-Billancourt, Hauts-de-Seine. Founded by Francis Poulain, François Lionet and Yves Lamoureux, Clickteam is best known for the creation of Clickteam Fusion, a script-free progra ...
's The games factory/Multimedia fusion series, environments made for visually developing games
*
Dynamo
file:DynamoElectricMachinesEndViewPartlySection USP284110.png, "Dynamo Electric Machine" (end view, partly section, )
A dynamo is an electrical generator that creates direct current using a commutator (electric), commutator. Dynamos were the f ...
, a generative modeling interface for
Autodesk Revit
Autodesk Revit is a building information modelling software tool for architects, landscape architects, structural engineers, mechanical, electrical, and plumbing (MEP) engineers, designers and contractors. The original software was developed by ...
*
Filter Forge
Filter Forge is a computer graphics program for Windows and Mac that allows users to create procedural textures and modify images. It can be used as a standalone application or as a plugin for compatible 8bf hosts such as Adobe Photoshop. It h ...
Node based filter generation for image processing.
*
Houdini (software)
Houdini is a 3D animation software application developed by Toronto-based SideFX, who adapted it from the PRISMS suite of procedural generation software tools. The procedural tools are used to produce different effects such as complex reflectio ...
vfx, modeling and animation software.
*
GenerativeComponents GenerativeComponents is parametric CAD software developed by Bentley Systems, was first introduced in 2003, became increasingly used in practice (especially by the London architectural community) by early 2005, and was commercially released in Nove ...
, a parametric CAD software developed by
Bentley Systems
Bentley Systems, Incorporated is an American-based software development company that develops, manufactures, licenses, sells and supports computer software and services for the design, construction, and operation of infrastructure. The company' ...
*
Grasshopper 3d, a generative modeling interface for
Rhinoceros 3D
Rhinoceros (typically abbreviated Rhino or Rhino3D) is a commercial 3D computer graphics and computer-aided design (CAD) application software that was developed by Robert McNeel & Associates, an American, privately held, and employee-owned com ...
*
Isadora
Isidora or Isadora is a female given name of Greek origin, derived from Ἰσίδωρος, ''Isídōros'' (a compound of Ἶσις, ''Ísis'', and δῶρον, ''dōron'': "gift of he goddessIsis").
The male equivalent is Isidore.
The name surviv ...
, a