Abstract machines that can simulate any algorithm and can be used to define the concept of computability.