Articulo de referencia

lenguaje de programación visual

Un sencillo bloque personalizado en el lenguaje de programación visual Snap!, basado en Scratch , que calcula la suma de todos los números con valores entre a y b. En informátic...

Un sencillo bloque personalizado en el lenguaje de programación visual Snap!, basado en Scratch , que calcula la suma de todos los números con valores entre a y b.

En informática , un lenguaje de programación visual ( sistema de programación visual , VPL o VPS ), también conocido como programación diagramática , [ 1 ] [ 2 ] programación gráfica o codificación por bloques , es un lenguaje de programación que permite a los usuarios crear programas manipulando elementos del programa gráficamente en lugar de especificarlos textualmente . [ 3 ] Un VPL permite programar con expresiones visuales, disposiciones espaciales de texto y símbolos gráficos, utilizados como elementos de sintaxis o notación secundaria . Por ejemplo, muchos VPL se basan en la idea de "cajas y flechas", donde las cajas u otros objetos de la pantalla se tratan como entidades, conectadas por flechas, líneas o arcos que representan relaciones. Los VPL son generalmente la base de las plataformas de desarrollo de bajo código . Scratch es un ejemplo de un VPL.

Definición

Los lenguajes de programación visual (LPV) pueden clasificarse, según el tipo y la extensión de la expresión visual utilizada, en lenguajes basados ​​en iconos, lenguajes basados ​​en formularios y lenguajes basados ​​en diagramas. Los entornos de programación visual proporcionan elementos gráficos o icónicos que los usuarios pueden manipular de forma interactiva siguiendo una gramática espacial específica para la construcción de programas.

El objetivo general de los VPL es hacer que la programación sea más accesible para los principiantes y brindar soporte a los programadores en tres niveles diferentes [ 4 ].

Sintaxis
Las bibliotecas de lenguaje virtual (VPL) utilizan iconos/bloques, formularios y diagramas para intentar reducir o incluso eliminar la posibilidad de errores sintácticos, lo que ayuda a organizar las primitivas de programación para crear programas bien formados.
Semántica
Los lenguajes de programación visual (VPL) pueden proporcionar mecanismos para revelar el significado de las primitivas de programación. Esto podría incluir funciones de ayuda que ofrezcan documentación integrada en los lenguajes de programación.
Pragmática
Los lenguajes de programación visual (VPL) facilitan el estudio del significado de los programas en situaciones específicas. Este nivel de soporte permite a los usuarios configurar artefactos creados con un VPL en un estado determinado para explorar cómo reaccionará el programa ante dicho estado. Por ejemplo: en AgentSheets o AgentCubes, los usuarios pueden configurar juegos o simulaciones en un estado específico para observar la reacción del programa. Con el lenguaje de programación Thymio, los usuarios pueden configurar un robot en un estado determinado para observar su reacción, es decir, qué sensores se activarán.

Desde 2005, los desarrollos actuales buscan integrar el enfoque de programación visual con lenguajes de programación de flujo de datos para obtener acceso inmediato al estado del programa , lo que permite la depuración en línea, o bien la generación y documentación automáticas del programa. Los lenguajes de flujo de datos también permiten la paralelización automática , que probablemente se convierta en uno de los mayores desafíos de la programación del futuro. [ 5 ]

Los lenguajes Visual Basic , Visual C# , Visual J#, etc., del entorno de desarrollo integrado (IDE) Microsoft Visual Studio , no son lenguajes de programación visual: la representación de algoritmos, etc., es textual, aunque el IDE enriquezca las actividades de edición y depuración con una interfaz de usuario sofisticada. Una consideración similar se aplica a la mayoría de los demás entornos de desarrollo rápido de aplicaciones , que suelen admitir un diseñador de formularios y, en ocasiones, también herramientas gráficas para ilustrar (pero no definir) el flujo de control y las dependencias de datos.

Los analizadores sintácticos para lenguajes de programación visual se pueden implementar utilizando gramáticas de grafos . [ 6 ] [ 7 ]

Tipos de lenguajes visuales

La siguiente lista no es excluyente, ya que algunos entornos de programación visual pueden incorporar elementos de múltiples paradigmas. La elección del paradigma de programación visual suele depender de los requisitos específicos de la aplicación o de las preferencias de los usuarios o los desarrolladores.

Programación basada en bloques
Popularizada por plataformas como Scratch y Blockly, se utiliza en entornos educativos y para la programación de iniciación.
Diagramas de flujo
Ampliamente utilizado en ingeniería de software y diseño de sistemas para representar algoritmos y procesos.
Interfaces de arrastrar y soltar
Se utiliza habitualmente en herramientas de diseño de interfaces gráficas de usuario y entornos de desarrollo para la creación de interfaces de usuario.
Grafos de nodos
Se utiliza con frecuencia en lenguajes de programación visual, desarrollo de videojuegos y sistemas de flujo de datos.
Programación de flujo de datos
Popular en entornos de computación paralela, procesamiento de señales y programación visual.
Programación emblemática
Se utiliza en diversos contextos para simplificar las tareas de programación, a menudo asociada con el desarrollo de aplicaciones móviles.
Máquinas de estados
Ampliamente utilizado en el desarrollo de videojuegos, sistemas de control y modelado de sistemas reactivos.
Programación basada en hojas de cálculo
Se encuentra en aplicaciones de hojas de cálculo y en ciertos entornos de programación educativa.
Programación basada en cronogramas
Es habitual en software multimedia y de animación para secuenciar eventos a lo largo del tiempo.
Programación espacial
Aplicable en determinados entornos interactivos y de modelado 3D.
Programación basada en formularios
Se utiliza en aplicaciones donde la entrada de datos por parte del usuario y las interfaces gráficas desempeñan un papel importante, como por ejemplo en las aplicaciones de introducción de datos.

Lenguajes visuales de uso general

La mayoría de los lenguajes de programación visual (VPL) están diseñados para la educación o para usos específicos de dominios , donde los usuarios objetivo son programadores principiantes. Sin embargo, algunos proyectos de investigación intentan proporcionar un lenguaje de programación visual de propósito general que puedan usar los programadores convencionales en cualquier proyecto de software , en lugar de utilizar lenguajes de programación textuales (como C , C++ , Java , etc.).

Por ejemplo, proyectos de investigación como PWCT y Envision fueron diseñados para lograr este objetivo. [ 8 ] [ 9 ] [ 10 ]

Lista de lenguajes visuales

A continuación se presenta una lista de lenguajes de programación visual destacados.

Educativo

  • AgentCubes , herramientas de pensamiento computacional para el diseño de juegos en 3D y 2D, y el diseño de simulaciones.
  • AgentSheets , herramienta para la creación de juegos y de contenido científico computacional.
  • Alice , un lenguaje orientado a objetos utilizado para programar entornos 3D.
  • Analytica , para la creación y el análisis de modelos cuantitativos para el análisis de decisiones y riesgos.
  • App Inventor para Android , una herramienta para crear aplicaciones Android , basada en Blockly y Kawa .
  • Blockly es una biblioteca del lado del cliente para el lenguaje de programación JavaScript que permite crear lenguajes de programación visual (VPL) y editores basados ​​en bloques. Blockly es conocido por su uso en Scratch .
  • Catrobat , lenguaje de programación visual basado en bloques para animaciones, aplicaciones y juegos.
  • Etoys , desarrollado bajo la dirección de Alan Kay en Disney para apoyar el aprendizaje constructivista, está influenciado por Seymour Papert y el lenguaje de programación Logo.
  • Flowcode , una herramienta de programación visual para microcontroladores integrados y Windows.
  • Flowgorithm crea diagramas de flujo ejecutables que se pueden convertir a varios idiomas.
  • Greenfoot , un IDE para Java o Stride diseñado principalmente con fines educativos, así como para el desarrollo de interfaces gráficas de usuario y juegos.
  • Hopscotch , una aplicación para iPad y un lenguaje de programación visual para crear aplicaciones móviles orientadas a pantallas táctiles.
  • Kodu , una herramienta de programación visual para Logo .
  • Kojo , un lenguaje de programación, un entorno de desarrollo integrado (IDE ) y un entorno de aprendizaje.
  • mBlock , una extensión de Scratch para interfaces de hardware Arduino . Desarrollado por Makeblock .
  • Open Roberta , un entorno de programación en línea del Fraunhofer IAIS , diseñado para niños.
  • Pencil Code , un lenguaje de programación visual centrado en dibujar con un lápiz.
  • Raptor , un producto de la USAF , para dibujar diagramas de flujo ejecutables.
  • Scratch , un producto del MIT , está diseñado para niños de primaria y secundaria, así como para programas extraescolares.
  • ScratchJr , una interpretación de Scratch diseñada principalmente para un público infantil (niños de 5 a 7 años).
  • Snap!, una reimplementación basada en navegador de BYOB y extensión de Scratch , con procedimientos y listas de primera clase. Se utiliza para la enseñanza en UC Berkeley .
  • Stagecast Creator , un sistema de enseñanza basado en Java.
  • StarLogo , un lenguaje de simulación basado en agentes desarrollado por Mitchel Resnick , Eric Klopfer y otros en el MIT Media Lab . Es una extensión del lenguaje de programación Logo (un dialecto de Lisp ).
  • ToonTalk , sistema de programación para niños.
  • Visual Logic , para crear diagramas de flujo ejecutables.
  • Entorno de programación visual para IoT/robótica VIPLE

Multimedia

Juegos de vídeo

  • Babylon.js tiene un editor de materiales de nodos que se puede usar para crear sombreadores, texturas procedimentales, sistemas de partículas y efectos de postprocesamiento. [ 16 ]
  • Motor de juegos Blender (editor de lógica gráfica)
  • Buildbox
  • Clickteam Fusion , un software de creación de juegos 2D con sistema de edición de eventos, desarrollado por Clickteam SARL, originalmente conocido como Klik n' Play, The Games Factory y Multimedia Fusion 2.
  • Construct 2 y 3 son editores de juegos 2D basados ​​en HTML5, desarrollados por Scirra Ltd.
  • CryEngine cuenta con un lenguaje de programación visual basado en nodos llamado FlowGraph.
  • Dreams , que funciona en PlayStation, tiene un extenso lenguaje visual que permite a los jugadores crear cualquier tipo de juego.
  • Game Builder Garage , una herramienta de creación de juegos en 3D y 2D para Nintendo Switch , desarrollada por Nintendo .
  • GameMaker Studio cuenta con un sistema de creación de juegos mediante la función de arrastrar y soltar, desarrollado por YoYo Games.
  • GameSalad es una herramienta visual para la creación de juegos desarrollada por GameSalad, Inc.
  • GDevelop es una herramienta visual para la creación de juegos, creada por Florian Rival (4ian).
  • El motor de juegos Godot permite crear scripts de juego y sombreadores gráficos utilizando lenguajes de programación visual basados ​​en nodos. Esta función se ha eliminado, pero aún se puede usar con un complemento.
  • Human Resource Machine es un juego de puzles visual basado en programación desarrollado por Tomorrow Corporation .
  • Kodu , un software diseñado para programar juegos con una interfaz 3D desarrollado por Microsoft Research.
  • Pixel Game Maker MV es una herramienta de desarrollo de videojuegos 2D basada en una interfaz.
  • Resonite tiene un lenguaje visual similar al de Rec Room , llamado protoflux, que se utiliza en objetos, avatares y otros sistemas.
  • Rec Room incluye un sistema de creación de juegos con un lenguaje de programación visual basado en nodos llamado Circuits.
  • RPG Maker , una serie de herramientas para la creación de videojuegos de rol con sistemas de edición de eventos.
  • Snowdrop cuenta con un sistema de secuencias de comandos visuales.
  • Stencyl , una herramienta para la creación de videojuegos.
  • Unity cuenta con un sistema de scripting visual desde la versión ECS (anteriormente conocido como Bolt).
  • Unreal Engine 4 cuenta con un lenguaje de programación visual basado en nodos llamado Blueprints, y también con sombreadores.

Muchos videojuegos modernos utilizan árboles de comportamiento , que en principio son una familia de lenguajes de programación sencillos diseñados para modelar el comportamiento de los personajes no jugables . Estos comportamientos se modelan como árboles y, a menudo, se editan con editores gráficos.

Sistemas / simulación

Automatización

Almacenamiento de datos / inteligencia empresarial

Misceláneas

  • Bubble , para crear aplicaciones web listas para producción .
  • Kwikpoint , un traductor visual de isotipos creado por Alan Stillman.
  • Morphic (software) facilita la creación y edición de objetos gráficos mediante manipulación directa y desde dentro de los programas; todo el entorno de programación Self (lenguaje de programación) está construido utilizando Morphic.
  • Piet , un lenguaje esotérico, el programa es una imagen cuyos píxeles son los elementos del lenguaje.
  • Atajos , un lenguaje de scripting visual desarrollado por Apple para crear macros en macOS , iOS , iPadOS y watchOS .
  • StreamBase Systems , StreamBase EventFlow es un lenguaje de programación visual para el procesamiento de eventos en tiempo real.
  • WebML es un lenguaje visual para diseñar aplicaciones web complejas con gran cantidad de datos que se pueden generar automáticamente.
  • Yahoo! Pipes es un sistema de programación de flujo de datos visual para procesar datos web [ 19 ].
  • YAWL , lenguaje gráfico de flujo de trabajo

Legado

Estilos visuales

Véase también

Referencias

  1. Bragg, SD; Driskill, CG (1994). «Lenguajes de programación diagramático-gráficos y DoD-STD-2167A». Actas de AUTOTESTCON '94 . págs. 211–220 . doi : 10.1109/AUTEST.1994.381508 . ISBN  0-7803-1910-9. S2CID 62509261 . 
  2. Kuhail, MA; Farooq, S.; Hammad, R.; Bahja, M. (2021). "Caracterización de enfoques de programación visual para desarrolladores usuarios finales: una revisión sistemática" . IEEE Access . 9 : 14181–14202 . Bibcode : 2021IEEEA...914181K . doi : 10.1109/ACCESS.2021.3051043 .
  3. Jost, Beate; Ketterl, Markus; Budde, Reinhard; Leimbach, Thorsten (2014). «Entornos de programación gráfica para robots educativos: Open Roberta - ¿Otro más?». Simposio Internacional IEEE de Multimedia de 2014. págs. 381–386 . doi : 10.1109/ISM.2014.24 . ISBN  978-1-4799-4311-1. S2CID 8272806 . 
  4. Repenning, Alexander (2017). "Más allá de la sintaxis: lecciones de 20 años de programación por bloques en AgentSheets" . Journal of Visual Languages ​​and Sentient Systems . 3 : 68–91 . doi : 10.18293/vlss2017-010 .
  5. Johnston, WM; Hanna, JRP; Millar, RJ (2004). "Avances en lenguajes de programación de flujo de datos" (PDF) . ACM Computing Surveys . 36 (1): 1– 34. doi : 10.1145/1013208.1013209 . S2CID 5257722. Archivado (PDF) del original el 16 de mayo de 2018. Recuperado el 16 de febrero de 2011 . 
  6. Rekers, J.; Schürr, A. (1997). "Definición y análisis de lenguajes visuales con gramáticas de grafos en capas". Journal of Visual Languages ​​& Computing . 8 (1): 27– 55. doi : 10.1006/jvlc.1996.0027 . S2CID 40088910 . 
  7. Zhang, D.-Q. (2001). "Un formalismo de gramática de grafos sensible al contexto para la especificación de lenguajes visuales". The Computer Journal . 44 (3): 186– 200. doi : 10.1093/comjnl/44.3.186 . hdl : 10397/17637 . S2CID 14139133 . 
  8. Fayed, MS, Al-Qurishi, M., Alamri, A., Hossain, MA y Al-Daraiseh, AA, 2020. PWCT: un nuevo lenguaje de programación visual de propósito general para el desarrollo de aplicaciones ubicuas. CCF Transactions on Pervasive Computing and Interaction, 2(3), pp.164-177.
  9. Asenov, D. y Muller, P., julio de 2014. Envision: Un editor de código visual rápido y flexible con interacciones fluidas (descripción general). En 2014 IEEE Symposium on Visual Languages ​​and Human-Centric Computing (VL/HCC) (pp. 9-12). IEEE.
  10. "Envision" . Archivado del original el 27/01/2024 . Consultado el 06/02/2024 .
  11. "Editor de sombreadores — Manual de Blender" . docs.blender.org . Consultado el 22 de enero de 2021 .
  12. "Composición — Manual de Blender" . docs.blender.org . Consultado el 22 de enero de 2021 .
  13. "Edición de texturas — Manual de Blender" . docs.blender.org . Archivado del original el 18 de abril de 2021. Consultado el 22 de enero de 2021 .
  14. "Referencia/Notas de la versión/2.92/Nodos de geometría - Wiki para desarrolladores de Blender" . wiki.blender.org . Archivado del original el 29/01/2021 . Consultado el 22/01/2021 .
  15. "Nodos de geometría — Manual de Blender" . docs.blender.org . Archivado del original el 2 de octubre de 2021. Consultado el 2 de octubre de 2021 .
  16. "Babylon.js Node Material Editor" . nme.babylonjs.com . Consultado el 22 de enero de 2021 .
  17. "Página principal de Construct Classic" . Archivado del original el 24/01/2016 . Consultado el 16/01/2016 .
  18. "Página de Construct Classic en SourceForge" . Archivado del original el 25/06/2025 . Consultado el 11/08/2025 .
  19. "Yahoo! pipes" . Archivado del original el 3 de enero de 2015. Consultado el 3 de enero de 2015 .