Visual programming language
In computing, 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. 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 (known as dataflow or diagrammatic programming)[1] 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.[2]
An instructive counterexample for visual programming languages is the Microsoft Visual Studio. 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.
Contents |
[edit] Visual language and interfaces
- 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
- Macromedia Authorware
- Automator
- Aviary Peacock, browser based visual laboratory
- Befunge, an esoteric text-based programming language in which commands are laid out graphically in a text file
- Blockly, a web-based, graphical programming language by Google, similar to Scratch
- Blocky, a Common Lisp-based graphical programming language by David T. O'Toole
- BYOB, an extension of Scratch which is used for teaching by UC Berkeley
- CODE
- CiMPLE, Visual Programming Language by ThinkLABs for teaching robotics
- Clickteam's The games factory/Multimedia fusion series, environments made for visually developing games, pretty much like Game Maker
- DRAKON, a language designed for developing the Soviet Buran spacecraft
- Dynamo: Visual Programming for Revit, a graphical environment for exploring parametric functionality on top of that already offered by Revit, created by Ian Keough
- 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
- Flow a graphical integration language used in the webMethods platform
- Flow-based programming
- Function block diagrams, used in programmable logic controllers
- Game Develop, tool pretty much like MMF/TGF/Construct that works on Linux and Windows made by Compil Games
- 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
- Grasshopper 3d, a generative modeling interface for Rhinoceros 3D
- Helix and Double Helix, a pioneering database management system for the Apple Macintosh platform, created in 1983
- 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
- Max (software), visual programming environment for building interactive, real-time music and multimedia applications
- Meemoo web-based modular data flow framework for "hackable web apps" meemoo.org
- Microsoft Visual Programming Language, dataflow language for robotics programming that is a component of Microsoft Robotics Studio
- MobileNation a web based platform for creating mobile applications through the use of an event-driven wiring approach.
- 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
- Nuke, a python based visual programming language for visual effects compositing by The Foundry
- NXT-G, a visual programming language for the Lego Mindstorms NXT robotics kit
- OpenDX scientific data visualization using a visual programming language and data flow model
- OpenMusic, a visual programming language for music composition (based on Common Lisp Object System (CLOS)) applications, and mobile applications
- OpenWire - adds visual dataflow programming abilities to Delphi via Visual Component Library (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.
- Plumeria Smart Charts an object oriented flow chart language that creates 2D and 3D applications for iOS and Mac OS X by Solar Fusion Software
- Prograph
- Ptolemy
- Quartz Composer, a language for processing and rendering graphical data (Mac OS X)
- Reaktor, a DSP and MIDI-processing language by Native Instruments
- 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).
- Scratch, a product of MIT designed for kids in K-12 and after school programs
- Simulink
- Built on Squeak
- Etoys scripting
- Sequential function chart, a Petri-net like programming language for programmable logic controllers
- Softimage ICE, a node-based system that is used to create and modify 3D models, simulate particles and perform various other tasks
- Snap!, a web-based, graphical programming language currently in development by UC Berkeley
- Stagecast Creator, formerly Apple's Cocoa: Internet Authoring for Kids
- StarLogo, an agent-based simulation language developed by Mitchel Resnick, Eric Klopfer, and others at MIT Media Lab. It is an extension of the Logo programming language, a dialect of Lisp.
- Stencyl, a video game creation tool
- StrategyTune, visual programming interface for creating expert advisors for MetaTrader 4
- Subtext
- SynthEdit, a Synthesizer construction tool using a VPL.
- Tersus, an open source platform for the development of rich web applications by visually defining user interface, client side behavior and server side processing
- 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
- WebML, is a visual language for designing complex data-intensive Web applications that can be automatically generated
- 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
- Waterbear, toolkit for creating drag-and-drop programming languages
- XEE, a visual data processing language for ETL tasks
[edit] See also
- Argument map
- Cognitive dimensions of notations - Notation assessment for visual and non-visual languages
- Concept map
- Dataflow programming
- Deutsch limit, an adage about the information density of language primitives in a visual notation
- Domain-specific modeling
- Flow-based programming
- Flowchart
- Graph drawing
- Unified Modeling Language
- Visual language
- Visual thinking
- Widget Workshop
[edit] References
- ^ Diagrammatic-graphical programming languages and DoD-STD-2167A from the IEEE
- ^ Johnston, W.M.; Hanna, J.R.P. and Millar, R.J. (2004). "Advances in dataflow programming languages" (PDF). ACM Computing Surveys 36 (1): 1–34. doi:10.1145/1013208.1013209. http://www.cs.wayne.edu/~artem/main/swfseminar/dataflow_language_survey.pdf. Retrieved 2011-02-16.
This article was originally based on material from the Free On-line Dictionary of Computing, used with permission. Update as needed.