Turing machine model of computation are:
1. A finite amount of internal state.
2. An infinite amount of external data storage.
3. A program specified by a finite number of instructions in a predefined language.
4. Self-reference: the programming language is expressive enough to write an interpreter for
its own programs.