Home      Discussion      Topics      Dictionary      Almanac
Signup       Login
Visual programming language

Visual programming language

Overview
A visual programming language (VPL) is any programming language
Programming language
A programming language is an artificial language designed to express computations that can be performed by a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine, to express algorithms precisely, or as a mode of human...

 that lets users create programs
Computer program
Computer programs are instructions for a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute the instructions...

 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
Syntax
In linguistics, syntax is the study of the principles and rules for constructing sentences in natural languages...

 or secondary notation
Secondary notation
Secondary notation is defined as "visual cues which are not part of formal notation". Properties like position, indentation, color, symmetry, when used to convey information, are secondary notation....

. 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 may be further classified, according to the type and extent of visual expression used, into icon-based languages, form-based languages, and diagram languages.
Discussion
Ask a question about 'Visual programming language'
Start a new discussion about 'Visual programming language'
Answer questions from other users
Full Discussion Forum
 
Encyclopedia
A visual programming language (VPL) is any programming language
Programming language
A programming language is an artificial language designed to express computations that can be performed by a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine, to express algorithms precisely, or as a mode of human...

 that lets users create programs
Computer program
Computer programs are instructions for a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute the instructions...

 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
Syntax
In linguistics, syntax is the study of the principles and rules for constructing sentences in natural languages...

 or secondary notation
Secondary notation
Secondary notation is defined as "visual cues which are not part of formal notation". Properties like position, indentation, color, symmetry, when used to convey information, are secondary notation....

. 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 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.

A visually transformed language is a non-visual language with a superimposed visual representation. Naturally visual languages have an inherent visual expression for which there is no obvious textual equivalent.

Current developments try to integrate the visual programming approach with dataflow programming languages to either have immediate access to the program state
Program state
One of the key concepts in computer programming is the idea of state, essentially a snapshot of the measure of various conditions in the system. Most programming languages require a considerable amount of state information in order to operate properly - information which is generally hidden from...

 resulting in online debugging or automatic program generation and documentation (i.e. visual paradigm). Dataflow languages also allow automatic parallelization
Automatic parallelization
Automatic parallelization, also auto parallelization, autoparallelization, or parallelization, the last one of which implies automation when used in context, refers to converting sequential code into multi-threaded or vectorized code in order to utilize multiple processors simultaneously in a...

, which is likely to become one of the greatest programming challenges of the future.

Visual languages


  • AgentSheets
    AgentSheets
    AgentSheets is an educational Cyberlearning tool to create Web-based simulation games. AgentSheets is used worldwide to teach students programming and related information technology skills through game design...

    , easy to use game authoring and computational science authoring tool
  • Alice
    Alice (software)
    Alice is a free and open source object-oriented educational programming language with an integrated development environment . It is implemented in Java. Alice uses a drag and drop environment to create computer animations using 3D models. The software is developed by researchers at Carnegie...

  • Analytica
    Analytica
    Analytica is a visual software package developed by for creating, analyzing and communicating quantitative decision models. Analytica includes hierarchical influence diagrams for visual creation and view of models, intelligent arrays for management of multidimensional data, Monte Carlo...

  • AppWare
    AppWare
    AppWare was a rapid application development system for Microsoft Windows and the Mac OS based on a simple graphical programming language. The product was originally known as Serius Developer before Novell purchased it in 1993 during Ray Noorda's period of intense empire building...

    , also known as MicroBrew, icon based programming for Mac OS
    Mac OS
    Mac OS is the trademarked name for a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems. The Macintosh user experience is credited with popularizing the graphical user interface...

     and Microsoft Windows
    Microsoft Windows
    Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces...

  • AudioMulch
    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....

    , an audio signal flow based sound and music creation environment
  • Automate, a workflow building tool with writing any line of code by hand.
  • Macromedia Authorware
    Macromedia Authorware
    Macromedia Authorware was an interpreted, flowchart based, graphical programming language. Authorware is used for creating interactive programs that can integrate a range of multimedia content, particularly e-learning applications...

  • Automator
    Automator (software)
    Automator is an application developed by Apple for Mac OS X that implements point-and-click creation of workflows for automating repetitive tasks. Automator enables the repetition of tasks across a wide variety of programs, including the Finder, the Safari web browser, iCal, Address Book and others...

  • Aviary Peacock
    Aviary (application suite)
    Aviary is a suite of non-free web-based multi-media applications currently in development from Worth1000, using the Adobe Flex platform. The individual tool names are bird-themed, hence the suite name. The scope of proposed tools has drawn comparisons to the Zoho Office Suite...

    , browser based visual laboratory
  • Baltie
    Baltie
    Baltie is a proprietary educational computer programming language used as a learning aid for beginning programmers. Most commonly used to teach younger students with little or no experience in programming...

  • Befunge
    Befunge
    Befunge is a stack-based, reflective, esoteric programming language. It differs from conventional languages in that programs are arranged on a two-dimensional grid...

    , an esoteric text-based programming language in which commands are laid out graphically in a text file.
  • BT Rules, a web-based graphical programming tool with specialised tilesets to define behaviours for different devices.
  • CODE
    CODE programming language
    CODE is a visual programming language and system for parallel programming, letting users compose sequential programs into parallel ones. The parallel program is a directed graph, where data flows on arcs linking the nodes representing the sequential programs...

  • DRAKON
    DRAKON
    DRAKON is an algorithmic visual programming language developed for the Buran space project. Its development, started in 1986, was directed by Vladimir Parondzhanov...

    , a language designed for developing the Soviet Buran (spacecraft)
  • EICASLAB
    EICASLAB
    EICASLAB is a laboratory for automatic control design and time-series forecasting developed as final output of the European ACODUASIS Project IPS-2001-42068 funded by the European Community, which - during its lifetime - aimed at delivering in the robotic field the scientific breakthrough...

    , a software suite including a graphical language for supporting the design of control architectures
  • Executable UML
    Executable UML
    Executable UML, often abbreviated to xtUML or xUML , is the evolution of the Shlaer-Mellor method to UML. Executable UML graphically specifies a system using a profile of the UML. The models are testable, and can be compiled into a less abstract programming language to target a specific...

    , a profile
    Profile (UML)
    A profile in the Unified Modeling Language provides a generic extension mechanism for customizing UML models for particular domains and platforms...

     of the Universal Modeling Language specification defining an executable semantics for a subset of UML.
  • eXpecco, a graphical flow based language and IDE for test automation
  • Flow
    WebMethods Flow
    webMethods Flow is a graphical programming language that runs within the webMethods Integration Server...

  • Flow-based programming
    Flow-based programming
    In computer science, flow-based programming is a programming paradigm that defines applications as networks of "black box" processes, which exchange data across predefined connections by message passing. These black box processes can be reconnected endlessly to form different applications without...

  • FxEngine Framework - Open C++ dataflow programming for audio, video, signal, ...
  • G, the language based on Data flow diagrams
    Data flow diagram
    A data-flow diagram is a graphical representation of the "flow" of data through an information system. DFDs can also be used for the visualization of data processing ....

     used in the LabVIEW
    LabVIEW
    LabVIEW is a platform and development environment for a visual programming language from National Instruments.The graphical language is named "G"...

     development environment.
  • Kwikpoint
    Kwikpoint
    - Introduction :Kwikpoint is an Alexandria, Virginia based company that develops visual language translators for the Military and public service communities, as well as for corporate and leisure travelers...

    , an isotype visual translator created by Alan Stillman
  • LabVIEW
    LabVIEW
    LabVIEW is a platform and development environment for a visual programming language from National Instruments.The graphical language is named "G"...

    , a graphical language designed for engineers and scientists.
  • Ladder logic
    Ladder logic
    Ladder logic is a programming language that represents a program by a graphical diagram based on the circuit diagrams of relay-based logic hardware. It is primarily used to develop software for Programmable Logic Controllers used in industrial control applications...

    , a language that simulates relay logic commonly used in Programmable logic controllers
  • Flowcode, a language used by KTechlab (software) A Opensource simulator and workbench for the programming of microcontrollers using flowcode
  • Function block diagram
    Function block diagram
    A function block diagram is a diagram, that describes a function between input variables and output variables. A function is described as a set of elementary blocks. Input and output variables are connected to blocks by connection lines...

    s, used in Programmable logic controllers.
  • Lava
  • Lily
    Lily (software)
    Lily is an Open Source, browser-based visual programming language similar to Max, Pure Data or VVVV that lets users create programs graphically by drawing connections between animation, data, images, sounds, text and graphics. Lily programs can be shared with other Lily users as JSON files, saved...

    , browser based visual programming environment
  • Limnor
    Limnor
    Limnor is a generic codeless and visual programming system. The aim is to enable users to create computer software without directly coding in a programming language. It can be extended by software developers.- Design :...

  • Max (software)
    Max (software)
    Max is a visual programming language for music and multimedia developed and maintained by San Francisco-based software company Cycling '74. During its 15-year history, it has been primarily used by composers, performers, software designers, researchers and artists for creating interactive...

    , visual programming environment for building interactive, real-time music and multimedia applications
    • Max/MSP
    • Pure Data
      Pure Data
      Pure Data is a graphical programming language developed by Miller Puckette in the 1990s for the creation of interactive computer music and multimedia works. Though Puckette is the primary author of the software, Pd is an open source project and has a large developer base working on new extensions...

    • jMax
      JMax
      jMax was a highly-modular visual programming environment for interactive real-time music. It was developed by the real-time team at IRCAM. It was quite similar to PureData and Max...

    • nato.0+55+3d
      NATO.0+55+3d
      nato.0+55+3d is a set of modular video processing and QuickTime control objects, authored by the Netochka Nezvanova collective...

  • Microsoft Visual Programming Language
    Microsoft Visual Programming Language
    Microsoft Visual Programming Language, or MVPL, is a visual programming and dataflow programming language developed by Microsoft for the Microsoft Robotics Studio. The Microsoft Visual Programming Language is distinguished from other Microsoft programming languages such as Visual Basic and C#, as...

    , dataflow language for Robotics
    Robotics
    Robotics is the engineering science and technology of robots, and their design, manufacture, and application. Robotics is related to electronics, mechanics, and software. The word robot was introduced to the public by Czech writer Karel Čapek in his play R.U.R. , published in 1920...

     programming that is a component of Microsoft Robotics Studio
    Microsoft Robotics Studio
    The Microsoft Robotics Developer Studio is a Windows-based environment for robot control and simulation. It is aimed at academic, hobbyist, and commercial developers and handles a wide variety of robot hardware....

  • Mindscript - A simplistic data-flow programming language for multipurpose use
  • MST Workshop
    MST Workshop
    The MST Workshop is an interactive computer programming language. It has hundreds of objects that can be dragged on to the workspace and connected by wires or snapping them together. The workspace immediately solves the equations created and displays the results...

    , an interactive visual programming language for creating mathematical solutions, rapid prototyping, two-dimensional and three-dimensional graphic applications
  • OpenDX
    OpenDX
    OpenDX stands for Open Data Explorer and is IBM's scientific data visualization software. It can handle complex domains along with measured or computed data...

     scientific data visualization using a visual programming language and data flow model
  • OpenMusic
    OpenMusic
    OpenMusic is an object-oriented visual programming environment for musical composition based on Common Lisp.It may also be used as an all-purpose visual interface to Lisp programming.-History:...

    , a visual programming language for music composition (based on CLOS
    CLOS
    The Common Lisp Object System is the facility for object-oriented programming which is part of ANSI Common Lisp. CLOS is a dynamic object system which differs radically from the OOP facilities found in more static languages such as C++ or Java. CLOS was inspired by earlier Lisp object systems such...

    ) applications, and mobile apllications
  • OutSystems language
    OutSystems
    OutSystems is a multinational software company operating in the agile software development market. The company’s mission is to provide technology that speeds up and reduces the costs of the delivery and management of web business applications using agile methodologies.OutSystems' flagship product...

    , a visual programming language web-based and for process centric business applications
  • PointDragon
    PointDragon
    PointDragon is a commercially available general-purpose, web-based, code-less visual programming environment for the development of database-backed web-based enterprise-wide systems...

    , a visual programming language for cloud computing offered by GraphLogic
    GraphLogic
    GraphLogic, Inc., is an American software company founded in 2003, which specializes in Platform as a Service products used in a utility computing or cloud computing models. It is headquartered in Branford, Connecticut....

    .
  • Prograph
    Prograph
    Prograph is a visual, object-oriented, dataflow, multiparadigm programming language that uses iconic symbols to represent actions to be taken on data. Commercial Prograph software development environments such as Prograph Classic and Prograph CPX were available for the Apple Macintosh and Windows...

  • Ptolemy
    Ptolemy Project (computing)
    The Ptolemy project is an ongoing project aimed at modeling, simulating, and designing concurrent, real-time, embedded systems. The focus of the Ptolemy project is on assembling concurrent components. The principal product of the project is the Ptolemy II model based design and simulation tool...

  • Pypes, a Flow-based programming
    Flow-based programming
    In computer science, flow-based programming is a programming paradigm that defines applications as networks of "black box" processes, which exchange data across predefined connections by message passing. These black box processes can be reconnected endlessly to form different applications without...

     implementation by Eric Gaumer using Stackless Python
    Stackless Python
    Stackless Python, or Stackless, is a Python programming language interpreter, so named because it avoids depending on the C call stack for its own stack. The most prominent feature of Stackless is microthreads, which avoid much of the overhead associated with usual operating system threads...

  • Quartz Composer
    Quartz Composer
    Quartz Composer is a node-based visual programming language provided as part of the Xcode development environment in Mac OS X for processing and rendering graphical data....

    , a language for processing and rendering graphical data (MaxOS X)
  • Quest3D
    Quest3D
    Quest3D is a 3D engine and development platform that is generally used for architecture, product and design visuals, computer games, training software, and simulations. Data from 3D animation and CAD packages such as Maya, 3D Studio Max, Softimage and AutoCAD can be imported into Quest3D and used...

    , a 3D engine/platform for virtual reality based development (Win)
  • Reaktor
    Reaktor
    Reaktor is a graphical modular software music studio of proprietary license developed by Native Instruments. It lets musicians and engineers design and build their own instruments, samplers, effects and sound design tools. It is supplied with many ready-to-use instruments and effects, from...

    , a DSP and MIDI-processing language by Native Instruments
    Native Instruments
    Native Instruments is a software instrument company that develops musical hardware and software for professional musicians, producers, DJs, and sound designers...

  • SCADE
    SCADE
    SCADE is a development environment used by system and software engineers to produce mission and safety-critical applications. SCADE, a commercial product from Esterel Technologies that is based upon the formal, synchronous and data-flow oriented Lustre programming language, generates production...

  • Scala Multimedia Authoring suite and complete multimedia system for AmigaOS and Windows
  • Simulink
    Simulink
    Simulink, developed by The MathWorks, is a commercial tool for modeling, simulating and analyzing multidomain dynamic systems. Its primary interface is a graphical block diagramming tool and a customizable set of block libraries. It offers tight integration with the rest of the MATLAB environment...

  • Built on Squeak
    Squeak
    The Squeak programming language is a Smalltalk implementation, derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers. Its development was continued by the same group at Walt Disney Imagineering, where it was intended for use in...

    • Etoys
      EToys (Programming Language)
      Etoys is a child-friendly computer environment and object-oriented prototype-based programming language for use in education.-Motives, influences:...

       scripting
    • Scratch
  • Sequential function chart
    Sequential function chart
    Sequential function chart is a graphical programming language used for PLCs. It is one of the five languages defined by IEC 61131-3 standard...

    , a Petri-net like programming language for Programmable logic controllers
  • Stagecast Creator
    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 given situation...

    , formerly Apple's
    Apple Computer
    Apple Inc. is an American multinational corporation that designs and manufactures consumer electronics and computer software products. The company's best-known hardware products include Macintosh computers, the iPod and the iPhone...

     Cocoa
  • SourceBinder, a node based visual development environment for Flash 10+
  • Subtext
    Subtext programming language
    Subtext is a moderately visual programming language and environment, for writing application software. It is an experimental, research attempt to develop a new programming model, called Example Centric Programming, by treating copied blocks as first class prototypes, for program structure...

  • SynthMaker
    SynthMaker
    SynthMaker is an audio programming tool developed by OutSim mainly focused on developing VST plug-ins in a purely visual editing fashion. It has the ability of generating stand-alone applications and VST plug-ins that can be used in any VST Host....

    , an audio programming tool using a visual programming language
  • SynthEdit
    SynthEdit
    SynthEdit is a shareware Windows application which uses a modular VPL to create music synthesizers and effects units. These can then be compiled as VST plug-ins for use in audio applications....

    , a tool similar to SynthMaker
  • Tersus
    Tersus
    Tersus Visual Programming Platform is a general purpose software development platform that enables the development of applications, mainly rich web applications, by drawing flow diagrams instead of writing code....

  • TestShell, a graphical test automation environment
  • ThingLab
    ThingLab
    ThingLab is a visual programming environment implemented in Smalltalk and designed at Xerox PARC by Alan Borning.-External links:*[ftp://st.cs.uiuc.edu/Smalltalk/Squeak/goodies/ThingLab/ ThingLab Sources]** ThingLab entry from the...

  • ToonTalk
    ToonTalk computer programming language
    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....

  • VEE
    Agilent VEE
    VEE is a visual programming and dataflow programming language and development environment from Agilent Technologies. It is optimized to use with data acquisition devices like digital voltmeters and oscilloscopes, and source devices like arbitrary waveform generators and power supplies...

  • VisSim
    VisSim
    VisSim is a visual block diagram language for simulation of dynamical systems and Model-based embedded system development. It is developed by Visual Solutions of Westford, Massachusetts....

  • virtools
    Virtools
    Virtools is a software developer and vendor, created in 1993 and owned by Dassault Systèmes since July 2005.-Offerings:Virtools was a company founded 1993. They offered a development environment to create 3D real-time applications and related services, targeted at system integrators, game studios...

  • VISION/HPC Python-based, drag-and-drop visual-programming environment for programming HPC
    High-performance computing
    High-performance computing uses supercomputers and computer clusters to solve advanced computation problems. Today, computer systems approaching the teraflops-region are counted as HPC-computers.-Overview:...

    s
  • WireFusion
    WireFusion
    Demicron WireFusion an authoring tool for creating interactive Web3D presentations. A typical work flow consists of loading a 3D model, configuring/optimizing the 3D model and lastly adding widgets and logic to the presentation. The 3D model is created in a 3D modeling program, like 3DS Max, Maya...

    , a visual programming environment for creating interactive 3D web presentations.
  • Vsxu
    Vsxu
    VSXu is an OpenGL-based , modular programming environment with its main purpose to visualize music and create 3D effects in real-time. Available for Windows, GNU/Linux and Mac OS X. It is currently released as free software under terms of the GNU General Public License v2 and maintained by...

    , music visual / real time 3D graphics generation (Windows, GNU/Linux, Mac Os X)
  • vvvv
    Vvvv
    vvvv is general purpose toolkit with a special focus on real time video synthesis and programming large media environments with physical interfaces, real-time motion graphics, audio and video...

    , real time video synthesis
  • XEE
    XEE (Starlight)
    XEE is a visual language for data processing and ETL tasks. It is designed for the Starlight Information Visualization System as a method for producing and processing XML data....

    , a visual data processing language for ETL tasks
  • X-Gen, a visual financial enterprise application integration for financial messaging and workflow (www.swissrisk.com)


Note: Microsoft Visual Studio
Microsoft Visual Studio
Microsoft Visual Studio is an Integrated Development Environment from Microsoft. It can be used to develop console and graphical user interface applications along with Windows Forms applications, web sites, web applications, and web services in both native code together with managed code for all...

 and the languages it encompasses (Visual Basic
Visual Basic .NET
Visual Basic .NET is an object-oriented computer programming language that can be viewed as an evolution of Microsoft's Visual Basic which is implemented on the Microsoft .NET Framework.-Versions of Visual Basic .NET:...

, Visual C#, Visual J#
J Sharp
The J# programming language is a transitional language for programmers of Sun's Java and Microsoft's Visual J++ languages, so they may use their existing knowledge and applications on Microsoft's .NET platform...

, etc.) are commonly confused to be but are not visual programming languages. All of these languages are textual and not graphical. MS Visual Studio is a visual programming environment, but not a visual programming language hence the confusion.

See also

  • Dataflow programming
  • Domain-Specific Modeling
    Domain-Specific Modeling
    Domain-specific modeling is a software engineering methodology for designing and developing systems, such as computer software. It involves systematic use of a graphical domain-specific language to represent the various facets of a system...

  • Flowchart
    Flowchart
    A flowchart is a common type of diagram, that represents an algorithm or process, showing the steps as boxes of various kinds, and their order by connecting these with arrows...

  • Flow-based programming
    Flow-based programming
    In computer science, flow-based programming is a programming paradigm that defines applications as networks of "black box" processes, which exchange data across predefined connections by message passing. These black box processes can be reconnected endlessly to form different applications without...

  • Unified Modeling Language
    Unified Modeling Language
    Unified Modeling Language is a standardized general-purpose modeling language in the field of software engineering. The standard is managed, and was created by, the Object Management Group....

  • Deutsch Limit
    Deutsch Limit
    The Deutsch Limit is an adage about visual programming languages originated by Peter Deutsch that states:The term was made up by Fred Lakin, after Peter Deutsch made the following comment at a talk on visual programming by Scott Kim and Warren Robinett: "Well, this is all fine and well, but the...

  • Widget Workshop
    Widget Workshop
    Widget Workshop: A Mad Scientist's Laboratory is a hands-on science kit, for use on the computer and off. It was released in 1995 and is one of the more obscure Maxis products....


External links


This article was originally based on material from the Free On-line Dictionary of Computing
Free On-line Dictionary of Computing
The Free On-line Dictionary of Computing is an online, searchable, encyclopedic dictionary of computing subjects. It was founded in 1985 by Denis Howe and is hosted by Imperial College London...

, used with permission. Update as needed.