Visual programming language explained

In computing, a visual programming language (visual programming system, VPL, or, VPS), also known as diagrammatic programming,[1] [2] graphical programming or block coding, is a programming language that lets users create programs by manipulating program elements rather than by specifying them .[3] 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 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 are generally the basis of Low-code development platforms.

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 eliminate the potential of syntactic errors helping with the arrangement of programming primitives to create well-formed programs.
    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.

    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.[6] [7]

    Types of visual languages

    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.

    Block-based programming
  • Popularized by platforms like Scratch and Blockly, used in educational settings and for introductory programming.
    Flowcharts
  • Widely used in software engineering and systems design for representing algorithms and processes.
    Drag-and-drop interfaces
  • Commonly used in GUI design tools and development environments for creating user interfaces.
    Node graphs
  • Frequently used in visual programming languages, game development, and dataflow systems.
    Dataflow programming
  • Popular in parallel computing, signal processing, and visual programming environments.
    Iconic programming
  • Used in various contexts for simplifying programming tasks, often associated with mobile app development.
    State machines
  • Widely employed in game development, control systems, and modeling reactive systems.
    Sheet-based programming
  • Found in spreadsheet applications and certain educational programming environments.
    Timeline-based programming
  • Common in multimedia and animation software for sequencing events over time.
    Spatial programming
  • Applied in certain interactive and 3D modeling environments.
    Form-based programming
  • Used in applications where user input and graphical interfaces play a significant role, such as data entry applications.

    General-purpose visual languages

    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 [8] [9] and PWCT[10] 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 is developed using visual programming in 2016.[11]

    List of visual languages

    The following contains a list of notable visual programming languages.

    Educational

    Multimedia

    Video games

    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

    Legacy

    Visual styles

    See also

    References

    Notes and References

    1. Book: 10.1109/AUTEST.1994.381508. Diagrammatic-graphical programming languages and DoD-STD-2167A. Proceedings of AUTOTESTCON '94. 211–220. 1994. Bragg. S.D.. Driskill. C.G.. 0-7803-1910-9. 62509261 .
    2. 10.1109/ACCESS.2021.3051043. Characterizing Visual Programming Approaches for End-User Developers: A Systematic Review. IEEE Access. 9. 14181–14202. 2021. Kuhail. M. A. . Farooq. S. . Hammad . R. . Bahja . M.. free. 2021IEEEA...914181K .
    3. Book: 10.1109/ISM.2014.24. Graphical Programming Environments for Educational Robots: Open Roberta - Yet Another One?. 2014 IEEE International Symposium on Multimedia. 381–386. 2014. Jost. Beate. Ketterl. Markus. Budde. Reinhard. Leimbach. Thorsten. 978-1-4799-4311-1. 8272806 .
    4. 10.18293/vlss2017-010. Moving Beyond Syntax: Lessons from 20 Years of Blocks Programing in AgentSheets. Journal of Visual Languages and Sentient Systems. 3. 68–91. 2017. Repenning. Alexander. free.
    5. Johnston . W.M. . Hanna, J.R.P. . Millar, R.J. . 2004 . Advances in dataflow programming languages . . 36 . 1 . 1–34 . 2011-02-16 . 10.1145/1013208.1013209 . 5257722 .
    6. 10.1006/jvlc.1996.0027 . Defining and parsing visual languages with layered graph grammars . Journal of Visual Languages & Computing . 8 . 1 . 27–55 . 1997 . Rekers . J. . Schürr . A. . 40088910 .
    7. 10.1093/comjnl/44.3.186. A context-sensitive graph grammar formalism for the specification of visual languages. The Computer Journal. 44. 3. 186–200. 2001. Zhang. D.-Q.. 14139133 . 10397/17637. free.
    8. 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.
    9. Web site: Envision .
    10. 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.
    11. Ayouni, M., 2020. Beginning Ring programming (Vol. 978, No. 1, pp. 4842-5832). Apress.
    12. http://www.computermusicjournal.org/reviews/31-*
      • *

      2/regan-bidule.html

    13. Web site: Shader Editor — Blender Manual. 2021-01-22. docs.blender.org.
    14. Web site: Compositing — Blender Manual. 2021-01-22. docs.blender.org.
    15. Web site: Texture Editing — Blender Manual. 2021-01-22. docs.blender.org.
    16. Web site: Reference/Release Notes/2.92/Geometry Nodes - Blender Developer Wiki. 2021-01-22. wiki.blender.org.
    17. Web site: Geometry Nodes — Blender Manual. 2021-10-02. docs.blender.org.
    18. Web site: Babylon.js Node Material Editor. 2021-01-22. nme.babylonjs.com.
    19. http://www.scirra.com/forum/construct-classic Construct Classic home page
    20. http://sourceforge.net/projects/construct/ Construct Classic page on SourceForge
    21. Web site: Yahoo! pipes . 2015-01-03 . https://web.archive.org/web/20150103090119/http://pipes.yahoo.com/pipes/ . 2015-01-03 . dead .