Visual programming language
   HOME

TheInfoList



OR:

In
computing Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, hardware and softw ...
, a visual programming language (visual programming system, VPL, or, VPS), also known as diagrammatic programming, graphical programming or block coding, is a
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
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 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 (constituenc ...
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 platform A low-code development platform (LCDP) provides a development environment used to create application software, generally through a graphical user interface (as opposed to only writing code, though some coding is possible and may be required). A l ...
s.


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 is a Block-based programming language, block-based programming language designed for children. AgentSheets uses Drag and drop, drag-and-drop mechanisms with commands such as conditions and actions as editable blocks that could be comp ...
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 simula ...
users can set games or simulations into a particular state in order to see how program would react. With the Thymio 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. As of 2005, 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 parallelization, also auto parallelization, or autoparallelization refers to converting sequential code into multi-threaded and/or vectorized code in order to use multiple processors simultaneously in a shared-memory multiprocessor ( S ...
, 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), the current version of Visual Basic launched in 2002 which runs on .NET * Visual Basic (classic), the original Visual Basic suppo ...
, Visual C#, Visual J# etc. languages of the
Microsoft Visual Studio Visual Studio is an integrated development environment (IDE) developed by Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms ...
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 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 and sometimes also have graphical tools to illustrate (but not define) control flow and data dependencies.
Parser Parsing, syntax analysis, or syntactic analysis is a process of analyzing a string of symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal grammar by breaking it into parts. The term '' ...
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 (discrete mathematics), graph out of an original graph algorithmically. It has numerous applications, ranging from software engineering (s ...
s.


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 : Popularized by platforms like Scratch and Blockly, used in educational settings and for introductory programming. ;
Flowcharts A flowchart is a type of diagram that represents a workflow or process. A flowchart can also be defined as a diagrammatic representation of an algorithm, a step-by-step approach to solving a task. The flowchart shows the steps as boxes of va ...
: Widely used in software engineering and systems design for representing algorithms and processes. ;Drag-and-drop interfaces :Commonly used in GUI design tools and development environments for creating user interfaces. ; Node graphs : Frequently used in visual programming languages, game development, and dataflow systems. ;
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 ...
: Popular in parallel computing, signal processing, and visual programming environments. ;Iconic programming : Used in various contexts for simplifying programming tasks, often associated with mobile app development. ;
State machines State most commonly refers to: * State (polity), a centralized political organization that regulates law and society within a territory **Sovereign state, a sovereign polity in international law, commonly referred to as a country **Nation state, a ...
: Widely employed in game development, control systems, and modeling reactive systems. ;Sheet-based programming : Found in spreadsheet applications and certain educational programming environments. ;Timeline-based programming : Common in multimedia and animation software for sequencing events over time. ;Spatial programming : Applied in certain interactive and 3D modeling environments. ;Form-based programming : Used in applications where user input and graphical interfaces play a significant role, such as data entry applications.


General-purpose visual languages

Most of the VPLs are designed for
education Education is the transmission of knowledge and skills and the development of character traits. Formal education occurs within a structured institutional framework, such as public schools, following a curriculum. Non-formal education als ...
or
domain-specific Domain specificity is a theoretical position in cognitive science (especially modern cognitive development) that argues that many aspects of cognition are supported by specialized, presumably evolutionarily specified, learning devices. The posit ...
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 Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications. The history of software is closely tied to the development of digital comput ...
project instead of using textual programming languages (like C, C++,
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
, etc.). For example, research projects such as Envision and PWCT 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 In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
and
Virtual Machine In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
have been developed and maintained using visual programming for many years. This approach increased the abstraction level, thereby hiding unnecessary details. This increased level of abstraction enables developers to concentrate on the program's overall structure and functionality instead of being entangled in the details of code syntax.


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 simula ...
, 3D and 2D game design and simulation design computational thinking tools. *
AgentSheets AgentSheets is a Block-based programming language, block-based programming language designed for children. AgentSheets uses Drag and drop, drag-and-drop mechanisms with commands such as conditions and actions as editable blocks that could be comp ...
, 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, a tool for creating Android 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. I ...
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. I ...
, a client-side library for the programming language
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
for creating block-based visual programming languages (VPLs) and editors. Blockly is known for its use on Scratch. * Catrobat, block-based visual programming language for animations, apps and games * Etoys, developed under the direction of
Alan Kay Alan Curtis Kay (born May 17, 1940) published by the Association for Computing Machinery 2012 is an American computer scientist who pioneered work on object-oriented programming and windowing graphical user interface (GUI) design. At Xerox ...
at Disney to support constructionist learning, influenced by
Seymour Papert Seymour Aubrey Papert (; 29 February 1928 – 31 July 2016) was a South African-born American mathematician, computer scientist, and educator, who spent most of his career teaching and researching at MIT. He was one of the pioneers of artif ...
and the Logo programming language * Flowcode, a visual programming tool for embedded microcontrollers and Windows. * Flowgorithm, creates executable flowcharts which can be converted to several languages. *
Greenfoot Greenfoot is an integrated development environment using Java (programming language), Java or Stride designed primarily for educational purposes at the Secondary school, high school and Undergraduate education, undergraduate level. It allows easy ...
, an IDE for Java or Stride primarily designed for educational purposes, as well as for GUI and game development *
Hopscotch Hopscotch is a 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 children's ...
, an
iPad The iPad is a brand of tablet computers developed and marketed by Apple Inc., Apple that run the company's mobile operating systems iOS and later iPadOS. The IPad (1st generation), first-generation iPad was introduced on January 27, 2010. ...
app, and visual programming language for creating touchscreen-oriented mobile applications. * Kodu, 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 that it represents, as in ...
. * Kojo, a programming language, IDE, and learning environment. * mBlock, an extension of Scratch for
Arduino Arduino () is an Italian open-source hardware and open-source software, software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardwar ...
hardware interfaces. Developed by Makeblock. * Open Roberta, online programming environment from Fraunhofer IAIS, designed for children. * Pencil Code, a visual programming language centered on drawing with a pencil * Raptor, a product of the
USAF The United States Air Force (USAF) is the Air force, air service branch of the United States Department of Defense. It is one of the six United States Armed Forces and one of the eight uniformed services of the United States. Tracing its ori ...
, for drawing executable flowcharts. * Scratch, a product of
MIT The Massachusetts Institute of Technology (MIT) is a private research university in Cambridge, Massachusetts, United States. Established in 1861, MIT has played a significant role in the development of many areas of modern technology and sc ...
, 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 producers Michael Münzing and Luca Anzilotti. The act has undergone several lineup changes over the years, featuring American singers, songwriters, and rappers such as Thea Austin, Turbo ...
, a browser-based reimplementation of BYOB, 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 land-grant research university in Berkeley, California, United States. Founded in 1868 and named after the Anglo-Irish philosopher George Berkele ...
. * Stagecast Creator, 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 ...
, an agent-based simulation language developed by
Mitchel Resnick Mitchel Resnick (born June 12, 1956) is an American computer scientist. He is the LEGO Papert Professor of Learning Research at the Massachusetts Institute of Technology (MIT) Media Lab, and is the founder of Scratch. , Resnick serves as head ...
, Eric Klopfer, 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 MIT School of Architecture and Planning, School of Architecture. Its research does not restrict to fi ...
. 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 that it represents, as in ...
programming language (a
dialect A dialect is a Variety (linguistics), variety of language spoken by a particular group of people. This may include dominant and standard language, standardized varieties as well as Vernacular language, vernacular, unwritten, or non-standardize ...
of
Lisp Lisp (historically LISP, an abbreviation of "list processing") is a family of programming languages with a long history and a distinctive, fully parenthesized Polish notation#Explanation, prefix notation. Originally specified in the late 1950s, ...
). * ToonTalk, programming system for children. * Visual Logic, for creating executable flowcharts. * VIPLE Visual IoT/Robotics Programming Language Environment


Multimedia

* AudioMulch, an audio signal flow based sound and music creation environment 2/regan-bidule.html *
Blender A blender (sometimes called a mixer (from Latin ''mixus, the PPP of miscere eng. to Mix)'' or liquidiser in British English) is a kitchen and laboratory appliance used to mix, crush, purée or emulsify food and other substances. A stationary ...
, the open source
3D graphics 3D computer 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 purposes of perfor ...
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 s ...
s, composites textures, and non-destructive geometry. * Cameleon, graphical functional language * Clickteam's The games factory/Multimedia fusion series, environments made for visually developing games *
Dynamo "Dynamo Electric Machine" (end view, partly section, ) A dynamo is an electrical generator that creates direct current using a commutator. Dynamos employed electromagnets for self-starting by using residual magnetic field left in the iron cores ...
, a generative modeling interface for
Autodesk Revit Autodesk Revit is a building information modeling software for architects, structural engineers, mechanical, electrical, and plumbing (MEP) engineers, and contractors. The original software was developed by Charles River Software, founded in 1 ...
*
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, Affin ...
, a 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 reflec ...
, a visual effects, modeling, and animation software *
GenerativeComponents GenerativeComponents is parametric Computer-aided design, 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 commer ...
, 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 Grasshopper is a visual programming language and environment that runs within the Rhinoceros 3D computer-aided design (CAD) application. The program was created by David Rutten, at Robert McNeel & Associates. Programs are created by dragging comp ...
, 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 TLM, Inc, dba Robert McNeel & Associates, an American, privately held, and employ ...
* Isadora, a
proprietary {{Short pages monitor