stringtranslate.com

Lenguaje de programación visual

Un bloque personalizado simple en el lenguaje de programación visual Snap!, que se basa 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 de 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 Low-code .

Definición

Los VPL pueden clasificarse, según el tipo y el grado de expresión visual utilizada, en lenguajes basados ​​en iconos, lenguajes basados ​​en formularios y lenguajes de diagramas. Los entornos de programación visual proporcionan elementos gráficos o icónicos que los usuarios pueden manipular de forma interactiva según 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 apoyar a los programadores en tres niveles diferentes [4]

Sintaxis
Los VPL utilizan íconos/bloques, formas y diagramas intentando reducir o incluso eliminar el potencial de errores sintácticos ayudando con la organización de primitivas de programación para crear programas bien formados.
Semántica
Los VPL pueden proporcionar algunos mecanismos para revelar el significado de las primitivas de programación. Esto podría incluir funciones de ayuda que proporcionen funciones de documentación integradas en los lenguajes de programación.
Pragmática
Los VPL respaldan el estudio de lo que significan los programas en situaciones particulares. Este nivel de soporte permite a los usuarios poner artefactos creados con un VPL en un estado determinado para explorar cómo reaccionará el programa a ese estado. Ejemplos: en AgentSheets o AgentCubes, los usuarios pueden configurar juegos o simulaciones en un estado particular para ver cómo reaccionaría el programa. Con el lenguaje de programación Thymio, los usuarios pueden poner un robot en un estado determinado para ver cómo reaccionará, es decir, qué sensores se activarán.

A partir de 2005, los desarrollos actuales intentan integrar el enfoque de programación visual con los lenguajes de programación de flujo de datos para tener acceso inmediato al estado del programa , lo que da como resultado la depuración en línea, o 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 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 embellece las actividades de edición y depuración con una interfaz de usuario enriquecida. Una consideración similar se aplica a la mayoría de los demás entornos de desarrollo rápido de aplicaciones , que normalmente admiten un diseñador de formularios y, a veces, también tienen herramientas gráficas para ilustrar (pero no definir) el flujo de control y las dependencias de datos.

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

Tipos de lenguajes visuales

La siguiente lista no es excluyente entre sí, ya que algunos entornos de programación visual pueden incorporar elementos de varios paradigmas. La elección del paradigma de programación visual a menudo depende de los requisitos específicos de la aplicación o de las preferencias de los usuarios o los desarrolladores.

Programación basada en bloques
Popularizado por plataformas como Scratch y Blockly, utilizado en entornos educativos y para programación introductoria.
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 comúnmente en herramientas de diseño de GUI y entornos de desarrollo para crear interfaces de usuario.
Gráficos de nodos
Se utiliza frecuentemente en lenguajes de programación visual, desarrollo de juegos 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 icónica
Se utiliza en diversos contextos para simplificar tareas de programación, a menudo asociadas con el desarrollo de aplicaciones móviles.
Máquinas de estados
Ampliamente empleado en el desarrollo de juegos, sistemas de control y modelado de sistemas reactivos.
Programación basada en hojas
Se encuentra en aplicaciones de hojas de cálculo y en ciertos entornos de programación educativa.
Programación basada en línea de tiempo
Común en software multimedia y de animación para secuenciar eventos a lo largo del tiempo.
Programación espacial
Se aplica en ciertos entornos interactivos y de modelado 3D.
Programación basada en formularios
Se utiliza en aplicaciones donde la entrada del usuario y las interfaces gráficas juegan un papel importante, como las aplicaciones de ingreso de datos.

Lenguajes visuales de propósito general

Implementación de Ring Virtual Machine (VM) utilizando el lenguaje de programación visual PWCT

La mayoría de los VPL están diseñados para uso educativo o de dominio específico donde los usuarios objetivo son programadores novatos. Pero hay algunos proyectos de investigación que intentan proporcionar un lenguaje de programación visual de propósito general que pueda ser utilizado por 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 Envision [8] [9] y PWCT [10] están diseñados para lograr este objetivo. Es común que un VPL se desarrolle utilizando un lenguaje de programación textual. El desarrollo de VPL de propósito general permite lo contrario. Por ejemplo, un nuevo lenguaje de programación textual, Compiler and Virtual Machine, se desarrolló utilizando programación visual en 2016. [11]

Lista de lenguajes visuales

A continuación se incluye una lista de lenguajes de programación visual notables.

Educativo

Multimedia

Juegos de vídeo

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

Sistemas / simulación

Automatización

Almacenamiento de datos / inteligencia empresarial

Misceláneas

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.S2CID62509261  .​
  2. ^ Kuhail, MA; Farooq, S.; Hammad, R.; Bahja, M. (2021). "Caracterización de enfoques de programación visual para desarrolladores de 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 sobre multimedia de 2014. págs. 381–386. doi :10.1109/ISM.2014.24. ISBN 978-1-4799-4311-1.S2CID8272806  .​
  4. ^ Repenning, Alexander (2017). "Más allá de la sintaxis: lecciones de 20 años de programación en bloques en AgentSheets". Revista de lenguajes visuales y sistemas sensibles . 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 . Consultado 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". Revista de lenguajes visuales y computación . 8 (1): 27–55. doi :10.1006/jvlc.1996.0027. S2CID  40088910.
  7. ^ Zhang, D.-Q. (2001). "Un formalismo gramatical 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. ^ Asenov, D. y Muller, P., 2014, julio. Envision: un editor de código visual rápido y flexible con interacciones fluidas (descripción general). En el Simposio IEEE de 2014 sobre lenguajes visuales y computación centrada en el ser humano (VL/HCC) (pp. 9-12). IEEE.
  9. ^ "Visualizar".
  10. ^ 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 en apoyo del desarrollo de aplicaciones generalizadas. CCF Transactions on Pervasive Computing and Interaction, 2, págs. 164-177.
  11. ^ Ayouni, M., 2020. Introducción a la programación del anillo (Vol. 978, No. 1, pp. 4842-5832). Aprendido.
  12. ^ http://www.computermusicjournal.org/reviews/31-* * * 2/regan-bidule.html
  13. ^ "Editor de sombreadores: manual de Blender". docs.blender.org . Consultado el 22 de enero de 2021 .
  14. ^ "Composición: manual de Blender". docs.blender.org . Consultado el 22 de enero de 2021 .
  15. ^ "Edición de texturas: manual de Blender". docs.blender.org . Consultado el 22 de enero de 2021 .
  16. ^ "Referencia/Notas de la versión/2.92/Nodos de geometría - Wiki para desarrolladores de Blender". wiki.blender.org . Consultado el 22 de enero de 2021 .
  17. ^ "Nodos de geometría: Manual de Blender". docs.blender.org . Consultado el 2 de octubre de 2021 .
  18. ^ "Editor de materiales de nodos Babylon.js". nme.babylonjs.com . Consultado el 22 de enero de 2021 .
  19. ^ Página de inicio de Construct Classic
  20. ^ Página de Construct Classic en SourceForge
  21. ^ "Yahoo! Pipes". Archivado desde el original el 2015-01-03 . Consultado el 2015-01-03 .

Enlaces externos