The design of digital circuits has much in common with the design of software structures. Like programming
language systems, digital design systems must have expressive power sufficient for representing any circuit.
Since specifying complex circuits requires repetitive and conditional structures analogous to iteration, recursion
and conditionals in programs, languages for designing complex devices are usually based on textual
programming languages, as with the hardware description language VHDL. The advent of full-featured visual
programming languages, however, raises the possibility we consider here: that mechanisms used to visually
express compact and powerful program structures could be generalised to digital circuit design.