miniatyr| En enkel kodeblokk laget i det visuelle programmeringsspråket Snap!, som er basert på Scratch (koden beregner summen av alle tall i verdiområdet mellom a og b)

Visuell programmering, også kjent som blokkoding, blokkprogrammering eller grafisk programmering, vil si å lage et dataprogram ved å manipulere objekter i et grafisk brukergrensesnitt i stedet for å skrive konvensjonell tekstkode. Det gjør at man kan programmere på en romlig og visuell måte ved hjelp av både tekst og grafiske symboler, enten som deler av syntaksen eller som hjelpenotasjon. Mange visuelle programmeringsspråk er basert på "bokser og piler" der boksene (eller andre objekter) representerer entiteter, mens piler, streker og linjer representerer relasjoner.

Et av formålene med visuell programmering er å gjøre programmering tilgjengelig for nybegynnere. Det kan også brukes av erfarne programmerere for hjelp til syntaks, semantikk og pragmatikk.

Per 2005 var den daværende trenden å forsøke å integrere visuell programmering med dataflytprogrammering slik at man har umiddelbar tilgang til programmets tilstand slik at man letter feilsøking eller automatisk kan generere dokumentasjon. Dataflytspråk tillater også automatisk parallellisering som antas å bli en av fremtidens største programmeringsutfordringer.

Typer visuelle språk Følgende liste er ikke gjensidig utelukkende, siden noen visuelle programmeringsmiljø kan inkludere elementer fra flere paradigmer. Valget av det visuelle programmeringsparadigmet avhenger ofte av de spesifikke kravene til applikasjonen eller preferansene til brukerne eller utviklerne.

Blokkbasert programmering Popularisert av plattformer som Scratch og Blockly, brukt for introduksjon til programmering i utdanning. Flytdiagrammer Mye brukt i programvareutvikling og systemdesign for å representere algoritmer og prosesser. Dra-og-slipp-grensesnitt Vanlig i grafiske designverktøy og utviklingsmiljø for å lage brukergrensesnitt. Nodegrafer Ofte brukt i visuelle programmeringsspråk, spillutvikling og dataflytsystemer. Dataflytprogrammering Populært i miljøer for parallellprosessering, signalbehandling og visuell programmering. Ikonisk programmering Brukes for å forenkle programmeringsoppgaver, eksempelvis for utvikling av mobilapplikasjoner. Tilstandsmaskiner Mye brukt i spillutvikling, styringssystemer og modellering av reaktive systemer. Arkbasert programmering Finnes i regnearksapplikasjoner og visse pedagogiske programmeringsmiljø. Tidslinjebasert programmering Vanlig i multimedia- og animasjonsprogramvare for sekvensering av hendelser over tid. Romlig programmering Brukes i visse interaktive og 3D-modelleringsmiljø. Skjemabasert programmering Brukes i applikasjoner der brukerinndata og grafiske grensesnitt spiller en betydelig rolle, for eksempel applikasjoner for dataregistrering.

Visuelle språk til generell bruk miniatyr|300x300pk| Implementering av Ring Virtual Machine (VM) ved å bruke det visuelle programmeringsspråket PWCT De fleste grafiske programmeringsspråk er laget for utdanning eller domenespesifikk bruk hvor brukerne er nybegynnere på programmering.

Det har vært noen forsøk på å utvikle visuelle programmeringsspråk til generell bruk som et alternativ til for eksempel C, C++, Java og så videre. Noen eksempler er forskningsprosjekter som EnvisionAsenov, D. and Muller, P., 2014, July. Envision: A fast and flexible visual code editor with fluid interactions (overview). In 2014 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (pp. 9-12). IEEE. og PWCT.Fayed, M.S., Al-Qurishi, M., Alamri, A., Hossain, M.A. and Al-Daraiseh, A.A., 2020. PWCT: a novel general-purpose visual programming language in support of pervasive application development. CCF Transactions on Pervasive Computing and Interaction, 2, pp.164-177.

Det er vanlig at visuelle programmeringsspråk utvikles ved hjelp av et tekstbasert programmeringsspråk. Dersom man utvikler et generelt visuelt programmeringsspråk vil det motsatte også være mulig.

Liste over visuelle språk Følgende inneholder en liste over noen notable eksempler på visuelle programmeringsspråk.

Pedagogisk

Scratch, et produkt fra MIT designet for barn i grunnskolen og skolefritidsordninger.

Multimedia

Blender, en 3D-grafikkpakke med åpen kildekode som inkluderer nodegrafer for å bygge shaders, compositing og teksturer, ikke-destruktiv geometri. Pure Data, et visuelt programmeringsspråk utviklet for å lage interaktiv datamusikk og multimedieverk. Virtools, en mellomvare som brukes for å lage interaktiv 3D

Videospill

Nintendo Switch, utviklet av Nintendo GameMaker Studio, har et spillopprettingssystem med dra-og-slipp Godot, en spillmotor som lar spillskript og grafikk bygges ved hjelp av en nodegraf Unreal Engine 4 har et nodebasert visuelt programmeringsspråk kalt Blueprints

Mange moderne videospill bruker atferdstrær, som i prinsippet er en familie enkle programmeringsspråk designet for å modellere atferd for ikke-spillere. Atferdene er modellert som trær, og blir ofte redigert i grafiske vinduer.

Systemer og simulering

DRAKON, et grafisk algoritmisk språk Node-RED, verktøy for rask utvikling av programvaresystem

Automasjon

Automator

Datavarehus og virksomhetsetterretning Microsoft Access, funksjonalitet for å designe spørringer Microsoft SQL Server Integration Services (SSIS), en plattform for dataintegrasjon og arbeidsflytapplikasjoner Pentaho Data Integration (PDI), tidligere kalt Kettle, et ETL-verktøy med åpen kildekode

Diverse

YAWL, grafisk arbeidsflytspråk

Visuelle stiler

DRAKON, et SDL- og AADL-påvirket visuelt 2D-programmeringsspråk designet for å utvikle det innebygde sanntidssystemet for automatisk flyging og landing av den sovjetiske Buran-romfergen Kjørbar UML, en profil av Universal Modeling Language som definerer kjørbar semantikk for en delmengde av UML Flytdiagram Subtext, et moderat visuelt programmeringsspråk

Se også Konseptdiagram Dataflytprogrammering Deutsch-grensen, en aforisme om at det ikke bør være mer enn 50 primitiver på en skjerm samtidig Dra og slipp Flytbasert programmering Lavkode programvareutvikling Kodefri programvareutvikling Unified Modeling Language

Referanser

Kategori:Programmeringsspråk