Indirection

The most common form of indirection is the act of manipulating a value through its memory address.

In some older computer architectures, indirect words supported a variety of more-or-less complicated addressing modes.

A famous aphorism of Butler Lampson that is attributed to David Wheeler goes: "All problems in computer science can be solved by another level of indirection" (the "fundamental theorem of software engineering").

A corollary to this aphorism, and the original conclusion from Wheeler, is "...except for the problem of too many layers of indirection."

Object-oriented programming makes use of indirection extensively, a simple example being dynamic dispatch.

When doing symbolic programming from a formal mathematical specification the use of indirection can be quite helpful.