stringtranslate.com

lenguaje de programación visual

¡Un bloque personalizado simple en Snap! Lenguaje de programación visual, que se basa en Scratch , 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 esquemá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, arreglos espaciales de texto y símbolos gráficos, utilizados ya sea como elementos de sintaxis o notación secundaria . Por ejemplo, muchos VPL se basan en la idea de "cuadros y flechas", donde los cuadros 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 se pueden clasificar además, según el tipo y el alcance de la expresión visual utilizada, en lenguajes basados ​​en iconos, lenguajes basados ​​en formas 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 de acuerdo con alguna 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 iconos/bloques, formularios y diagramas que intentan reducir o incluso eliminar el potencial de errores sintácticos, ayudando con la disposición de las 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 apoyan el estudio de lo que significan los programas en situaciones particulares. Este nivel de soporte permite a los usuarios colocar artefactos creados con una VPL en un estado determinado para explorar cómo reaccionará el programa ante 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 llevar un robot a un determinado estado 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 lenguajes de programación de flujo de datos para tener acceso inmediato al estado del programa , lo que resulta en depuración en línea, o generación y documentación automática 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) de 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 rica interfaz de usuario. 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 de gráficos . [6] [7]

Tipos de lenguajes visuales

La siguiente lista no es mutuamente 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 a menudo depende de los requisitos específicos de la aplicación o de las preferencias de los usuarios o 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
Comúnmente utilizado en herramientas de diseño de GUI y entornos de desarrollo para crear interfaces de usuario.
Gráficos de nodos
Se utiliza con frecuencia 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 las tareas de programación, a menudo asociadas con el desarrollo de aplicaciones móviles.
maquinas de estado
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 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
Aplicado en determinados 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 desempeñan un papel importante, como las aplicaciones de entrada 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 educación o uso en un 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 puedan utilizar 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 Envision [8] [9] y PWCT [10] están diseñados para lograr este objetivo. Es común que una VPL se desarrolle utilizando un lenguaje de programación textual. El desarrollo de VPL de propósito general permite lo contrario. Por ejemplo, en 2016 se desarrolló un nuevo lenguaje de programación textual, compilador y máquina virtual , utilizando programación visual . [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 que no son 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

Ver también

Referencias

  1. ^ Bragg, SD; Driskill, CG (1994). "Lenguajes de programación gráfico-diagrama 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 de usuarios finales: una revisión sistemática". Acceso IEEE . 9 : 14181–14202. Código Bib : 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 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 de 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) . Encuestas de Computación ACM . 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 gráficos en capas". Revista de Computación y Lenguajes Visuales . 8 (1): 27–55. doi :10.1006/jvlc.1996.0027. S2CID  40088910.
  7. ^ Zhang, D.-Q. (2001). "Un formalismo gramatical gráfico sensible al contexto para la especificación de lenguajes visuales". La revista informática . 44 (3): 186–200. doi : 10.1093/comjnl/44.3.186. hdl : 10397/17637 . S2CID  14139133.
  8. ^ 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 el Simposio IEEE de 2014 sobre lenguajes visuales y computación centrada en el ser humano (VL/HCC) (págs. 9-12). IEEE.
  9. ^ "Imaginar".
  10. ^ Fayed, MS, Al-Qurishi, M., Alamri, A., Hossain, MA y Al-Daraiseh, AA, 2020. PWCT: un novedoso lenguaje de programación visual de uso general que respalda el desarrollo generalizado de aplicaciones. Transacciones CCF sobre computación e interacción generalizadas, 2, páginas 164-177.
  11. ^ Ayouni, M., 2020. Inicio de la programación de Ring (Vol. 978, No. 1, págs. 4842-5832). Presione.
  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 del nodo Babylon.js". nme.babylonjs.com . Consultado el 22 de enero de 2021 .
  19. ^ Construir página de inicio clásica
  20. ^ Construir página clásica en SourceForge
  21. ^ "¡Yahoo! Tuberías". Archivado desde el original el 3 de enero de 2015 . Consultado el 3 de enero de 2015 .

enlaces externos