Visuell programmering

Fra Wikipedia, den frie encyklopedi
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,[1] blokkprogrammering[2] eller grafisk programmering,[3] vil si å lage et dataprogram ved å manipulere objekter i et grafisk brukergrensesnitt i stedet for å skrive konvensjonell tekstkode.[4] 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.[5]

Typer visuelle språk[rediger | rediger kilde]

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[rediger | rediger kilde]

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 Envision[6][7] og PWCT.[8]

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[rediger | rediger kilde]

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

Pedagogisk[rediger | rediger kilde]

Multimedia[rediger | rediger kilde]

Videospill[rediger | rediger kilde]

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[rediger | rediger kilde]

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

Automasjon[rediger | rediger kilde]

Datavarehus og forretningsinnsikt[rediger | rediger kilde]

Diverse[rediger | rediger kilde]

  • YAWL, grafisk arbeidsflytspråk

Visuelle stiler[rediger | rediger kilde]

Se også[rediger | rediger kilde]

Referanser[rediger | rediger kilde]

  1. ^ «Micro:bit Forslag til undervisningsopplegg, Nils Kr. Rossing, Vitensenteret Trodheim» (PDF). 
  2. ^ «Blokkprogrammering og tekstprogrammering | statped.no». www.statped.no. Besøkt 10. mars 2024. 
  3. ^ Drange, Pål Grønås (19. januar 2024). «blokkprogrammering». Store norske leksikon (norsk). Besøkt 10. mars 2024. 
  4. ^ Jost, Beate; Ketterl, Markus; Budde, Reinhard; Leimbach, Thorsten. «Graphical Programming Environments for Educational Robots: Open Roberta - Yet Another One?». 2014 IEEE International Symposium on Multimedia. ISBN 978-1-4799-4311-1. doi:10.1109/ISM.2014.24. 
  5. ^ «Advances in dataflow programming languages» (PDF). 
  6. ^ Asenov, 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.
  7. ^ «Envision». 
  8. ^ 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.
  9. ^ «Shader Editor — Blender Manual». Besøkt 22. januar 2021. 
  10. ^ «Compositing — Blender Manual». Besøkt 22. januar 2021. 
  11. ^ «Texture Editing — Blender Manual». Besøkt 22. januar 2021. 
  12. ^ «Reference/Release Notes/2.92/Geometry Nodes - Blender Developer Wiki». Besøkt 22. januar 2021. 
  13. ^ «Geometry Nodes — Blender Manual». Besøkt 2. oktober 2021.