Linguagem de programação visual

Um bloco personalizado simples na linguagem de programação visual Snap! (baseada no Scratch) calculando a soma de todos os números entre a e b

Uma linguagem de programação visual (sigla VPL) é qualquer linguagem de programação que permite aos usuários criar programas manipulando elementos de programa graficamente ao invés da utilização de textos.[1] Uma VPL permite programar com expressões visuais, arranjos espaciais de texto e símbolos gráficos, usados como elementos de sintaxe ou notação secundária. Por exemplo, muitas VPLs (conhecidos como fluxo de dados ou programação diagramática)[2][3] são baseados na ideia de "caixas e setas", onde caixas ou outros objetos de tela são tratados como entidades, conectadas por setas, linhas ou arcos que representam relações.

Definição

As Linguagens de Programação Visual (VPLs) podem ser classificadas conforme o tipo e extensão da expressão visual utilizada em linguagens baseadas em ícones, linguagens baseadas em formulários e linguagens de diagramas. Ambientes de programação visual fornecem elementos gráficos ou icônicos que podem ser manipulados pelos usuários de forma interativa, de acordo com alguma gramática espacial específica para a construção de programas.

O objetivo geral das VPLs é tornar a programação mais acessível para iniciantes e oferecer suporte a programadores em três níveis diferentes:[4]

  • Sintaxe: As VPLs utilizam ícones/blocos, formulários e diagramas na tentativa de reduzir ou até eliminar o potencial de erros sintáticos, auxiliando no arranjo de primitivas de programação para criar programas bem formados.
  • Semântica: As VPLs podem fornecer alguns mecanismos para revelar o significado das primitivas de programação. Isso pode incluir funções de ajuda que fornecem documentação e funções incorporadas às linguagens de programação.
  • Pragmática: As VPLs oferecem suporte ao estudo do significado dos programas em situações específicas. Esse nível de suporte permite que os usuários coloquem artefatos criados com uma VPL em um determinado estado para explorar como o programa reagirá a esse estado. Exemplos: No AgentSheets [en] ou AgentCubes [en], os usuários podem definir jogos ou simulações em um estado específico para ver como o programa reagirá. Com a linguagem de programação Thymio, os usuários podem colocar um robô em um determinado estado para ver como ele reagirá, ou seja, quais sensores serão ativados.

Os desenvolvimentos atuais tentam integrar a abordagem de programação visual com linguagens de programação de fluxo de dados [en] para ter acesso imediato ao estado do programa, resultando em depuração on-line, ou geração e documentação automáticas do programa. As linguagens de fluxo de dados também permitem a paralelização automática [en], que provavelmente se tornará um dos maiores desafios da programação do futuro.[5]

As linguagens Visual Basic, Visual C#, Visual J#, etc. do IDE do Microsoft Visual Studio não são linguagens de programação visual: a representação de algoritmos é textual, embora o IDE embeleze as atividades de edição e depuração com uma interface de usuário avançada. Uma consideração semelhante se aplica à maioria dos outros ambientes de desenvolvimento rápido de aplicações que normalmente suportam um construtor de interface gráfica e, às vezes, também têm ferramentas gráficas para ilustrar (mas não definir) o fluxo de controle e as dependências de dados.

Os analisadores para linguagens de programação visual podem ser implementados usando gramáticas gráficas.[6][7]

Lista

Educacionais

  • AgentCubes [en], ferramentas de pensamento computacional para design de jogos 3D e 2D e design de simulação;
  • AgentSheets [en], ferramenta de criação de jogos e de ciência computacional;
  • Alice [en], uma linguagem baseada em objetos usada para programar ambientes 3D;
  • Analytica [en], para criar e analisar modelos quantitativos para análise de decisões e riscos;
  • App Inventor, uma ferramenta de criação de aplicativos para Android, baseada em Blockly [en] e Kawa [en];
  • Blockly, uma biblioteca do lado do cliente para a linguagem de programação JavaScript para a criação de linguagens de programação visual (VPLs) e editores baseados em blocos. A Blockly é conhecida por seu uso no Scratch;
  • Bubble [en], para criar aplicações web prontas para produção;
  • Catrobat [en], linguagem de programação visual baseada em blocos para animações, aplicativos e jogos;
  • Etoys, desenvolvida sob a direção de Alan Kay na Disney para apoiar o aprendizado construcionista, influenciada por Seymour Papert e pela linguagem de programação Logo;
  • Flowcode [en], uma ferramenta de programação visual para microcontroladores incorporados e Windows;
  • Flowgorithm [en], cria fluxogramas executáveis que podem ser convertidos em várias linguagens;
  • Hopscotch [en], um aplicativo para iPad e uma linguagem de programação visual para a criação de aplicativos móveis orientados para a tela sensível ao toque;
  • Kodu, uma ferramenta de programação visual para Logo;
  • Kojo [en], uma linguagem de programação, IDE e ambiente de aprendizado;
  • mBlock [en], uma extensão do Scratch para interfaces de hardware Arduino. Desenvolvido por Makeblock;
  • Open Roberta [en], ambiente de programação on-line da Fraunhofer IAIS, projetado para crianças;
  • Pencil Code [en], uma linguagem de programação visual centrada no desenho com um lápis;
  • Raptor [en], um produto da USAF, para desenhar fluxogramas executáveis;
  • Scratch, um produto do MIT, projetado para crianças no ensino fundamental e médio e em programas pós-escolares;
  • ScratchJr [en], uma interpretação do Scratch projetada principalmente para públicos mais jovens (crianças de 5 a 7 anos);
  • Snap!, uma reimplementação baseada em navegador do BYOB e extensão do Scratch, com procedimentos e listas de primeira classe. Usado para ensinar na UC Berkeley;
  • Stagecast Creator [en], um sistema de ensino baseado em Java;
  • StarLogo, uma linguagem de simulação baseada em agentes desenvolvida por Mitchel Resnick [en], Eric Klopfer e outros no MIT Media Lab. Uma extensão da linguagem de programação Logo (um dialeto de Lisp);
  • ToonTalk, sistema de programação para crianças;
  • Visual Logic [en], para criação de fluxogramas executáveis;
  • VIPLE [en], Ambiente de linguagem de programação de IoT/Robótica Visual.

Multimídia

  • AudioMulch [en], um ambiente de criação de som e música baseado no fluxo de sinal de áudio;
  • Bidule [en], um ambiente modular com nós e conectores para a criação de música interativa e multimídia (Windows, MacOS);[8]
  • Blender, o pacote de gráficos 3D de código aberto, inclui grafos de nós para a construção de sombreadores,[9] Composição [en][10] e texturas [en],[11] geometria não destrutiva [en];[12][13]
  • Cameleon [en], linguagem gráfica funcional;
  • Série The Games Factory/Multimedia Fusion da Clickteam [en], ambientes feitos para o desenvolvimento visual de jogos;
  • DYNAMO [en], uma interface de modelagem generativa para o Autodesk Revit;
  • Filter Forge [en], geração de filtros baseados em nós para processamento de imagens;
  • Houdini (software), software de efeitos visuais, modelagem e animação;
  • GenerativeComponents, um software CAD paramétrico desenvolvido pela Bentley Systems.
  • Grasshopper 3D, uma interface de modelagem generativa para o Rhinoceros 3D;
  • Isadora [en], um ambiente gráfico proprietário de programação para Mac OS X e Microsoft Windows, com ênfase na manipulação em tempo real de vídeo digital;
  • Kyma [en], uma linguagem de programação visual para design de som usada por músicos, pesquisadores e designers de som;
  • Mama [en] – uma linguagem de programação e IDE para construir animações e jogos 3D;
  • Max (software), ambiente de programação visual para construir aplicativos interativos de música e multimídia em tempo real
  • Nodal [en], um aplicativo de software de programação generativa baseado em nós para composição musical;
  • Nuke [en], um software de programação visual baseado em objetos para composição de efeitos visuais pela The Foundry [en], alimentado por Tcl, Python e Blink-script;
  • OpenMusic, uma linguagem de programação visual para composição musical (baseada no Common Lisp Object System (CLOS)), aplicações e aplicativos móveis;
  • Pure Data (Pd) é uma linguagem de programação visual desenvolvida para criar obras interativas de música e multimídia em computador;
  • Quartz Composer [en], uma linguagem para processamento e renderização de dados gráficos (macOS);
  • Reaktor [en], uma linguagem DSP e de processamento MIDI da Native Instruments [en].
  • Scala Multimedia [en], uma suíte de autoria e sistema multimídia completo para AmigaOS e Windows;
  • Softimage, com ICE Interactive Creative Environment;
  • SynthEdit [en], uma ferramenta de construção de sintetizador usando uma VPL;
  • TouchDesigner [en], linguagem de programação visual para conteúdo multimídia em tempo real;
  • Virtools, um middleware usado para criar experiências interativas 3D;
  • vvvv [en], um conjunto de ferramentas de propósito geral com foco especial na síntese de vídeo em tempo real e programação de grandes ambientes de mídia com interfaces físicas, gráficos de movimento em tempo real, áudio e vídeo;
  • WireFusion, ambiente de programação visual para criar apresentações web interativas em 3D.

Videogames

  • O Babylon.js [en] tem um editor de material de nó que pode ser usado para criar sombreadores, texturas processuais, sistemas de partículas e efeitos de pós-processamento;[14]
  • Blender Game Engine (editor de lógica gráfica);
  • UPBGE (Uchronia Project Blender Game Engine) fork do Blender Game Engine criado por Tristan Porteries;[15][16]
  • Buildbox [en];
  • Clickteam [en], um software de criação de jogos 2D com sistema de editor de eventos, desenvolvido pela Clickteam SARL, originalmente conhecido como Klik n' Play, The Games Factory e Multimedia Fusion 2;
  • Construct 2-3 são editores de jogos 2D baseados em HTML5, desenvolvidos pela Scirra Ltd.
  • O CryEngine tem uma linguagem de programação visual baseada em nós chamada FlowGraph;
  • Dreams, que roda no PlayStation, tem uma linguagem visual extensa que permite aos jogadores criar qualquer tipo de jogo;
  • Game Builder Garage [en], uma ferramenta de criação de jogos 3D e 2D para o Nintendo Switch, desenvolvida pela Nintendo;
  • GameMaker Studio, tem um sistema de criação de jogos de arrastar e soltar desenvolvido pela YoYo Games;
  • GameSalad [en] é uma ferramenta de criação de jogos visuais desenvolvida pela GameSalad, Inc.;
  • GDevelop é uma ferramenta de criação de jogos visuais criada por Florian Rival (4ian);
  • O mecanismo de jogo Godot permite que scripts de jogos e sombreadores gráficos sejam criados usando linguagens de programação visual de gráficos de nós;
  • Human Resource Machine [en] é um jogo de quebra-cabeça baseado em programação visual desenvolvido pela Tomorrow Corporation [en];
  • Kodu, um software projetado para programar jogos com uma interface 3D desenvolvido pela Microsoft Research;
  • MakeCode Arcade, da Microsoft;
  • Pixel Game Maker MV [en] é uma ferramenta de desenvolvimento de videogame 2D baseada em interface;
  • Rec Room [en] inclui um sistema de criação de jogos com uma linguagem de programação visual baseada em nós chamada Circuits;
  • O Snowdrop [en] tem um sistema de script visual;
  • Stencyl [en], uma ferramenta de criação de jogos de vídeo;
  • Unity tem um sistema de script visual a partir da versão ECS;
  • O Unreal Engine 4 tem uma linguagem de programação visual baseada em nós chamada Blueprints e também sombreadores.

Muitos videogames modernos usam Árvore de comportamento [en], que são, em princípio, uma família de linguagens de programação simples projetadas para modelar comportamentos para personagens não-jogáveis. Os comportamentos são modelados como árvores e são geralmente editados em editores gráficos.

Sistemas/simulação

Automação

  • Automator;
  • CiMPLE [en], linguagem de programação visual da ThinkLABs para o ensino de robótica;
  • Flow [en], uma linguagem de integração gráfica usada na plataforma webMethods;
  • Pipeline Pilot [en] é uma linguagem de programação científica visual e de fluxo de dados e a ferramenta de autoria para a Accelrys Enterprise Platform.

Armazenamento de dados/inteligência empresarial

Diversos

  • Kwikpoint [en], um tradutor visual de isotipos criado por Alan Stillman;
  • Lava, uma linguagem experimental de RAD orientada a objetos;
  • Morphic (software) [en], facilita a criação e a edição de objetos gráficos por meio de manipulação direta e de dentro de programas. Todo o ambiente de programação Self foi criado usando o Morphic;
  • Piet, uma linguagem esotérica em que o programa é uma imagem cujos pixels são os elementos da linguagem;
  • PWCT [en], linguagem de programação visual gratuita de código aberto para desenvolvimento de software;
  • Shortcuts [en], uma linguagem de script visual desenvolvida pela Apple para criar macros no macOS, iOS, iPadOS e watchOS;
  • StreamBase EventFlow é uma linguagem de programação visual para processamento de eventos de streaming;
  • WebML, é uma linguagem visual para projetar aplicativos complexos da Web com uso intensivo de dados que podem ser gerados automaticamente;
  • Yahoo! Pipes [en] é um sistema de programação visual de fluxo de dados para processar dados da Web;[19]
  • YAWL, linguagem gráfica de fluxo de trabalho.

Legado

Estilos visuais

Ver também

Referências

  1. Jost, Beate; Ketterl, Markus; Budde, Reinhard; Leimbach, Thorsten (dezembro de 2014). «Graphical Programming Environments for Educational Robots: Open Roberta - Yet Another One?»: 381–386. doi:10.1109/ISM.2014.24. Consultado em 8 de julho de 2022 
  2. Bragg, S.D.; Driskill, C.G. (setembro de 1994). «Diagrammatic-graphical programming languages and DoD-STD-2167A»: 211–220. doi:10.1109/AUTEST.1994.381508. Consultado em 8 de julho de 2022 
  3. Kuhail, Mohammad Amin; Farooq, Shahbano; Hammad, Rawad; Bahja, Mohammed (2021). «Characterizing Visual Programming Approaches for End-User Developers: A Systematic Review». IEEE Access: 14181–14202. ISSN 2169-3536. doi:10.1109/ACCESS.2021.3051043. Consultado em 8 de julho de 2022 
  4. Repenning, Alexander (2017). «Moving Beyond Syntax: Lessons from 20 Years of Blocks Programing in AgentSheets». Journal of Visual Languages and Sentient Systems (em inglês). 3: 68–91. doi:10.18293/vlss2017-010Acessível livremente 
  5. Johnston, W.M.; Hanna, J.R.P.; Millar, R.J. (2004). «Advances in dataflow programming languages» (PDF). ACM Computing Surveys (em inglês). 36 (1): 1-34. doi:10.1145/1013208.1013209. Consultado em 16 de fevereiro de 2011 
  6. Rekers, J.; Schürr, A. (1997). «Defining and parsing visual languages with layered graph grammars». Journal of Visual Languages & Computing (em inglês). 8 (1): 27-55. doi:10.1006/jvlc.1996.0027 
  7. Zhang, D.-Q. (2001). «A context-sensitive graph grammar formalism for the specification of visual languages». The Computer Journal (em inglês). 44 (3): 186-200. doi:10.1093/comjnl/44.3.186 
  8. http://www.computermusicjournal.org/reviews/31-* * * 2/regan-bidule.html
  9. «Shader Editor — Blender Manual». docs.blender.org (em inglês). Consultado em 22 de janeiro de 2021 
  10. «Compositing — Blender Manual». docs.blender.org (em inglês). Consultado em 22 de janeiro de 2021 
  11. «Texture Editing — Blender Manual». docs.blender.org (em inglês). Consultado em 22 de janeiro de 2021 
  12. «Reference/Release Notes/2.92/Geometry Nodes - Blender Developer Wiki». wiki.blender.org (em inglês). Consultado em 22 de janeiro de 2021 
  13. «Geometry Nodes — Blender Manual». docs.blender.org (em inglês). Consultado em 2 de outubro de 2021 
  14. «Babylon.js Node Material Editor». nme.babylonjs.com (em inglês). Consultado em 22 de janeiro de 2021 
  15. «Crie jogos com o UPBGE – Uniday Studio». Consultado em 8 de agosto de 2024 
  16. «UPBGE - Linux Universe». linuxuniverse.com.br. 25 de fevereiro de 2023. Consultado em 8 de agosto de 2024 
  17. «Game Making Software - Construct 3 ★★★★★». www.construct.net (em inglês) 
  18. «Construct Classic». SourceForge (em inglês). 25 de maio de 2016 
  19. «Yahoo! pipes» (em inglês). Consultado em 3 de janeiro de 2015. Cópia arquivada em 3 de janeiro de 2015 
  20. «Help - Eclipse Platform». Eclipse Help. Consultado em 8 de agosto de 2024 
  21. «Eclipse WindowBuilder - Creating user interfaces - Tutorial». Vogella. Consultado em 8 de agosto de 2024 
  22. «Introduction to GUI Building». netbeans.apache.org. Consultado em 8 de agosto de 2024 
  23. «Melhores editores WYSIWYG | dpw». desenvolvimento para web. 1 de junho de 2010. Consultado em 8 de agosto de 2024 
  24. «Design Java UIs without coding using the Vaadin Visual View Builder | Vaadin». Vaadin (em inglês). Consultado em 8 de agosto de 2024 

Ligações externas

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!