Visual programming language
A visual programming language (VPL) is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually (also known as dataflow or diagrammatic programming [1]). A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or 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[citation needed].
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 (i.e. visual paradigm). Dataflow languages also allow automatic parallelization, which is likely to become one of the greatest programming challenges of the future.[1]
Visual languages and interfaces
- A-Flow, software general-purpose rapid development tool that doesn't require writing code
- AgentSheets, easy to use game authoring and computational science authoring tool
- Alice
- Analytica
- AppWare, also known as MicroBrew, icon based programming for Mac OS and Microsoft Windows
- AudioMulch, 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
- Automator
- Aviary Peacock, browser based visual laboratory
- Baltie
- Befunge, 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
- Cisco Unified Application Designer, a visual programming environment for building Unified Communications applications, formerly known as the Metreos Visual Designer
- CODE
- DRAKON, a language designed for developing the Soviet Buran (spacecraft)
- EICASLAB, a software suite including a graphical language for supporting the design of control architectures
- Executable UML, a profile 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 a graphical integration language used in the webMethods platform
- Flow-based programming
- Flowcode, a language used by KTechlab (software), open source simulator and workbench for programming microcontrollers using flowcode
- FlowStone DSP Used for programming real time DSP and robotics applications
- Function block diagrams, used in programmable logic controllers
- FxEngine Framework - Open C++ dataflow programming for audio, video, signal, ...
- G, language based on data flow diagrams used in the LabVIEW development environment
- Game Maker, an easy to use game development software made by Mark Overmars
- Google App Inventor, a tool for creating applications for Google Android, based on OpenBlocks and Kawa
- GNU Radio Companion, a signal processing environment using visual blocks
- Illumination Software Creator, a language and IDE for visually creating desktop and mobile software
- Kodu, a software designed to program games with a 3D Interface developed by Microsoft Research
- Kwikpoint, an isotype visual translator created by Alan Stillman
- LabVIEW, a graphical language designed for engineers and scientists
- Ladder logic, a language that simulates relay logic commonly used in Programmable logic controllers
- Lava
- Lily, browser based visual programming environment
- Limnor
- Mama (software) - a programming language and IDE for building 3D animations and games
- Marten commercial visual programming environment for Mac OS/X based on Prograph CPX
- Max (software), visual programming environment for building interactive, real-time music and multimedia applications
- Microsoft Visual Programming Language, dataflow language for robotics programming that is a component of Microsoft Robotics Studio
- Mindscript - A simplistic data-flow programming language for multipurpose use
- 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
- MST Workshop, an interactive visual programming language for creating mathematical solutions, rapid prototyping, two-dimensional and three-dimensional graphic applications
- NXT-G, a visual programming language for the Lego Mindstorms NXT robotics kit
- OpenAlea.Visualea visual programming for plant modeling
- OpenBlocks an extendable framework for graphical block programming systems [2]
- OpenDX scientific data visualization using a visual programming language and data flow model
- OpenMusic, a visual programming language for music composition (based on CLOS) applications, and mobile apllications
- OpenWire - adds visual dataflow programming capabilities to Delphi via VCL components and a graphical editor (homonymous binary protocol is unrelated)
- OutSystems language, a visual modeling language to develop and change all layers of business centric web applications
- Piet is an esoteric programming language designed by David Morgan-Mar, whose programs are bitmaps that look like abstract art.
- PointDragon, a visual programming language for cloud computing offered by GraphLogic.[2]
- Prograph
- Ptolemy
- Programming Without Coding Technology (PWCT), specialist innovative technology where programmers need not write code but can visually specify every functional aspect of programs similar to flowcharts and algorithms; includes (Mahmoud programming language, RPWI environment, DoubleS [Super Server] programming paradigm); free open source; uses interaction by presenting a GUI between human and programming languages, so doing anything requires knowing procedure instead of being declarative
- PWGL, a language based on Common Lisp, CLOS and OpenGL
- Pypes, a Flow-based programming implementation by Eric Gaumer using Stackless Python
- Quartz Composer, a language for processing and rendering graphical data (Mac OS X)
- Quest3D, a 3D engine/platform for virtual reality based development (Win)
- Reaktor, a DSP and MIDI-processing language by Native Instruments
- Red-R, a cross platform Python/QT based visual programming framework for R-Project
- SCADE
- Scala Multimedia Authoring suite and complete multimedia system for AmigaOS and Windows
- Scicos A graphical language associated with the numerical analysis package ScicosLab (originally SciLab).
- Simulink
- Built on Squeak
- Etoys scripting
- Scratch, a product of MIT designed for kids in K-12 and after school programs
- Sequential function chart, a Petri-net like programming language for programmable logic controllers
- Softimage ICE
- Stagecast Creator, formerly Apple's Cocoa: Internet Authoring for Kids
- SourceBinder, a node based visual development environment for Flash 10+
- Subtext
- SynthMaker, an audio programming tool using a visual programming language
- SynthEdit, a tool similar to SynthMaker
- tarpipe, a social media platform using a visual programming language to connect different Web services together
- Tersus, an open source platform for the development of rich web applications by visually defining user interface, client side behavior and server side processing
- TestShell, a graphical test automation environment
- ThingLab
- ToonTalk, programming system for children
- VEE
- VisSim, modeling and simulation language, allows making mathematical models quickly and executing them in real-time
- Virtools, a middleware used to create interactive 3D experiences
- VISION/HPC Python-based, drag-and-drop visual-programming environment for programming HPCs
- WireFusion, visual programming environment for creating interactive 3D web presentations
- Vsxu, music visual / real time 3D graphics generation (Windows, GNU/Linux, Mac Os X)
- vvvv, real time video synthesis
- XEE, 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 and the languages it encompasses (Visual Basic, Visual C#, Visual J#, 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
- Cognitive dimensions of notations - Notation assessment for visual and non-visual languages
- Dataflow programming
- Deutsch Limit
- Domain-Specific Modeling
- Flow-based programming
- Flowchart
- Unified Modeling Language
- Visual language
- Widget Workshop
External links
This article was originally based on material from the Free On-line Dictionary of Computing, used with permission. Update as needed.
Notes and references
- ^ Johnston, W.M. (2004). "Advances in dataflow programming languages" (PDF). ACM Computing Surveys. 36 (1): 1–34. doi:10.1145/1013208.1013209. Retrieved 2007-03-31.
{{cite journal}}
: Cite has empty unknown parameter:|month=
(help); Unknown parameter|coauthors=
ignored (|author=
suggested) (help) - ^ Steven Allen Gold, David Marvin Baker, Vladimir Gusev, Hongping Liang. Object process graph system, US Patent number 7316001, Filing date: May 20, 2005, Issue date: Jan 1uary, 2008.