31
May
2012

Programmation visuelle

Par Manu ·  Etiquette(s) : Code

Pour la plupart des gens, la programmation ressemble à ça :

PUBLIC _myFunc
_myFunc PROC
  ; Subroutine Prologue
  push ebp     ; Save the old base pointer value.
  mov ebp, esp ; Set the new base pointer value.
  sub esp, 4   ; Make room for one 4-byte local variable.
  push edi     ; Save the values of registers that the function
  push esi     ; will modify. This function uses EDI and ESI.
  ; (no need to save EBX, EBP, or ESP)
  ; Subroutine Body
  mov eax, [ebp+8]   ; Move value of parameter 1 into EAX
  mov esi, [ebp+12]  ; Move value of parameter 2 into ESI
  mov edi, [ebp+16]  ; Move value of parameter 3 into EDI
  mov [ebp-4], edi   ; Move EDI into the local variable
  add [ebp-4], esi   ; Add ESI into the local variable
  add eax, [ebp-4]   ; Add the contents of the local variable
                     ; into EAX (final result)
  ; Subroutine Epilogue 
  pop esi      ; Recover register values
  pop  edi
  mov esp, ebp ; Deallocate local variables
  pop ebp ; Restore the caller's base pointer value
  ret
_myFunc ENDP
END

Pourtant, il existe toute une famille de langages de programmation qui utilisent une sorte de grammaire "visuelle", comme LabView, qui fait penser à un kit d'électronique où l'on doit connecter les différents composants entre eux :

LabVIEW
a screenshot of LabVIEW (wikipedia)

Certains de ces langages sont destinés aux enfants, dans le but de leur faire découvrir la programmation informatique. On pense notamment aux Etoys de Squeak, qui sont installés sur l'OLPC (le "portable à 100$").

a screenshot of Squeak (wikipedia)

Un peu entre les deux, on trouve des éditeurs de code du genre "drag and drop", où l'on place les blocs de codes de façon graphique, même si au final le résultat ressemble à un code source traditionnel :

Modkit, pour programmer Arduino et consorts (ils sont sur Kickstarter)
A screenshot of the Modkit project
App Inventor for Android, de Google
Google's App Inventor screenshot
Manu