La máquina de Turing es un modelo abstracto de algoritmo introducido por Alan Turing en 1936. Consiste en un alfabeto de entrada y salida, estados finitos, y una función de transición que lee símbolos de una cinta finita por la izquierda, los borra y escribe nuevos símbolos según las transiciones entre estados, avanzando o retrocediendo un casillero a la vez hasta detenerse en un estado final, representando así la salida.