The document discusses return-oriented programming, which allows arbitrary computation without code injection by chaining together small "gadgets" found in program code or libraries. It presents the thesis that any sufficiently large program codebase contains enough gadgets to enable Turing-complete computation by controlling the program stack. The technique works by diverting the control flow to return addresses on the stack rather than injecting code. It poses a threat to security systems like W^X that aim to prevent code injection.