Visual Programming is a form of programming in which a program is defined with the aid of tools that visually represent aspects of the program; its components, control structure, and/or behaviour.
Ultimately, all programs end up in one way or another being executed as a sequence of instructions to a CPU. This linear flow of instructions is quite amenable to representation in a language whose fundamental building block is characters that can be strung together, forming sequences that can be translated into other sequences. The challenge of visual programming tools is to provide intuitive visual building blocks from which programs can be derived, without losing expressivity or paying too great a performance cost.