Jump to content

Visual programming language: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Undid revision 988598874 by 2601:703:200:990:D884:9AF8:9556:5EF (talk) smaller size while usual and understandable is not an improvement in this case, can barely be seen
Tags: Reverted Visual edit
Line 150: Line 150:
* [[CiMPLE]], Visual Programming Language by ThinkLABs for teaching robotics
* [[CiMPLE]], Visual Programming Language by ThinkLABs for teaching robotics
* [[webMethods Flow|Flow]] a graphical integration language used in the [[webMethods]] platform
* [[webMethods Flow|Flow]] a graphical integration language used in the [[webMethods]] platform
* [https://linx.software/ Linx] is a Visual Programming Language and IDE by [https://twenty57.com/ Twenty57]
* [[Pipeline Pilot]] is a scientific visual and dataflow programming language, and the authoring tool for [[BIOVIA|the Accelrys Enterprise Platform]].
* [[Pipeline Pilot]] is a scientific visual and dataflow programming language, and the authoring tool for [[BIOVIA|the Accelrys Enterprise Platform]].



=== Data warehousing / business intelligence ===
=== Data warehousing / business intelligence ===

Revision as of 13:25, 17 November 2020

File:Hello World in Scratch 3.0.png
An implementation of a "Hello, world!" program in the Scratch 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.[1][2] 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)[3] 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[4]

  • Syntax: VPLs use icons/blocks, forms and diagrams trying to reduce or even to completely eliminate the potential of syntactic errors helping with the arrangement of programming primitives to create well-formed programs. Non VPLs examples are spell check in word processors underlining or even auto correcting individual words or grammar.
  • 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 or AgentCubes 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.

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. Dataflow languages also allow automatic parallelization, which is likely to become one of the greatest programming challenges of the future.[5]

The Visual Basic, Visual C#, Visual J# etc. languages of the Microsoft Visual Studio 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 environments which typically support a form designer and sometimes also have graphical tools to illustrate (but not define) control flow and data dependencies.

Parsers for visual programming languages can be implemented using graph grammars.[6][7]

List of visual languages

The following contains a list of notable visual programming languages.

Educational

Multimedia

  • AudioMulch, an audio signal flow based sound and music creation environment
  • Bidule, a modular node and patch cord environment for the creation of interactive computer music and multimedia (Windows, MacOS).[8]
  • Black Ink, digital painting software focused on generative and procedural art tool.
  • Blender (software), the open source 3D graphics package, includes a "node editor" to create shading programs as graphs. Also, custom nodes allows create systems as sverchok, blendgraph or other.
  • Cameleon, graphical functional language
  • Clickteam's The games factory/Multimedia fusion series, environments made for visually developing games
  • Dynamo, a generative modeling interface for Autodesk Revit
  • Filter Forge Node based filter generation for image processing.
  • Houdini (software) vfx, modeling and animation software.
  • GenerativeComponents, a parametric CAD software developed by Bentley Systems
  • Grasshopper 3d, a generative modeling interface for Rhinoceros 3D
  • Kyma (sound design language), a visual programming language for sound design used by musicians, researchers, and sound designers.
  • 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
  • Nodal, a node-based generative programming software application for music composition
  • Nuke, an object-based visual programming software for visual effects compositing by The Foundry powered by Tcl, Python and Blink-script.
  • OpenMusic, a visual programming language for music composition (based on Common Lisp Object System (CLOS)) applications, and mobile applications
  • Pure Data (Pd) is a visual programming language developed for creating interactive computer music and multimedia works.
  • Quartz Composer, a language for processing and rendering graphical data (macOS)
  • Reaktor, a DSP and MIDI-processing language by Native Instruments
  • Scala Multimedia Authoring suite and complete multimedia system for AmigaOS and Windows
  • Softimage, with ICE Interactive Creative Environment.
  • SynthEdit, a Synthesizer construction tool using a VPL.
  • TouchDesigner, visual programming language for real-time multimedia content
  • Virtools, a middleware used to create interactive 3D experiences
  • vvvv, a 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.
  • WireFusion, visual programming environment for creating interactive 3D web presentations

Video games

  • Blender Game Engine (Graphical logic editor)
  • Construct 2 is an HTML5-based 2D game editor, developed by Scirra Ltd.
  • CryEngine has a node-based visual programming language called FlowGraph.
  • GameMaker Studio, has a drag and drop game creation system developed by YoYo Games.
  • GameSalad is a visual game creation tool developed by GameSalad, Inc.
  • GDevelop is a visual game creation tool created by Florian Rival (4ian).
  • Godot, in-house open source MIT Licensed game development software.
  • Human Resource Machine is a visual programming-based puzzle game developed by Tomorrow Corporation.
  • Kodu, a software designed to program games with a 3D Interface developed by Microsoft Research.
  • Kodular, an online tool to make android applications, that is based upon MIT App Inventor.
  • Rec Room includes a game creation system with a node-based visual programming language called Circuits.
  • Snowdrop has a visual scripting system.
  • Stencyl, a video game creation tool.
  • Unity has a visual scripting system as of the ECS release.
  • Unreal Engine 4 has a node-based visual programming language called Blueprints, and also shaders.

Many modern video games make use of behavior trees, which are in principle a family of simple programming languages designed to model behaviors for non-player characters. The behaviors are modeled as trees, and are often edited in graphical editors.

Systems / simulation

Automation


Data warehousing / business intelligence

Miscellaneous

  • Kwikpoint, an isotype visual translator created by Alan Stillman
  • Lava, an experimental object oriented RAD language
  • Limnor, a general purpose programming system. Limnor Studio is an IDE for rapid software development.
  • 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
  • Piet, an esoteric language, the program is an image whose pixels are the language's elements
  • PWCT, Free open source visual programming language for software development
  • StreamBase Systems, StreamBase EventFlow is a visual programming language for processing streaming events
  • WebML, is a visual language for designing complex data-intensive Web applications that can be automatically generated
  • Yahoo! Pipes is a visual data-flow programming system to process web data[11]
  • YAWL, graphical workflow language

Legacy

Visual styles

See also

References

  1. ^ Jost, Beate; Ketterl, Markus; Budde, Reinhard; Leimbach, Thorsten (2014). "Graphical Programming Environments for Educational Robots: Open Roberta - Yet Another One?". 2014 IEEE International Symposium on Multimedia. pp. 381–386. doi:10.1109/ISM.2014.24. ISBN 978-1-4799-4311-1.
  2. ^ The Maturity of Visual Programming
  3. ^ Bragg, S.D.; Driskill, C.G. (1994). "Diagrammatic-graphical programming languages and DoD-STD-2167A". Proceedings of AUTOTESTCON '94. pp. 211–220. doi:10.1109/AUTEST.1994.381508. ISBN 0-7803-1910-9.
  4. ^ Repenning, Alexander (2017). "Moving Beyond Syntax: Lessons from 20 Years of Blocks Programing in AgentSheets". Journal of Visual Languages and Sentient Systems. 3: 68–91. doi:10.18293/vlss2017-010.
  5. ^ Johnston, W.M.; Hanna, J.R.P.; Millar, R.J. (2004). "Advances in dataflow programming languages" (PDF). ACM Computing Surveys. 36 (1): 1–34. doi:10.1145/1013208.1013209. Retrieved 2011-02-16.
  6. ^ Rekers, J.; Schürr, A. (1997). "Defining and parsing visual languages with layered graph grammars". Journal of Visual Languages & Computing. 8 (1): 27–55. doi:10.1006/jvlc.1996.0027.
  7. ^ Zhang, D.-Q. (2001). "A context-sensitive graph grammar formalism for the specification of visual languages". The Computer Journal. 44 (3): 186–200. doi:10.1093/comjnl/44.3.186.
  8. ^ http://www.computermusicjournal.org/reviews/31-* * * 2/regan-bidule.html
  9. ^ Construct Classic home page
  10. ^ Construct Classic page on SourceForge
  11. ^ "Yahoo! pipes". Archived from the original on 2015-01-03. Retrieved 2015-01-03.
This article was originally based on material from the Free On-line Dictionary of Computing, used with permission. Update as needed.