Definition
In 1948-53, John von Neumann analyzed the theoretical requirements for self-replicating machines. His answer: any self-replicator must factor into a description D (finite, copyable, non-executable), a universal constructor C that builds anything described in its description language, and a copier K that duplicates descriptions. The whole replicator is (C, K, D) with D describing (C, K). To replicate: C reads D and builds a new (C, K); K copies D; the result is a second (C, K, D).
Why it matters
How it works
Describe the system (C, K) in a description language. Place the description D adjacent to the system. The system reads D via C to build a copy of itself; reads D via K to make a copy of D for the offspring; assembles the offspring as the copied (C, K) plus copied D. The architecture solves the regress: copying does not require executing, and execution operates on description rather than on the system directly. Von Neumann initially described this in cellular-automaton terms; the abstract architecture turned out to fit biology and computer science alike.