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 :
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$").
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 :