miniaturadaimagem|298x298px|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. 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) 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:

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 ou , 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 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 , que provavelmente se tornará um dos maiores desafios da programação do futuro.

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.

Lista

Educacionais

, ferramentas de pensamento computacional para design de jogos 3D e 2D e design de simulação; , ferramenta de criação de jogos e de ciência computacional; , uma linguagem baseada em objetos usada para programar ambientes 3D; , 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 e ; 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; , para criar aplicações web prontas para produção; , 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; , uma ferramenta de programação visual para microcontroladores incorporados e Windows; , cria fluxogramas executáveis que podem ser convertidos em várias linguagens; , 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; , uma linguagem de programação, IDE e ambiente de aprendizado; , uma extensão do Scratch para interfaces de hardware Arduino. Desenvolvido por Makeblock; , ambiente de programação on-line da Fraunhofer IAIS, projetado para crianças; , uma linguagem de programação visual centrada no desenho com um lápis; , 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; , 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; , um sistema de ensino baseado em Java; StarLogo, uma linguagem de simulação baseada em agentes desenvolvida por , 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; , para criação de fluxogramas executáveis; , Ambiente de linguagem de programação de IoT/Robótica Visual.

Multimídia

, um ambiente de criação de som e música baseado no fluxo de sinal de áudio; , um ambiente modular com nós e conectores para a criação de música interativa e multimídia (Windows, MacOS);http://www.computermusicjournal.org/reviews/31-* * * 2/regan-bidule.html Blender, o pacote de gráficos 3D de código aberto, inclui grafos de nós para a construção de sombreadores, e , ; , linguagem gráfica funcional; Série The Games Factory/Multimedia Fusion da , ambientes feitos para o desenvolvimento visual de jogos; , uma interface de modelagem generativa para o Autodesk Revit; , 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; , 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; , uma linguagem de programação visual para design de som usada por músicos, pesquisadores e designers de som; – 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 Max/MSP Pure Data nato.0+55+3d , um aplicativo de software de programação generativa baseado em nós para composição musical; , um software de programação visual baseado em objetos para composição de efeitos visuais pela , 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; , uma linguagem para processamento e renderização de dados gráficos (macOS); , uma linguagem DSP e de processamento MIDI da . , uma suíte de autoria e sistema multimídia completo para AmigaOS e Windows; Softimage, com ICE Interactive Creative Environment; , uma ferramenta de construção de sintetizador usando uma VPL; , linguagem de programação visual para conteúdo multimídia em tempo real; Virtools, um middleware usado para criar experiências interativas 3D; , 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 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; Blender Game Engine (editor de lógica gráfica); UPBGE (Uchronia Project Blender Game Engine) fork do Blender Game Engine criado por Tristan Porteries; ; , 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. Construct Classic é a versão anterior de código aberto baseada em DirectX do Construct. 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; , 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; é 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; é um jogo de quebra-cabeça baseado em programação visual desenvolvido pela ; Kodu, um software projetado para programar jogos com uma interface 3D desenvolvido pela Microsoft Research; MakeCode Arcade, da Microsoft; é uma ferramenta de desenvolvimento de videogame 2D baseada em interface; inclui um sistema de criação de jogos com uma linguagem de programação visual baseada em nós chamada Circuits; O tem um sistema de script visual; , 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 , 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

Analytica, uma linguagem visual comercial para modelos de decisão baseados em ; BPEL (Business Process Execution Language), atualmente uma linguagem de programação gráfica baseada no usuário, utilizada para criar lógica de orquestração para dados e serviços da Web. É baseada em XML, mas tem uma interface gráfica para uma codificação mais rápida; DRAKON, uma linguagem algorítmica gráfica; EICASLAB, um conjunto de software que inclui uma linguagem gráfica para apoiar o projeto de arquiteturas de controle; Flowcode é uma linguagem de programação gráfica para programar microprocessadores incorporados; , usados em controladores lógicos programáveis; , um kit de ferramentas de desenvolvimento que fornece blocos de processamento de sinais para implementar rádios definidos por software e sistemas de processamento de sinais; KNIME, o Konstanz Information Miner, é uma plataforma de análise de dados, relatórios e integração de código aberto; LabVIEW, uma linguagem gráfica projetada para engenheiros e cientistas;