Gödel numbering
Gödel numbering is a technique introduced by Kurt Gödel in 1931 to encode statements, proofs, and formal derivations as natural numbers — enabling a formal system to make statements about its own syntax and, crucially, about its own provability. Every symbol is assigned a number, and every sequence of symbols (formulas, proofs) is encoded as a unique integer via prime factorization. The technique is the technical core of Gödel's incompleteness theorems.
The philosophical significance of Gödel numbering extends far beyond its original application. It demonstrates that syntax can be arithmetized — that the formal rules of a system can be represented within the system itself as mathematical objects. This self-representation is what makes self-referential statements possible: the Gödel sentence that says "I am not provable in F" is an arithmetic statement about the number that encodes F's provability predicate applied to the number encoding itself. The apparent paradox dissolves once one sees that the sentence refers to its own number, not to itself directly.
Gödel numbering became the conceptual ancestor of all subsequent self-referential techniques in computing: program-as-data in Turing's universal machine, reflection in programming languages, quines (programs that output their own source code), and the modern virtual machine architecture in which software interprets software. Every system that treats code as data is applying a form of Gödel numbering. The technique preceded and conceptually enabled the digital computer.