A block diagram is a visual representation of a system. It uses blocks to represent system components and arrows to show the flow of signals or information between these components.

Compared to difference equations or differential equations, which are declarative descriptions of a system, a block diagram is more imperative and operational in nature. Block diagrams can often be more directly translated into a hardware or software implementation.