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 levels4
As of 2005, 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 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 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.67
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.
Most of the VPLs are designed for education or domain-specific 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 project instead of using textual programming languages (like C, C++, Java, etc.).
For example, research projects such as Envision 89 and PWCT10 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 and Virtual Machine have been developed and maintained using visual programming for many years.11 This approach increased the abstraction level, thereby hiding unnecessary details. 12 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. 1314
This is a dynamic list and may never be able to satisfy particular standards for completeness. You can help by adding missing items with reliable sources.
The following contains a list of notable visual programming languages.
2/regan-bidule.html</ref>
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.
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. S2CID 62509261. 0-7803-1910-9 ↩
Kuhail, M. A.; Farooq, S.; Hammad, R.; Bahja, M. (2021). "Characterizing Visual Programming Approaches for End-User Developers: A Systematic Review". IEEE Access. 9: 14181–14202. Bibcode:2021IEEEA...914181K. doi:10.1109/ACCESS.2021.3051043. https://doi.org/10.1109%2FACCESS.2021.3051043 ↩
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. S2CID 8272806. 978-1-4799-4311-1 ↩
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. https://doi.org/10.18293%2Fvlss2017-010 ↩
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. S2CID 5257722. Retrieved 2011-02-16. http://www.cs.ucf.edu/~dcm/Teaching/COT4810-Spring2011/Literature/DataFlowProgrammingLanguages.pdf ↩
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. S2CID 40088910. /wiki/Doi_(identifier) ↩
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. hdl:10397/17637. S2CID 14139133. /wiki/Doi_(identifier) ↩
Asenov, D. and Muller, P., 2014, July. Envision: A fast and flexible visual code editor with fluid interactions (overview). In 2014 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (pp. 9-12). IEEE. ↩
"Envision". https://www.pm.inf.ethz.ch/research/envision.html ↩
Fayed, M.S., Al-Qurishi, M., Alamri, A., Hossain, M.A. and Al-Daraiseh, A.A., 2020. PWCT: a novel general-purpose visual programming language in support of pervasive application development. CCF Transactions on Pervasive Computing and Interaction, 2, pp.164-177. ↩
Ayouni, M., 2020. Beginning Ring programming (Vol. 978, No. 1, pp. 4842-5832). Apress. ↩
Fayed, Mahmoud Samir, and Yousef A. Alohali. "Ring: A Lightweight and Versatile Cross-Platform Dynamic Programming Language Developed Using Visual Programming." Electronics 13, no. 23 (2024): 4627. ↩
Green, T.; Blackwell, A. Cognitive dimensions of information artefacts: A tutorial. In Proceedings of the BCS HCI Conference, Sheffield, UK, 1–4 August 1998; Volume 98, pp. 1–75 ↩
Green, T.R.; Blandford, A.E.; Church, L.; Roast, C.R.; Clarke, S. Cognitive dimensions: Achievements, new directions, and open questions. J. Vis. Lang. Comput. 2006, 17, 328–365 ↩
"Shader Editor — Blender Manual". docs.blender.org. Retrieved 2021-01-22. https://docs.blender.org/manual/en/latest/editors/shader_editor.html ↩
"Compositing — Blender Manual". docs.blender.org. Retrieved 2021-01-22. https://docs.blender.org/manual/en/latest/compositing/index.html ↩
"Texture Editing — Blender Manual". docs.blender.org. Retrieved 2021-01-22. https://docs.blender.org/manual/en/2.79/render/cycles/materials/texture_editing.html ↩
"Reference/Release Notes/2.92/Geometry Nodes - Blender Developer Wiki". wiki.blender.org. Retrieved 2021-01-22. https://wiki.blender.org/wiki/Reference/Release_Notes/2.92/Geometry_Nodes ↩
"Geometry Nodes — Blender Manual". docs.blender.org. Retrieved 2021-10-02. https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/index.html ↩
"Babylon.js Node Material Editor". nme.babylonjs.com. Retrieved 2021-01-22. https://nme.babylonjs.com/ ↩
Construct Classic home page http://www.scirra.com/forum/construct-classic ↩
Construct Classic page on SourceForge http://sourceforge.net/projects/construct/ ↩
"Yahoo! pipes". Archived from the original on 2015-01-03. Retrieved 2015-01-03. https://web.archive.org/web/20150103090119/http://pipes.yahoo.com/pipes/ ↩